@sharpee/world-model 0.9.113 → 1.0.8

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.
Files changed (264) hide show
  1. package/annotations/index.d.ts.map +1 -1
  2. package/annotations/types.d.ts.map +1 -1
  3. package/behaviors/attack.d.ts +1 -1
  4. package/behaviors/attack.d.ts.map +1 -1
  5. package/behaviors/behavior.d.ts.map +1 -1
  6. package/behaviors/index.d.ts.map +1 -1
  7. package/capabilities/action-interceptor.d.ts +1 -1
  8. package/capabilities/action-interceptor.d.ts.map +1 -1
  9. package/capabilities/capability-behavior.d.ts.map +1 -1
  10. package/capabilities/capability-defaults.d.ts.map +1 -1
  11. package/capabilities/capability-helpers.d.ts.map +1 -1
  12. package/capabilities/capability-registry.d.ts.map +1 -1
  13. package/capabilities/entity-builder.d.ts.map +1 -1
  14. package/capabilities/index.d.ts.map +1 -1
  15. package/capabilities/interceptor-helpers.d.ts.map +1 -1
  16. package/capabilities/interceptor-registry.d.ts.map +1 -1
  17. package/capabilities/types.d.ts.map +1 -1
  18. package/commands/command-types.d.ts.map +1 -1
  19. package/commands/index.d.ts.map +1 -1
  20. package/commands/parsed-command.d.ts.map +1 -1
  21. package/commands/validated-command.d.ts.map +1 -1
  22. package/constants/action-failures.d.ts.map +1 -1
  23. package/constants/directions.d.ts.map +1 -1
  24. package/constants/if-events.d.ts +1 -1
  25. package/constants/if-events.d.ts.map +1 -1
  26. package/constants/if-events.js +1 -1
  27. package/constants/index.d.ts.map +1 -1
  28. package/entities/entity-store.d.ts.map +1 -1
  29. package/entities/entity-types.d.ts +2 -0
  30. package/entities/entity-types.d.ts.map +1 -1
  31. package/entities/entity-types.js +3 -0
  32. package/entities/entity-types.js.map +1 -1
  33. package/entities/if-entity.d.ts +1 -1
  34. package/entities/if-entity.d.ts.map +1 -1
  35. package/entities/index.d.ts +2 -0
  36. package/entities/index.d.ts.map +1 -1
  37. package/entities/index.js +3 -1
  38. package/entities/index.js.map +1 -1
  39. package/entities/wall-entity.d.ts +112 -0
  40. package/entities/wall-entity.d.ts.map +1 -0
  41. package/entities/wall-entity.js +50 -0
  42. package/entities/wall-entity.js.map +1 -0
  43. package/events/types.d.ts +1 -1
  44. package/events/types.d.ts.map +1 -1
  45. package/examples/event-handler-registration.d.ts.map +1 -1
  46. package/extensions/base-extension.d.ts.map +1 -1
  47. package/extensions/index.d.ts.map +1 -1
  48. package/extensions/loader.d.ts.map +1 -1
  49. package/extensions/manager.d.ts.map +1 -1
  50. package/extensions/registry.d.ts.map +1 -1
  51. package/extensions/types.d.ts.map +1 -1
  52. package/index.d.ts +3 -0
  53. package/index.d.ts.map +1 -1
  54. package/index.js +3 -0
  55. package/index.js.map +1 -1
  56. package/interfaces/command-executor.d.ts +1 -1
  57. package/interfaces/command-executor.d.ts.map +1 -1
  58. package/interfaces/command-processor.d.ts +1 -1
  59. package/interfaces/command-processor.d.ts.map +1 -1
  60. package/interfaces/command-validator.d.ts +1 -1
  61. package/interfaces/command-validator.d.ts.map +1 -1
  62. package/interfaces/index.d.ts.map +1 -1
  63. package/interfaces/language-provider.d.ts.map +1 -1
  64. package/interfaces/parser.d.ts.map +1 -1
  65. package/package.json +3 -3
  66. package/scope/index.d.ts.map +1 -1
  67. package/scope/scope-evaluator.d.ts.map +1 -1
  68. package/scope/scope-registry.d.ts.map +1 -1
  69. package/scope/scope-rule.d.ts.map +1 -1
  70. package/services/index.d.ts.map +1 -1
  71. package/test-structure.d.ts.map +1 -1
  72. package/traits/acoustic/acousticDampenerTrait.d.ts +61 -0
  73. package/traits/acoustic/acousticDampenerTrait.d.ts.map +1 -0
  74. package/traits/acoustic/acousticDampenerTrait.js +38 -0
  75. package/traits/acoustic/acousticDampenerTrait.js.map +1 -0
  76. package/traits/acoustic/acousticTrait.d.ts +64 -0
  77. package/traits/acoustic/acousticTrait.d.ts.map +1 -0
  78. package/traits/acoustic/acousticTrait.js +47 -0
  79. package/traits/acoustic/acousticTrait.js.map +1 -0
  80. package/traits/acoustic/index.d.ts +3 -0
  81. package/traits/acoustic/index.d.ts.map +1 -0
  82. package/traits/acoustic/index.js +10 -0
  83. package/traits/acoustic/index.js.map +1 -0
  84. package/traits/actor/actorBehavior.d.ts +1 -1
  85. package/traits/actor/actorBehavior.d.ts.map +1 -1
  86. package/traits/actor/actorTrait.d.ts.map +1 -1
  87. package/traits/actor/index.d.ts.map +1 -1
  88. package/traits/all-traits.d.ts +1 -1
  89. package/traits/all-traits.d.ts.map +1 -1
  90. package/traits/all-traits.js +1 -1
  91. package/traits/attached/attachedTrait.d.ts.map +1 -1
  92. package/traits/attached/index.d.ts.map +1 -1
  93. package/traits/breakable/breakableBehavior.d.ts +1 -1
  94. package/traits/breakable/breakableBehavior.d.ts.map +1 -1
  95. package/traits/breakable/breakableTrait.d.ts.map +1 -1
  96. package/traits/breakable/index.d.ts.map +1 -1
  97. package/traits/button/buttonTrait.d.ts.map +1 -1
  98. package/traits/button/index.d.ts.map +1 -1
  99. package/traits/character-model/character-vocabulary.d.ts.map +1 -1
  100. package/traits/character-model/characterModelTrait.d.ts.map +1 -1
  101. package/traits/character-model/index.d.ts.map +1 -1
  102. package/traits/climbable/climbableBehavior.d.ts.map +1 -1
  103. package/traits/climbable/climbableTrait.d.ts.map +1 -1
  104. package/traits/climbable/index.d.ts.map +1 -1
  105. package/traits/clothing/clothingTrait.d.ts.map +1 -1
  106. package/traits/clothing/index.d.ts.map +1 -1
  107. package/traits/combatant/combatantBehavior.d.ts +1 -1
  108. package/traits/combatant/combatantBehavior.d.ts.map +1 -1
  109. package/traits/combatant/combatantTrait.d.ts.map +1 -1
  110. package/traits/combatant/index.d.ts.map +1 -1
  111. package/traits/concealment/concealedStateTrait.d.ts.map +1 -1
  112. package/traits/concealment/concealedVisibilityBehavior.d.ts.map +1 -1
  113. package/traits/concealment/concealmentTrait.d.ts.map +1 -1
  114. package/traits/concealment/index.d.ts.map +1 -1
  115. package/traits/container/container-utils.d.ts.map +1 -1
  116. package/traits/container/containerBehavior.d.ts.map +1 -1
  117. package/traits/container/containerTrait.d.ts.map +1 -1
  118. package/traits/container/index.d.ts.map +1 -1
  119. package/traits/destructible/destructibleBehavior.d.ts +1 -1
  120. package/traits/destructible/destructibleBehavior.d.ts.map +1 -1
  121. package/traits/destructible/destructibleTrait.d.ts.map +1 -1
  122. package/traits/destructible/index.d.ts.map +1 -1
  123. package/traits/door/doorBehavior.d.ts.map +1 -1
  124. package/traits/door/doorTrait.d.ts.map +1 -1
  125. package/traits/door/index.d.ts.map +1 -1
  126. package/traits/edible/edibleBehavior.d.ts +1 -1
  127. package/traits/edible/edibleBehavior.d.ts.map +1 -1
  128. package/traits/edible/edibleBehavior.js +1 -1
  129. package/traits/edible/edibleTrait.d.ts.map +1 -1
  130. package/traits/edible/index.d.ts.map +1 -1
  131. package/traits/enterable/enterableTrait.d.ts.map +1 -1
  132. package/traits/enterable/index.d.ts.map +1 -1
  133. package/traits/equipped/equippedTrait.d.ts.map +1 -1
  134. package/traits/equipped/index.d.ts.map +1 -1
  135. package/traits/exit/exitBehavior.d.ts +1 -1
  136. package/traits/exit/exitBehavior.d.ts.map +1 -1
  137. package/traits/exit/exitBehavior.js +1 -1
  138. package/traits/exit/exitTrait.d.ts.map +1 -1
  139. package/traits/exit/index.d.ts.map +1 -1
  140. package/traits/identity/identityBehavior.d.ts.map +1 -1
  141. package/traits/identity/identityTrait.d.ts.map +1 -1
  142. package/traits/identity/index.d.ts.map +1 -1
  143. package/traits/implementations.d.ts.map +1 -1
  144. package/traits/implementations.js +8 -0
  145. package/traits/implementations.js.map +1 -1
  146. package/traits/index.d.ts +3 -0
  147. package/traits/index.d.ts.map +1 -1
  148. package/traits/index.js +5 -0
  149. package/traits/index.js.map +1 -1
  150. package/traits/light-source/index.d.ts.map +1 -1
  151. package/traits/light-source/lightSourceBehavior.d.ts.map +1 -1
  152. package/traits/light-source/lightSourceTrait.d.ts.map +1 -1
  153. package/traits/listener/index.d.ts +2 -0
  154. package/traits/listener/index.d.ts.map +1 -0
  155. package/traits/listener/index.js +7 -0
  156. package/traits/listener/index.js.map +1 -0
  157. package/traits/listener/listenerTrait.d.ts +40 -0
  158. package/traits/listener/listenerTrait.d.ts.map +1 -0
  159. package/traits/listener/listenerTrait.js +23 -0
  160. package/traits/listener/listenerTrait.js.map +1 -0
  161. package/traits/lockable/index.d.ts.map +1 -1
  162. package/traits/lockable/lockableBehavior.d.ts +1 -1
  163. package/traits/lockable/lockableBehavior.d.ts.map +1 -1
  164. package/traits/lockable/lockableTrait.d.ts +1 -1
  165. package/traits/lockable/lockableTrait.d.ts.map +1 -1
  166. package/traits/moveable-scenery/index.d.ts.map +1 -1
  167. package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -1
  168. package/traits/npc/index.d.ts.map +1 -1
  169. package/traits/npc/npcTrait.d.ts +1 -1
  170. package/traits/npc/npcTrait.d.ts.map +1 -1
  171. package/traits/obstructor-protocol.d.ts +96 -0
  172. package/traits/obstructor-protocol.d.ts.map +1 -0
  173. package/traits/obstructor-protocol.js +77 -0
  174. package/traits/obstructor-protocol.js.map +1 -0
  175. package/traits/open-inventory/index.d.ts.map +1 -1
  176. package/traits/open-inventory/openInventoryTrait.d.ts.map +1 -1
  177. package/traits/openable/index.d.ts.map +1 -1
  178. package/traits/openable/openableBehavior.d.ts.map +1 -1
  179. package/traits/openable/openableTrait.d.ts.map +1 -1
  180. package/traits/pullable/index.d.ts.map +1 -1
  181. package/traits/pullable/pullableTrait.d.ts.map +1 -1
  182. package/traits/pushable/index.d.ts.map +1 -1
  183. package/traits/pushable/pushableTrait.d.ts.map +1 -1
  184. package/traits/readable/index.d.ts.map +1 -1
  185. package/traits/readable/readableBehavior.d.ts +1 -1
  186. package/traits/readable/readableBehavior.d.ts.map +1 -1
  187. package/traits/readable/readableBehavior.js +1 -1
  188. package/traits/readable/readableTrait.d.ts.map +1 -1
  189. package/traits/region/index.d.ts.map +1 -1
  190. package/traits/region/regionTrait.d.ts.map +1 -1
  191. package/traits/register-all.d.ts.map +1 -1
  192. package/traits/room/index.d.ts.map +1 -1
  193. package/traits/room/roomBehavior.d.ts +1 -1
  194. package/traits/room/roomBehavior.d.ts.map +1 -1
  195. package/traits/room/roomTrait.d.ts +7 -0
  196. package/traits/room/roomTrait.d.ts.map +1 -1
  197. package/traits/room/roomTrait.js +2 -0
  198. package/traits/room/roomTrait.js.map +1 -1
  199. package/traits/scene/index.d.ts.map +1 -1
  200. package/traits/scene/sceneTrait.d.ts.map +1 -1
  201. package/traits/scenery/index.d.ts.map +1 -1
  202. package/traits/scenery/sceneryBehavior.d.ts.map +1 -1
  203. package/traits/scenery/sceneryTrait.d.ts.map +1 -1
  204. package/traits/story-info/index.d.ts.map +1 -1
  205. package/traits/story-info/storyInfoTrait.d.ts +6 -0
  206. package/traits/story-info/storyInfoTrait.d.ts.map +1 -1
  207. package/traits/story-info/storyInfoTrait.js +6 -0
  208. package/traits/story-info/storyInfoTrait.js.map +1 -1
  209. package/traits/supporter/index.d.ts.map +1 -1
  210. package/traits/supporter/supporterBehavior.d.ts.map +1 -1
  211. package/traits/supporter/supporterTrait.d.ts.map +1 -1
  212. package/traits/switchable/index.d.ts.map +1 -1
  213. package/traits/switchable/switchableBehavior.d.ts +1 -1
  214. package/traits/switchable/switchableBehavior.d.ts.map +1 -1
  215. package/traits/switchable/switchableTrait.d.ts.map +1 -1
  216. package/traits/trait-types.d.ts +3 -0
  217. package/traits/trait-types.d.ts.map +1 -1
  218. package/traits/trait-types.js +8 -0
  219. package/traits/trait-types.js.map +1 -1
  220. package/traits/trait.d.ts.map +1 -1
  221. package/traits/vehicle/index.d.ts.map +1 -1
  222. package/traits/vehicle/vehicleBehavior.d.ts.map +1 -1
  223. package/traits/vehicle/vehicleTrait.d.ts.map +1 -1
  224. package/traits/weapon/index.d.ts.map +1 -1
  225. package/traits/weapon/weaponBehavior.d.ts.map +1 -1
  226. package/traits/weapon/weaponTrait.d.ts.map +1 -1
  227. package/traits/wearable/index.d.ts.map +1 -1
  228. package/traits/wearable/wearableBehavior.d.ts.map +1 -1
  229. package/traits/wearable/wearableTrait.d.ts.map +1 -1
  230. package/utils/event-utils.d.ts +2 -2
  231. package/utils/event-utils.d.ts.map +1 -1
  232. package/utils/event-utils.js +1 -1
  233. package/world/AuthorModel.d.ts +5 -2
  234. package/world/AuthorModel.d.ts.map +1 -1
  235. package/world/AuthorModel.js +7 -0
  236. package/world/AuthorModel.js.map +1 -1
  237. package/world/ScoreLedger.d.ts.map +1 -1
  238. package/world/SharedDataStore.d.ts.map +1 -1
  239. package/world/SpatialIndex.d.ts.map +1 -1
  240. package/world/VisibilityBehavior.d.ts.map +1 -1
  241. package/world/WorldEventSystem.d.ts +2 -2
  242. package/world/WorldEventSystem.d.ts.map +1 -1
  243. package/world/WorldModel.d.ts +26 -3
  244. package/world/WorldModel.d.ts.map +1 -1
  245. package/world/WorldModel.js +37 -1
  246. package/world/WorldModel.js.map +1 -1
  247. package/world/WorldSerializer.d.ts.map +1 -1
  248. package/world/capabilities.d.ts.map +1 -1
  249. package/world/index.d.ts +5 -1
  250. package/world/index.d.ts.map +1 -1
  251. package/world/index.js +8 -2
  252. package/world/index.js.map +1 -1
  253. package/world/wall-creation.d.ts +38 -0
  254. package/world/wall-creation.d.ts.map +1 -0
  255. package/world/wall-creation.js +98 -0
  256. package/world/wall-creation.js.map +1 -0
  257. package/world/wall-validation.d.ts +45 -0
  258. package/world/wall-validation.d.ts.map +1 -0
  259. package/world/wall-validation.js +98 -0
  260. package/world/wall-validation.js.map +1 -0
  261. package/services/ScopeService.d.ts +0 -8
  262. package/services/ScopeService.d.ts.map +0 -1
  263. package/services/ScopeService.js +0 -19
  264. package/services/ScopeService.js.map +0 -1
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ // packages/world-model/src/world/wall-validation.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.validateWallSpec = validateWallSpec;
5
+ const trait_types_1 = require("../traits/trait-types");
6
+ /**
7
+ * Resolves an `IFEntity | EntityId` reference to its id string.
8
+ */
9
+ function refToId(ref) {
10
+ return typeof ref === 'string' ? ref : ref.id;
11
+ }
12
+ /**
13
+ * Validates a wall specification before mutation.
14
+ *
15
+ * @param spec - The author-supplied wall specification.
16
+ * @param world - Read-only view of the world for entity/location lookups.
17
+ * @throws Error if cardinality, adjective presence, per-room adjective
18
+ * uniqueness, or `obstructedBy` resolution fails. The first failure
19
+ * detected aborts validation; no partial state escapes.
20
+ */
21
+ function validateWallSpec(spec, world) {
22
+ if (!Array.isArray(spec.between)) {
23
+ throw new Error('createWall: `between` must be a tuple of exactly two rooms');
24
+ }
25
+ if (spec.between.length !== 2) {
26
+ throw new Error(`createWall: \`between\` must contain exactly 2 rooms (got ${spec.between.length})`);
27
+ }
28
+ const roomAId = refToId(spec.between[0]);
29
+ const roomBId = refToId(spec.between[1]);
30
+ if (roomAId === roomBId) {
31
+ throw new Error(`createWall: \`between\` must reference two distinct rooms (got self-reference '${roomAId}')`);
32
+ }
33
+ const roomA = world.getEntity(roomAId);
34
+ if (!roomA) {
35
+ throw new Error(`createWall: room '${roomAId}' does not exist`);
36
+ }
37
+ const roomB = world.getEntity(roomBId);
38
+ if (!roomB) {
39
+ throw new Error(`createWall: room '${roomBId}' does not exist`);
40
+ }
41
+ const roomATrait = roomA.get(trait_types_1.TraitType.ROOM);
42
+ if (!roomATrait) {
43
+ throw new Error(`createWall: entity '${roomAId}' is not a room`);
44
+ }
45
+ const roomBTrait = roomB.get(trait_types_1.TraitType.ROOM);
46
+ if (!roomBTrait) {
47
+ throw new Error(`createWall: entity '${roomBId}' is not a room`);
48
+ }
49
+ if (!spec.sides || typeof spec.sides !== 'object') {
50
+ throw new Error('createWall: `sides` must be a record keyed by room id');
51
+ }
52
+ const sideA = spec.sides[roomAId];
53
+ const sideB = spec.sides[roomBId];
54
+ validateSide(roomAId, sideA);
55
+ validateSide(roomBId, sideB);
56
+ validateAdjectiveUniqueness(roomAId, sideA.adjective, roomATrait, world);
57
+ validateAdjectiveUniqueness(roomBId, sideB.adjective, roomBTrait, world);
58
+ validateObstructor(roomAId, sideA, world);
59
+ validateObstructor(roomBId, sideB, world);
60
+ return { roomAId, roomBId, roomA, roomB };
61
+ }
62
+ function validateSide(roomId, side) {
63
+ if (!side) {
64
+ throw new Error(`createWall: missing per-side data for room '${roomId}'`);
65
+ }
66
+ if (typeof side.adjective !== 'string') {
67
+ throw new Error(`createWall: side for room '${roomId}' is missing a string \`adjective\``);
68
+ }
69
+ if (side.adjective.trim().length === 0) {
70
+ throw new Error(`createWall: side for room '${roomId}' has an empty \`adjective\``);
71
+ }
72
+ }
73
+ function validateAdjectiveUniqueness(roomId, adjective, roomTrait, world) {
74
+ const existingWallIds = roomTrait.walls ?? [];
75
+ for (const existingWallId of existingWallIds) {
76
+ const existing = world.getEntity(existingWallId);
77
+ if (!existing)
78
+ continue;
79
+ const sides = existing.sides;
80
+ const existingSide = sides?.get(roomId);
81
+ if (existingSide && existingSide.adjective === adjective) {
82
+ throw new Error(`createWall: adjective '${adjective}' is already used by another wall in room '${roomId}'`);
83
+ }
84
+ }
85
+ }
86
+ function validateObstructor(roomId, side, world) {
87
+ if (side.obstructedBy === undefined)
88
+ return;
89
+ const obstructor = world.getEntity(side.obstructedBy);
90
+ if (!obstructor) {
91
+ throw new Error(`createWall: \`obstructedBy\` references nonexistent entity '${side.obstructedBy}' for room '${roomId}'`);
92
+ }
93
+ const obstructorLocation = world.getLocation(side.obstructedBy);
94
+ if (obstructorLocation !== roomId) {
95
+ throw new Error(`createWall: \`obstructedBy\` entity '${side.obstructedBy}' must be located in room '${roomId}' (currently in '${obstructorLocation ?? 'no location'}')`);
96
+ }
97
+ }
98
+ //# sourceMappingURL=wall-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wall-validation.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/world/wall-validation.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAoDpD,4CAyDC;AAvFD,uDAAkD;AAGlD;;GAEG;AACH,SAAS,OAAO,CAAC,GAAwB;IACvC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAChD,CAAC;AAaD;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,IAAe,EACf,KAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,6DAA6D,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,kFAAkF,OAAO,IAAI,CAC9F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,kBAAkB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAY,uBAAS,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,iBAAiB,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAY,uBAAS,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7B,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACzE,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEzE,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB,EAAE,IAA+B;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,qCAAqC,CAC1E,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,8BAA8B,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAgB,EAChB,SAAiB,EACjB,SAAoB,EACpB,KAA2B;IAE3B,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,KAAK,GAAI,QAAgE,CAAC,KAAK,CAAC;QACtF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,8CAA8C,MAAM,GAAG,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAgB,EAChB,IAAmB,EACnB,KAA2B;IAE3B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,+DAA+D,IAAI,CAAC,YAAY,eAAe,MAAM,GAAG,CACzG,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,YAAY,8BAA8B,MAAM,oBAAoB,kBAAkB,IAAI,aAAa,IAAI,CACzJ,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,8 +0,0 @@
1
- import { IFEntity } from '../entities/if-entity';
2
- export declare class ScopeService {
3
- private world;
4
- constructor(world: any);
5
- canSee(viewer: IFEntity, target: IFEntity): boolean;
6
- canReach(actor: IFEntity, target: IFEntity): boolean;
7
- }
8
- //# sourceMappingURL=ScopeService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScopeService.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/services/ScopeService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,qBAAa,YAAY;IACX,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,GAAG;IAE9B,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKnD,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;CAIrD"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScopeService = void 0;
4
- class ScopeService {
5
- world;
6
- constructor(world) {
7
- this.world = world;
8
- }
9
- canSee(viewer, target) {
10
- // TODO: Implement visibility logic
11
- return true;
12
- }
13
- canReach(actor, target) {
14
- // TODO: Implement reachability logic
15
- return true;
16
- }
17
- }
18
- exports.ScopeService = ScopeService;
19
- //# sourceMappingURL=ScopeService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScopeService.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/services/ScopeService.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IACH;IAApB,YAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,MAAM,CAAC,MAAgB,EAAE,MAAgB;QACvC,mCAAmC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAe,EAAE,MAAgB;QACxC,qCAAqC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAZD,oCAYC"}