@sharpee/world-model 0.9.62-beta → 0.9.66-beta

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 (583) hide show
  1. package/README.md +0 -0
  2. package/package.json +17 -30
  3. package/LICENSE +0 -21
  4. package/dist-npm/annotations/index.d.ts +0 -2
  5. package/dist-npm/annotations/index.d.ts.map +0 -1
  6. package/dist-npm/annotations/index.js +0 -18
  7. package/dist-npm/annotations/index.js.map +0 -1
  8. package/dist-npm/annotations/types.d.ts +0 -35
  9. package/dist-npm/annotations/types.d.ts.map +0 -1
  10. package/dist-npm/annotations/types.js +0 -9
  11. package/dist-npm/annotations/types.js.map +0 -1
  12. package/dist-npm/behaviors/attack.d.ts +0 -52
  13. package/dist-npm/behaviors/attack.d.ts.map +0 -1
  14. package/dist-npm/behaviors/attack.js +0 -161
  15. package/dist-npm/behaviors/attack.js.map +0 -1
  16. package/dist-npm/behaviors/behavior.d.ts +0 -67
  17. package/dist-npm/behaviors/behavior.d.ts.map +0 -1
  18. package/dist-npm/behaviors/behavior.js +0 -80
  19. package/dist-npm/behaviors/behavior.js.map +0 -1
  20. package/dist-npm/behaviors/index.d.ts +0 -21
  21. package/dist-npm/behaviors/index.d.ts.map +0 -1
  22. package/dist-npm/behaviors/index.js +0 -39
  23. package/dist-npm/behaviors/index.js.map +0 -1
  24. package/dist-npm/capabilities/action-interceptor.d.ts +0 -169
  25. package/dist-npm/capabilities/action-interceptor.d.ts.map +0 -1
  26. package/dist-npm/capabilities/action-interceptor.js +0 -15
  27. package/dist-npm/capabilities/action-interceptor.js.map +0 -1
  28. package/dist-npm/capabilities/capability-behavior.d.ts +0 -112
  29. package/dist-npm/capabilities/capability-behavior.d.ts.map +0 -1
  30. package/dist-npm/capabilities/capability-behavior.js +0 -9
  31. package/dist-npm/capabilities/capability-behavior.js.map +0 -1
  32. package/dist-npm/capabilities/capability-defaults.d.ts +0 -67
  33. package/dist-npm/capabilities/capability-defaults.d.ts.map +0 -1
  34. package/dist-npm/capabilities/capability-defaults.js +0 -81
  35. package/dist-npm/capabilities/capability-defaults.js.map +0 -1
  36. package/dist-npm/capabilities/capability-helpers.d.ts +0 -76
  37. package/dist-npm/capabilities/capability-helpers.d.ts.map +0 -1
  38. package/dist-npm/capabilities/capability-helpers.js +0 -112
  39. package/dist-npm/capabilities/capability-helpers.js.map +0 -1
  40. package/dist-npm/capabilities/capability-registry.d.ts +0 -115
  41. package/dist-npm/capabilities/capability-registry.d.ts.map +0 -1
  42. package/dist-npm/capabilities/capability-registry.js +0 -136
  43. package/dist-npm/capabilities/capability-registry.js.map +0 -1
  44. package/dist-npm/capabilities/entity-builder.d.ts +0 -79
  45. package/dist-npm/capabilities/entity-builder.d.ts.map +0 -1
  46. package/dist-npm/capabilities/entity-builder.js +0 -116
  47. package/dist-npm/capabilities/entity-builder.js.map +0 -1
  48. package/dist-npm/capabilities/index.d.ts +0 -16
  49. package/dist-npm/capabilities/index.d.ts.map +0 -1
  50. package/dist-npm/capabilities/index.js +0 -56
  51. package/dist-npm/capabilities/index.js.map +0 -1
  52. package/dist-npm/capabilities/interceptor-helpers.d.ts +0 -74
  53. package/dist-npm/capabilities/interceptor-helpers.d.ts.map +0 -1
  54. package/dist-npm/capabilities/interceptor-helpers.js +0 -111
  55. package/dist-npm/capabilities/interceptor-helpers.js.map +0 -1
  56. package/dist-npm/capabilities/interceptor-registry.d.ts +0 -125
  57. package/dist-npm/capabilities/interceptor-registry.d.ts.map +0 -1
  58. package/dist-npm/capabilities/interceptor-registry.js +0 -176
  59. package/dist-npm/capabilities/interceptor-registry.js.map +0 -1
  60. package/dist-npm/capabilities/types.d.ts +0 -35
  61. package/dist-npm/capabilities/types.d.ts.map +0 -1
  62. package/dist-npm/capabilities/types.js +0 -16
  63. package/dist-npm/capabilities/types.js.map +0 -1
  64. package/dist-npm/commands/command-types.d.ts +0 -30
  65. package/dist-npm/commands/command-types.d.ts.map +0 -1
  66. package/dist-npm/commands/command-types.js +0 -6
  67. package/dist-npm/commands/command-types.js.map +0 -1
  68. package/dist-npm/commands/index.d.ts +0 -7
  69. package/dist-npm/commands/index.d.ts.map +0 -1
  70. package/dist-npm/commands/index.js +0 -23
  71. package/dist-npm/commands/index.js.map +0 -1
  72. package/dist-npm/commands/parsed-command.d.ts +0 -204
  73. package/dist-npm/commands/parsed-command.d.ts.map +0 -1
  74. package/dist-npm/commands/parsed-command.js +0 -25
  75. package/dist-npm/commands/parsed-command.js.map +0 -1
  76. package/dist-npm/commands/validated-command.d.ts +0 -52
  77. package/dist-npm/commands/validated-command.d.ts.map +0 -1
  78. package/dist-npm/commands/validated-command.js +0 -8
  79. package/dist-npm/commands/validated-command.js.map +0 -1
  80. package/dist-npm/constants/action-failures.d.ts +0 -54
  81. package/dist-npm/constants/action-failures.d.ts.map +0 -1
  82. package/dist-npm/constants/action-failures.js +0 -68
  83. package/dist-npm/constants/action-failures.js.map +0 -1
  84. package/dist-npm/constants/directions.d.ts +0 -32
  85. package/dist-npm/constants/directions.d.ts.map +0 -1
  86. package/dist-npm/constants/directions.js +0 -53
  87. package/dist-npm/constants/directions.js.map +0 -1
  88. package/dist-npm/constants/if-events.d.ts +0 -5
  89. package/dist-npm/constants/if-events.d.ts.map +0 -1
  90. package/dist-npm/constants/if-events.js +0 -10
  91. package/dist-npm/constants/if-events.js.map +0 -1
  92. package/dist-npm/constants/index.d.ts +0 -9
  93. package/dist-npm/constants/index.d.ts.map +0 -1
  94. package/dist-npm/constants/index.js +0 -25
  95. package/dist-npm/constants/index.js.map +0 -1
  96. package/dist-npm/entities/entity-store.d.ts +0 -66
  97. package/dist-npm/entities/entity-store.d.ts.map +0 -1
  98. package/dist-npm/entities/entity-store.js +0 -116
  99. package/dist-npm/entities/entity-store.js.map +0 -1
  100. package/dist-npm/entities/entity-types.d.ts +0 -40
  101. package/dist-npm/entities/entity-types.d.ts.map +0 -1
  102. package/dist-npm/entities/entity-types.js +0 -56
  103. package/dist-npm/entities/entity-types.js.map +0 -1
  104. package/dist-npm/entities/if-entity.d.ts +0 -314
  105. package/dist-npm/entities/if-entity.d.ts.map +0 -1
  106. package/dist-npm/entities/if-entity.js +0 -621
  107. package/dist-npm/entities/if-entity.js.map +0 -1
  108. package/dist-npm/entities/index.d.ts +0 -5
  109. package/dist-npm/entities/index.d.ts.map +0 -1
  110. package/dist-npm/entities/index.js +0 -13
  111. package/dist-npm/entities/index.js.map +0 -1
  112. package/dist-npm/events/types.d.ts +0 -45
  113. package/dist-npm/events/types.d.ts.map +0 -1
  114. package/dist-npm/events/types.js +0 -9
  115. package/dist-npm/events/types.js.map +0 -1
  116. package/dist-npm/examples/event-handler-registration.d.ts +0 -14
  117. package/dist-npm/examples/event-handler-registration.d.ts.map +0 -1
  118. package/dist-npm/examples/event-handler-registration.js +0 -158
  119. package/dist-npm/examples/event-handler-registration.js.map +0 -1
  120. package/dist-npm/extensions/base-extension.d.ts +0 -69
  121. package/dist-npm/extensions/base-extension.d.ts.map +0 -1
  122. package/dist-npm/extensions/base-extension.js +0 -83
  123. package/dist-npm/extensions/base-extension.js.map +0 -1
  124. package/dist-npm/extensions/index.d.ts +0 -11
  125. package/dist-npm/extensions/index.d.ts.map +0 -1
  126. package/dist-npm/extensions/index.js +0 -39
  127. package/dist-npm/extensions/index.js.map +0 -1
  128. package/dist-npm/extensions/loader.d.ts +0 -52
  129. package/dist-npm/extensions/loader.d.ts.map +0 -1
  130. package/dist-npm/extensions/loader.js +0 -177
  131. package/dist-npm/extensions/loader.js.map +0 -1
  132. package/dist-npm/extensions/manager.d.ts +0 -68
  133. package/dist-npm/extensions/manager.d.ts.map +0 -1
  134. package/dist-npm/extensions/manager.js +0 -164
  135. package/dist-npm/extensions/manager.js.map +0 -1
  136. package/dist-npm/extensions/registry.d.ts +0 -100
  137. package/dist-npm/extensions/registry.d.ts.map +0 -1
  138. package/dist-npm/extensions/registry.js +0 -193
  139. package/dist-npm/extensions/registry.js.map +0 -1
  140. package/dist-npm/extensions/types.d.ts +0 -226
  141. package/dist-npm/extensions/types.d.ts.map +0 -1
  142. package/dist-npm/extensions/types.js +0 -28
  143. package/dist-npm/extensions/types.js.map +0 -1
  144. package/dist-npm/index.d.ts +0 -40
  145. package/dist-npm/index.d.ts.map +0 -1
  146. package/dist-npm/index.js +0 -70
  147. package/dist-npm/index.js.map +0 -1
  148. package/dist-npm/interfaces/command-executor.d.ts +0 -17
  149. package/dist-npm/interfaces/command-executor.d.ts.map +0 -1
  150. package/dist-npm/interfaces/command-executor.js +0 -6
  151. package/dist-npm/interfaces/command-executor.js.map +0 -1
  152. package/dist-npm/interfaces/command-processor.d.ts +0 -17
  153. package/dist-npm/interfaces/command-processor.d.ts.map +0 -1
  154. package/dist-npm/interfaces/command-processor.js +0 -6
  155. package/dist-npm/interfaces/command-processor.js.map +0 -1
  156. package/dist-npm/interfaces/command-validator.d.ts +0 -17
  157. package/dist-npm/interfaces/command-validator.d.ts.map +0 -1
  158. package/dist-npm/interfaces/command-validator.js +0 -6
  159. package/dist-npm/interfaces/command-validator.js.map +0 -1
  160. package/dist-npm/interfaces/index.d.ts +0 -8
  161. package/dist-npm/interfaces/index.d.ts.map +0 -1
  162. package/dist-npm/interfaces/index.js +0 -24
  163. package/dist-npm/interfaces/index.js.map +0 -1
  164. package/dist-npm/interfaces/language-provider.d.ts +0 -86
  165. package/dist-npm/interfaces/language-provider.d.ts.map +0 -1
  166. package/dist-npm/interfaces/language-provider.js +0 -14
  167. package/dist-npm/interfaces/language-provider.js.map +0 -1
  168. package/dist-npm/interfaces/parser.d.ts +0 -16
  169. package/dist-npm/interfaces/parser.d.ts.map +0 -1
  170. package/dist-npm/interfaces/parser.js +0 -6
  171. package/dist-npm/interfaces/parser.js.map +0 -1
  172. package/dist-npm/scope/index.d.ts +0 -8
  173. package/dist-npm/scope/index.d.ts.map +0 -1
  174. package/dist-npm/scope/index.js +0 -24
  175. package/dist-npm/scope/index.js.map +0 -1
  176. package/dist-npm/scope/scope-evaluator.d.ts +0 -58
  177. package/dist-npm/scope/scope-evaluator.d.ts.map +0 -1
  178. package/dist-npm/scope/scope-evaluator.js +0 -207
  179. package/dist-npm/scope/scope-evaluator.js.map +0 -1
  180. package/dist-npm/scope/scope-registry.d.ts +0 -59
  181. package/dist-npm/scope/scope-registry.d.ts.map +0 -1
  182. package/dist-npm/scope/scope-registry.js +0 -182
  183. package/dist-npm/scope/scope-registry.js.map +0 -1
  184. package/dist-npm/scope/scope-rule.d.ts +0 -86
  185. package/dist-npm/scope/scope-rule.d.ts.map +0 -1
  186. package/dist-npm/scope/scope-rule.js +0 -7
  187. package/dist-npm/scope/scope-rule.js.map +0 -1
  188. package/dist-npm/services/ScopeService.d.ts +0 -8
  189. package/dist-npm/services/ScopeService.d.ts.map +0 -1
  190. package/dist-npm/services/ScopeService.js +0 -19
  191. package/dist-npm/services/ScopeService.js.map +0 -1
  192. package/dist-npm/services/index.d.ts +0 -2
  193. package/dist-npm/services/index.d.ts.map +0 -1
  194. package/dist-npm/services/index.js +0 -6
  195. package/dist-npm/services/index.js.map +0 -1
  196. package/dist-npm/test-structure.d.ts +0 -3
  197. package/dist-npm/test-structure.d.ts.map +0 -1
  198. package/dist-npm/test-structure.js +0 -26
  199. package/dist-npm/test-structure.js.map +0 -1
  200. package/dist-npm/traits/actor/actorBehavior.d.ts +0 -121
  201. package/dist-npm/traits/actor/actorBehavior.d.ts.map +0 -1
  202. package/dist-npm/traits/actor/actorBehavior.js +0 -288
  203. package/dist-npm/traits/actor/actorBehavior.js.map +0 -1
  204. package/dist-npm/traits/actor/actorTrait.d.ts +0 -158
  205. package/dist-npm/traits/actor/actorTrait.d.ts.map +0 -1
  206. package/dist-npm/traits/actor/actorTrait.js +0 -152
  207. package/dist-npm/traits/actor/actorTrait.js.map +0 -1
  208. package/dist-npm/traits/actor/index.d.ts +0 -3
  209. package/dist-npm/traits/actor/index.d.ts.map +0 -1
  210. package/dist-npm/traits/actor/index.js +0 -11
  211. package/dist-npm/traits/actor/index.js.map +0 -1
  212. package/dist-npm/traits/all-traits.d.ts +0 -95
  213. package/dist-npm/traits/all-traits.d.ts.map +0 -1
  214. package/dist-npm/traits/all-traits.js +0 -178
  215. package/dist-npm/traits/all-traits.js.map +0 -1
  216. package/dist-npm/traits/attached/attachedTrait.d.ts +0 -61
  217. package/dist-npm/traits/attached/attachedTrait.d.ts.map +0 -1
  218. package/dist-npm/traits/attached/attachedTrait.js +0 -36
  219. package/dist-npm/traits/attached/attachedTrait.js.map +0 -1
  220. package/dist-npm/traits/attached/index.d.ts +0 -2
  221. package/dist-npm/traits/attached/index.d.ts.map +0 -1
  222. package/dist-npm/traits/attached/index.js +0 -18
  223. package/dist-npm/traits/attached/index.js.map +0 -1
  224. package/dist-npm/traits/breakable/breakableBehavior.d.ts +0 -43
  225. package/dist-npm/traits/breakable/breakableBehavior.d.ts.map +0 -1
  226. package/dist-npm/traits/breakable/breakableBehavior.js +0 -70
  227. package/dist-npm/traits/breakable/breakableBehavior.js.map +0 -1
  228. package/dist-npm/traits/breakable/breakableTrait.d.ts +0 -22
  229. package/dist-npm/traits/breakable/breakableTrait.d.ts.map +0 -1
  230. package/dist-npm/traits/breakable/breakableTrait.js +0 -25
  231. package/dist-npm/traits/breakable/breakableTrait.js.map +0 -1
  232. package/dist-npm/traits/breakable/index.d.ts +0 -3
  233. package/dist-npm/traits/breakable/index.d.ts.map +0 -1
  234. package/dist-npm/traits/breakable/index.js +0 -8
  235. package/dist-npm/traits/breakable/index.js.map +0 -1
  236. package/dist-npm/traits/button/buttonTrait.d.ts +0 -53
  237. package/dist-npm/traits/button/buttonTrait.d.ts.map +0 -1
  238. package/dist-npm/traits/button/buttonTrait.js +0 -36
  239. package/dist-npm/traits/button/buttonTrait.js.map +0 -1
  240. package/dist-npm/traits/button/index.d.ts +0 -2
  241. package/dist-npm/traits/button/index.d.ts.map +0 -1
  242. package/dist-npm/traits/button/index.js +0 -18
  243. package/dist-npm/traits/button/index.js.map +0 -1
  244. package/dist-npm/traits/climbable/climbableBehavior.d.ts +0 -37
  245. package/dist-npm/traits/climbable/climbableBehavior.d.ts.map +0 -1
  246. package/dist-npm/traits/climbable/climbableBehavior.js +0 -70
  247. package/dist-npm/traits/climbable/climbableBehavior.js.map +0 -1
  248. package/dist-npm/traits/climbable/climbableTrait.d.ts +0 -31
  249. package/dist-npm/traits/climbable/climbableTrait.d.ts.map +0 -1
  250. package/dist-npm/traits/climbable/climbableTrait.js +0 -47
  251. package/dist-npm/traits/climbable/climbableTrait.js.map +0 -1
  252. package/dist-npm/traits/climbable/index.d.ts +0 -6
  253. package/dist-npm/traits/climbable/index.d.ts.map +0 -1
  254. package/dist-npm/traits/climbable/index.js +0 -22
  255. package/dist-npm/traits/climbable/index.js.map +0 -1
  256. package/dist-npm/traits/clothing/clothingTrait.d.ts +0 -58
  257. package/dist-npm/traits/clothing/clothingTrait.d.ts.map +0 -1
  258. package/dist-npm/traits/clothing/clothingTrait.js +0 -78
  259. package/dist-npm/traits/clothing/clothingTrait.js.map +0 -1
  260. package/dist-npm/traits/clothing/index.d.ts +0 -2
  261. package/dist-npm/traits/clothing/index.d.ts.map +0 -1
  262. package/dist-npm/traits/clothing/index.js +0 -19
  263. package/dist-npm/traits/clothing/index.js.map +0 -1
  264. package/dist-npm/traits/combatant/combatantBehavior.d.ts +0 -70
  265. package/dist-npm/traits/combatant/combatantBehavior.d.ts.map +0 -1
  266. package/dist-npm/traits/combatant/combatantBehavior.js +0 -155
  267. package/dist-npm/traits/combatant/combatantBehavior.js.map +0 -1
  268. package/dist-npm/traits/combatant/combatantTrait.d.ts +0 -98
  269. package/dist-npm/traits/combatant/combatantTrait.d.ts.map +0 -1
  270. package/dist-npm/traits/combatant/combatantTrait.js +0 -122
  271. package/dist-npm/traits/combatant/combatantTrait.js.map +0 -1
  272. package/dist-npm/traits/combatant/index.d.ts +0 -3
  273. package/dist-npm/traits/combatant/index.d.ts.map +0 -1
  274. package/dist-npm/traits/combatant/index.js +0 -8
  275. package/dist-npm/traits/combatant/index.js.map +0 -1
  276. package/dist-npm/traits/container/container-utils.d.ts +0 -39
  277. package/dist-npm/traits/container/container-utils.d.ts.map +0 -1
  278. package/dist-npm/traits/container/container-utils.js +0 -72
  279. package/dist-npm/traits/container/container-utils.js.map +0 -1
  280. package/dist-npm/traits/container/containerBehavior.d.ts +0 -94
  281. package/dist-npm/traits/container/containerBehavior.d.ts.map +0 -1
  282. package/dist-npm/traits/container/containerBehavior.js +0 -256
  283. package/dist-npm/traits/container/containerBehavior.js.map +0 -1
  284. package/dist-npm/traits/container/containerTrait.d.ts +0 -30
  285. package/dist-npm/traits/container/containerTrait.d.ts.map +0 -1
  286. package/dist-npm/traits/container/containerTrait.js +0 -45
  287. package/dist-npm/traits/container/containerTrait.js.map +0 -1
  288. package/dist-npm/traits/container/index.d.ts +0 -4
  289. package/dist-npm/traits/container/index.d.ts.map +0 -1
  290. package/dist-npm/traits/container/index.js +0 -14
  291. package/dist-npm/traits/container/index.js.map +0 -1
  292. package/dist-npm/traits/destructible/destructibleBehavior.d.ts +0 -57
  293. package/dist-npm/traits/destructible/destructibleBehavior.d.ts.map +0 -1
  294. package/dist-npm/traits/destructible/destructibleBehavior.js +0 -145
  295. package/dist-npm/traits/destructible/destructibleBehavior.js.map +0 -1
  296. package/dist-npm/traits/destructible/destructibleTrait.d.ts +0 -49
  297. package/dist-npm/traits/destructible/destructibleTrait.d.ts.map +0 -1
  298. package/dist-npm/traits/destructible/destructibleTrait.js +0 -43
  299. package/dist-npm/traits/destructible/destructibleTrait.js.map +0 -1
  300. package/dist-npm/traits/destructible/index.d.ts +0 -3
  301. package/dist-npm/traits/destructible/index.d.ts.map +0 -1
  302. package/dist-npm/traits/destructible/index.js +0 -8
  303. package/dist-npm/traits/destructible/index.js.map +0 -1
  304. package/dist-npm/traits/door/doorBehavior.d.ts +0 -42
  305. package/dist-npm/traits/door/doorBehavior.d.ts.map +0 -1
  306. package/dist-npm/traits/door/doorBehavior.js +0 -76
  307. package/dist-npm/traits/door/doorBehavior.js.map +0 -1
  308. package/dist-npm/traits/door/doorTrait.d.ts +0 -19
  309. package/dist-npm/traits/door/doorTrait.d.ts.map +0 -1
  310. package/dist-npm/traits/door/doorTrait.js +0 -33
  311. package/dist-npm/traits/door/doorTrait.js.map +0 -1
  312. package/dist-npm/traits/door/index.d.ts +0 -3
  313. package/dist-npm/traits/door/index.d.ts.map +0 -1
  314. package/dist-npm/traits/door/index.js +0 -9
  315. package/dist-npm/traits/door/index.js.map +0 -1
  316. package/dist-npm/traits/edible/edibleBehavior.d.ts +0 -63
  317. package/dist-npm/traits/edible/edibleBehavior.d.ts.map +0 -1
  318. package/dist-npm/traits/edible/edibleBehavior.js +0 -157
  319. package/dist-npm/traits/edible/edibleBehavior.js.map +0 -1
  320. package/dist-npm/traits/edible/edibleTrait.d.ts +0 -57
  321. package/dist-npm/traits/edible/edibleTrait.d.ts.map +0 -1
  322. package/dist-npm/traits/edible/edibleTrait.js +0 -51
  323. package/dist-npm/traits/edible/edibleTrait.js.map +0 -1
  324. package/dist-npm/traits/edible/index.d.ts +0 -3
  325. package/dist-npm/traits/edible/index.d.ts.map +0 -1
  326. package/dist-npm/traits/edible/index.js +0 -20
  327. package/dist-npm/traits/edible/index.js.map +0 -1
  328. package/dist-npm/traits/enterable/enterableTrait.d.ts +0 -33
  329. package/dist-npm/traits/enterable/enterableTrait.d.ts.map +0 -1
  330. package/dist-npm/traits/enterable/enterableTrait.js +0 -38
  331. package/dist-npm/traits/enterable/enterableTrait.js.map +0 -1
  332. package/dist-npm/traits/enterable/index.d.ts +0 -5
  333. package/dist-npm/traits/enterable/index.d.ts.map +0 -1
  334. package/dist-npm/traits/enterable/index.js +0 -21
  335. package/dist-npm/traits/enterable/index.js.map +0 -1
  336. package/dist-npm/traits/equipped/equippedTrait.d.ts +0 -46
  337. package/dist-npm/traits/equipped/equippedTrait.d.ts.map +0 -1
  338. package/dist-npm/traits/equipped/equippedTrait.js +0 -34
  339. package/dist-npm/traits/equipped/equippedTrait.js.map +0 -1
  340. package/dist-npm/traits/equipped/index.d.ts +0 -2
  341. package/dist-npm/traits/equipped/index.d.ts.map +0 -1
  342. package/dist-npm/traits/equipped/index.js +0 -6
  343. package/dist-npm/traits/equipped/index.js.map +0 -1
  344. package/dist-npm/traits/exit/exitBehavior.d.ts +0 -51
  345. package/dist-npm/traits/exit/exitBehavior.d.ts.map +0 -1
  346. package/dist-npm/traits/exit/exitBehavior.js +0 -231
  347. package/dist-npm/traits/exit/exitBehavior.js.map +0 -1
  348. package/dist-npm/traits/exit/exitTrait.d.ts +0 -41
  349. package/dist-npm/traits/exit/exitTrait.d.ts.map +0 -1
  350. package/dist-npm/traits/exit/exitTrait.js +0 -75
  351. package/dist-npm/traits/exit/exitTrait.js.map +0 -1
  352. package/dist-npm/traits/exit/index.d.ts +0 -3
  353. package/dist-npm/traits/exit/index.d.ts.map +0 -1
  354. package/dist-npm/traits/exit/index.js +0 -9
  355. package/dist-npm/traits/exit/index.js.map +0 -1
  356. package/dist-npm/traits/identity/identityBehavior.d.ts +0 -64
  357. package/dist-npm/traits/identity/identityBehavior.d.ts.map +0 -1
  358. package/dist-npm/traits/identity/identityBehavior.js +0 -154
  359. package/dist-npm/traits/identity/identityBehavior.js.map +0 -1
  360. package/dist-npm/traits/identity/identityTrait.d.ts +0 -70
  361. package/dist-npm/traits/identity/identityTrait.d.ts.map +0 -1
  362. package/dist-npm/traits/identity/identityTrait.js +0 -79
  363. package/dist-npm/traits/identity/identityTrait.js.map +0 -1
  364. package/dist-npm/traits/identity/index.d.ts +0 -3
  365. package/dist-npm/traits/identity/index.d.ts.map +0 -1
  366. package/dist-npm/traits/identity/index.js +0 -20
  367. package/dist-npm/traits/identity/index.js.map +0 -1
  368. package/dist-npm/traits/implementations.d.ts +0 -51
  369. package/dist-npm/traits/implementations.d.ts.map +0 -1
  370. package/dist-npm/traits/implementations.js +0 -145
  371. package/dist-npm/traits/implementations.js.map +0 -1
  372. package/dist-npm/traits/index.d.ts +0 -36
  373. package/dist-npm/traits/index.d.ts.map +0 -1
  374. package/dist-npm/traits/index.js +0 -62
  375. package/dist-npm/traits/index.js.map +0 -1
  376. package/dist-npm/traits/light-source/index.d.ts +0 -3
  377. package/dist-npm/traits/light-source/index.d.ts.map +0 -1
  378. package/dist-npm/traits/light-source/index.js +0 -9
  379. package/dist-npm/traits/light-source/index.js.map +0 -1
  380. package/dist-npm/traits/light-source/lightSourceBehavior.d.ts +0 -57
  381. package/dist-npm/traits/light-source/lightSourceBehavior.d.ts.map +0 -1
  382. package/dist-npm/traits/light-source/lightSourceBehavior.js +0 -135
  383. package/dist-npm/traits/light-source/lightSourceBehavior.js.map +0 -1
  384. package/dist-npm/traits/light-source/lightSourceTrait.d.ts +0 -28
  385. package/dist-npm/traits/light-source/lightSourceTrait.d.ts.map +0 -1
  386. package/dist-npm/traits/light-source/lightSourceTrait.js +0 -37
  387. package/dist-npm/traits/light-source/lightSourceTrait.js.map +0 -1
  388. package/dist-npm/traits/lockable/index.d.ts +0 -3
  389. package/dist-npm/traits/lockable/index.d.ts.map +0 -1
  390. package/dist-npm/traits/lockable/index.js +0 -20
  391. package/dist-npm/traits/lockable/index.js.map +0 -1
  392. package/dist-npm/traits/lockable/lockableBehavior.d.ts +0 -88
  393. package/dist-npm/traits/lockable/lockableBehavior.d.ts.map +0 -1
  394. package/dist-npm/traits/lockable/lockableBehavior.js +0 -196
  395. package/dist-npm/traits/lockable/lockableBehavior.js.map +0 -1
  396. package/dist-npm/traits/lockable/lockableTrait.d.ts +0 -59
  397. package/dist-npm/traits/lockable/lockableTrait.d.ts.map +0 -1
  398. package/dist-npm/traits/lockable/lockableTrait.js +0 -50
  399. package/dist-npm/traits/lockable/lockableTrait.js.map +0 -1
  400. package/dist-npm/traits/moveable-scenery/index.d.ts +0 -2
  401. package/dist-npm/traits/moveable-scenery/index.d.ts.map +0 -1
  402. package/dist-npm/traits/moveable-scenery/index.js +0 -18
  403. package/dist-npm/traits/moveable-scenery/index.js.map +0 -1
  404. package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts +0 -69
  405. package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +0 -1
  406. package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js +0 -43
  407. package/dist-npm/traits/moveable-scenery/moveableSceneryTrait.js.map +0 -1
  408. package/dist-npm/traits/npc/index.d.ts +0 -5
  409. package/dist-npm/traits/npc/index.d.ts.map +0 -1
  410. package/dist-npm/traits/npc/index.js +0 -9
  411. package/dist-npm/traits/npc/index.js.map +0 -1
  412. package/dist-npm/traits/npc/npcTrait.d.ts +0 -128
  413. package/dist-npm/traits/npc/npcTrait.d.ts.map +0 -1
  414. package/dist-npm/traits/npc/npcTrait.js +0 -180
  415. package/dist-npm/traits/npc/npcTrait.js.map +0 -1
  416. package/dist-npm/traits/openable/index.d.ts +0 -3
  417. package/dist-npm/traits/openable/index.d.ts.map +0 -1
  418. package/dist-npm/traits/openable/index.js +0 -20
  419. package/dist-npm/traits/openable/index.js.map +0 -1
  420. package/dist-npm/traits/openable/openableBehavior.d.ts +0 -64
  421. package/dist-npm/traits/openable/openableBehavior.d.ts.map +0 -1
  422. package/dist-npm/traits/openable/openableBehavior.js +0 -109
  423. package/dist-npm/traits/openable/openableBehavior.js.map +0 -1
  424. package/dist-npm/traits/openable/openableTrait.d.ts +0 -46
  425. package/dist-npm/traits/openable/openableTrait.d.ts.map +0 -1
  426. package/dist-npm/traits/openable/openableTrait.js +0 -42
  427. package/dist-npm/traits/openable/openableTrait.js.map +0 -1
  428. package/dist-npm/traits/pullable/index.d.ts +0 -2
  429. package/dist-npm/traits/pullable/index.d.ts.map +0 -1
  430. package/dist-npm/traits/pullable/index.js +0 -18
  431. package/dist-npm/traits/pullable/index.js.map +0 -1
  432. package/dist-npm/traits/pullable/pullableTrait.d.ts +0 -81
  433. package/dist-npm/traits/pullable/pullableTrait.d.ts.map +0 -1
  434. package/dist-npm/traits/pullable/pullableTrait.js +0 -44
  435. package/dist-npm/traits/pullable/pullableTrait.js.map +0 -1
  436. package/dist-npm/traits/pushable/index.d.ts +0 -2
  437. package/dist-npm/traits/pushable/index.d.ts.map +0 -1
  438. package/dist-npm/traits/pushable/index.js +0 -18
  439. package/dist-npm/traits/pushable/index.js.map +0 -1
  440. package/dist-npm/traits/pushable/pushableTrait.d.ts +0 -81
  441. package/dist-npm/traits/pushable/pushableTrait.d.ts.map +0 -1
  442. package/dist-npm/traits/pushable/pushableTrait.js +0 -44
  443. package/dist-npm/traits/pushable/pushableTrait.js.map +0 -1
  444. package/dist-npm/traits/readable/index.d.ts +0 -3
  445. package/dist-npm/traits/readable/index.d.ts.map +0 -1
  446. package/dist-npm/traits/readable/index.js +0 -9
  447. package/dist-npm/traits/readable/index.js.map +0 -1
  448. package/dist-npm/traits/readable/readableBehavior.d.ts +0 -42
  449. package/dist-npm/traits/readable/readableBehavior.d.ts.map +0 -1
  450. package/dist-npm/traits/readable/readableBehavior.js +0 -174
  451. package/dist-npm/traits/readable/readableBehavior.js.map +0 -1
  452. package/dist-npm/traits/readable/readableTrait.d.ts +0 -37
  453. package/dist-npm/traits/readable/readableTrait.d.ts.map +0 -1
  454. package/dist-npm/traits/readable/readableTrait.js +0 -51
  455. package/dist-npm/traits/readable/readableTrait.js.map +0 -1
  456. package/dist-npm/traits/register-all.d.ts +0 -10
  457. package/dist-npm/traits/register-all.d.ts.map +0 -1
  458. package/dist-npm/traits/register-all.js +0 -19
  459. package/dist-npm/traits/register-all.js.map +0 -1
  460. package/dist-npm/traits/room/index.d.ts +0 -9
  461. package/dist-npm/traits/room/index.d.ts.map +0 -1
  462. package/dist-npm/traits/room/index.js +0 -14
  463. package/dist-npm/traits/room/index.js.map +0 -1
  464. package/dist-npm/traits/room/roomBehavior.d.ts +0 -87
  465. package/dist-npm/traits/room/roomBehavior.d.ts.map +0 -1
  466. package/dist-npm/traits/room/roomBehavior.js +0 -232
  467. package/dist-npm/traits/room/roomBehavior.js.map +0 -1
  468. package/dist-npm/traits/room/roomTrait.d.ts +0 -101
  469. package/dist-npm/traits/room/roomTrait.d.ts.map +0 -1
  470. package/dist-npm/traits/room/roomTrait.js +0 -59
  471. package/dist-npm/traits/room/roomTrait.js.map +0 -1
  472. package/dist-npm/traits/scenery/index.d.ts +0 -3
  473. package/dist-npm/traits/scenery/index.d.ts.map +0 -1
  474. package/dist-npm/traits/scenery/index.js +0 -9
  475. package/dist-npm/traits/scenery/index.js.map +0 -1
  476. package/dist-npm/traits/scenery/sceneryBehavior.d.ts +0 -21
  477. package/dist-npm/traits/scenery/sceneryBehavior.d.ts.map +0 -1
  478. package/dist-npm/traits/scenery/sceneryBehavior.js +0 -42
  479. package/dist-npm/traits/scenery/sceneryBehavior.js.map +0 -1
  480. package/dist-npm/traits/scenery/sceneryTrait.d.ts +0 -30
  481. package/dist-npm/traits/scenery/sceneryTrait.d.ts.map +0 -1
  482. package/dist-npm/traits/scenery/sceneryTrait.js +0 -39
  483. package/dist-npm/traits/scenery/sceneryTrait.js.map +0 -1
  484. package/dist-npm/traits/supporter/index.d.ts +0 -3
  485. package/dist-npm/traits/supporter/index.d.ts.map +0 -1
  486. package/dist-npm/traits/supporter/index.js +0 -9
  487. package/dist-npm/traits/supporter/index.js.map +0 -1
  488. package/dist-npm/traits/supporter/supporterBehavior.d.ts +0 -83
  489. package/dist-npm/traits/supporter/supporterBehavior.d.ts.map +0 -1
  490. package/dist-npm/traits/supporter/supporterBehavior.js +0 -210
  491. package/dist-npm/traits/supporter/supporterBehavior.js.map +0 -1
  492. package/dist-npm/traits/supporter/supporterTrait.d.ts +0 -26
  493. package/dist-npm/traits/supporter/supporterTrait.d.ts.map +0 -1
  494. package/dist-npm/traits/supporter/supporterTrait.js +0 -30
  495. package/dist-npm/traits/supporter/supporterTrait.js.map +0 -1
  496. package/dist-npm/traits/switchable/index.d.ts +0 -3
  497. package/dist-npm/traits/switchable/index.d.ts.map +0 -1
  498. package/dist-npm/traits/switchable/index.js +0 -20
  499. package/dist-npm/traits/switchable/index.js.map +0 -1
  500. package/dist-npm/traits/switchable/switchableBehavior.d.ts +0 -73
  501. package/dist-npm/traits/switchable/switchableBehavior.d.ts.map +0 -1
  502. package/dist-npm/traits/switchable/switchableBehavior.js +0 -191
  503. package/dist-npm/traits/switchable/switchableBehavior.js.map +0 -1
  504. package/dist-npm/traits/switchable/switchableTrait.d.ts +0 -61
  505. package/dist-npm/traits/switchable/switchableTrait.d.ts.map +0 -1
  506. package/dist-npm/traits/switchable/switchableTrait.js +0 -52
  507. package/dist-npm/traits/switchable/switchableTrait.js.map +0 -1
  508. package/dist-npm/traits/trait-types.d.ts +0 -81
  509. package/dist-npm/traits/trait-types.d.ts.map +0 -1
  510. package/dist-npm/traits/trait-types.js +0 -146
  511. package/dist-npm/traits/trait-types.js.map +0 -1
  512. package/dist-npm/traits/trait.d.ts +0 -44
  513. package/dist-npm/traits/trait.d.ts.map +0 -1
  514. package/dist-npm/traits/trait.js +0 -42
  515. package/dist-npm/traits/trait.js.map +0 -1
  516. package/dist-npm/traits/vehicle/index.d.ts +0 -6
  517. package/dist-npm/traits/vehicle/index.d.ts.map +0 -1
  518. package/dist-npm/traits/vehicle/index.js +0 -22
  519. package/dist-npm/traits/vehicle/index.js.map +0 -1
  520. package/dist-npm/traits/vehicle/vehicleBehavior.d.ts +0 -62
  521. package/dist-npm/traits/vehicle/vehicleBehavior.d.ts.map +0 -1
  522. package/dist-npm/traits/vehicle/vehicleBehavior.js +0 -145
  523. package/dist-npm/traits/vehicle/vehicleBehavior.js.map +0 -1
  524. package/dist-npm/traits/vehicle/vehicleTrait.d.ts +0 -77
  525. package/dist-npm/traits/vehicle/vehicleTrait.d.ts.map +0 -1
  526. package/dist-npm/traits/vehicle/vehicleTrait.js +0 -92
  527. package/dist-npm/traits/vehicle/vehicleTrait.js.map +0 -1
  528. package/dist-npm/traits/weapon/index.d.ts +0 -3
  529. package/dist-npm/traits/weapon/index.d.ts.map +0 -1
  530. package/dist-npm/traits/weapon/index.js +0 -8
  531. package/dist-npm/traits/weapon/index.js.map +0 -1
  532. package/dist-npm/traits/weapon/weaponBehavior.d.ts +0 -47
  533. package/dist-npm/traits/weapon/weaponBehavior.d.ts.map +0 -1
  534. package/dist-npm/traits/weapon/weaponBehavior.js +0 -106
  535. package/dist-npm/traits/weapon/weaponBehavior.js.map +0 -1
  536. package/dist-npm/traits/weapon/weaponTrait.d.ts +0 -67
  537. package/dist-npm/traits/weapon/weaponTrait.d.ts.map +0 -1
  538. package/dist-npm/traits/weapon/weaponTrait.js +0 -60
  539. package/dist-npm/traits/weapon/weaponTrait.js.map +0 -1
  540. package/dist-npm/traits/wearable/index.d.ts +0 -3
  541. package/dist-npm/traits/wearable/index.d.ts.map +0 -1
  542. package/dist-npm/traits/wearable/index.js +0 -20
  543. package/dist-npm/traits/wearable/index.js.map +0 -1
  544. package/dist-npm/traits/wearable/wearableBehavior.d.ts +0 -64
  545. package/dist-npm/traits/wearable/wearableBehavior.d.ts.map +0 -1
  546. package/dist-npm/traits/wearable/wearableBehavior.js +0 -142
  547. package/dist-npm/traits/wearable/wearableBehavior.js.map +0 -1
  548. package/dist-npm/traits/wearable/wearableTrait.d.ts +0 -54
  549. package/dist-npm/traits/wearable/wearableTrait.d.ts.map +0 -1
  550. package/dist-npm/traits/wearable/wearableTrait.js +0 -53
  551. package/dist-npm/traits/wearable/wearableTrait.js.map +0 -1
  552. package/dist-npm/utils/event-utils.d.ts +0 -30
  553. package/dist-npm/utils/event-utils.d.ts.map +0 -1
  554. package/dist-npm/utils/event-utils.js +0 -33
  555. package/dist-npm/utils/event-utils.js.map +0 -1
  556. package/dist-npm/world/AuthorModel.d.ts +0 -151
  557. package/dist-npm/world/AuthorModel.d.ts.map +0 -1
  558. package/dist-npm/world/AuthorModel.js +0 -416
  559. package/dist-npm/world/AuthorModel.js.map +0 -1
  560. package/dist-npm/world/SharedDataStore.d.ts +0 -24
  561. package/dist-npm/world/SharedDataStore.d.ts.map +0 -1
  562. package/dist-npm/world/SharedDataStore.js +0 -50
  563. package/dist-npm/world/SharedDataStore.js.map +0 -1
  564. package/dist-npm/world/SpatialIndex.d.ts +0 -16
  565. package/dist-npm/world/SpatialIndex.d.ts.map +0 -1
  566. package/dist-npm/world/SpatialIndex.js +0 -117
  567. package/dist-npm/world/SpatialIndex.js.map +0 -1
  568. package/dist-npm/world/VisibilityBehavior.d.ts +0 -83
  569. package/dist-npm/world/VisibilityBehavior.d.ts.map +0 -1
  570. package/dist-npm/world/VisibilityBehavior.js +0 -484
  571. package/dist-npm/world/VisibilityBehavior.js.map +0 -1
  572. package/dist-npm/world/WorldModel.d.ts +0 -301
  573. package/dist-npm/world/WorldModel.d.ts.map +0 -1
  574. package/dist-npm/world/WorldModel.js +0 -1085
  575. package/dist-npm/world/WorldModel.js.map +0 -1
  576. package/dist-npm/world/capabilities.d.ts +0 -36
  577. package/dist-npm/world/capabilities.d.ts.map +0 -1
  578. package/dist-npm/world/capabilities.js +0 -18
  579. package/dist-npm/world/capabilities.js.map +0 -1
  580. package/dist-npm/world/index.d.ts +0 -7
  581. package/dist-npm/world/index.d.ts.map +0 -1
  582. package/dist-npm/world/index.js +0 -21
  583. package/dist-npm/world/index.js.map +0 -1
@@ -1,484 +0,0 @@
1
- "use strict";
2
- // VisibilityBehavior.ts - Visibility system for IF
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.VisibilityBehavior = exports.VISIBILITY_CAPABILITY = void 0;
5
- const behavior_1 = require("../behaviors/behavior");
6
- const trait_types_1 = require("../traits/trait-types");
7
- const switchableBehavior_1 = require("../traits/switchable/switchableBehavior");
8
- const capabilities_1 = require("../capabilities");
9
- /**
10
- * Standard capability ID for visibility control.
11
- * Entities can claim this capability to control their own visibility.
12
- */
13
- exports.VISIBILITY_CAPABILITY = 'if.scope.visible';
14
- class VisibilityBehavior extends behavior_1.Behavior {
15
- static requiredTraits = [];
16
- /**
17
- * Determines if a room is effectively dark (no usable light sources).
18
- * This is the single source of truth for darkness checking.
19
- *
20
- * A room is dark if:
21
- * 1. It has RoomTrait with isDark = true
22
- * 2. There are no accessible, active light sources
23
- *
24
- * @param room - The room entity to check
25
- * @param world - The world model
26
- * @returns true if the room is dark and has no accessible light sources
27
- */
28
- static isDark(room, world) {
29
- const roomTrait = room.getTrait(trait_types_1.TraitType.ROOM);
30
- if (!roomTrait || !roomTrait.isDark) {
31
- return false; // Room isn't marked as dark
32
- }
33
- return !this.hasLightSource(room, world);
34
- }
35
- /**
36
- * Determines if a light source entity is currently providing light.
37
- * Checks isLit property first, falls back to switchable state, defaults to lit.
38
- *
39
- * Priority order:
40
- * 1. Explicit isLit property (e.g., lit torch, extinguished candle)
41
- * 2. Switchable trait state (e.g., flashlight isOn: true)
42
- * 3. Default to lit (e.g., glowing gems, phosphorescent moss)
43
- */
44
- static isLightActive(entity) {
45
- const lightTrait = entity.getTrait(trait_types_1.TraitType.LIGHT_SOURCE);
46
- // Explicit isLit property takes precedence
47
- if (lightTrait?.isLit !== undefined) {
48
- return lightTrait.isLit === true;
49
- }
50
- // Fall back to switchable state
51
- if (entity.hasTrait(trait_types_1.TraitType.SWITCHABLE)) {
52
- return switchableBehavior_1.SwitchableBehavior.isOn(entity);
53
- }
54
- // Default: light sources without explicit state are lit
55
- return true;
56
- }
57
- /**
58
- * Determines if an observer can see a target entity
59
- */
60
- static canSee(observer, target, world) {
61
- // Can always see self
62
- if (observer.id === target.id)
63
- return true;
64
- // Check if target is invisible via SceneryTrait
65
- const targetScenery = target.getTrait(trait_types_1.TraitType.SCENERY);
66
- if (targetScenery && targetScenery.visible === false) {
67
- return false;
68
- }
69
- // Check if target has visibility capability that blocks being seen
70
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(target, exports.VISIBILITY_CAPABILITY);
71
- if (visibilityTrait) {
72
- const behavior = (0, capabilities_1.getBehaviorForCapability)(visibilityTrait, exports.VISIBILITY_CAPABILITY);
73
- if (behavior) {
74
- const result = behavior.validate(target, world, observer.id, {});
75
- if (!result.valid) {
76
- return false; // Entity blocks visibility via capability
77
- }
78
- }
79
- }
80
- // Get rooms
81
- const observerRoom = world.getContainingRoom(observer.id);
82
- const targetRoom = world.getContainingRoom(target.id);
83
- // Must be in same room (or target is the room)
84
- if (target.hasTrait(trait_types_1.TraitType.ROOM)) {
85
- // Check if we're in the target room
86
- if (observerRoom?.id === target.id) {
87
- // Always know what room you're in, even in darkness
88
- return true;
89
- }
90
- return false;
91
- }
92
- if (!observerRoom || observerRoom.id !== targetRoom?.id) {
93
- return false;
94
- }
95
- // Check if room is dark
96
- const roomTrait = observerRoom.getTrait(trait_types_1.TraitType.ROOM);
97
- if (roomTrait && roomTrait.isDark) {
98
- // In a dark room, need light to see
99
- if (!this.hasLightSource(observerRoom, world)) {
100
- // Special cases in darkness:
101
- // 1. Can see lit light sources
102
- if (target.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE) &&
103
- target.getTrait(trait_types_1.TraitType.LIGHT_SOURCE)?.isLit === true) {
104
- return true;
105
- }
106
- // 2. Can see items you're carrying (by feel)
107
- const targetLocation = world.getLocation(target.id);
108
- if (targetLocation === observer.id) {
109
- return true;
110
- }
111
- // Otherwise can't see in darkness
112
- return false;
113
- }
114
- }
115
- // Check line of sight through containers
116
- const hasLineOfSight = this.hasLineOfSight(observer.id, target.id, world);
117
- return hasLineOfSight;
118
- }
119
- /**
120
- * Gets all entities visible to an observer
121
- */
122
- static getVisible(observer, world) {
123
- const visible = [];
124
- const seen = new Set(); // Track what we've already added
125
- const observerRoom = world.getContainingRoom(observer.id);
126
- if (!observerRoom)
127
- return visible;
128
- // Add the room itself if visible
129
- if (this.canSee(observer, observerRoom, world)) {
130
- visible.push(observerRoom);
131
- seen.add(observerRoom.id);
132
- }
133
- // Check if room is dark
134
- const roomTrait = observerRoom.getTrait(trait_types_1.TraitType.ROOM);
135
- const isDark = roomTrait && roomTrait.isDark;
136
- const hasLight = this.hasLightSource(observerRoom, world);
137
- // If it's dark and no light, only see specific things
138
- if (isDark && !hasLight) {
139
- // Can always see what you're carrying (by feel)
140
- const carried = world.getContents(observer.id);
141
- for (const entity of carried) {
142
- if (!seen.has(entity.id)) {
143
- visible.push(entity);
144
- seen.add(entity.id);
145
- }
146
- }
147
- // Add any lit light sources in the room
148
- const roomContents = world.getAllContents(observerRoom.id, { recursive: true });
149
- for (const entity of roomContents) {
150
- if (entity.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE)) {
151
- const light = entity.getTrait(trait_types_1.TraitType.LIGHT_SOURCE);
152
- if (light && light.isLit === true && !seen.has(entity.id)) {
153
- visible.push(entity);
154
- seen.add(entity.id);
155
- }
156
- }
157
- }
158
- return visible;
159
- }
160
- // Get contents of the room
161
- const roomContents = world.getContents(observerRoom.id);
162
- // Add visible entities in the room
163
- for (const entity of roomContents) {
164
- if (entity.id !== observer.id && !seen.has(entity.id)) {
165
- // Check if entity is visible via SceneryTrait
166
- const scenery = entity.getTrait(trait_types_1.TraitType.SCENERY);
167
- if (scenery && scenery.visible === false) {
168
- continue;
169
- }
170
- // Check if entity has visibility capability that blocks being seen
171
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
172
- if (visibilityTrait) {
173
- const behavior = (0, capabilities_1.getBehaviorForCapability)(visibilityTrait, exports.VISIBILITY_CAPABILITY);
174
- if (behavior) {
175
- const result = behavior.validate(entity, world, observer.id, {});
176
- if (!result.valid) {
177
- continue; // Entity blocks visibility via capability
178
- }
179
- }
180
- }
181
- visible.push(entity);
182
- seen.add(entity.id);
183
- // Check contents of this entity if it's a container/supporter/actor
184
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) ||
185
- entity.hasTrait(trait_types_1.TraitType.SUPPORTER) ||
186
- entity.hasTrait(trait_types_1.TraitType.ACTOR)) {
187
- this.addVisibleContents(entity, visible, seen, world);
188
- }
189
- }
190
- }
191
- // Add carried items
192
- const carried = world.getContents(observer.id);
193
- for (const entity of carried) {
194
- if (!seen.has(entity.id)) {
195
- visible.push(entity);
196
- seen.add(entity.id);
197
- // Check contents of carried containers
198
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) || entity.hasTrait(trait_types_1.TraitType.SUPPORTER)) {
199
- this.addVisibleContents(entity, visible, seen, world);
200
- }
201
- }
202
- }
203
- return visible;
204
- }
205
- /**
206
- * Recursively adds visible contents of a container/supporter/actor
207
- */
208
- static addVisibleContents(container, visible, seen, world) {
209
- // Check if we can see inside this container
210
- if (container.hasTrait(trait_types_1.TraitType.CONTAINER)) {
211
- const containerTrait = container.getTrait(trait_types_1.TraitType.CONTAINER);
212
- const isTransparent = containerTrait?.isTransparent ?? false;
213
- if (!isTransparent && container.hasTrait(trait_types_1.TraitType.OPENABLE)) {
214
- const openable = container.getTrait(trait_types_1.TraitType.OPENABLE);
215
- const isOpen = openable?.isOpen ?? false;
216
- if (!isOpen) {
217
- return; // Can't see inside closed opaque container
218
- }
219
- }
220
- }
221
- // Get contents (including worn items for actors)
222
- const contents = world.getContents(container.id, { includeWorn: true });
223
- for (const entity of contents) {
224
- if (!seen.has(entity.id)) {
225
- // Check if entity is visible via SceneryTrait
226
- const scenery = entity.getTrait(trait_types_1.TraitType.SCENERY);
227
- if (scenery && scenery.visible === false) {
228
- continue;
229
- }
230
- // Check if entity has visibility capability that blocks being seen
231
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
232
- if (visibilityTrait) {
233
- const behavior = (0, capabilities_1.getBehaviorForCapability)(visibilityTrait, exports.VISIBILITY_CAPABILITY);
234
- if (behavior) {
235
- // Note: We don't have a direct observer here, use container's id as proxy
236
- const result = behavior.validate(entity, world, container.id, {});
237
- if (!result.valid) {
238
- continue; // Entity blocks visibility via capability
239
- }
240
- }
241
- }
242
- visible.push(entity);
243
- seen.add(entity.id);
244
- // Recurse into nested containers
245
- if (entity.hasTrait(trait_types_1.TraitType.CONTAINER) ||
246
- entity.hasTrait(trait_types_1.TraitType.SUPPORTER) ||
247
- entity.hasTrait(trait_types_1.TraitType.ACTOR)) {
248
- this.addVisibleContents(entity, visible, seen, world);
249
- }
250
- }
251
- }
252
- }
253
- /**
254
- * Checks if a room has any accessible, active light sources.
255
- * Handles nested containers, worn items, and various light source types.
256
- */
257
- static hasLightSource(room, world) {
258
- // Check all entities in the room, including worn items
259
- const contents = world.getAllContents(room.id, { recursive: true, includeWorn: true });
260
- for (const entity of contents) {
261
- if (!entity.hasTrait(trait_types_1.TraitType.LIGHT_SOURCE))
262
- continue;
263
- // Check if light is active (isLit, switchable, or default)
264
- if (!this.isLightActive(entity))
265
- continue;
266
- // Check if the light is accessible (not in a closed container)
267
- if (!this.isAccessible(entity.id, room.id, world))
268
- continue;
269
- return true;
270
- }
271
- return false;
272
- }
273
- /**
274
- * Checks if an entity is accessible from a room (not blocked by closed containers)
275
- */
276
- static isAccessible(entityId, roomId, world) {
277
- let current = entityId;
278
- while (current !== roomId) {
279
- const parent = world.getLocation(current);
280
- if (!parent)
281
- return false;
282
- const container = world.getEntity(parent);
283
- if (!container)
284
- return false;
285
- // Actors don't block access to their contents
286
- if (container.hasTrait(trait_types_1.TraitType.ACTOR)) {
287
- // Items carried by actors are accessible
288
- current = parent;
289
- continue;
290
- }
291
- // If it's in an opaque, closed container, it's not accessible
292
- if (container.hasTrait(trait_types_1.TraitType.CONTAINER)) {
293
- const containerTrait = container.getTrait(trait_types_1.TraitType.CONTAINER);
294
- const isTransparent = containerTrait?.isTransparent ?? false;
295
- if (!isTransparent) {
296
- if (container.hasTrait(trait_types_1.TraitType.OPENABLE)) {
297
- const openable = container.getTrait(trait_types_1.TraitType.OPENABLE);
298
- const isOpen = openable?.isOpen ?? false;
299
- if (!isOpen) {
300
- return false; // Closed opaque container blocks access
301
- }
302
- }
303
- }
304
- }
305
- current = parent;
306
- }
307
- return true;
308
- }
309
- /**
310
- * Checks if there's a line of sight between observer and target
311
- */
312
- static hasLineOfSight(observerId, targetId, world) {
313
- // Get the containment path from target to room
314
- const targetPath = this.getContainmentPath(targetId, world);
315
- // Check each container in the path
316
- for (let i = 0; i < targetPath.length - 1; i++) {
317
- const contained = targetPath[i];
318
- const container = targetPath[i + 1];
319
- const containerEntity = world.getEntity(container);
320
- if (!containerEntity)
321
- return false;
322
- // Actors are always visible-through (can see their inventory/worn items)
323
- if (containerEntity.hasTrait(trait_types_1.TraitType.ACTOR)) {
324
- // Can always see what actors are carrying/wearing
325
- continue;
326
- }
327
- // If it's in a container, check if we can see inside
328
- if (containerEntity.hasTrait(trait_types_1.TraitType.CONTAINER)) {
329
- const containerTrait = containerEntity.getTrait(trait_types_1.TraitType.CONTAINER);
330
- // Opaque containers block sight when closed
331
- // Default isTransparent to false if not specified
332
- const isTransparent = containerTrait?.isTransparent ?? false;
333
- if (!isTransparent) {
334
- // If it's opaque, check if it's openable and closed
335
- if (containerEntity.hasTrait(trait_types_1.TraitType.OPENABLE)) {
336
- const openable = containerEntity.getTrait(trait_types_1.TraitType.OPENABLE);
337
- // Default isOpen to false if not specified
338
- const isOpen = openable?.isOpen ?? false;
339
- if (!isOpen) {
340
- return false; // Closed opaque container blocks sight
341
- }
342
- }
343
- // If opaque but not openable, we can see through (it can't be closed)
344
- }
345
- }
346
- }
347
- return true;
348
- }
349
- /**
350
- * Gets the containment path from an entity to its room
351
- */
352
- static getContainmentPath(entityId, world) {
353
- const path = [entityId];
354
- let current = entityId;
355
- let depth = 0;
356
- const maxDepth = 10;
357
- while (depth < maxDepth) {
358
- const parent = world.getLocation(current);
359
- if (!parent)
360
- break;
361
- path.push(parent);
362
- const parentEntity = world.getEntity(parent);
363
- if (parentEntity?.hasTrait(trait_types_1.TraitType.ROOM))
364
- break;
365
- current = parent;
366
- depth++;
367
- }
368
- return path;
369
- }
370
- /**
371
- * Checks if an entity is visible in its current context
372
- * (used for filtering queries)
373
- */
374
- static isVisible(entity, world) {
375
- // Check if explicitly invisible via SceneryTrait
376
- const scenery = entity.getTrait(trait_types_1.TraitType.SCENERY);
377
- if (scenery && scenery.visible === false) {
378
- return false;
379
- }
380
- // Check if entity has visibility capability that blocks being seen
381
- // Note: For isVisible we don't have an observer, so we pass empty string
382
- const visibilityTrait = (0, capabilities_1.findTraitWithCapability)(entity, exports.VISIBILITY_CAPABILITY);
383
- if (visibilityTrait) {
384
- const behavior = (0, capabilities_1.getBehaviorForCapability)(visibilityTrait, exports.VISIBILITY_CAPABILITY);
385
- if (behavior) {
386
- const result = behavior.validate(entity, world, '', {});
387
- if (!result.valid) {
388
- return false; // Entity blocks visibility via capability
389
- }
390
- }
391
- }
392
- // Check containment path for closed opaque containers
393
- let current = entity.id;
394
- while (true) {
395
- const location = world.getLocation(current);
396
- if (!location)
397
- break; // Reached top level
398
- const container = world.getEntity(location);
399
- if (!container)
400
- break;
401
- // Actors don't block visibility of their contents
402
- if (container.hasTrait(trait_types_1.TraitType.ACTOR)) {
403
- current = location;
404
- continue;
405
- }
406
- // Check if this container blocks visibility
407
- if (container.hasTrait(trait_types_1.TraitType.CONTAINER)) {
408
- const containerTrait = container.getTrait(trait_types_1.TraitType.CONTAINER);
409
- // If container is opaque and closed, entity is not visible
410
- const isTransparent = containerTrait?.isTransparent ?? false;
411
- if (!isTransparent) {
412
- if (container.hasTrait(trait_types_1.TraitType.OPENABLE)) {
413
- const openable = container.getTrait(trait_types_1.TraitType.OPENABLE);
414
- const isOpen = openable?.isOpen ?? false;
415
- if (!isOpen) {
416
- return false; // In closed opaque container
417
- }
418
- }
419
- // Opaque but not openable - can see through
420
- }
421
- }
422
- current = location;
423
- }
424
- return true;
425
- }
426
- /**
427
- * Gets the location that should be described when an observer looks around.
428
- * Accounts for vehicle/container transparency:
429
- * - In a transparent vehicle → describe the room
430
- * - In an open container → describe the room
431
- * - In a closed container → describe the container
432
- * - In a room → describe the room
433
- *
434
- * @returns The entity to describe and optionally the immediate container
435
- */
436
- static getDescribableLocation(observer, world) {
437
- const immediateLocationId = world.getLocation(observer.id);
438
- if (!immediateLocationId) {
439
- // Observer is not in anything - unusual but handle it
440
- return { location: observer, immediateContainer: null };
441
- }
442
- const immediateLocation = world.getEntity(immediateLocationId);
443
- if (!immediateLocation) {
444
- return { location: observer, immediateContainer: null };
445
- }
446
- // If immediate location is a room, we're done
447
- if (immediateLocation.hasTrait(trait_types_1.TraitType.ROOM)) {
448
- return { location: immediateLocation, immediateContainer: null };
449
- }
450
- // Check if we're in a vehicle
451
- if (immediateLocation.hasTrait(trait_types_1.TraitType.VEHICLE)) {
452
- const vehicleTrait = immediateLocation.getTrait(trait_types_1.TraitType.VEHICLE);
453
- if (vehicleTrait.transparent) {
454
- // Transparent vehicle - describe the room
455
- const room = world.getContainingRoom(observer.id);
456
- if (room) {
457
- return { location: room, immediateContainer: immediateLocation };
458
- }
459
- }
460
- // Opaque vehicle - describe the vehicle interior
461
- return { location: immediateLocation, immediateContainer: null };
462
- }
463
- // Check if we're in a container
464
- if (immediateLocation.hasTrait(trait_types_1.TraitType.CONTAINER)) {
465
- // Check if container is open (visibility passes through)
466
- if (immediateLocation.hasTrait(trait_types_1.TraitType.OPENABLE)) {
467
- const openable = immediateLocation.getTrait(trait_types_1.TraitType.OPENABLE);
468
- if (openable?.isOpen) {
469
- // Open container - describe the room
470
- const room = world.getContainingRoom(observer.id);
471
- if (room) {
472
- return { location: room, immediateContainer: immediateLocation };
473
- }
474
- }
475
- }
476
- // Closed container - describe the container
477
- return { location: immediateLocation, immediateContainer: null };
478
- }
479
- // Default: describe what we're in
480
- return { location: immediateLocation, immediateContainer: null };
481
- }
482
- }
483
- exports.VisibilityBehavior = VisibilityBehavior;
484
- //# sourceMappingURL=VisibilityBehavior.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VisibilityBehavior.js","sourceRoot":"","sources":["../../src/world/VisibilityBehavior.ts"],"names":[],"mappings":"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"}