ttpg-darrell 1.1.53 → 1.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/lib/spawn/spawn.d.ts +14 -14
- package/build/cjs/lib/spawn/spawn.js +29 -24
- package/build/cjs/lib/spawn/spawn.js.map +1 -1
- package/build/cjs/lib/swap-split-combine/swap-split-combine.d.ts +4 -2
- package/build/cjs/lib/swap-split-combine/swap-split-combine.js +3 -3
- package/build/cjs/lib/swap-split-combine/swap-split-combine.js.map +1 -1
- package/build/esm/lib/spawn/spawn.d.ts +14 -14
- package/build/esm/lib/spawn/spawn.js +29 -24
- package/build/esm/lib/spawn/spawn.js.map +1 -1
- package/build/esm/lib/swap-split-combine/swap-split-combine.d.ts +4 -2
- package/build/esm/lib/swap-split-combine/swap-split-combine.js +3 -3
- package/build/esm/lib/swap-split-combine/swap-split-combine.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,22 +2,22 @@ import { Card, GameObject, Rotator, Vector } from "@tabletop-playground/api";
|
|
|
2
2
|
/**
|
|
3
3
|
* Registry for NSID to template id.
|
|
4
4
|
*/
|
|
5
|
-
export declare
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
export declare class Spawn {
|
|
6
|
+
private _nsidToTemplateId;
|
|
7
|
+
spawn(nsid: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): GameObject | undefined;
|
|
8
|
+
spawnOrThrow(nsid: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): GameObject;
|
|
9
|
+
spawnMergeDecksWithNsidPrefixOrThrow(nsidPrefix: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card;
|
|
10
|
+
spawnMergeDecks(nsids: Array<string>, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card | undefined;
|
|
11
|
+
spawnMergeDecksOrThrow(nsids: Array<string>, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card;
|
|
12
|
+
inject(dict: {
|
|
13
13
|
[key: string]: string;
|
|
14
|
-
}):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
}): this;
|
|
15
|
+
has(nsid: string): boolean;
|
|
16
|
+
clear(): this;
|
|
17
|
+
getAllNsids(): Array<string>;
|
|
18
|
+
getTemplateIdOrThrow(nsid: string): string;
|
|
19
19
|
/**
|
|
20
20
|
* Make sure all registered templates exist.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
validate(): this;
|
|
23
23
|
}
|
|
@@ -6,8 +6,11 @@ const api_1 = require("@tabletop-playground/api");
|
|
|
6
6
|
* Registry for NSID to template id.
|
|
7
7
|
*/
|
|
8
8
|
class Spawn {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
constructor() {
|
|
10
|
+
this._nsidToTemplateId = {};
|
|
11
|
+
}
|
|
12
|
+
spawn(nsid, position, rotation) {
|
|
13
|
+
const templateId = this._nsidToTemplateId[nsid];
|
|
11
14
|
if (!templateId) {
|
|
12
15
|
console.log(`Spawn.spawn: unknown nsid "${nsid}"`);
|
|
13
16
|
return undefined;
|
|
@@ -26,28 +29,28 @@ class Spawn {
|
|
|
26
29
|
}
|
|
27
30
|
return obj;
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
const obj =
|
|
32
|
+
spawnOrThrow(nsid, position, rotation) {
|
|
33
|
+
const obj = this.spawn(nsid, position, rotation);
|
|
31
34
|
if (!obj) {
|
|
32
35
|
throw new Error(`spawnOrThrow failed for "${nsid}"`);
|
|
33
36
|
}
|
|
34
37
|
return obj;
|
|
35
38
|
}
|
|
36
|
-
|
|
37
|
-
const nsids =
|
|
39
|
+
spawnMergeDecksWithNsidPrefixOrThrow(nsidPrefix, position, rotation) {
|
|
40
|
+
const nsids = this.getAllNsids().filter((nsid) => nsid.startsWith(nsidPrefix));
|
|
38
41
|
if (nsids.length === 0) {
|
|
39
42
|
throw new Error(`spawnMergeDecksWithNsidPrefixOrThrow failed for prefix "${nsidPrefix}": no matching nsids`);
|
|
40
43
|
}
|
|
41
|
-
return
|
|
44
|
+
return this.spawnMergeDecksOrThrow(nsids, position, rotation);
|
|
42
45
|
}
|
|
43
|
-
|
|
46
|
+
spawnMergeDecks(nsids, position, rotation) {
|
|
44
47
|
if (nsids.length === 0) {
|
|
45
48
|
console.log("Spawn.spawnMergeDecks: empty nsid array");
|
|
46
49
|
return undefined;
|
|
47
50
|
}
|
|
48
51
|
let deck;
|
|
49
52
|
for (const nsid of nsids) {
|
|
50
|
-
const obj =
|
|
53
|
+
const obj = this.spawn(nsid, position, rotation);
|
|
51
54
|
// If any object fails, fail the whole spawn.
|
|
52
55
|
if (!obj) {
|
|
53
56
|
console.log(`Spawn.spawnMergeDecks: unknown nsid "${nsid}"`);
|
|
@@ -79,29 +82,31 @@ class Spawn {
|
|
|
79
82
|
}
|
|
80
83
|
return deck;
|
|
81
84
|
}
|
|
82
|
-
|
|
83
|
-
const obj =
|
|
85
|
+
spawnMergeDecksOrThrow(nsids, position, rotation) {
|
|
86
|
+
const obj = this.spawnMergeDecks(nsids, position, rotation);
|
|
84
87
|
if (!obj) {
|
|
85
88
|
throw new Error(`spawnMergeDecksOrThrow failed for [${nsids.join(", ")}]`);
|
|
86
89
|
}
|
|
87
90
|
return obj;
|
|
88
91
|
}
|
|
89
|
-
|
|
92
|
+
inject(dict) {
|
|
90
93
|
for (const [k, v] of Object.entries(dict)) {
|
|
91
|
-
|
|
94
|
+
this._nsidToTemplateId[k] = v;
|
|
92
95
|
}
|
|
96
|
+
return this;
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
return
|
|
98
|
+
has(nsid) {
|
|
99
|
+
return this._nsidToTemplateId[nsid] ? true : false;
|
|
96
100
|
}
|
|
97
|
-
|
|
98
|
-
|
|
101
|
+
clear() {
|
|
102
|
+
this._nsidToTemplateId = {};
|
|
103
|
+
return this;
|
|
99
104
|
}
|
|
100
|
-
|
|
101
|
-
return Object.keys(
|
|
105
|
+
getAllNsids() {
|
|
106
|
+
return Object.keys(this._nsidToTemplateId);
|
|
102
107
|
}
|
|
103
|
-
|
|
104
|
-
const templateId =
|
|
108
|
+
getTemplateIdOrThrow(nsid) {
|
|
109
|
+
const templateId = this._nsidToTemplateId[nsid];
|
|
105
110
|
if (!templateId) {
|
|
106
111
|
throw new Error(`getTemplateIdOrThrow failed for "${nsid}"`);
|
|
107
112
|
}
|
|
@@ -110,7 +115,7 @@ class Spawn {
|
|
|
110
115
|
/**
|
|
111
116
|
* Make sure all registered templates exist.
|
|
112
117
|
*/
|
|
113
|
-
|
|
118
|
+
validate() {
|
|
114
119
|
const templateIds = new Set();
|
|
115
120
|
for (const pkg of api_1.world.getAllowedPackages()) {
|
|
116
121
|
for (const templateId of pkg.getTemplateIds()) {
|
|
@@ -118,7 +123,7 @@ class Spawn {
|
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
const missing = [];
|
|
121
|
-
for (const [nsid, templateId] of Object.entries(
|
|
126
|
+
for (const [nsid, templateId] of Object.entries(this._nsidToTemplateId)) {
|
|
122
127
|
if (!templateIds.has(templateId)) {
|
|
123
128
|
missing.push(`${templateId} ("${nsid}")`);
|
|
124
129
|
}
|
|
@@ -127,8 +132,8 @@ class Spawn {
|
|
|
127
132
|
throw new Error(`Spawn.validate missing templateIds (${missing.length}):\n` +
|
|
128
133
|
missing.join("\n"));
|
|
129
134
|
}
|
|
135
|
+
return this;
|
|
130
136
|
}
|
|
131
137
|
}
|
|
132
138
|
exports.Spawn = Spawn;
|
|
133
|
-
Spawn._nsidToTemplateId = {};
|
|
134
139
|
//# sourceMappingURL=spawn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../../src/lib/spawn/spawn.ts"],"names":[],"mappings":";;;AAAA,kDAMkC;AAElC;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../../src/lib/spawn/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { GameObject, Player } from "@tabletop-playground/api";
|
|
2
2
|
import { IGlobal } from "../global/i-global";
|
|
3
|
+
import { Spawn } from "../spawn/spawn";
|
|
3
4
|
export type SwapSplitCombineRule = {
|
|
4
5
|
src: {
|
|
5
6
|
nsids: Array<string>;
|
|
@@ -19,14 +20,15 @@ export type SwapSplitCombineRule = {
|
|
|
19
20
|
* Useful to replace currency items with upper/lower versions.
|
|
20
21
|
*/
|
|
21
22
|
export declare class SwapSplitCombine implements IGlobal {
|
|
22
|
-
private readonly _nsids;
|
|
23
23
|
private readonly _rules;
|
|
24
|
+
private readonly _spawn;
|
|
25
|
+
private readonly _nsids;
|
|
24
26
|
private readonly _playerSlotToInProgressObjIdSet;
|
|
25
27
|
private readonly _overrideCreate;
|
|
26
28
|
private readonly _overrideDestroy;
|
|
27
29
|
private readonly _primaryActionHandler;
|
|
28
30
|
private readonly _objectCreatedHandler;
|
|
29
|
-
constructor(rules: Array<SwapSplitCombineRule
|
|
31
|
+
constructor(rules: Array<SwapSplitCombineRule>, spawn: Spawn);
|
|
30
32
|
addOverrideCreate(nsid: string, create: (player: Player) => GameObject | undefined): this;
|
|
31
33
|
addOverrideDestroy(nsid: string, destroy: (obj: GameObject, player: Player) => void): this;
|
|
32
34
|
/**
|
|
@@ -5,7 +5,6 @@ const api_1 = require("@tabletop-playground/api");
|
|
|
5
5
|
const nsid_1 = require("../nsid/nsid");
|
|
6
6
|
const garbage_container_1 = require("../game-object/garbage/garbage-container");
|
|
7
7
|
const deleted_items_container_1 = require("../game-object/deleted-items-container/deleted-items-container");
|
|
8
|
-
const spawn_1 = require("../spawn/spawn");
|
|
9
8
|
const facing_1 = require("../facing/facing");
|
|
10
9
|
/**
|
|
11
10
|
* Replace one or more objects with others. Applies the first matching rule.
|
|
@@ -13,7 +12,7 @@ const facing_1 = require("../facing/facing");
|
|
|
13
12
|
* Useful to replace currency items with upper/lower versions.
|
|
14
13
|
*/
|
|
15
14
|
class SwapSplitCombine {
|
|
16
|
-
constructor(rules) {
|
|
15
|
+
constructor(rules, spawn) {
|
|
17
16
|
this._nsids = new Set();
|
|
18
17
|
this._playerSlotToInProgressObjIdSet = {};
|
|
19
18
|
this._overrideCreate = new Map();
|
|
@@ -28,6 +27,7 @@ class SwapSplitCombine {
|
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
this._rules = rules;
|
|
30
|
+
this._spawn = spawn;
|
|
31
31
|
for (const rule of rules) {
|
|
32
32
|
for (const nsid of rule.src.nsids) {
|
|
33
33
|
this._nsids.add(nsid);
|
|
@@ -161,7 +161,7 @@ class SwapSplitCombine {
|
|
|
161
161
|
dstObj === null || dstObj === void 0 ? void 0 : dstObj.setPosition(pos);
|
|
162
162
|
}
|
|
163
163
|
else {
|
|
164
|
-
dstObj =
|
|
164
|
+
dstObj = this._spawn.spawnOrThrow(rule.dst.nsid, pos);
|
|
165
165
|
}
|
|
166
166
|
if (dstObj) {
|
|
167
167
|
if (rule.requireFaceDown) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap-split-combine.js","sourceRoot":"","sources":["../../../../src/lib/swap-split-combine/swap-split-combine.ts"],"names":[],"mappings":";;;AAAA,kDAMkC;AAClC,uCAAoC;AAEpC,gFAA4E;AAC5E,4GAAuG;
|
|
1
|
+
{"version":3,"file":"swap-split-combine.js","sourceRoot":"","sources":["../../../../src/lib/swap-split-combine/swap-split-combine.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,22 +2,22 @@ import { Card, GameObject, Rotator, Vector } from "@tabletop-playground/api";
|
|
|
2
2
|
/**
|
|
3
3
|
* Registry for NSID to template id.
|
|
4
4
|
*/
|
|
5
|
-
export declare
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
export declare class Spawn {
|
|
6
|
+
private _nsidToTemplateId;
|
|
7
|
+
spawn(nsid: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): GameObject | undefined;
|
|
8
|
+
spawnOrThrow(nsid: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): GameObject;
|
|
9
|
+
spawnMergeDecksWithNsidPrefixOrThrow(nsidPrefix: string, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card;
|
|
10
|
+
spawnMergeDecks(nsids: Array<string>, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card | undefined;
|
|
11
|
+
spawnMergeDecksOrThrow(nsids: Array<string>, position?: Vector | [x: number, y: number, z: number], rotation?: Rotator | [pitch: number, yaw: number, roll: number]): Card;
|
|
12
|
+
inject(dict: {
|
|
13
13
|
[key: string]: string;
|
|
14
|
-
}):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
}): this;
|
|
15
|
+
has(nsid: string): boolean;
|
|
16
|
+
clear(): this;
|
|
17
|
+
getAllNsids(): Array<string>;
|
|
18
|
+
getTemplateIdOrThrow(nsid: string): string;
|
|
19
19
|
/**
|
|
20
20
|
* Make sure all registered templates exist.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
validate(): this;
|
|
23
23
|
}
|
|
@@ -3,8 +3,11 @@ import { Card, world, } from "@tabletop-playground/api";
|
|
|
3
3
|
* Registry for NSID to template id.
|
|
4
4
|
*/
|
|
5
5
|
export class Spawn {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
constructor() {
|
|
7
|
+
this._nsidToTemplateId = {};
|
|
8
|
+
}
|
|
9
|
+
spawn(nsid, position, rotation) {
|
|
10
|
+
const templateId = this._nsidToTemplateId[nsid];
|
|
8
11
|
if (!templateId) {
|
|
9
12
|
console.log(`Spawn.spawn: unknown nsid "${nsid}"`);
|
|
10
13
|
return undefined;
|
|
@@ -23,28 +26,28 @@ export class Spawn {
|
|
|
23
26
|
}
|
|
24
27
|
return obj;
|
|
25
28
|
}
|
|
26
|
-
|
|
27
|
-
const obj =
|
|
29
|
+
spawnOrThrow(nsid, position, rotation) {
|
|
30
|
+
const obj = this.spawn(nsid, position, rotation);
|
|
28
31
|
if (!obj) {
|
|
29
32
|
throw new Error(`spawnOrThrow failed for "${nsid}"`);
|
|
30
33
|
}
|
|
31
34
|
return obj;
|
|
32
35
|
}
|
|
33
|
-
|
|
34
|
-
const nsids =
|
|
36
|
+
spawnMergeDecksWithNsidPrefixOrThrow(nsidPrefix, position, rotation) {
|
|
37
|
+
const nsids = this.getAllNsids().filter((nsid) => nsid.startsWith(nsidPrefix));
|
|
35
38
|
if (nsids.length === 0) {
|
|
36
39
|
throw new Error(`spawnMergeDecksWithNsidPrefixOrThrow failed for prefix "${nsidPrefix}": no matching nsids`);
|
|
37
40
|
}
|
|
38
|
-
return
|
|
41
|
+
return this.spawnMergeDecksOrThrow(nsids, position, rotation);
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
spawnMergeDecks(nsids, position, rotation) {
|
|
41
44
|
if (nsids.length === 0) {
|
|
42
45
|
console.log("Spawn.spawnMergeDecks: empty nsid array");
|
|
43
46
|
return undefined;
|
|
44
47
|
}
|
|
45
48
|
let deck;
|
|
46
49
|
for (const nsid of nsids) {
|
|
47
|
-
const obj =
|
|
50
|
+
const obj = this.spawn(nsid, position, rotation);
|
|
48
51
|
// If any object fails, fail the whole spawn.
|
|
49
52
|
if (!obj) {
|
|
50
53
|
console.log(`Spawn.spawnMergeDecks: unknown nsid "${nsid}"`);
|
|
@@ -76,29 +79,31 @@ export class Spawn {
|
|
|
76
79
|
}
|
|
77
80
|
return deck;
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
const obj =
|
|
82
|
+
spawnMergeDecksOrThrow(nsids, position, rotation) {
|
|
83
|
+
const obj = this.spawnMergeDecks(nsids, position, rotation);
|
|
81
84
|
if (!obj) {
|
|
82
85
|
throw new Error(`spawnMergeDecksOrThrow failed for [${nsids.join(", ")}]`);
|
|
83
86
|
}
|
|
84
87
|
return obj;
|
|
85
88
|
}
|
|
86
|
-
|
|
89
|
+
inject(dict) {
|
|
87
90
|
for (const [k, v] of Object.entries(dict)) {
|
|
88
|
-
|
|
91
|
+
this._nsidToTemplateId[k] = v;
|
|
89
92
|
}
|
|
93
|
+
return this;
|
|
90
94
|
}
|
|
91
|
-
|
|
92
|
-
return
|
|
95
|
+
has(nsid) {
|
|
96
|
+
return this._nsidToTemplateId[nsid] ? true : false;
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
|
|
98
|
+
clear() {
|
|
99
|
+
this._nsidToTemplateId = {};
|
|
100
|
+
return this;
|
|
96
101
|
}
|
|
97
|
-
|
|
98
|
-
return Object.keys(
|
|
102
|
+
getAllNsids() {
|
|
103
|
+
return Object.keys(this._nsidToTemplateId);
|
|
99
104
|
}
|
|
100
|
-
|
|
101
|
-
const templateId =
|
|
105
|
+
getTemplateIdOrThrow(nsid) {
|
|
106
|
+
const templateId = this._nsidToTemplateId[nsid];
|
|
102
107
|
if (!templateId) {
|
|
103
108
|
throw new Error(`getTemplateIdOrThrow failed for "${nsid}"`);
|
|
104
109
|
}
|
|
@@ -107,7 +112,7 @@ export class Spawn {
|
|
|
107
112
|
/**
|
|
108
113
|
* Make sure all registered templates exist.
|
|
109
114
|
*/
|
|
110
|
-
|
|
115
|
+
validate() {
|
|
111
116
|
const templateIds = new Set();
|
|
112
117
|
for (const pkg of world.getAllowedPackages()) {
|
|
113
118
|
for (const templateId of pkg.getTemplateIds()) {
|
|
@@ -115,7 +120,7 @@ export class Spawn {
|
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
122
|
const missing = [];
|
|
118
|
-
for (const [nsid, templateId] of Object.entries(
|
|
123
|
+
for (const [nsid, templateId] of Object.entries(this._nsidToTemplateId)) {
|
|
119
124
|
if (!templateIds.has(templateId)) {
|
|
120
125
|
missing.push(`${templateId} ("${nsid}")`);
|
|
121
126
|
}
|
|
@@ -124,7 +129,7 @@ export class Spawn {
|
|
|
124
129
|
throw new Error(`Spawn.validate missing templateIds (${missing.length}):\n` +
|
|
125
130
|
missing.join("\n"));
|
|
126
131
|
}
|
|
132
|
+
return this;
|
|
127
133
|
}
|
|
128
134
|
}
|
|
129
|
-
Spawn._nsidToTemplateId = {};
|
|
130
135
|
//# sourceMappingURL=spawn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../../src/lib/spawn/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EAIJ,KAAK,GACR,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../../src/lib/spawn/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { GameObject, Player } from "@tabletop-playground/api";
|
|
2
2
|
import { IGlobal } from "../global/i-global";
|
|
3
|
+
import { Spawn } from "../spawn/spawn";
|
|
3
4
|
export type SwapSplitCombineRule = {
|
|
4
5
|
src: {
|
|
5
6
|
nsids: Array<string>;
|
|
@@ -19,14 +20,15 @@ export type SwapSplitCombineRule = {
|
|
|
19
20
|
* Useful to replace currency items with upper/lower versions.
|
|
20
21
|
*/
|
|
21
22
|
export declare class SwapSplitCombine implements IGlobal {
|
|
22
|
-
private readonly _nsids;
|
|
23
23
|
private readonly _rules;
|
|
24
|
+
private readonly _spawn;
|
|
25
|
+
private readonly _nsids;
|
|
24
26
|
private readonly _playerSlotToInProgressObjIdSet;
|
|
25
27
|
private readonly _overrideCreate;
|
|
26
28
|
private readonly _overrideDestroy;
|
|
27
29
|
private readonly _primaryActionHandler;
|
|
28
30
|
private readonly _objectCreatedHandler;
|
|
29
|
-
constructor(rules: Array<SwapSplitCombineRule
|
|
31
|
+
constructor(rules: Array<SwapSplitCombineRule>, spawn: Spawn);
|
|
30
32
|
addOverrideCreate(nsid: string, create: (player: Player) => GameObject | undefined): this;
|
|
31
33
|
addOverrideDestroy(nsid: string, destroy: (obj: GameObject, player: Player) => void): this;
|
|
32
34
|
/**
|
|
@@ -2,7 +2,6 @@ import { globalEvents, world, } from "@tabletop-playground/api";
|
|
|
2
2
|
import { NSID } from "../nsid/nsid";
|
|
3
3
|
import { GarbageContainer } from "../game-object/garbage/garbage-container";
|
|
4
4
|
import { DeletedItemsContainer } from "../game-object/deleted-items-container/deleted-items-container";
|
|
5
|
-
import { Spawn } from "../spawn/spawn";
|
|
6
5
|
import { Facing } from "../facing/facing";
|
|
7
6
|
/**
|
|
8
7
|
* Replace one or more objects with others. Applies the first matching rule.
|
|
@@ -10,7 +9,7 @@ import { Facing } from "../facing/facing";
|
|
|
10
9
|
* Useful to replace currency items with upper/lower versions.
|
|
11
10
|
*/
|
|
12
11
|
export class SwapSplitCombine {
|
|
13
|
-
constructor(rules) {
|
|
12
|
+
constructor(rules, spawn) {
|
|
14
13
|
this._nsids = new Set();
|
|
15
14
|
this._playerSlotToInProgressObjIdSet = {};
|
|
16
15
|
this._overrideCreate = new Map();
|
|
@@ -25,6 +24,7 @@ export class SwapSplitCombine {
|
|
|
25
24
|
}
|
|
26
25
|
};
|
|
27
26
|
this._rules = rules;
|
|
27
|
+
this._spawn = spawn;
|
|
28
28
|
for (const rule of rules) {
|
|
29
29
|
for (const nsid of rule.src.nsids) {
|
|
30
30
|
this._nsids.add(nsid);
|
|
@@ -158,7 +158,7 @@ export class SwapSplitCombine {
|
|
|
158
158
|
dstObj === null || dstObj === void 0 ? void 0 : dstObj.setPosition(pos);
|
|
159
159
|
}
|
|
160
160
|
else {
|
|
161
|
-
dstObj =
|
|
161
|
+
dstObj = this._spawn.spawnOrThrow(rule.dst.nsid, pos);
|
|
162
162
|
}
|
|
163
163
|
if (dstObj) {
|
|
164
164
|
if (rule.requireFaceDown) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap-split-combine.js","sourceRoot":"","sources":["../../../../src/lib/swap-split-combine/swap-split-combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,YAAY,EACZ,KAAK,GACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"swap-split-combine.js","sourceRoot":"","sources":["../../../../src/lib/swap-split-combine/swap-split-combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,YAAY,EACZ,KAAK,GACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AAEvG,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgB1C;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAiCzB,YAAY,KAAkC,EAAE,KAAY;QA9B3C,WAAM,GAAgB,IAAI,GAAG,EAAU,CAAC;QAExC,oCAA+B,GAE5C,EAAE,CAAC;QACU,oBAAe,GAG5B,IAAI,GAAG,EAA0C,CAAC;QACrC,qBAAgB,GAG7B,IAAI,GAAG,EAAqD,CAAC;QAEhD,0BAAqB,GAG1B,CAAC,GAAe,EAAE,MAAc,EAAQ,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEe,0BAAqB,GAA8B,CAChE,GAAe,EACX,EAAE;YACN,MAAM,IAAI,GAAW,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxD,CAAC;QACL,CAAC,CAAC;QAGE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAED,iBAAiB,CACb,IAAY,EACZ,MAAkD;QAElD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CACd,IAAY,EACZ,OAAkD;QAElD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI;QACA,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAgB,EAAE,MAAc;QAChC,8DAA8D;QAC9D,MAAM,UAAU,GAAW,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,kBAAkB,GAClB,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC;gBAC5C,kBAAkB,CAAC;QAC3B,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,wBAAwB;QACpC,CAAC;QAED,kBAAkB;QAClB,MAAM,UAAU,GACZ,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElD,gDAAgD;QAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YAClB,OAAO,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,0BAA0B,CACtB,IAAgB,EAChB,MAAc;QAEd,qEAAqE;QACrE,MAAM,IAAI,GAAsB,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,iBAAiB;QACjB,MAAM,UAAU,GAAyC,EAAE,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAW,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,GAAkC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,QAAQ,GAAG,EAAE,CAAC;gBACd,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YAChC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CACP,UAAgD,EAChD,MAAc;QAEd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAsB,EAAE,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI,GAAkC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvC,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU,CACN,IAA0B,EAC1B,OAA0B,EAC1B,MAAc;QAEd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,+CAA+C;QAC/C,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;YAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7C,CAAC,CAAC,CAAC,CAAC;QACR,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzD,uBAAuB;QACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,eAAe,GAEH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,eAAe,EAAE,CAAC;gBAClB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,sDAAsD;gBACtD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC/C,qBAAqB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,GAAG,GAAW,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,MAA8B,CAAC;gBACnC,MAAM,cAAc,GAEF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;oBAChC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1D,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpC,CAAC;oBACD,MAAM,CAAC,YAAY,EAAE,CAAC;oBAEtB,MAAM,eAAe,GAAG,IAAI,CAAC;oBAC7B,MAAM,eAAe,GAAG,KAAK,CAAC;oBAC9B,GAAG,CAAC,CAAC;wBACD,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;4BACpD,CAAC,CAAC;gBACV,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
|