@sharpee/helpers 0.9.103 → 0.9.104
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/builders/actor.d.ts +9 -1
- package/builders/actor.d.ts.map +1 -1
- package/builders/actor.js +14 -0
- package/builders/actor.js.map +1 -1
- package/builders/container.d.ts +9 -1
- package/builders/container.d.ts.map +1 -1
- package/builders/container.js +14 -0
- package/builders/container.js.map +1 -1
- package/builders/door.d.ts +9 -1
- package/builders/door.d.ts.map +1 -1
- package/builders/door.js +14 -0
- package/builders/door.js.map +1 -1
- package/builders/object.d.ts +9 -1
- package/builders/object.d.ts.map +1 -1
- package/builders/object.js +14 -0
- package/builders/object.js.map +1 -1
- package/builders/room.d.ts +9 -1
- package/builders/room.d.ts.map +1 -1
- package/builders/room.js +14 -0
- package/builders/room.js.map +1 -1
- package/package.json +2 -2
package/builders/actor.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Owner context: @sharpee/helpers (ADR-140)
|
|
8
8
|
*/
|
|
9
9
|
import { IFEntity } from "../../world-model/index";
|
|
10
|
-
import type { IWorldModel } from "../../world-model/index";
|
|
10
|
+
import type { IWorldModel, ITrait } from "../../world-model/index";
|
|
11
11
|
/**
|
|
12
12
|
* Fluent builder for creating actor entities (players and NPCs).
|
|
13
13
|
*
|
|
@@ -30,6 +30,7 @@ export declare class ActorBuilder {
|
|
|
30
30
|
private _inventory?;
|
|
31
31
|
private _location?;
|
|
32
32
|
private _skipValidation;
|
|
33
|
+
private _traits;
|
|
33
34
|
constructor(world: IWorldModel, name: string);
|
|
34
35
|
/**
|
|
35
36
|
* Set the actor description.
|
|
@@ -67,6 +68,13 @@ export declare class ActorBuilder {
|
|
|
67
68
|
* @returns this (for chaining)
|
|
68
69
|
*/
|
|
69
70
|
in(location: IFEntity): this;
|
|
71
|
+
/**
|
|
72
|
+
* Add a custom trait to the entity.
|
|
73
|
+
*
|
|
74
|
+
* @param trait - Any ITrait instance
|
|
75
|
+
* @returns this (for chaining)
|
|
76
|
+
*/
|
|
77
|
+
addTrait(trait: ITrait): this;
|
|
70
78
|
/**
|
|
71
79
|
* Bypass validation for placement.
|
|
72
80
|
*
|
package/builders/actor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/actor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/actor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAUrB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAwB;IAC3C,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAgB;gBAGrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM;IAGtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKjC;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;OAKG;IACH,SAAS,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAKjD;;;;;OAKG;IACH,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAK5B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAKtB;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CA8BlB"}
|
package/builders/actor.js
CHANGED
|
@@ -32,6 +32,7 @@ class ActorBuilder {
|
|
|
32
32
|
_inventory;
|
|
33
33
|
_location;
|
|
34
34
|
_skipValidation = false;
|
|
35
|
+
_traits = [];
|
|
35
36
|
constructor(world, name) {
|
|
36
37
|
this.world = world;
|
|
37
38
|
this.name = name;
|
|
@@ -85,6 +86,16 @@ class ActorBuilder {
|
|
|
85
86
|
this._location = location;
|
|
86
87
|
return this;
|
|
87
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Add a custom trait to the entity.
|
|
91
|
+
*
|
|
92
|
+
* @param trait - Any ITrait instance
|
|
93
|
+
* @returns this (for chaining)
|
|
94
|
+
*/
|
|
95
|
+
addTrait(trait) {
|
|
96
|
+
this._traits.push(trait);
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
88
99
|
/**
|
|
89
100
|
* Bypass validation for placement.
|
|
90
101
|
*
|
|
@@ -114,6 +125,9 @@ class ActorBuilder {
|
|
|
114
125
|
capacity: this._inventory.maxItems ? { maxItems: this._inventory.maxItems } : undefined,
|
|
115
126
|
}));
|
|
116
127
|
}
|
|
128
|
+
for (const trait of this._traits) {
|
|
129
|
+
entity.add(trait);
|
|
130
|
+
}
|
|
117
131
|
if (this._location) {
|
|
118
132
|
const mover = this._skipValidation
|
|
119
133
|
? new world_model_1.AuthorModel(this.world.getDataStore(), this.world)
|
package/builders/actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/actor.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,sDAM8B;AAG9B;;;;;;;;;;;;GAYG;AACH,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/actor.ts"],"names":[],"mappings":"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"}
|
package/builders/container.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Owner context: @sharpee/helpers (ADR-140)
|
|
8
8
|
*/
|
|
9
9
|
import { IFEntity } from "../../world-model/index";
|
|
10
|
-
import type { IWorldModel } from "../../world-model/index";
|
|
10
|
+
import type { IWorldModel, ITrait } from "../../world-model/index";
|
|
11
11
|
/**
|
|
12
12
|
* Fluent builder for creating container entities.
|
|
13
13
|
*
|
|
@@ -30,6 +30,7 @@ export declare class ContainerBuilder {
|
|
|
30
30
|
private _openable?;
|
|
31
31
|
private _lockable?;
|
|
32
32
|
private _skipValidation;
|
|
33
|
+
private _traits;
|
|
33
34
|
constructor(world: IWorldModel, name: string);
|
|
34
35
|
/**
|
|
35
36
|
* Set the container description.
|
|
@@ -71,6 +72,13 @@ export declare class ContainerBuilder {
|
|
|
71
72
|
isLocked?: boolean;
|
|
72
73
|
keyId?: string;
|
|
73
74
|
}): this;
|
|
75
|
+
/**
|
|
76
|
+
* Add a custom trait to the entity.
|
|
77
|
+
*
|
|
78
|
+
* @param trait - Any ITrait instance
|
|
79
|
+
* @returns this (for chaining)
|
|
80
|
+
*/
|
|
81
|
+
addTrait(trait: ITrait): this;
|
|
74
82
|
/**
|
|
75
83
|
* Bypass validation for placement.
|
|
76
84
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/container.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAMT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/container.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAMT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAUzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAC,CAAyC;IAC3D,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAgB;gBAGrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM;IAGtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKjC;;;;;OAKG;IACH,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAK5B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAK/C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAKjE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAKtB;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAiClB"}
|
package/builders/container.js
CHANGED
|
@@ -32,6 +32,7 @@ class ContainerBuilder {
|
|
|
32
32
|
_openable;
|
|
33
33
|
_lockable;
|
|
34
34
|
_skipValidation = false;
|
|
35
|
+
_traits = [];
|
|
35
36
|
constructor(world, name) {
|
|
36
37
|
this.world = world;
|
|
37
38
|
this.name = name;
|
|
@@ -86,6 +87,16 @@ class ContainerBuilder {
|
|
|
86
87
|
this._lockable = opts;
|
|
87
88
|
return this;
|
|
88
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Add a custom trait to the entity.
|
|
92
|
+
*
|
|
93
|
+
* @param trait - Any ITrait instance
|
|
94
|
+
* @returns this (for chaining)
|
|
95
|
+
*/
|
|
96
|
+
addTrait(trait) {
|
|
97
|
+
this._traits.push(trait);
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
89
100
|
/**
|
|
90
101
|
* Bypass validation for placement.
|
|
91
102
|
*
|
|
@@ -117,6 +128,9 @@ class ContainerBuilder {
|
|
|
117
128
|
...(this._lockable.keyId ? { requiredKey: this._lockable.keyId } : {}),
|
|
118
129
|
}));
|
|
119
130
|
}
|
|
131
|
+
for (const trait of this._traits) {
|
|
132
|
+
entity.add(trait);
|
|
133
|
+
}
|
|
120
134
|
if (this._location) {
|
|
121
135
|
const mover = this._skipValidation
|
|
122
136
|
? new world_model_1.AuthorModel(this.world.getDataStore(), this.world)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/container.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,sDAO8B;AAG9B;;;;;;;;;;;;GAYG;AACH,MAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/container.ts"],"names":[],"mappings":"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"}
|
package/builders/door.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Owner context: @sharpee/helpers (ADR-140)
|
|
7
7
|
*/
|
|
8
8
|
import { IFEntity } from "../../world-model/index";
|
|
9
|
-
import type { IWorldModel } from "../../world-model/index";
|
|
9
|
+
import type { IWorldModel, ITrait } from "../../world-model/index";
|
|
10
10
|
import type { DirectionType } from "../../world-model/index";
|
|
11
11
|
/**
|
|
12
12
|
* Fluent builder for creating door entities.
|
|
@@ -31,6 +31,7 @@ export declare class DoorBuilder {
|
|
|
31
31
|
private _direction?;
|
|
32
32
|
private _openable?;
|
|
33
33
|
private _lockable?;
|
|
34
|
+
private _traits;
|
|
34
35
|
constructor(world: IWorldModel, name: string);
|
|
35
36
|
/**
|
|
36
37
|
* Set the door description.
|
|
@@ -55,6 +56,13 @@ export declare class DoorBuilder {
|
|
|
55
56
|
* @returns this (for chaining)
|
|
56
57
|
*/
|
|
57
58
|
between(room1: IFEntity, room2: IFEntity, direction: DirectionType): this;
|
|
59
|
+
/**
|
|
60
|
+
* Add a custom trait to the entity.
|
|
61
|
+
*
|
|
62
|
+
* @param trait - Any ITrait instance
|
|
63
|
+
* @returns this (for chaining)
|
|
64
|
+
*/
|
|
65
|
+
addTrait(trait: ITrait): this;
|
|
58
66
|
/**
|
|
59
67
|
* Make the door openable.
|
|
60
68
|
*
|
package/builders/door.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/door.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAOT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/door.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAOT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IAWpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAXd,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAC,CAAyC;IAC3D,OAAO,CAAC,OAAO,CAAgB;gBAGrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM;IAGtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKjC;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAOzE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAK/C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAKjE;;;;;OAKG;IACH,KAAK,IAAI,QAAQ;CAuClB"}
|
package/builders/door.js
CHANGED
|
@@ -33,6 +33,7 @@ class DoorBuilder {
|
|
|
33
33
|
_direction;
|
|
34
34
|
_openable;
|
|
35
35
|
_lockable;
|
|
36
|
+
_traits = [];
|
|
36
37
|
constructor(world, name) {
|
|
37
38
|
this.world = world;
|
|
38
39
|
this.name = name;
|
|
@@ -71,6 +72,16 @@ class DoorBuilder {
|
|
|
71
72
|
this._direction = direction;
|
|
72
73
|
return this;
|
|
73
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Add a custom trait to the entity.
|
|
77
|
+
*
|
|
78
|
+
* @param trait - Any ITrait instance
|
|
79
|
+
* @returns this (for chaining)
|
|
80
|
+
*/
|
|
81
|
+
addTrait(trait) {
|
|
82
|
+
this._traits.push(trait);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
74
85
|
/**
|
|
75
86
|
* Make the door openable.
|
|
76
87
|
*
|
|
@@ -119,6 +130,9 @@ class DoorBuilder {
|
|
|
119
130
|
...(this._lockable.keyId ? { requiredKey: this._lockable.keyId } : {}),
|
|
120
131
|
}));
|
|
121
132
|
}
|
|
133
|
+
for (const trait of this._traits) {
|
|
134
|
+
entity.add(trait);
|
|
135
|
+
}
|
|
122
136
|
// Wire exits through the door
|
|
123
137
|
const opposite = (0, world_model_2.getOppositeDirection)(this._direction);
|
|
124
138
|
world_model_1.RoomBehavior.setExit(this._room1, this._direction, this._room2.id, entity.id);
|
package/builders/door.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"door.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/door.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,sDAQ8B;AAE9B,sDAA4D;AAG5D;;;;;;;;;;;;GAYG;AACH,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"door.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/door.ts"],"names":[],"mappings":"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"}
|
package/builders/object.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Owner context: @sharpee/helpers (ADR-140)
|
|
8
8
|
*/
|
|
9
9
|
import { IFEntity } from "../../world-model/index";
|
|
10
|
-
import type { IWorldModel } from "../../world-model/index";
|
|
10
|
+
import type { IWorldModel, ITrait } from "../../world-model/index";
|
|
11
11
|
/**
|
|
12
12
|
* Fluent builder for creating object entities.
|
|
13
13
|
*
|
|
@@ -29,6 +29,7 @@ export declare class ObjectBuilder {
|
|
|
29
29
|
private _scenery;
|
|
30
30
|
private _lightSource?;
|
|
31
31
|
private _skipValidation;
|
|
32
|
+
private _traits;
|
|
32
33
|
constructor(world: IWorldModel, name: string);
|
|
33
34
|
/**
|
|
34
35
|
* Set the object description.
|
|
@@ -67,6 +68,13 @@ export declare class ObjectBuilder {
|
|
|
67
68
|
isLit?: boolean;
|
|
68
69
|
fuelTurns?: number;
|
|
69
70
|
}): this;
|
|
71
|
+
/**
|
|
72
|
+
* Add a custom trait to the entity.
|
|
73
|
+
*
|
|
74
|
+
* @param trait - Any ITrait instance
|
|
75
|
+
* @returns this (for chaining)
|
|
76
|
+
*/
|
|
77
|
+
addTrait(trait: ITrait): this;
|
|
70
78
|
/**
|
|
71
79
|
* Bypass validation for placement (e.g., placing in closed containers).
|
|
72
80
|
* Internally wraps the world in an AuthorModel.
|
package/builders/object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/object.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/object.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAUtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAC,CAA0C;IAC/D,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAgB;gBAGrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM;IAGtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKjC;;;;;OAKG;IACH,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAK5B;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAKf;;;;;OAKG;IACH,WAAW,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAKrE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;;OAKG;IACH,cAAc,IAAI,IAAI;IAKtB;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CA6BlB"}
|
package/builders/object.js
CHANGED
|
@@ -31,6 +31,7 @@ class ObjectBuilder {
|
|
|
31
31
|
_scenery = false;
|
|
32
32
|
_lightSource;
|
|
33
33
|
_skipValidation = false;
|
|
34
|
+
_traits = [];
|
|
34
35
|
constructor(world, name) {
|
|
35
36
|
this.world = world;
|
|
36
37
|
this.name = name;
|
|
@@ -84,6 +85,16 @@ class ObjectBuilder {
|
|
|
84
85
|
this._lightSource = opts;
|
|
85
86
|
return this;
|
|
86
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Add a custom trait to the entity.
|
|
90
|
+
*
|
|
91
|
+
* @param trait - Any ITrait instance
|
|
92
|
+
* @returns this (for chaining)
|
|
93
|
+
*/
|
|
94
|
+
addTrait(trait) {
|
|
95
|
+
this._traits.push(trait);
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
87
98
|
/**
|
|
88
99
|
* Bypass validation for placement (e.g., placing in closed containers).
|
|
89
100
|
* Internally wraps the world in an AuthorModel.
|
|
@@ -112,6 +123,9 @@ class ObjectBuilder {
|
|
|
112
123
|
if (this._lightSource) {
|
|
113
124
|
entity.add(new world_model_1.LightSourceTrait(this._lightSource));
|
|
114
125
|
}
|
|
126
|
+
for (const trait of this._traits) {
|
|
127
|
+
entity.add(trait);
|
|
128
|
+
}
|
|
115
129
|
if (this._location) {
|
|
116
130
|
const mover = this._skipValidation
|
|
117
131
|
? new world_model_1.AuthorModel(this.world.getDataStore(), this.world)
|
package/builders/object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/object.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,sDAM8B;AAG9B;;;;;;;;;;;GAWG;AACH,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/object.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,sDAM8B;AAG9B;;;;;;;;;;;GAWG;AACH,MAAa,aAAa;IAUd;IACA;IAVF,YAAY,CAAU;IACtB,QAAQ,CAAY;IACpB,SAAS,CAAY;IACrB,QAAQ,GAAG,KAAK,CAAC;IACjB,YAAY,CAA2C;IACvD,eAAe,GAAG,KAAK,CAAC;IACxB,OAAO,GAAa,EAAE,CAAC;IAE/B,YACU,KAAkB,EAClB,IAAY;QADZ,UAAK,GAAL,KAAK,CAAa;QAClB,SAAI,GAAJ,IAAI,CAAQ;IACnB,CAAC;IAEJ;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,EAAE,CAAC,QAAkB;QACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAAgD,EAAE;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,IAAI,2BAAa,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;QAEJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,IAAI,0BAAY,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,IAAI,8BAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe;gBAChC,CAAC,CAAC,IAAI,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;gBACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACf,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA5HD,sCA4HC"}
|
package/builders/room.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Owner context: @sharpee/helpers (ADR-140)
|
|
7
7
|
*/
|
|
8
8
|
import { IFEntity } from "../../world-model/index";
|
|
9
|
-
import type { IWorldModel } from "../../world-model/index";
|
|
9
|
+
import type { IWorldModel, ITrait } from "../../world-model/index";
|
|
10
10
|
/**
|
|
11
11
|
* Fluent builder for creating room entities.
|
|
12
12
|
*
|
|
@@ -23,6 +23,7 @@ export declare class RoomBuilder {
|
|
|
23
23
|
private _description?;
|
|
24
24
|
private _aliases?;
|
|
25
25
|
private _isDark;
|
|
26
|
+
private _traits;
|
|
26
27
|
constructor(world: IWorldModel, name: string);
|
|
27
28
|
/**
|
|
28
29
|
* Set the room description.
|
|
@@ -38,6 +39,13 @@ export declare class RoomBuilder {
|
|
|
38
39
|
* @returns this (for chaining)
|
|
39
40
|
*/
|
|
40
41
|
aliases(...names: string[]): this;
|
|
42
|
+
/**
|
|
43
|
+
* Add a custom trait to the entity.
|
|
44
|
+
*
|
|
45
|
+
* @param trait - Any ITrait instance
|
|
46
|
+
* @returns this (for chaining)
|
|
47
|
+
*/
|
|
48
|
+
addTrait(trait: ITrait): this;
|
|
41
49
|
/**
|
|
42
50
|
* Mark the room as dark (requires a light source to see).
|
|
43
51
|
*
|
package/builders/room.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/room.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAGT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/helpers/src/builders/room.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAGT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAOpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IAPd,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAgB;gBAGrB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM;IAGtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKjC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAKZ;;;;OAIG;IACH,KAAK,IAAI,QAAQ;CAalB"}
|
package/builders/room.js
CHANGED
|
@@ -25,6 +25,7 @@ class RoomBuilder {
|
|
|
25
25
|
_description;
|
|
26
26
|
_aliases;
|
|
27
27
|
_isDark = false;
|
|
28
|
+
_traits = [];
|
|
28
29
|
constructor(world, name) {
|
|
29
30
|
this.world = world;
|
|
30
31
|
this.name = name;
|
|
@@ -49,6 +50,16 @@ class RoomBuilder {
|
|
|
49
50
|
this._aliases = names;
|
|
50
51
|
return this;
|
|
51
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Add a custom trait to the entity.
|
|
55
|
+
*
|
|
56
|
+
* @param trait - Any ITrait instance
|
|
57
|
+
* @returns this (for chaining)
|
|
58
|
+
*/
|
|
59
|
+
addTrait(trait) {
|
|
60
|
+
this._traits.push(trait);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
52
63
|
/**
|
|
53
64
|
* Mark the room as dark (requires a light source to see).
|
|
54
65
|
*
|
|
@@ -71,6 +82,9 @@ class RoomBuilder {
|
|
|
71
82
|
description: this._description,
|
|
72
83
|
aliases: this._aliases,
|
|
73
84
|
}));
|
|
85
|
+
for (const trait of this._traits) {
|
|
86
|
+
entity.add(trait);
|
|
87
|
+
}
|
|
74
88
|
return entity;
|
|
75
89
|
}
|
|
76
90
|
}
|
package/builders/room.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/room.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,sDAI8B;AAG9B;;;;;;;;;GASG;AACH,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/helpers/src/builders/room.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,sDAI8B;AAG9B;;;;;;;;;GASG;AACH,MAAa,WAAW;IAOZ;IACA;IAPF,YAAY,CAAU;IACtB,QAAQ,CAAY;IACpB,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAa,EAAE,CAAC;IAE/B,YACU,KAAkB,EAClB,IAAY;QADZ,UAAK,GAAL,KAAK,CAAa;QAClB,SAAI,GAAJ,IAAI,CAAQ;IACnB,CAAC;IAEJ;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,GAAG,KAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,uBAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,IAAI,2BAAa,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxED,kCAwEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/helpers",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.104",
|
|
4
4
|
"description": "Fluent entity builder helpers for Sharpee Interactive Fiction Platform",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@sharpee/world-model": "^0.9.
|
|
15
|
+
"@sharpee/world-model": "^0.9.104"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"interactive-fiction",
|