@sharpee/world-model 0.9.60-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 (566) hide show
  1. package/README.md +61 -0
  2. package/dist/behaviors/attack.d.ts +52 -0
  3. package/dist/behaviors/attack.d.ts.map +1 -0
  4. package/dist/behaviors/attack.js +161 -0
  5. package/dist/behaviors/attack.js.map +1 -0
  6. package/dist/behaviors/behavior.d.ts +67 -0
  7. package/dist/behaviors/behavior.d.ts.map +1 -0
  8. package/dist/behaviors/behavior.js +80 -0
  9. package/dist/behaviors/behavior.js.map +1 -0
  10. package/dist/behaviors/index.d.ts +21 -0
  11. package/dist/behaviors/index.d.ts.map +1 -0
  12. package/dist/behaviors/index.js +39 -0
  13. package/dist/behaviors/index.js.map +1 -0
  14. package/dist/capabilities/capability-behavior.d.ts +112 -0
  15. package/dist/capabilities/capability-behavior.d.ts.map +1 -0
  16. package/dist/capabilities/capability-behavior.js +9 -0
  17. package/dist/capabilities/capability-behavior.js.map +1 -0
  18. package/dist/capabilities/capability-defaults.d.ts +67 -0
  19. package/dist/capabilities/capability-defaults.d.ts.map +1 -0
  20. package/dist/capabilities/capability-defaults.js +81 -0
  21. package/dist/capabilities/capability-defaults.js.map +1 -0
  22. package/dist/capabilities/capability-helpers.d.ts +76 -0
  23. package/dist/capabilities/capability-helpers.d.ts.map +1 -0
  24. package/dist/capabilities/capability-helpers.js +112 -0
  25. package/dist/capabilities/capability-helpers.js.map +1 -0
  26. package/dist/capabilities/capability-registry.d.ts +115 -0
  27. package/dist/capabilities/capability-registry.d.ts.map +1 -0
  28. package/dist/capabilities/capability-registry.js +136 -0
  29. package/dist/capabilities/capability-registry.js.map +1 -0
  30. package/dist/capabilities/entity-builder.d.ts +79 -0
  31. package/dist/capabilities/entity-builder.d.ts.map +1 -0
  32. package/dist/capabilities/entity-builder.js +116 -0
  33. package/dist/capabilities/entity-builder.js.map +1 -0
  34. package/dist/capabilities/index.d.ts +13 -0
  35. package/dist/capabilities/index.d.ts.map +1 -0
  36. package/dist/capabilities/index.js +40 -0
  37. package/dist/capabilities/index.js.map +1 -0
  38. package/dist/capabilities/types.d.ts +35 -0
  39. package/dist/capabilities/types.d.ts.map +1 -0
  40. package/dist/capabilities/types.js +16 -0
  41. package/dist/capabilities/types.js.map +1 -0
  42. package/dist/commands/command-types.d.ts +30 -0
  43. package/dist/commands/command-types.d.ts.map +1 -0
  44. package/dist/commands/command-types.js +6 -0
  45. package/dist/commands/command-types.js.map +1 -0
  46. package/dist/commands/index.d.ts +7 -0
  47. package/dist/commands/index.d.ts.map +1 -0
  48. package/dist/commands/index.js +23 -0
  49. package/dist/commands/index.js.map +1 -0
  50. package/dist/commands/parsed-command.d.ts +204 -0
  51. package/dist/commands/parsed-command.d.ts.map +1 -0
  52. package/dist/commands/parsed-command.js +25 -0
  53. package/dist/commands/parsed-command.js.map +1 -0
  54. package/dist/commands/validated-command.d.ts +52 -0
  55. package/dist/commands/validated-command.d.ts.map +1 -0
  56. package/dist/commands/validated-command.js +8 -0
  57. package/dist/commands/validated-command.js.map +1 -0
  58. package/dist/constants/action-failures.d.ts +54 -0
  59. package/dist/constants/action-failures.d.ts.map +1 -0
  60. package/dist/constants/action-failures.js +68 -0
  61. package/dist/constants/action-failures.js.map +1 -0
  62. package/dist/constants/directions.d.ts +32 -0
  63. package/dist/constants/directions.d.ts.map +1 -0
  64. package/dist/constants/directions.js +53 -0
  65. package/dist/constants/directions.js.map +1 -0
  66. package/dist/constants/if-events.d.ts +5 -0
  67. package/dist/constants/if-events.d.ts.map +1 -0
  68. package/dist/constants/if-events.js +10 -0
  69. package/dist/constants/if-events.js.map +1 -0
  70. package/dist/constants/index.d.ts +9 -0
  71. package/dist/constants/index.d.ts.map +1 -0
  72. package/dist/constants/index.js +25 -0
  73. package/dist/constants/index.js.map +1 -0
  74. package/dist/entities/entity-store.d.ts +66 -0
  75. package/dist/entities/entity-store.d.ts.map +1 -0
  76. package/dist/entities/entity-store.js +116 -0
  77. package/dist/entities/entity-store.js.map +1 -0
  78. package/dist/entities/entity-types.d.ts +40 -0
  79. package/dist/entities/entity-types.d.ts.map +1 -0
  80. package/dist/entities/entity-types.js +56 -0
  81. package/dist/entities/entity-types.js.map +1 -0
  82. package/dist/entities/if-entity.d.ts +259 -0
  83. package/dist/entities/if-entity.d.ts.map +1 -0
  84. package/dist/entities/if-entity.js +498 -0
  85. package/dist/entities/if-entity.js.map +1 -0
  86. package/dist/entities/index.d.ts +5 -0
  87. package/dist/entities/index.d.ts.map +1 -0
  88. package/dist/entities/index.js +13 -0
  89. package/dist/entities/index.js.map +1 -0
  90. package/dist/events/types.d.ts +45 -0
  91. package/dist/events/types.d.ts.map +1 -0
  92. package/dist/events/types.js +9 -0
  93. package/dist/events/types.js.map +1 -0
  94. package/dist/examples/event-handler-registration.d.ts +14 -0
  95. package/dist/examples/event-handler-registration.d.ts.map +1 -0
  96. package/dist/examples/event-handler-registration.js +158 -0
  97. package/dist/examples/event-handler-registration.js.map +1 -0
  98. package/dist/extensions/base-extension.d.ts +69 -0
  99. package/dist/extensions/base-extension.d.ts.map +1 -0
  100. package/dist/extensions/base-extension.js +83 -0
  101. package/dist/extensions/base-extension.js.map +1 -0
  102. package/dist/extensions/index.d.ts +11 -0
  103. package/dist/extensions/index.d.ts.map +1 -0
  104. package/dist/extensions/index.js +39 -0
  105. package/dist/extensions/index.js.map +1 -0
  106. package/dist/extensions/loader.d.ts +52 -0
  107. package/dist/extensions/loader.d.ts.map +1 -0
  108. package/dist/extensions/loader.js +177 -0
  109. package/dist/extensions/loader.js.map +1 -0
  110. package/dist/extensions/manager.d.ts +68 -0
  111. package/dist/extensions/manager.d.ts.map +1 -0
  112. package/dist/extensions/manager.js +164 -0
  113. package/dist/extensions/manager.js.map +1 -0
  114. package/dist/extensions/registry.d.ts +100 -0
  115. package/dist/extensions/registry.d.ts.map +1 -0
  116. package/dist/extensions/registry.js +193 -0
  117. package/dist/extensions/registry.js.map +1 -0
  118. package/dist/extensions/types.d.ts +226 -0
  119. package/dist/extensions/types.d.ts.map +1 -0
  120. package/dist/extensions/types.js +28 -0
  121. package/dist/extensions/types.js.map +1 -0
  122. package/dist/index.d.ts +39 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +68 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/interfaces/command-executor.d.ts +17 -0
  127. package/dist/interfaces/command-executor.d.ts.map +1 -0
  128. package/dist/interfaces/command-executor.js +6 -0
  129. package/dist/interfaces/command-executor.js.map +1 -0
  130. package/dist/interfaces/command-processor.d.ts +17 -0
  131. package/dist/interfaces/command-processor.d.ts.map +1 -0
  132. package/dist/interfaces/command-processor.js +6 -0
  133. package/dist/interfaces/command-processor.js.map +1 -0
  134. package/dist/interfaces/command-validator.d.ts +17 -0
  135. package/dist/interfaces/command-validator.d.ts.map +1 -0
  136. package/dist/interfaces/command-validator.js +6 -0
  137. package/dist/interfaces/command-validator.js.map +1 -0
  138. package/dist/interfaces/index.d.ts +8 -0
  139. package/dist/interfaces/index.d.ts.map +1 -0
  140. package/dist/interfaces/index.js +24 -0
  141. package/dist/interfaces/index.js.map +1 -0
  142. package/dist/interfaces/language-provider.d.ts +86 -0
  143. package/dist/interfaces/language-provider.d.ts.map +1 -0
  144. package/dist/interfaces/language-provider.js +14 -0
  145. package/dist/interfaces/language-provider.js.map +1 -0
  146. package/dist/interfaces/parser.d.ts +16 -0
  147. package/dist/interfaces/parser.d.ts.map +1 -0
  148. package/dist/interfaces/parser.js +6 -0
  149. package/dist/interfaces/parser.js.map +1 -0
  150. package/dist/scope/index.d.ts +8 -0
  151. package/dist/scope/index.d.ts.map +1 -0
  152. package/dist/scope/index.js +24 -0
  153. package/dist/scope/index.js.map +1 -0
  154. package/dist/scope/scope-evaluator.d.ts +58 -0
  155. package/dist/scope/scope-evaluator.d.ts.map +1 -0
  156. package/dist/scope/scope-evaluator.js +207 -0
  157. package/dist/scope/scope-evaluator.js.map +1 -0
  158. package/dist/scope/scope-registry.d.ts +59 -0
  159. package/dist/scope/scope-registry.d.ts.map +1 -0
  160. package/dist/scope/scope-registry.js +182 -0
  161. package/dist/scope/scope-registry.js.map +1 -0
  162. package/dist/scope/scope-rule.d.ts +86 -0
  163. package/dist/scope/scope-rule.d.ts.map +1 -0
  164. package/dist/scope/scope-rule.js +7 -0
  165. package/dist/scope/scope-rule.js.map +1 -0
  166. package/dist/services/ScopeService.d.ts +8 -0
  167. package/dist/services/ScopeService.d.ts.map +1 -0
  168. package/dist/services/ScopeService.js +19 -0
  169. package/dist/services/ScopeService.js.map +1 -0
  170. package/dist/services/index.d.ts +2 -0
  171. package/dist/services/index.d.ts.map +1 -0
  172. package/dist/services/index.js +6 -0
  173. package/dist/services/index.js.map +1 -0
  174. package/dist/test-structure.d.ts +3 -0
  175. package/dist/test-structure.d.ts.map +1 -0
  176. package/dist/test-structure.js +26 -0
  177. package/dist/test-structure.js.map +1 -0
  178. package/dist/traits/actor/actorBehavior.d.ts +121 -0
  179. package/dist/traits/actor/actorBehavior.d.ts.map +1 -0
  180. package/dist/traits/actor/actorBehavior.js +288 -0
  181. package/dist/traits/actor/actorBehavior.js.map +1 -0
  182. package/dist/traits/actor/actorTrait.d.ts +158 -0
  183. package/dist/traits/actor/actorTrait.d.ts.map +1 -0
  184. package/dist/traits/actor/actorTrait.js +152 -0
  185. package/dist/traits/actor/actorTrait.js.map +1 -0
  186. package/dist/traits/actor/index.d.ts +3 -0
  187. package/dist/traits/actor/index.d.ts.map +1 -0
  188. package/dist/traits/actor/index.js +11 -0
  189. package/dist/traits/actor/index.js.map +1 -0
  190. package/dist/traits/all-traits.d.ts +95 -0
  191. package/dist/traits/all-traits.d.ts.map +1 -0
  192. package/dist/traits/all-traits.js +178 -0
  193. package/dist/traits/all-traits.js.map +1 -0
  194. package/dist/traits/attached/attachedTrait.d.ts +61 -0
  195. package/dist/traits/attached/attachedTrait.d.ts.map +1 -0
  196. package/dist/traits/attached/attachedTrait.js +36 -0
  197. package/dist/traits/attached/attachedTrait.js.map +1 -0
  198. package/dist/traits/attached/index.d.ts +2 -0
  199. package/dist/traits/attached/index.d.ts.map +1 -0
  200. package/dist/traits/attached/index.js +18 -0
  201. package/dist/traits/attached/index.js.map +1 -0
  202. package/dist/traits/breakable/breakableBehavior.d.ts +43 -0
  203. package/dist/traits/breakable/breakableBehavior.d.ts.map +1 -0
  204. package/dist/traits/breakable/breakableBehavior.js +70 -0
  205. package/dist/traits/breakable/breakableBehavior.js.map +1 -0
  206. package/dist/traits/breakable/breakableTrait.d.ts +22 -0
  207. package/dist/traits/breakable/breakableTrait.d.ts.map +1 -0
  208. package/dist/traits/breakable/breakableTrait.js +25 -0
  209. package/dist/traits/breakable/breakableTrait.js.map +1 -0
  210. package/dist/traits/breakable/index.d.ts +3 -0
  211. package/dist/traits/breakable/index.d.ts.map +1 -0
  212. package/dist/traits/breakable/index.js +8 -0
  213. package/dist/traits/breakable/index.js.map +1 -0
  214. package/dist/traits/button/buttonTrait.d.ts +53 -0
  215. package/dist/traits/button/buttonTrait.d.ts.map +1 -0
  216. package/dist/traits/button/buttonTrait.js +36 -0
  217. package/dist/traits/button/buttonTrait.js.map +1 -0
  218. package/dist/traits/button/index.d.ts +2 -0
  219. package/dist/traits/button/index.d.ts.map +1 -0
  220. package/dist/traits/button/index.js +18 -0
  221. package/dist/traits/button/index.js.map +1 -0
  222. package/dist/traits/climbable/climbableBehavior.d.ts +37 -0
  223. package/dist/traits/climbable/climbableBehavior.d.ts.map +1 -0
  224. package/dist/traits/climbable/climbableBehavior.js +70 -0
  225. package/dist/traits/climbable/climbableBehavior.js.map +1 -0
  226. package/dist/traits/climbable/climbableTrait.d.ts +31 -0
  227. package/dist/traits/climbable/climbableTrait.d.ts.map +1 -0
  228. package/dist/traits/climbable/climbableTrait.js +47 -0
  229. package/dist/traits/climbable/climbableTrait.js.map +1 -0
  230. package/dist/traits/climbable/index.d.ts +6 -0
  231. package/dist/traits/climbable/index.d.ts.map +1 -0
  232. package/dist/traits/climbable/index.js +22 -0
  233. package/dist/traits/climbable/index.js.map +1 -0
  234. package/dist/traits/clothing/clothingTrait.d.ts +58 -0
  235. package/dist/traits/clothing/clothingTrait.d.ts.map +1 -0
  236. package/dist/traits/clothing/clothingTrait.js +78 -0
  237. package/dist/traits/clothing/clothingTrait.js.map +1 -0
  238. package/dist/traits/clothing/index.d.ts +2 -0
  239. package/dist/traits/clothing/index.d.ts.map +1 -0
  240. package/dist/traits/clothing/index.js +19 -0
  241. package/dist/traits/clothing/index.js.map +1 -0
  242. package/dist/traits/combatant/combatantBehavior.d.ts +70 -0
  243. package/dist/traits/combatant/combatantBehavior.d.ts.map +1 -0
  244. package/dist/traits/combatant/combatantBehavior.js +155 -0
  245. package/dist/traits/combatant/combatantBehavior.js.map +1 -0
  246. package/dist/traits/combatant/combatantTrait.d.ts +98 -0
  247. package/dist/traits/combatant/combatantTrait.d.ts.map +1 -0
  248. package/dist/traits/combatant/combatantTrait.js +122 -0
  249. package/dist/traits/combatant/combatantTrait.js.map +1 -0
  250. package/dist/traits/combatant/index.d.ts +3 -0
  251. package/dist/traits/combatant/index.d.ts.map +1 -0
  252. package/dist/traits/combatant/index.js +8 -0
  253. package/dist/traits/combatant/index.js.map +1 -0
  254. package/dist/traits/container/container-utils.d.ts +39 -0
  255. package/dist/traits/container/container-utils.d.ts.map +1 -0
  256. package/dist/traits/container/container-utils.js +72 -0
  257. package/dist/traits/container/container-utils.js.map +1 -0
  258. package/dist/traits/container/containerBehavior.d.ts +94 -0
  259. package/dist/traits/container/containerBehavior.d.ts.map +1 -0
  260. package/dist/traits/container/containerBehavior.js +256 -0
  261. package/dist/traits/container/containerBehavior.js.map +1 -0
  262. package/dist/traits/container/containerTrait.d.ts +30 -0
  263. package/dist/traits/container/containerTrait.d.ts.map +1 -0
  264. package/dist/traits/container/containerTrait.js +45 -0
  265. package/dist/traits/container/containerTrait.js.map +1 -0
  266. package/dist/traits/container/index.d.ts +4 -0
  267. package/dist/traits/container/index.d.ts.map +1 -0
  268. package/dist/traits/container/index.js +14 -0
  269. package/dist/traits/container/index.js.map +1 -0
  270. package/dist/traits/destructible/destructibleBehavior.d.ts +57 -0
  271. package/dist/traits/destructible/destructibleBehavior.d.ts.map +1 -0
  272. package/dist/traits/destructible/destructibleBehavior.js +145 -0
  273. package/dist/traits/destructible/destructibleBehavior.js.map +1 -0
  274. package/dist/traits/destructible/destructibleTrait.d.ts +49 -0
  275. package/dist/traits/destructible/destructibleTrait.d.ts.map +1 -0
  276. package/dist/traits/destructible/destructibleTrait.js +43 -0
  277. package/dist/traits/destructible/destructibleTrait.js.map +1 -0
  278. package/dist/traits/destructible/index.d.ts +3 -0
  279. package/dist/traits/destructible/index.d.ts.map +1 -0
  280. package/dist/traits/destructible/index.js +8 -0
  281. package/dist/traits/destructible/index.js.map +1 -0
  282. package/dist/traits/door/doorBehavior.d.ts +42 -0
  283. package/dist/traits/door/doorBehavior.d.ts.map +1 -0
  284. package/dist/traits/door/doorBehavior.js +76 -0
  285. package/dist/traits/door/doorBehavior.js.map +1 -0
  286. package/dist/traits/door/doorTrait.d.ts +19 -0
  287. package/dist/traits/door/doorTrait.d.ts.map +1 -0
  288. package/dist/traits/door/doorTrait.js +33 -0
  289. package/dist/traits/door/doorTrait.js.map +1 -0
  290. package/dist/traits/door/index.d.ts +3 -0
  291. package/dist/traits/door/index.d.ts.map +1 -0
  292. package/dist/traits/door/index.js +9 -0
  293. package/dist/traits/door/index.js.map +1 -0
  294. package/dist/traits/edible/edibleBehavior.d.ts +63 -0
  295. package/dist/traits/edible/edibleBehavior.d.ts.map +1 -0
  296. package/dist/traits/edible/edibleBehavior.js +157 -0
  297. package/dist/traits/edible/edibleBehavior.js.map +1 -0
  298. package/dist/traits/edible/edibleTrait.d.ts +57 -0
  299. package/dist/traits/edible/edibleTrait.d.ts.map +1 -0
  300. package/dist/traits/edible/edibleTrait.js +51 -0
  301. package/dist/traits/edible/edibleTrait.js.map +1 -0
  302. package/dist/traits/edible/index.d.ts +3 -0
  303. package/dist/traits/edible/index.d.ts.map +1 -0
  304. package/dist/traits/edible/index.js +20 -0
  305. package/dist/traits/edible/index.js.map +1 -0
  306. package/dist/traits/enterable/enterableTrait.d.ts +33 -0
  307. package/dist/traits/enterable/enterableTrait.d.ts.map +1 -0
  308. package/dist/traits/enterable/enterableTrait.js +38 -0
  309. package/dist/traits/enterable/enterableTrait.js.map +1 -0
  310. package/dist/traits/enterable/index.d.ts +5 -0
  311. package/dist/traits/enterable/index.d.ts.map +1 -0
  312. package/dist/traits/enterable/index.js +21 -0
  313. package/dist/traits/enterable/index.js.map +1 -0
  314. package/dist/traits/equipped/equippedTrait.d.ts +46 -0
  315. package/dist/traits/equipped/equippedTrait.d.ts.map +1 -0
  316. package/dist/traits/equipped/equippedTrait.js +34 -0
  317. package/dist/traits/equipped/equippedTrait.js.map +1 -0
  318. package/dist/traits/equipped/index.d.ts +2 -0
  319. package/dist/traits/equipped/index.d.ts.map +1 -0
  320. package/dist/traits/equipped/index.js +6 -0
  321. package/dist/traits/equipped/index.js.map +1 -0
  322. package/dist/traits/exit/exitBehavior.d.ts +51 -0
  323. package/dist/traits/exit/exitBehavior.d.ts.map +1 -0
  324. package/dist/traits/exit/exitBehavior.js +231 -0
  325. package/dist/traits/exit/exitBehavior.js.map +1 -0
  326. package/dist/traits/exit/exitTrait.d.ts +41 -0
  327. package/dist/traits/exit/exitTrait.d.ts.map +1 -0
  328. package/dist/traits/exit/exitTrait.js +75 -0
  329. package/dist/traits/exit/exitTrait.js.map +1 -0
  330. package/dist/traits/exit/index.d.ts +3 -0
  331. package/dist/traits/exit/index.d.ts.map +1 -0
  332. package/dist/traits/exit/index.js +9 -0
  333. package/dist/traits/exit/index.js.map +1 -0
  334. package/dist/traits/identity/identityBehavior.d.ts +64 -0
  335. package/dist/traits/identity/identityBehavior.d.ts.map +1 -0
  336. package/dist/traits/identity/identityBehavior.js +154 -0
  337. package/dist/traits/identity/identityBehavior.js.map +1 -0
  338. package/dist/traits/identity/identityTrait.d.ts +70 -0
  339. package/dist/traits/identity/identityTrait.d.ts.map +1 -0
  340. package/dist/traits/identity/identityTrait.js +79 -0
  341. package/dist/traits/identity/identityTrait.js.map +1 -0
  342. package/dist/traits/identity/index.d.ts +3 -0
  343. package/dist/traits/identity/index.d.ts.map +1 -0
  344. package/dist/traits/identity/index.js +20 -0
  345. package/dist/traits/identity/index.js.map +1 -0
  346. package/dist/traits/implementations.d.ts +51 -0
  347. package/dist/traits/implementations.d.ts.map +1 -0
  348. package/dist/traits/implementations.js +145 -0
  349. package/dist/traits/implementations.js.map +1 -0
  350. package/dist/traits/index.d.ts +36 -0
  351. package/dist/traits/index.d.ts.map +1 -0
  352. package/dist/traits/index.js +62 -0
  353. package/dist/traits/index.js.map +1 -0
  354. package/dist/traits/light-source/index.d.ts +3 -0
  355. package/dist/traits/light-source/index.d.ts.map +1 -0
  356. package/dist/traits/light-source/index.js +9 -0
  357. package/dist/traits/light-source/index.js.map +1 -0
  358. package/dist/traits/light-source/lightSourceBehavior.d.ts +57 -0
  359. package/dist/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
  360. package/dist/traits/light-source/lightSourceBehavior.js +135 -0
  361. package/dist/traits/light-source/lightSourceBehavior.js.map +1 -0
  362. package/dist/traits/light-source/lightSourceTrait.d.ts +28 -0
  363. package/dist/traits/light-source/lightSourceTrait.d.ts.map +1 -0
  364. package/dist/traits/light-source/lightSourceTrait.js +37 -0
  365. package/dist/traits/light-source/lightSourceTrait.js.map +1 -0
  366. package/dist/traits/lockable/index.d.ts +3 -0
  367. package/dist/traits/lockable/index.d.ts.map +1 -0
  368. package/dist/traits/lockable/index.js +20 -0
  369. package/dist/traits/lockable/index.js.map +1 -0
  370. package/dist/traits/lockable/lockableBehavior.d.ts +88 -0
  371. package/dist/traits/lockable/lockableBehavior.d.ts.map +1 -0
  372. package/dist/traits/lockable/lockableBehavior.js +196 -0
  373. package/dist/traits/lockable/lockableBehavior.js.map +1 -0
  374. package/dist/traits/lockable/lockableTrait.d.ts +59 -0
  375. package/dist/traits/lockable/lockableTrait.d.ts.map +1 -0
  376. package/dist/traits/lockable/lockableTrait.js +50 -0
  377. package/dist/traits/lockable/lockableTrait.js.map +1 -0
  378. package/dist/traits/moveable-scenery/index.d.ts +2 -0
  379. package/dist/traits/moveable-scenery/index.d.ts.map +1 -0
  380. package/dist/traits/moveable-scenery/index.js +18 -0
  381. package/dist/traits/moveable-scenery/index.js.map +1 -0
  382. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
  383. package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
  384. package/dist/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
  385. package/dist/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
  386. package/dist/traits/npc/index.d.ts +5 -0
  387. package/dist/traits/npc/index.d.ts.map +1 -0
  388. package/dist/traits/npc/index.js +9 -0
  389. package/dist/traits/npc/index.js.map +1 -0
  390. package/dist/traits/npc/npcTrait.d.ts +128 -0
  391. package/dist/traits/npc/npcTrait.d.ts.map +1 -0
  392. package/dist/traits/npc/npcTrait.js +180 -0
  393. package/dist/traits/npc/npcTrait.js.map +1 -0
  394. package/dist/traits/openable/index.d.ts +3 -0
  395. package/dist/traits/openable/index.d.ts.map +1 -0
  396. package/dist/traits/openable/index.js +20 -0
  397. package/dist/traits/openable/index.js.map +1 -0
  398. package/dist/traits/openable/openableBehavior.d.ts +64 -0
  399. package/dist/traits/openable/openableBehavior.d.ts.map +1 -0
  400. package/dist/traits/openable/openableBehavior.js +109 -0
  401. package/dist/traits/openable/openableBehavior.js.map +1 -0
  402. package/dist/traits/openable/openableTrait.d.ts +46 -0
  403. package/dist/traits/openable/openableTrait.d.ts.map +1 -0
  404. package/dist/traits/openable/openableTrait.js +42 -0
  405. package/dist/traits/openable/openableTrait.js.map +1 -0
  406. package/dist/traits/portable/portableTrait.d.ts +26 -0
  407. package/dist/traits/portable/portableTrait.d.ts.map +1 -0
  408. package/dist/traits/portable/portableTrait.js +35 -0
  409. package/dist/traits/portable/portableTrait.js.map +1 -0
  410. package/dist/traits/pullable/index.d.ts +2 -0
  411. package/dist/traits/pullable/index.d.ts.map +1 -0
  412. package/dist/traits/pullable/index.js +18 -0
  413. package/dist/traits/pullable/index.js.map +1 -0
  414. package/dist/traits/pullable/pullableTrait.d.ts +81 -0
  415. package/dist/traits/pullable/pullableTrait.d.ts.map +1 -0
  416. package/dist/traits/pullable/pullableTrait.js +44 -0
  417. package/dist/traits/pullable/pullableTrait.js.map +1 -0
  418. package/dist/traits/pushable/index.d.ts +2 -0
  419. package/dist/traits/pushable/index.d.ts.map +1 -0
  420. package/dist/traits/pushable/index.js +18 -0
  421. package/dist/traits/pushable/index.js.map +1 -0
  422. package/dist/traits/pushable/pushableTrait.d.ts +81 -0
  423. package/dist/traits/pushable/pushableTrait.d.ts.map +1 -0
  424. package/dist/traits/pushable/pushableTrait.js +44 -0
  425. package/dist/traits/pushable/pushableTrait.js.map +1 -0
  426. package/dist/traits/readable/index.d.ts +3 -0
  427. package/dist/traits/readable/index.d.ts.map +1 -0
  428. package/dist/traits/readable/index.js +9 -0
  429. package/dist/traits/readable/index.js.map +1 -0
  430. package/dist/traits/readable/readableBehavior.d.ts +42 -0
  431. package/dist/traits/readable/readableBehavior.d.ts.map +1 -0
  432. package/dist/traits/readable/readableBehavior.js +174 -0
  433. package/dist/traits/readable/readableBehavior.js.map +1 -0
  434. package/dist/traits/readable/readableTrait.d.ts +37 -0
  435. package/dist/traits/readable/readableTrait.d.ts.map +1 -0
  436. package/dist/traits/readable/readableTrait.js +51 -0
  437. package/dist/traits/readable/readableTrait.js.map +1 -0
  438. package/dist/traits/register-all.d.ts +10 -0
  439. package/dist/traits/register-all.d.ts.map +1 -0
  440. package/dist/traits/register-all.js +19 -0
  441. package/dist/traits/register-all.js.map +1 -0
  442. package/dist/traits/room/index.d.ts +9 -0
  443. package/dist/traits/room/index.d.ts.map +1 -0
  444. package/dist/traits/room/index.js +14 -0
  445. package/dist/traits/room/index.js.map +1 -0
  446. package/dist/traits/room/roomBehavior.d.ts +87 -0
  447. package/dist/traits/room/roomBehavior.d.ts.map +1 -0
  448. package/dist/traits/room/roomBehavior.js +232 -0
  449. package/dist/traits/room/roomBehavior.js.map +1 -0
  450. package/dist/traits/room/roomTrait.d.ts +87 -0
  451. package/dist/traits/room/roomTrait.d.ts.map +1 -0
  452. package/dist/traits/room/roomTrait.js +59 -0
  453. package/dist/traits/room/roomTrait.js.map +1 -0
  454. package/dist/traits/scenery/index.d.ts +3 -0
  455. package/dist/traits/scenery/index.d.ts.map +1 -0
  456. package/dist/traits/scenery/index.js +9 -0
  457. package/dist/traits/scenery/index.js.map +1 -0
  458. package/dist/traits/scenery/sceneryBehavior.d.ts +21 -0
  459. package/dist/traits/scenery/sceneryBehavior.d.ts.map +1 -0
  460. package/dist/traits/scenery/sceneryBehavior.js +42 -0
  461. package/dist/traits/scenery/sceneryBehavior.js.map +1 -0
  462. package/dist/traits/scenery/sceneryTrait.d.ts +30 -0
  463. package/dist/traits/scenery/sceneryTrait.d.ts.map +1 -0
  464. package/dist/traits/scenery/sceneryTrait.js +39 -0
  465. package/dist/traits/scenery/sceneryTrait.js.map +1 -0
  466. package/dist/traits/supporter/index.d.ts +3 -0
  467. package/dist/traits/supporter/index.d.ts.map +1 -0
  468. package/dist/traits/supporter/index.js +9 -0
  469. package/dist/traits/supporter/index.js.map +1 -0
  470. package/dist/traits/supporter/supporterBehavior.d.ts +83 -0
  471. package/dist/traits/supporter/supporterBehavior.d.ts.map +1 -0
  472. package/dist/traits/supporter/supporterBehavior.js +210 -0
  473. package/dist/traits/supporter/supporterBehavior.js.map +1 -0
  474. package/dist/traits/supporter/supporterTrait.d.ts +26 -0
  475. package/dist/traits/supporter/supporterTrait.d.ts.map +1 -0
  476. package/dist/traits/supporter/supporterTrait.js +30 -0
  477. package/dist/traits/supporter/supporterTrait.js.map +1 -0
  478. package/dist/traits/switchable/index.d.ts +3 -0
  479. package/dist/traits/switchable/index.d.ts.map +1 -0
  480. package/dist/traits/switchable/index.js +20 -0
  481. package/dist/traits/switchable/index.js.map +1 -0
  482. package/dist/traits/switchable/switchableBehavior.d.ts +73 -0
  483. package/dist/traits/switchable/switchableBehavior.d.ts.map +1 -0
  484. package/dist/traits/switchable/switchableBehavior.js +191 -0
  485. package/dist/traits/switchable/switchableBehavior.js.map +1 -0
  486. package/dist/traits/switchable/switchableTrait.d.ts +61 -0
  487. package/dist/traits/switchable/switchableTrait.d.ts.map +1 -0
  488. package/dist/traits/switchable/switchableTrait.js +52 -0
  489. package/dist/traits/switchable/switchableTrait.js.map +1 -0
  490. package/dist/traits/trait-types.d.ts +81 -0
  491. package/dist/traits/trait-types.d.ts.map +1 -0
  492. package/dist/traits/trait-types.js +146 -0
  493. package/dist/traits/trait-types.js.map +1 -0
  494. package/dist/traits/trait.d.ts +42 -0
  495. package/dist/traits/trait.d.ts.map +1 -0
  496. package/dist/traits/trait.js +42 -0
  497. package/dist/traits/trait.js.map +1 -0
  498. package/dist/traits/vehicle/index.d.ts +6 -0
  499. package/dist/traits/vehicle/index.d.ts.map +1 -0
  500. package/dist/traits/vehicle/index.js +22 -0
  501. package/dist/traits/vehicle/index.js.map +1 -0
  502. package/dist/traits/vehicle/vehicleBehavior.d.ts +62 -0
  503. package/dist/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
  504. package/dist/traits/vehicle/vehicleBehavior.js +145 -0
  505. package/dist/traits/vehicle/vehicleBehavior.js.map +1 -0
  506. package/dist/traits/vehicle/vehicleTrait.d.ts +77 -0
  507. package/dist/traits/vehicle/vehicleTrait.d.ts.map +1 -0
  508. package/dist/traits/vehicle/vehicleTrait.js +92 -0
  509. package/dist/traits/vehicle/vehicleTrait.js.map +1 -0
  510. package/dist/traits/weapon/index.d.ts +3 -0
  511. package/dist/traits/weapon/index.d.ts.map +1 -0
  512. package/dist/traits/weapon/index.js +8 -0
  513. package/dist/traits/weapon/index.js.map +1 -0
  514. package/dist/traits/weapon/weaponBehavior.d.ts +47 -0
  515. package/dist/traits/weapon/weaponBehavior.d.ts.map +1 -0
  516. package/dist/traits/weapon/weaponBehavior.js +106 -0
  517. package/dist/traits/weapon/weaponBehavior.js.map +1 -0
  518. package/dist/traits/weapon/weaponTrait.d.ts +67 -0
  519. package/dist/traits/weapon/weaponTrait.d.ts.map +1 -0
  520. package/dist/traits/weapon/weaponTrait.js +60 -0
  521. package/dist/traits/weapon/weaponTrait.js.map +1 -0
  522. package/dist/traits/wearable/index.d.ts +3 -0
  523. package/dist/traits/wearable/index.d.ts.map +1 -0
  524. package/dist/traits/wearable/index.js +20 -0
  525. package/dist/traits/wearable/index.js.map +1 -0
  526. package/dist/traits/wearable/wearableBehavior.d.ts +64 -0
  527. package/dist/traits/wearable/wearableBehavior.d.ts.map +1 -0
  528. package/dist/traits/wearable/wearableBehavior.js +142 -0
  529. package/dist/traits/wearable/wearableBehavior.js.map +1 -0
  530. package/dist/traits/wearable/wearableTrait.d.ts +54 -0
  531. package/dist/traits/wearable/wearableTrait.d.ts.map +1 -0
  532. package/dist/traits/wearable/wearableTrait.js +53 -0
  533. package/dist/traits/wearable/wearableTrait.js.map +1 -0
  534. package/dist/utils/event-utils.d.ts +30 -0
  535. package/dist/utils/event-utils.d.ts.map +1 -0
  536. package/dist/utils/event-utils.js +33 -0
  537. package/dist/utils/event-utils.js.map +1 -0
  538. package/dist/world/AuthorModel.d.ts +151 -0
  539. package/dist/world/AuthorModel.d.ts.map +1 -0
  540. package/dist/world/AuthorModel.js +416 -0
  541. package/dist/world/AuthorModel.js.map +1 -0
  542. package/dist/world/SharedDataStore.d.ts +24 -0
  543. package/dist/world/SharedDataStore.d.ts.map +1 -0
  544. package/dist/world/SharedDataStore.js +50 -0
  545. package/dist/world/SharedDataStore.js.map +1 -0
  546. package/dist/world/SpatialIndex.d.ts +16 -0
  547. package/dist/world/SpatialIndex.d.ts.map +1 -0
  548. package/dist/world/SpatialIndex.js +117 -0
  549. package/dist/world/SpatialIndex.js.map +1 -0
  550. package/dist/world/VisibilityBehavior.d.ts +83 -0
  551. package/dist/world/VisibilityBehavior.d.ts.map +1 -0
  552. package/dist/world/VisibilityBehavior.js +484 -0
  553. package/dist/world/VisibilityBehavior.js.map +1 -0
  554. package/dist/world/WorldModel.d.ts +270 -0
  555. package/dist/world/WorldModel.d.ts.map +1 -0
  556. package/dist/world/WorldModel.js +1028 -0
  557. package/dist/world/WorldModel.js.map +1 -0
  558. package/dist/world/capabilities.d.ts +36 -0
  559. package/dist/world/capabilities.d.ts.map +1 -0
  560. package/dist/world/capabilities.js +18 -0
  561. package/dist/world/capabilities.js.map +1 -0
  562. package/dist/world/index.d.ts +7 -0
  563. package/dist/world/index.d.ts.map +1 -0
  564. package/dist/world/index.js +21 -0
  565. package/dist/world/index.js.map +1 -0
  566. package/package.json +67 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Register all built-in traits with the trait registry.
3
+ * This should be called during application initialization.
4
+ *
5
+ * Note: All traits are now available through the TRAIT_IMPLEMENTATIONS map
6
+ * in implementations.ts. The registry pattern is optional and may be
7
+ * removed in the future.
8
+ */
9
+ export declare function registerAllTraits(): void;
10
+ //# sourceMappingURL=register-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-all.d.ts","sourceRoot":"","sources":["../../src/traits/register-all.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/register-all.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.registerAllTraits = registerAllTraits;
5
+ /**
6
+ * Register all built-in traits with the trait registry.
7
+ * This should be called during application initialization.
8
+ *
9
+ * Note: All traits are now available through the TRAIT_IMPLEMENTATIONS map
10
+ * in implementations.ts. The registry pattern is optional and may be
11
+ * removed in the future.
12
+ */
13
+ function registerAllTraits() {
14
+ // All traits are now available through the TRAIT_IMPLEMENTATIONS map
15
+ // Registration is optional and handled through the implementations map
16
+ // TODO: Consider removing this file and the registry pattern entirely
17
+ // as we're using the implementations map for trait lookup
18
+ }
19
+ //# sourceMappingURL=register-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../src/traits/register-all.ts"],"names":[],"mappings":";AAAA,kDAAkD;;AAUlD,8CAMC;AAdD;;;;;;;GAOG;AACH,SAAgB,iBAAiB;IAC/B,qEAAqE;IACrE,uEAAuE;IAEvE,sEAAsE;IACtE,0DAA0D;AAC5D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Room trait module
3
+ *
4
+ * Exports both the trait and behavior for rooms.
5
+ * Rooms are special entities that represent locations in the game world.
6
+ */
7
+ export { RoomTrait } from './roomTrait';
8
+ export { RoomBehavior } from './roomBehavior';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/room/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Room trait module
4
+ *
5
+ * Exports both the trait and behavior for rooms.
6
+ * Rooms are special entities that represent locations in the game world.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RoomBehavior = exports.RoomTrait = void 0;
10
+ var roomTrait_1 = require("./roomTrait");
11
+ Object.defineProperty(exports, "RoomTrait", { enumerable: true, get: function () { return roomTrait_1.RoomTrait; } });
12
+ var roomBehavior_1 = require("./roomBehavior");
13
+ Object.defineProperty(exports, "RoomBehavior", { enumerable: true, get: function () { return roomBehavior_1.RoomBehavior; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/room/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,87 @@
1
+ import { Behavior } from '../../behaviors/behavior';
2
+ import { IFEntity } from '../../entities/if-entity';
3
+ import { IExitInfo } from './roomTrait';
4
+ import { ISemanticEvent } from '@sharpee/core';
5
+ import { DirectionType } from '../../constants/directions';
6
+ /**
7
+ * Behavior for room entities.
8
+ *
9
+ * Handles the logic for rooms including exits, lighting, and visits.
10
+ * All methods are pure and only operate on the given room entity.
11
+ */
12
+ export declare class RoomBehavior extends Behavior {
13
+ static requiredTraits: "room"[];
14
+ /**
15
+ * Get the exit in a given direction
16
+ */
17
+ static getExit(room: IFEntity, direction: DirectionType): IExitInfo | null;
18
+ /**
19
+ * Check if an exit exists in a direction
20
+ */
21
+ static hasExit(room: IFEntity, direction: DirectionType): boolean;
22
+ /**
23
+ * Check if an exit is blocked
24
+ */
25
+ static isExitBlocked(room: IFEntity, direction: DirectionType): boolean;
26
+ /**
27
+ * Get blocked exit message
28
+ */
29
+ static getBlockedMessage(room: IFEntity, direction: DirectionType): string | undefined;
30
+ /**
31
+ * Add or update an exit in this room
32
+ */
33
+ static setExit(room: IFEntity, direction: DirectionType, destination: string, via?: string): void;
34
+ /**
35
+ * Block an exit with a message
36
+ */
37
+ static blockExit(room: IFEntity, direction: DirectionType, message: string): ISemanticEvent[];
38
+ /**
39
+ * Unblock an exit
40
+ */
41
+ static unblockExit(room: IFEntity, direction: DirectionType): ISemanticEvent[];
42
+ /**
43
+ * Remove an exit from this room
44
+ */
45
+ static removeExit(room: IFEntity, direction: DirectionType): void;
46
+ /**
47
+ * Mark room as visited
48
+ */
49
+ static markVisited(room: IFEntity, actor: IFEntity): ISemanticEvent[];
50
+ /**
51
+ * Check if room has been visited
52
+ */
53
+ static hasBeenVisited(room: IFEntity): boolean;
54
+ /**
55
+ * Get all exits from the room
56
+ */
57
+ static getAllExits(room: IFEntity): Map<DirectionType, IExitInfo>;
58
+ /**
59
+ * Get available (non-blocked) exits
60
+ */
61
+ static getAvailableExits(room: IFEntity): Map<DirectionType, IExitInfo>;
62
+ /**
63
+ * Check if room is outdoors
64
+ */
65
+ static isOutdoors(room: IFEntity): boolean;
66
+ /**
67
+ * Check if room is underground
68
+ */
69
+ static isUnderground(room: IFEntity): boolean;
70
+ /**
71
+ * Get room region
72
+ */
73
+ static getRegion(room: IFEntity): string | undefined;
74
+ /**
75
+ * Check if room has a specific tag
76
+ */
77
+ static hasTag(room: IFEntity, tag: string): boolean;
78
+ /**
79
+ * Add a tag to the room
80
+ */
81
+ static addTag(room: IFEntity, tag: string): void;
82
+ /**
83
+ * Remove a tag from the room
84
+ */
85
+ static removeTag(room: IFEntity, tag: string): void;
86
+ }
87
+ //# sourceMappingURL=roomBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/room/roomBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAa,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAa,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AAG5F;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,cAAc,WAAoB;IAEzC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAS1E;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IAIjE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IAKvE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAKtF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBjG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAuB7F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE;IA2B9E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAcjE;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,cAAc,EAAE;IAuBrE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAM9C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;IAQjE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;IAiBvE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK1C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK7C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAKpD;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnD;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAQpD"}
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/room/roomBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RoomBehavior = void 0;
5
+ const behavior_1 = require("../../behaviors/behavior");
6
+ const trait_types_1 = require("../trait-types");
7
+ const if_events_1 = require("../../constants/if-events");
8
+ /**
9
+ * Behavior for room entities.
10
+ *
11
+ * Handles the logic for rooms including exits, lighting, and visits.
12
+ * All methods are pure and only operate on the given room entity.
13
+ */
14
+ class RoomBehavior extends behavior_1.Behavior {
15
+ static requiredTraits = [trait_types_1.TraitType.ROOM];
16
+ /**
17
+ * Get the exit in a given direction
18
+ */
19
+ static getExit(room, direction) {
20
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
21
+ if (!roomTrait.exits) {
22
+ return null;
23
+ }
24
+ const exitInfo = roomTrait.exits[direction];
25
+ return exitInfo || null;
26
+ }
27
+ /**
28
+ * Check if an exit exists in a direction
29
+ */
30
+ static hasExit(room, direction) {
31
+ return this.getExit(room, direction) !== undefined;
32
+ }
33
+ /**
34
+ * Check if an exit is blocked
35
+ */
36
+ static isExitBlocked(room, direction) {
37
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
38
+ return roomTrait.blockedExits?.hasOwnProperty(direction) ?? false;
39
+ }
40
+ /**
41
+ * Get blocked exit message
42
+ */
43
+ static getBlockedMessage(room, direction) {
44
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
45
+ return roomTrait.blockedExits?.[direction];
46
+ }
47
+ /**
48
+ * Add or update an exit in this room
49
+ */
50
+ static setExit(room, direction, destination, via) {
51
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
52
+ // Initialize exits if needed
53
+ if (!roomTrait.exits) {
54
+ roomTrait.exits = {};
55
+ }
56
+ roomTrait.exits[direction] = {
57
+ destination,
58
+ via
59
+ };
60
+ // Remove any blocked message for this direction
61
+ if (roomTrait.blockedExits) {
62
+ delete roomTrait.blockedExits[direction];
63
+ }
64
+ }
65
+ /**
66
+ * Block an exit with a message
67
+ */
68
+ static blockExit(room, direction, message) {
69
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
70
+ if (!roomTrait.blockedExits) {
71
+ roomTrait.blockedExits = {};
72
+ }
73
+ roomTrait.blockedExits[direction] = message;
74
+ return [{
75
+ id: `${Date.now()}-${Math.random()}`,
76
+ timestamp: Date.now(),
77
+ type: if_events_1.IFEvents.MOVEMENT_BLOCKED,
78
+ entities: {
79
+ location: room.id
80
+ },
81
+ data: {
82
+ direction: direction,
83
+ message
84
+ }
85
+ }];
86
+ }
87
+ /**
88
+ * Unblock an exit
89
+ */
90
+ static unblockExit(room, direction) {
91
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
92
+ if (!roomTrait.blockedExits) {
93
+ return [];
94
+ }
95
+ if (!roomTrait.blockedExits[direction]) {
96
+ return [];
97
+ }
98
+ delete roomTrait.blockedExits[direction];
99
+ return [{
100
+ id: `${Date.now()}-${Math.random()}`,
101
+ timestamp: Date.now(),
102
+ type: if_events_1.IFEvents.NEW_EXIT_REVEALED,
103
+ entities: {
104
+ location: room.id
105
+ },
106
+ data: {
107
+ direction: direction,
108
+ unblocked: true
109
+ }
110
+ }];
111
+ }
112
+ /**
113
+ * Remove an exit from this room
114
+ */
115
+ static removeExit(room, direction) {
116
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
117
+ // Remove the exit if exits exist
118
+ if (roomTrait.exits) {
119
+ delete roomTrait.exits[direction];
120
+ }
121
+ // Remove any blocked message
122
+ if (roomTrait.blockedExits) {
123
+ delete roomTrait.blockedExits[direction];
124
+ }
125
+ }
126
+ /**
127
+ * Mark room as visited
128
+ */
129
+ static markVisited(room, actor) {
130
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
131
+ if (roomTrait.visited) {
132
+ return [];
133
+ }
134
+ roomTrait.visited = true;
135
+ return [{
136
+ id: `${Date.now()}-${Math.random()}`,
137
+ timestamp: Date.now(),
138
+ type: if_events_1.IFEvents.ROOM_FIRST_ENTERED,
139
+ entities: {
140
+ location: room.id,
141
+ actor: actor.id
142
+ },
143
+ data: {
144
+ hasInitialDescription: !!roomTrait.initialDescription
145
+ }
146
+ }];
147
+ }
148
+ /**
149
+ * Check if room has been visited
150
+ */
151
+ static hasBeenVisited(room) {
152
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
153
+ return roomTrait.visited;
154
+ }
155
+ /**
156
+ * Get all exits from the room
157
+ */
158
+ static getAllExits(room) {
159
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
160
+ if (!roomTrait.exits) {
161
+ return new Map();
162
+ }
163
+ return new Map(Object.entries(roomTrait.exits));
164
+ }
165
+ /**
166
+ * Get available (non-blocked) exits
167
+ */
168
+ static getAvailableExits(room) {
169
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
170
+ const available = new Map();
171
+ if (!roomTrait.exits) {
172
+ return available;
173
+ }
174
+ for (const [direction, exitInfo] of Object.entries(roomTrait.exits)) {
175
+ if (!this.isExitBlocked(room, direction)) {
176
+ available.set(direction, exitInfo);
177
+ }
178
+ }
179
+ return available;
180
+ }
181
+ /**
182
+ * Check if room is outdoors
183
+ */
184
+ static isOutdoors(room) {
185
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
186
+ return roomTrait.isOutdoors || false;
187
+ }
188
+ /**
189
+ * Check if room is underground
190
+ */
191
+ static isUnderground(room) {
192
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
193
+ return roomTrait.isUnderground || false;
194
+ }
195
+ /**
196
+ * Get room region
197
+ */
198
+ static getRegion(room) {
199
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
200
+ return roomTrait.region;
201
+ }
202
+ /**
203
+ * Check if room has a specific tag
204
+ */
205
+ static hasTag(room, tag) {
206
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
207
+ return roomTrait.tags.includes(tag.toLowerCase());
208
+ }
209
+ /**
210
+ * Add a tag to the room
211
+ */
212
+ static addTag(room, tag) {
213
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
214
+ const normalizedTag = tag.toLowerCase();
215
+ if (!roomTrait.tags.includes(normalizedTag)) {
216
+ roomTrait.tags.push(normalizedTag);
217
+ }
218
+ }
219
+ /**
220
+ * Remove a tag from the room
221
+ */
222
+ static removeTag(room, tag) {
223
+ const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
224
+ const normalizedTag = tag.toLowerCase();
225
+ const index = roomTrait.tags.indexOf(normalizedTag);
226
+ if (index >= 0) {
227
+ roomTrait.tags.splice(index, 1);
228
+ }
229
+ }
230
+ }
231
+ exports.RoomBehavior = RoomBehavior;
232
+ //# sourceMappingURL=roomBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomBehavior.js","sourceRoot":"","sources":["../../../src/traits/room/roomBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { ITrait } from '../trait';
2
+ import { DirectionType } from '../../constants/directions';
3
+ export interface IExitInfo {
4
+ /** The destination room ID (must be an entity ID, not a name) */
5
+ destination: string;
6
+ /** Optional door/portal entity ID that must be traversed (must be an entity ID, not a name) */
7
+ via?: string;
8
+ }
9
+ export interface IRoomData {
10
+ /** Whether this room has been visited by the player */
11
+ visited?: boolean;
12
+ /** Exits from this room */
13
+ exits?: Partial<Record<DirectionType, IExitInfo>>;
14
+ /** Custom messages for blocked exits */
15
+ blockedExits?: Partial<Record<DirectionType, string>>;
16
+ /** Whether this is an outdoor location */
17
+ outdoor?: boolean;
18
+ /** Whether this room is dark (requires light source to see) */
19
+ isDark?: boolean;
20
+ /** Whether this room is affected by time of day (for outdoor locations) */
21
+ isOutdoors?: boolean;
22
+ /** Whether this room is underground (never has natural light) */
23
+ isUnderground?: boolean;
24
+ /** Initial description (shown on first visit) */
25
+ initialDescription?: string;
26
+ /**
27
+ * Message ID for localized initial description (ADR-107).
28
+ * If set, takes precedence over literal `initialDescription`.
29
+ */
30
+ initialDescriptionId?: string;
31
+ /** Ambient sound description */
32
+ ambientSound?: string;
33
+ /** Ambient smell description */
34
+ ambientSmell?: string;
35
+ /** Region or area this room belongs to */
36
+ region?: string;
37
+ /** Tags for categorizing rooms */
38
+ tags?: string[];
39
+ /** Capacity constraints for the room (optional) */
40
+ capacity?: {
41
+ /** Maximum total weight the room can hold (in kg) */
42
+ maxWeight?: number;
43
+ /** Maximum total volume the room can hold (in liters) */
44
+ maxVolume?: number;
45
+ /** Maximum number of items the room can hold */
46
+ maxItems?: number;
47
+ };
48
+ /** Only these entity types can be placed in the room */
49
+ allowedTypes?: string[];
50
+ /** These entity types cannot be placed in the room */
51
+ excludedTypes?: string[];
52
+ }
53
+ /**
54
+ * Room trait marks an entity as a location/room in the game world.
55
+ * Rooms are special entities that represent locations and can contain other entities.
56
+ *
57
+ * Rooms inherently have container functionality - they can hold items, actors, and other entities.
58
+ * The actual containment relationships are stored in the SpatialIndex, not in the trait itself.
59
+ */
60
+ export declare class RoomTrait implements ITrait, IRoomData {
61
+ static readonly type: "room";
62
+ readonly type: "room";
63
+ visited: boolean;
64
+ exits: Partial<Record<DirectionType, IExitInfo>>;
65
+ blockedExits?: Partial<Record<DirectionType, string>>;
66
+ outdoor: boolean;
67
+ isDark: boolean;
68
+ isOutdoors: boolean;
69
+ isUnderground: boolean;
70
+ initialDescription?: string;
71
+ initialDescriptionId?: string;
72
+ ambientSound?: string;
73
+ ambientSmell?: string;
74
+ region?: string;
75
+ tags: string[];
76
+ capacity?: {
77
+ maxWeight?: number;
78
+ maxVolume?: number;
79
+ maxItems?: number;
80
+ };
81
+ allowedTypes?: string[];
82
+ excludedTypes?: string[];
83
+ readonly isTransparent: boolean;
84
+ readonly enterable: boolean;
85
+ constructor(data?: IRoomData);
86
+ }
87
+ //# sourceMappingURL=roomTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/room/roomTrait.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RoomTrait = void 0;
5
+ const trait_types_1 = require("../trait-types");
6
+ /**
7
+ * Room trait marks an entity as a location/room in the game world.
8
+ * Rooms are special entities that represent locations and can contain other entities.
9
+ *
10
+ * Rooms inherently have container functionality - they can hold items, actors, and other entities.
11
+ * The actual containment relationships are stored in the SpatialIndex, not in the trait itself.
12
+ */
13
+ class RoomTrait {
14
+ static type = trait_types_1.TraitType.ROOM;
15
+ type = trait_types_1.TraitType.ROOM;
16
+ // RoomData properties
17
+ visited;
18
+ exits;
19
+ blockedExits;
20
+ outdoor;
21
+ isDark;
22
+ isOutdoors;
23
+ isUnderground;
24
+ initialDescription;
25
+ initialDescriptionId;
26
+ ambientSound;
27
+ ambientSmell;
28
+ region;
29
+ tags;
30
+ // Container functionality
31
+ capacity;
32
+ allowedTypes;
33
+ excludedTypes;
34
+ // Rooms are always transparent (contents visible) and enterable
35
+ isTransparent = true;
36
+ enterable = true;
37
+ constructor(data = {}) {
38
+ // Set defaults and merge with provided data
39
+ this.visited = data.visited ?? false;
40
+ this.exits = data.exits ?? {};
41
+ this.blockedExits = data.blockedExits;
42
+ this.outdoor = data.outdoor ?? false;
43
+ this.isDark = data.isDark ?? false; // Default to lit
44
+ this.isOutdoors = data.isOutdoors ?? false;
45
+ this.isUnderground = data.isUnderground ?? false;
46
+ this.initialDescription = data.initialDescription;
47
+ this.initialDescriptionId = data.initialDescriptionId;
48
+ this.ambientSound = data.ambientSound;
49
+ this.ambientSmell = data.ambientSmell;
50
+ this.region = data.region;
51
+ this.tags = data.tags ?? [];
52
+ // Container properties
53
+ this.capacity = data.capacity;
54
+ this.allowedTypes = data.allowedTypes;
55
+ this.excludedTypes = data.excludedTypes;
56
+ }
57
+ }
58
+ exports.RoomTrait = RoomTrait;
59
+ //# sourceMappingURL=roomTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomTrait.js","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;AA0E3C;;;;;;GAMG;AACH,MAAa,SAAS;IACpB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAE/B,sBAAsB;IACtB,OAAO,CAAU;IACjB,KAAK,CAA4C;IACjD,YAAY,CAA0C;IACtD,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,aAAa,CAAU;IACvB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,YAAY,CAAU;IACtB,YAAY,CAAU;IACtB,MAAM,CAAU;IAChB,IAAI,CAAW;IAEf,0BAA0B;IAC1B,QAAQ,CAIN;IACF,YAAY,CAAY;IACxB,aAAa,CAAY;IAEzB,gEAAgE;IACvD,aAAa,GAAY,IAAI,CAAC;IAC9B,SAAS,GAAY,IAAI,CAAC;IAEnC,YAAY,OAAkB,EAAE;QAC9B,4CAA4C;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAA+C,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAE,iBAAiB;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;;AApDH,8BAqDC"}
@@ -0,0 +1,3 @@
1
+ export { SceneryTrait } from './sceneryTrait';
2
+ export { SceneryBehavior } from './sceneryBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/scenery/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/scenery/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SceneryBehavior = exports.SceneryTrait = void 0;
5
+ var sceneryTrait_1 = require("./sceneryTrait");
6
+ Object.defineProperty(exports, "SceneryTrait", { enumerable: true, get: function () { return sceneryTrait_1.SceneryTrait; } });
7
+ var sceneryBehavior_1 = require("./sceneryBehavior");
8
+ Object.defineProperty(exports, "SceneryBehavior", { enumerable: true, get: function () { return sceneryBehavior_1.SceneryBehavior; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/scenery/index.ts"],"names":[],"mappings":";AAAA,mDAAmD;;;AAEnD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,21 @@
1
+ import { IFEntity } from '../../entities/if-entity';
2
+ /**
3
+ * Behavior for scenery entities.
4
+ * Handles logic related to fixed-in-place objects.
5
+ */
6
+ export declare class SceneryBehavior {
7
+ static readonly requiredTraits: "scenery"[];
8
+ /**
9
+ * Get the reason why this item can't be taken
10
+ */
11
+ static getUntakeableReason(entity: IFEntity): string;
12
+ /**
13
+ * Get the custom can't-take message if any
14
+ */
15
+ static getCantTakeMessage(entity: IFEntity): string | undefined;
16
+ /**
17
+ * Check if this scenery should be mentioned in room descriptions
18
+ */
19
+ static isMentioned(entity: IFEntity): boolean;
20
+ }
21
+ //# sourceMappingURL=sceneryBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sceneryBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/scenery/sceneryBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,MAAM,CAAC,QAAQ,CAAC,cAAc,cAAuB;IAErD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAapD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAK/D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAI9C"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/scenery/sceneryBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SceneryBehavior = void 0;
5
+ const trait_types_1 = require("../trait-types");
6
+ /**
7
+ * Behavior for scenery entities.
8
+ * Handles logic related to fixed-in-place objects.
9
+ */
10
+ class SceneryBehavior {
11
+ static requiredTraits = [trait_types_1.TraitType.SCENERY];
12
+ /**
13
+ * Get the reason why this item can't be taken
14
+ */
15
+ static getUntakeableReason(entity) {
16
+ const trait = entity.get(trait_types_1.TraitType.SCENERY);
17
+ if (!trait)
18
+ return 'not_scenery';
19
+ // If there's a custom message, return a marker for it
20
+ if (trait.cantTakeMessage) {
21
+ return 'custom_message';
22
+ }
23
+ // Default reason
24
+ return 'fixed_in_place';
25
+ }
26
+ /**
27
+ * Get the custom can't-take message if any
28
+ */
29
+ static getCantTakeMessage(entity) {
30
+ const trait = entity.get(trait_types_1.TraitType.SCENERY);
31
+ return trait?.cantTakeMessage;
32
+ }
33
+ /**
34
+ * Check if this scenery should be mentioned in room descriptions
35
+ */
36
+ static isMentioned(entity) {
37
+ const trait = entity.get(trait_types_1.TraitType.SCENERY);
38
+ return trait ? trait.mentioned : true;
39
+ }
40
+ }
41
+ exports.SceneryBehavior = SceneryBehavior;
42
+ //# sourceMappingURL=sceneryBehavior.js.map