@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,154 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/identity/identityBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.IdentityBehavior = void 0;
5
+ const behavior_1 = require("../../behaviors/behavior");
6
+ const trait_types_1 = require("../trait-types");
7
+ /**
8
+ * Behavior for entities with identity.
9
+ *
10
+ * Handles name formatting, visibility, and validation of identity data.
11
+ */
12
+ class IdentityBehavior extends behavior_1.Behavior {
13
+ static requiredTraits = [trait_types_1.TraitType.IDENTITY];
14
+ /**
15
+ * Check if identity data is valid for game use
16
+ * @throws Error if identity data is invalid
17
+ */
18
+ static validateIdentity(entity) {
19
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
20
+ if (!identity.name || !identity.name.trim()) {
21
+ throw new Error(`Entity ${entity.id} has no name`);
22
+ }
23
+ if (identity.properName && identity.article) {
24
+ // Proper names shouldn't have articles
25
+ identity.article = '';
26
+ }
27
+ if (identity.weight !== undefined && identity.weight < 0) {
28
+ throw new Error(`Entity ${entity.id} has negative weight`);
29
+ }
30
+ if (identity.volume !== undefined && identity.volume < 0) {
31
+ throw new Error(`Entity ${entity.id} has negative volume`);
32
+ }
33
+ const validSizes = ['tiny', 'small', 'medium', 'large', 'huge'];
34
+ if (identity.size !== undefined && !validSizes.includes(identity.size)) {
35
+ throw new Error(`Entity ${entity.id} has invalid size: ${identity.size}`);
36
+ }
37
+ }
38
+ /**
39
+ * Format an entity's name for display with proper article
40
+ */
41
+ static formatName(entity, options) {
42
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
43
+ let name;
44
+ if (identity.properName || !identity.article) {
45
+ name = identity.name;
46
+ }
47
+ else {
48
+ name = `${identity.article} ${identity.name}`;
49
+ }
50
+ // Handle definite article request
51
+ if (options?.definite && !identity.properName && identity.article !== 'the') {
52
+ name = `the ${identity.name}`;
53
+ }
54
+ // Handle capitalization
55
+ if (options?.capitalize) {
56
+ name = name.charAt(0).toUpperCase() + name.slice(1);
57
+ }
58
+ return name;
59
+ }
60
+ /**
61
+ * Get a possessive form of the entity's name
62
+ */
63
+ static getPossessiveName(entity) {
64
+ const name = IdentityBehavior.formatName(entity);
65
+ // Handle names ending in 's'
66
+ if (name.endsWith('s')) {
67
+ return `${name}'`;
68
+ }
69
+ return `${name}'s`;
70
+ }
71
+ /**
72
+ * Check if a given name matches this entity
73
+ */
74
+ static matchesName(entity, name) {
75
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
76
+ const lowerName = name.toLowerCase();
77
+ // Check main name
78
+ if (identity.name.toLowerCase() === lowerName)
79
+ return true;
80
+ // Check aliases
81
+ return identity.aliases.some((alias) => alias.toLowerCase() === lowerName);
82
+ }
83
+ /**
84
+ * Check if an entity should be visible in normal circumstances
85
+ */
86
+ static isConcealed(entity) {
87
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
88
+ return identity.concealed;
89
+ }
90
+ /**
91
+ * Set whether an entity is concealed
92
+ */
93
+ static setConcealed(entity, concealed) {
94
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
95
+ identity.concealed = concealed;
96
+ }
97
+ /**
98
+ * Reveal a concealed entity (convenience method)
99
+ */
100
+ static reveal(entity) {
101
+ IdentityBehavior.setConcealed(entity, false);
102
+ }
103
+ /**
104
+ * Conceal an entity (convenience method)
105
+ */
106
+ static conceal(entity) {
107
+ IdentityBehavior.setConcealed(entity, true);
108
+ }
109
+ /**
110
+ * Get the weight of the entity (not including contents)
111
+ */
112
+ static getWeight(entity) {
113
+ if (!entity.has(trait_types_1.TraitType.IDENTITY)) {
114
+ return 0; // Default weight for items without identity trait
115
+ }
116
+ const identity = entity.get(trait_types_1.TraitType.IDENTITY);
117
+ return identity?.weight || 0;
118
+ }
119
+ /**
120
+ * Get the volume of the entity
121
+ */
122
+ static getVolume(entity) {
123
+ if (!entity.has(trait_types_1.TraitType.IDENTITY)) {
124
+ return 0; // Default volume for items without identity trait
125
+ }
126
+ const identity = entity.get(trait_types_1.TraitType.IDENTITY);
127
+ return identity?.volume || 0;
128
+ }
129
+ /**
130
+ * Get the size category of the entity
131
+ */
132
+ static getSize(entity) {
133
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
134
+ return identity.size;
135
+ }
136
+ /**
137
+ * Get total weight including contents (for containers/supporters)
138
+ * Note: This method needs a world context to access contents
139
+ */
140
+ static getTotalWeight(entity, getContents) {
141
+ const identity = IdentityBehavior.require(entity, trait_types_1.TraitType.IDENTITY);
142
+ let weight = identity.weight || 0;
143
+ // Add weight of contents if this is a container/supporter and we have a way to get contents
144
+ if (getContents && (entity.has(trait_types_1.TraitType.CONTAINER) || entity.has(trait_types_1.TraitType.SUPPORTER))) {
145
+ const contents = getContents(entity.id);
146
+ for (const item of contents) {
147
+ weight += IdentityBehavior.getTotalWeight(item, getContents);
148
+ }
149
+ }
150
+ return weight;
151
+ }
152
+ }
153
+ exports.IdentityBehavior = IdentityBehavior;
154
+ //# sourceMappingURL=identityBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityBehavior.js","sourceRoot":"","sources":["../../../src/traits/identity/identityBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { ITrait } from '../trait';
2
+ /**
3
+ * Identity trait provides basic naming and description for entities.
4
+ * This is one of the most fundamental traits in IF.
5
+ *
6
+ * This is a pure data structure - all validation and logic
7
+ * should be handled by IdentityBehavior.
8
+ */
9
+ export declare class IdentityTrait implements ITrait {
10
+ static readonly type: "identity";
11
+ readonly type: "identity";
12
+ /** Primary name of the entity */
13
+ name: string;
14
+ /** Full description shown when examining */
15
+ description: string;
16
+ /**
17
+ * Message ID for localized name (ADR-107).
18
+ * If set, the language layer resolves this ID to the actual name text.
19
+ * Takes precedence over literal `name` if both are set.
20
+ */
21
+ nameId?: string;
22
+ /**
23
+ * Message ID for localized description (ADR-107).
24
+ * If set, the language layer resolves this ID to the actual description text.
25
+ * Takes precedence over literal `description` if both are set.
26
+ */
27
+ descriptionId?: string;
28
+ /** Alternative names/aliases the entity can be referred to by */
29
+ aliases: string[];
30
+ /** Brief description shown in room listings */
31
+ brief?: string;
32
+ /** Whether the entity has a proper name (like "John" vs "a man") */
33
+ properName: boolean;
34
+ /** Article to use with the name ("a", "an", "the", "some", or empty for proper names) */
35
+ article: string;
36
+ /** Whether this entity is concealed from normal view */
37
+ concealed: boolean;
38
+ /** Weight of the object (undefined = negligible/not tracked) */
39
+ weight?: number;
40
+ /** Volume of the object (undefined = negligible/not tracked) */
41
+ volume?: number;
42
+ /** Size category of the object */
43
+ size?: 'tiny' | 'small' | 'medium' | 'large' | 'huge';
44
+ /**
45
+ * Grammatical number for inanimate objects (ADR-089).
46
+ * - 'singular': "it" (default) - "take it", "the lamp"
47
+ * - 'plural': "them" - "take them", "the coins"
48
+ * Only used for entities WITHOUT ActorTrait.
49
+ */
50
+ grammaticalNumber?: 'singular' | 'plural';
51
+ /**
52
+ * Adjectives that can be used to refer to this entity (ADR-093).
53
+ * Used for disambiguation when multiple entities share a noun.
54
+ * Example: ['yellow'] for "yellow button" vs ['red'] for "red button"
55
+ */
56
+ adjectives: string[];
57
+ /**
58
+ * Noun type for article/formatter selection (ADR-095).
59
+ * - 'common': Regular countable noun (a sword, the sword)
60
+ * - 'proper': Proper name (John, not "a John")
61
+ * - 'mass': Uncountable noun (water, not "a water" - use "some water")
62
+ * - 'unique': One-of-a-kind (the sun, not "a sun")
63
+ * - 'plural': Inherently plural (scissors, pants)
64
+ *
65
+ * If not set, formatters use `properName` and `grammaticalNumber` as fallback.
66
+ */
67
+ nounType?: 'common' | 'proper' | 'mass' | 'unique' | 'plural';
68
+ constructor(data?: Partial<IdentityTrait>);
69
+ }
70
+ //# sourceMappingURL=identityTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/identity/identityTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAEnC,iCAAiC;IACjC,IAAI,SAAM;IAEV,4CAA4C;IAC5C,WAAW,SAAM;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iEAAiE;IACjE,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,UAAU,UAAS;IAEnB,yFAAyF;IACzF,OAAO,SAAO;IAEd,wDAAwD;IACxD,SAAS,UAAS;IAElB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEtD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAE1C;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAM;IAE1B;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;gBAElD,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;CAK1C"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/identity/identityTrait.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.IdentityTrait = void 0;
5
+ const trait_types_1 = require("../trait-types");
6
+ /**
7
+ * Identity trait provides basic naming and description for entities.
8
+ * This is one of the most fundamental traits in IF.
9
+ *
10
+ * This is a pure data structure - all validation and logic
11
+ * should be handled by IdentityBehavior.
12
+ */
13
+ class IdentityTrait {
14
+ static type = trait_types_1.TraitType.IDENTITY;
15
+ type = trait_types_1.TraitType.IDENTITY;
16
+ /** Primary name of the entity */
17
+ name = '';
18
+ /** Full description shown when examining */
19
+ description = '';
20
+ /**
21
+ * Message ID for localized name (ADR-107).
22
+ * If set, the language layer resolves this ID to the actual name text.
23
+ * Takes precedence over literal `name` if both are set.
24
+ */
25
+ nameId;
26
+ /**
27
+ * Message ID for localized description (ADR-107).
28
+ * If set, the language layer resolves this ID to the actual description text.
29
+ * Takes precedence over literal `description` if both are set.
30
+ */
31
+ descriptionId;
32
+ /** Alternative names/aliases the entity can be referred to by */
33
+ aliases = [];
34
+ /** Brief description shown in room listings */
35
+ brief;
36
+ /** Whether the entity has a proper name (like "John" vs "a man") */
37
+ properName = false;
38
+ /** Article to use with the name ("a", "an", "the", "some", or empty for proper names) */
39
+ article = 'a';
40
+ /** Whether this entity is concealed from normal view */
41
+ concealed = false;
42
+ /** Weight of the object (undefined = negligible/not tracked) */
43
+ weight;
44
+ /** Volume of the object (undefined = negligible/not tracked) */
45
+ volume;
46
+ /** Size category of the object */
47
+ size;
48
+ /**
49
+ * Grammatical number for inanimate objects (ADR-089).
50
+ * - 'singular': "it" (default) - "take it", "the lamp"
51
+ * - 'plural': "them" - "take them", "the coins"
52
+ * Only used for entities WITHOUT ActorTrait.
53
+ */
54
+ grammaticalNumber;
55
+ /**
56
+ * Adjectives that can be used to refer to this entity (ADR-093).
57
+ * Used for disambiguation when multiple entities share a noun.
58
+ * Example: ['yellow'] for "yellow button" vs ['red'] for "red button"
59
+ */
60
+ adjectives = [];
61
+ /**
62
+ * Noun type for article/formatter selection (ADR-095).
63
+ * - 'common': Regular countable noun (a sword, the sword)
64
+ * - 'proper': Proper name (John, not "a John")
65
+ * - 'mass': Uncountable noun (water, not "a water" - use "some water")
66
+ * - 'unique': One-of-a-kind (the sun, not "a sun")
67
+ * - 'plural': Inherently plural (scissors, pants)
68
+ *
69
+ * If not set, formatters use `properName` and `grammaticalNumber` as fallback.
70
+ */
71
+ nounType;
72
+ constructor(data) {
73
+ if (data) {
74
+ Object.assign(this, data);
75
+ }
76
+ }
77
+ }
78
+ exports.IdentityTrait = IdentityTrait;
79
+ //# sourceMappingURL=identityTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityTrait.js","sourceRoot":"","sources":["../../../src/traits/identity/identityTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAG5D,gDAA2C;AAE3C;;;;;;GAMG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IAEnC,iCAAiC;IACjC,IAAI,GAAG,EAAE,CAAC;IAEV,4CAA4C;IAC5C,WAAW,GAAG,EAAE,CAAC;IAEjB;;;;OAIG;IACH,MAAM,CAAU;IAEhB;;;;OAIG;IACH,aAAa,CAAU;IAEvB,iEAAiE;IACjE,OAAO,GAAa,EAAE,CAAC;IAEvB,+CAA+C;IAC/C,KAAK,CAAU;IAEf,oEAAoE;IACpE,UAAU,GAAG,KAAK,CAAC;IAEnB,yFAAyF;IACzF,OAAO,GAAG,GAAG,CAAC;IAEd,wDAAwD;IACxD,SAAS,GAAG,KAAK,CAAC;IAElB,gEAAgE;IAChE,MAAM,CAAU;IAEhB,gEAAgE;IAChE,MAAM,CAAU;IAEhB,kCAAkC;IAClC,IAAI,CAAkD;IAEtD;;;;;OAKG;IACH,iBAAiB,CAAyB;IAE1C;;;;OAIG;IACH,UAAU,GAAa,EAAE,CAAC;IAE1B;;;;;;;;;OASG;IACH,QAAQ,CAAsD;IAE9D,YAAY,IAA6B;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AA/EH,sCAgFC"}
@@ -0,0 +1,3 @@
1
+ export * from './identityTrait';
2
+ export * from './identityBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/identity/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/identity/index.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./identityTrait"), exports);
19
+ __exportStar(require("./identityBehavior"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/identity/index.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;AAEpD,kDAAgC;AAChC,qDAAmC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Trait implementations map
3
+ *
4
+ * Maps trait types to their implementation classes
5
+ */
6
+ import { TraitType } from './trait-types';
7
+ import { ITraitConstructor } from './trait';
8
+ import { IdentityTrait } from './identity/identityTrait';
9
+ import { ContainerTrait } from './container/containerTrait';
10
+ import { SupporterTrait } from './supporter/supporterTrait';
11
+ import { RoomTrait } from './room/roomTrait';
12
+ import { WearableTrait } from './wearable/wearableTrait';
13
+ import { ClothingTrait } from './clothing/clothingTrait';
14
+ import { EdibleTrait } from './edible/edibleTrait';
15
+ import { SceneryTrait } from './scenery/sceneryTrait';
16
+ import { OpenableTrait } from './openable/openableTrait';
17
+ import { LockableTrait } from './lockable/lockableTrait';
18
+ import { SwitchableTrait } from './switchable/switchableTrait';
19
+ import { ReadableTrait } from './readable/readableTrait';
20
+ import { LightSourceTrait } from './light-source/lightSourceTrait';
21
+ import { DoorTrait } from './door/doorTrait';
22
+ import { ClimbableTrait } from './climbable/climbableTrait';
23
+ import { ActorTrait } from './actor/actorTrait';
24
+ import { ExitTrait } from './exit/exitTrait';
25
+ import { PullableTrait } from './pullable/pullableTrait';
26
+ import { AttachedTrait } from './attached/attachedTrait';
27
+ import { PushableTrait } from './pushable/pushableTrait';
28
+ import { ButtonTrait } from './button/buttonTrait';
29
+ import { MoveableSceneryTrait } from './moveable-scenery/moveableSceneryTrait';
30
+ import { WeaponTrait } from './weapon/weaponTrait';
31
+ import { BreakableTrait } from './breakable/breakableTrait';
32
+ import { DestructibleTrait } from './destructible/destructibleTrait';
33
+ import { CombatantTrait } from './combatant/combatantTrait';
34
+ import { EquippedTrait } from './equipped/equippedTrait';
35
+ import { NpcTrait } from './npc/npcTrait';
36
+ import { VehicleTrait } from './vehicle/vehicleTrait';
37
+ import { EnterableTrait } from './enterable/enterableTrait';
38
+ /**
39
+ * Map of trait types to their constructors
40
+ */
41
+ export declare const TRAIT_IMPLEMENTATIONS: Record<TraitType, ITraitConstructor>;
42
+ /**
43
+ * Get trait implementation by type
44
+ */
45
+ export declare function getTraitImplementation(type: TraitType): ITraitConstructor | undefined;
46
+ /**
47
+ * Create trait instance by type
48
+ */
49
+ export declare function createTrait(type: TraitType, data?: any): InstanceType<ITraitConstructor>;
50
+ export { IdentityTrait, ContainerTrait, SupporterTrait, RoomTrait, WearableTrait, ClothingTrait, EdibleTrait, SceneryTrait, OpenableTrait, LockableTrait, SwitchableTrait, ReadableTrait, LightSourceTrait, DoorTrait, ActorTrait, ExitTrait, ClimbableTrait, PullableTrait, AttachedTrait, PushableTrait, ButtonTrait, MoveableSceneryTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, NpcTrait, VehicleTrait, EnterableTrait };
51
+ //# sourceMappingURL=implementations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementations.d.ts","sourceRoot":"","sources":["../../src/traits/implementations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAG/E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAuDtE,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAErF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAMxF;AAGD,OAAO,EAEL,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EAGZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAGhB,SAAS,EAGT,UAAU,EAGV,SAAS,EACT,cAAc,EAGd,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EACX,oBAAoB,EAGpB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EAGb,QAAQ,EAGR,YAAY,EACZ,cAAc,EAGf,CAAC"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * Trait implementations map
4
+ *
5
+ * Maps trait types to their implementation classes
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.EnterableTrait = exports.VehicleTrait = exports.NpcTrait = exports.EquippedTrait = exports.CombatantTrait = exports.DestructibleTrait = exports.BreakableTrait = exports.WeaponTrait = exports.MoveableSceneryTrait = exports.ButtonTrait = exports.PushableTrait = exports.AttachedTrait = exports.PullableTrait = exports.ClimbableTrait = exports.ExitTrait = exports.ActorTrait = exports.DoorTrait = exports.LightSourceTrait = exports.ReadableTrait = exports.SwitchableTrait = exports.LockableTrait = exports.OpenableTrait = exports.SceneryTrait = exports.EdibleTrait = exports.ClothingTrait = exports.WearableTrait = exports.RoomTrait = exports.SupporterTrait = exports.ContainerTrait = exports.IdentityTrait = exports.TRAIT_IMPLEMENTATIONS = void 0;
9
+ exports.getTraitImplementation = getTraitImplementation;
10
+ exports.createTrait = createTrait;
11
+ const trait_types_1 = require("./trait-types");
12
+ // Import all trait implementations from their new locations
13
+ const identityTrait_1 = require("./identity/identityTrait");
14
+ Object.defineProperty(exports, "IdentityTrait", { enumerable: true, get: function () { return identityTrait_1.IdentityTrait; } });
15
+ const containerTrait_1 = require("./container/containerTrait");
16
+ Object.defineProperty(exports, "ContainerTrait", { enumerable: true, get: function () { return containerTrait_1.ContainerTrait; } });
17
+ const supporterTrait_1 = require("./supporter/supporterTrait");
18
+ Object.defineProperty(exports, "SupporterTrait", { enumerable: true, get: function () { return supporterTrait_1.SupporterTrait; } });
19
+ const roomTrait_1 = require("./room/roomTrait");
20
+ Object.defineProperty(exports, "RoomTrait", { enumerable: true, get: function () { return roomTrait_1.RoomTrait; } });
21
+ const wearableTrait_1 = require("./wearable/wearableTrait");
22
+ Object.defineProperty(exports, "WearableTrait", { enumerable: true, get: function () { return wearableTrait_1.WearableTrait; } });
23
+ const clothingTrait_1 = require("./clothing/clothingTrait");
24
+ Object.defineProperty(exports, "ClothingTrait", { enumerable: true, get: function () { return clothingTrait_1.ClothingTrait; } });
25
+ const edibleTrait_1 = require("./edible/edibleTrait");
26
+ Object.defineProperty(exports, "EdibleTrait", { enumerable: true, get: function () { return edibleTrait_1.EdibleTrait; } });
27
+ const sceneryTrait_1 = require("./scenery/sceneryTrait");
28
+ Object.defineProperty(exports, "SceneryTrait", { enumerable: true, get: function () { return sceneryTrait_1.SceneryTrait; } });
29
+ const openableTrait_1 = require("./openable/openableTrait");
30
+ Object.defineProperty(exports, "OpenableTrait", { enumerable: true, get: function () { return openableTrait_1.OpenableTrait; } });
31
+ const lockableTrait_1 = require("./lockable/lockableTrait");
32
+ Object.defineProperty(exports, "LockableTrait", { enumerable: true, get: function () { return lockableTrait_1.LockableTrait; } });
33
+ const switchableTrait_1 = require("./switchable/switchableTrait");
34
+ Object.defineProperty(exports, "SwitchableTrait", { enumerable: true, get: function () { return switchableTrait_1.SwitchableTrait; } });
35
+ const readableTrait_1 = require("./readable/readableTrait");
36
+ Object.defineProperty(exports, "ReadableTrait", { enumerable: true, get: function () { return readableTrait_1.ReadableTrait; } });
37
+ const lightSourceTrait_1 = require("./light-source/lightSourceTrait");
38
+ Object.defineProperty(exports, "LightSourceTrait", { enumerable: true, get: function () { return lightSourceTrait_1.LightSourceTrait; } });
39
+ // Spatial traits
40
+ const doorTrait_1 = require("./door/doorTrait");
41
+ Object.defineProperty(exports, "DoorTrait", { enumerable: true, get: function () { return doorTrait_1.DoorTrait; } });
42
+ const climbableTrait_1 = require("./climbable/climbableTrait");
43
+ Object.defineProperty(exports, "ClimbableTrait", { enumerable: true, get: function () { return climbableTrait_1.ClimbableTrait; } });
44
+ // Basic traits
45
+ const actorTrait_1 = require("./actor/actorTrait");
46
+ Object.defineProperty(exports, "ActorTrait", { enumerable: true, get: function () { return actorTrait_1.ActorTrait; } });
47
+ // New traits
48
+ const exitTrait_1 = require("./exit/exitTrait");
49
+ Object.defineProperty(exports, "ExitTrait", { enumerable: true, get: function () { return exitTrait_1.ExitTrait; } });
50
+ // Manipulation traits
51
+ const pullableTrait_1 = require("./pullable/pullableTrait");
52
+ Object.defineProperty(exports, "PullableTrait", { enumerable: true, get: function () { return pullableTrait_1.PullableTrait; } });
53
+ const attachedTrait_1 = require("./attached/attachedTrait");
54
+ Object.defineProperty(exports, "AttachedTrait", { enumerable: true, get: function () { return attachedTrait_1.AttachedTrait; } });
55
+ const pushableTrait_1 = require("./pushable/pushableTrait");
56
+ Object.defineProperty(exports, "PushableTrait", { enumerable: true, get: function () { return pushableTrait_1.PushableTrait; } });
57
+ const buttonTrait_1 = require("./button/buttonTrait");
58
+ Object.defineProperty(exports, "ButtonTrait", { enumerable: true, get: function () { return buttonTrait_1.ButtonTrait; } });
59
+ const moveableSceneryTrait_1 = require("./moveable-scenery/moveableSceneryTrait");
60
+ Object.defineProperty(exports, "MoveableSceneryTrait", { enumerable: true, get: function () { return moveableSceneryTrait_1.MoveableSceneryTrait; } });
61
+ // Combat traits
62
+ const weaponTrait_1 = require("./weapon/weaponTrait");
63
+ Object.defineProperty(exports, "WeaponTrait", { enumerable: true, get: function () { return weaponTrait_1.WeaponTrait; } });
64
+ const breakableTrait_1 = require("./breakable/breakableTrait");
65
+ Object.defineProperty(exports, "BreakableTrait", { enumerable: true, get: function () { return breakableTrait_1.BreakableTrait; } });
66
+ const destructibleTrait_1 = require("./destructible/destructibleTrait");
67
+ Object.defineProperty(exports, "DestructibleTrait", { enumerable: true, get: function () { return destructibleTrait_1.DestructibleTrait; } });
68
+ const combatantTrait_1 = require("./combatant/combatantTrait");
69
+ Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_1.CombatantTrait; } });
70
+ const equippedTrait_1 = require("./equipped/equippedTrait");
71
+ Object.defineProperty(exports, "EquippedTrait", { enumerable: true, get: function () { return equippedTrait_1.EquippedTrait; } });
72
+ // NPC traits (ADR-070)
73
+ const npcTrait_1 = require("./npc/npcTrait");
74
+ Object.defineProperty(exports, "NpcTrait", { enumerable: true, get: function () { return npcTrait_1.NpcTrait; } });
75
+ // Transport traits
76
+ const vehicleTrait_1 = require("./vehicle/vehicleTrait");
77
+ Object.defineProperty(exports, "VehicleTrait", { enumerable: true, get: function () { return vehicleTrait_1.VehicleTrait; } });
78
+ const enterableTrait_1 = require("./enterable/enterableTrait");
79
+ Object.defineProperty(exports, "EnterableTrait", { enumerable: true, get: function () { return enterableTrait_1.EnterableTrait; } });
80
+ /**
81
+ * Map of trait types to their constructors
82
+ */
83
+ exports.TRAIT_IMPLEMENTATIONS = {
84
+ // Core traits (organized in their own folders)
85
+ [trait_types_1.TraitType.IDENTITY]: identityTrait_1.IdentityTrait,
86
+ [trait_types_1.TraitType.CONTAINER]: containerTrait_1.ContainerTrait,
87
+ [trait_types_1.TraitType.SUPPORTER]: supporterTrait_1.SupporterTrait,
88
+ [trait_types_1.TraitType.ROOM]: roomTrait_1.RoomTrait,
89
+ [trait_types_1.TraitType.WEARABLE]: wearableTrait_1.WearableTrait,
90
+ [trait_types_1.TraitType.CLOTHING]: clothingTrait_1.ClothingTrait,
91
+ [trait_types_1.TraitType.EDIBLE]: edibleTrait_1.EdibleTrait,
92
+ [trait_types_1.TraitType.SCENERY]: sceneryTrait_1.SceneryTrait,
93
+ // Interactive traits
94
+ [trait_types_1.TraitType.OPENABLE]: openableTrait_1.OpenableTrait,
95
+ [trait_types_1.TraitType.LOCKABLE]: lockableTrait_1.LockableTrait,
96
+ [trait_types_1.TraitType.SWITCHABLE]: switchableTrait_1.SwitchableTrait,
97
+ [trait_types_1.TraitType.READABLE]: readableTrait_1.ReadableTrait,
98
+ [trait_types_1.TraitType.LIGHT_SOURCE]: lightSourceTrait_1.LightSourceTrait,
99
+ // Spatial traits
100
+ [trait_types_1.TraitType.DOOR]: doorTrait_1.DoorTrait,
101
+ [trait_types_1.TraitType.CLIMBABLE]: climbableTrait_1.ClimbableTrait,
102
+ // Basic traits
103
+ [trait_types_1.TraitType.ACTOR]: actorTrait_1.ActorTrait,
104
+ // New traits
105
+ [trait_types_1.TraitType.EXIT]: exitTrait_1.ExitTrait,
106
+ // Manipulation traits
107
+ [trait_types_1.TraitType.PULLABLE]: pullableTrait_1.PullableTrait,
108
+ [trait_types_1.TraitType.ATTACHED]: attachedTrait_1.AttachedTrait,
109
+ [trait_types_1.TraitType.PUSHABLE]: pushableTrait_1.PushableTrait,
110
+ [trait_types_1.TraitType.BUTTON]: buttonTrait_1.ButtonTrait,
111
+ [trait_types_1.TraitType.MOVEABLE_SCENERY]: moveableSceneryTrait_1.MoveableSceneryTrait,
112
+ // Combat traits
113
+ [trait_types_1.TraitType.WEAPON]: weaponTrait_1.WeaponTrait,
114
+ [trait_types_1.TraitType.BREAKABLE]: breakableTrait_1.BreakableTrait,
115
+ [trait_types_1.TraitType.DESTRUCTIBLE]: destructibleTrait_1.DestructibleTrait,
116
+ [trait_types_1.TraitType.COMBATANT]: combatantTrait_1.CombatantTrait,
117
+ [trait_types_1.TraitType.EQUIPPED]: equippedTrait_1.EquippedTrait,
118
+ // NPC traits (ADR-070)
119
+ [trait_types_1.TraitType.NPC]: npcTrait_1.NpcTrait,
120
+ // Transport traits
121
+ [trait_types_1.TraitType.VEHICLE]: vehicleTrait_1.VehicleTrait,
122
+ [trait_types_1.TraitType.ENTERABLE]: enterableTrait_1.EnterableTrait,
123
+ // Object property traits
124
+ // Deprecated traits - these are handled differently now:
125
+ // LOCATION - tracked by world model internally
126
+ // PORTABLE - objects are takeable by default unless they have SceneryTrait
127
+ // FIXED - replaced by SCENERY
128
+ };
129
+ /**
130
+ * Get trait implementation by type
131
+ */
132
+ function getTraitImplementation(type) {
133
+ return exports.TRAIT_IMPLEMENTATIONS[type];
134
+ }
135
+ /**
136
+ * Create trait instance by type
137
+ */
138
+ function createTrait(type, data) {
139
+ const TraitClass = exports.TRAIT_IMPLEMENTATIONS[type];
140
+ if (!TraitClass) {
141
+ throw new Error(`Unknown trait type: ${type}`);
142
+ }
143
+ return new TraitClass(data);
144
+ }
145
+ //# sourceMappingURL=implementations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementations.js","sourceRoot":"","sources":["../../src/traits/implementations.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAmHH,wDAEC;AAKD,kCAMC;AA9HD,+CAA0C;AAG1C,4DAA4D;AAC5D,4DAAyD;AA+HvD,8FA/HO,6BAAa,OA+HP;AA9Hf,+DAA4D;AA+H1D,+FA/HO,+BAAc,OA+HP;AA9HhB,+DAA4D;AA+H1D,+FA/HO,+BAAc,OA+HP;AA9HhB,gDAA6C;AA+H3C,0FA/HO,qBAAS,OA+HP;AA9HX,4DAAyD;AA+HvD,8FA/HO,6BAAa,OA+HP;AA9Hf,4DAAyD;AA+HvD,8FA/HO,6BAAa,OA+HP;AA9Hf,sDAAmD;AA+HjD,4FA/HO,yBAAW,OA+HP;AA9Hb,yDAAsD;AA+HpD,6FA/HO,2BAAY,OA+HP;AA7Hd,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,kEAA+D;AAgI7D,gGAhIO,iCAAe,OAgIP;AA/HjB,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,sEAAmE;AAgIjE,iGAhIO,mCAAgB,OAgIP;AA9HlB,iBAAiB;AACjB,gDAA6C;AAgI3C,0FAhIO,qBAAS,OAgIP;AA/HX,+DAA4D;AAsI1D,+FAtIO,+BAAc,OAsIP;AApIhB,eAAe;AACf,mDAAgD;AA+H9C,2FA/HO,uBAAU,OA+HP;AA7HZ,aAAa;AACb,gDAA6C;AA+H3C,0FA/HO,qBAAS,OA+HP;AA7HX,sBAAsB;AACtB,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA/Hf,sDAAmD;AAgIjD,4FAhIO,yBAAW,OAgIP;AA/Hb,kFAA+E;AAgI7E,qGAhIO,2CAAoB,OAgIP;AA9HtB,gBAAgB;AAChB,sDAAmD;AAgIjD,4FAhIO,yBAAW,OAgIP;AA/Hb,+DAA4D;AAgI1D,+FAhIO,+BAAc,OAgIP;AA/HhB,wEAAqE;AAgInE,kGAhIO,qCAAiB,OAgIP;AA/HnB,+DAA4D;AAgI1D,+FAhIO,+BAAc,OAgIP;AA/HhB,4DAAyD;AAgIvD,8FAhIO,6BAAa,OAgIP;AA9Hf,uBAAuB;AACvB,6CAA0C;AAgIxC,yFAhIO,mBAAQ,OAgIP;AA9HV,mBAAmB;AACnB,yDAAsD;AAgIpD,6FAhIO,2BAAY,OAgIP;AA/Hd,+DAA4D;AAgI1D,+FAhIO,+BAAc,OAgIP;AA9HhB;;GAEG;AACU,QAAA,qBAAqB,GAAyC;IACzE,+CAA+C;IAC/C,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IACrC,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IACrC,CAAC,uBAAS,CAAC,IAAI,CAAC,EAAE,qBAAS;IAC3B,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,MAAM,CAAC,EAAE,yBAAW;IAC/B,CAAC,uBAAS,CAAC,OAAO,CAAC,EAAE,2BAAY;IAEjC,qBAAqB;IACrB,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,UAAU,CAAC,EAAE,iCAAe;IACvC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,YAAY,CAAC,EAAE,mCAAgB;IAE1C,iBAAiB;IACjB,CAAC,uBAAS,CAAC,IAAI,CAAC,EAAE,qBAAS;IAC3B,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IAErC,eAAe;IACf,CAAC,uBAAS,CAAC,KAAK,CAAC,EAAE,uBAAU;IAE7B,aAAa;IACb,CAAC,uBAAS,CAAC,IAAI,CAAC,EAAE,qBAAS;IAE3B,sBAAsB;IACtB,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IACnC,CAAC,uBAAS,CAAC,MAAM,CAAC,EAAE,yBAAW;IAC/B,CAAC,uBAAS,CAAC,gBAAgB,CAAC,EAAE,2CAAoB;IAElD,gBAAgB;IAChB,CAAC,uBAAS,CAAC,MAAM,CAAC,EAAE,yBAAW;IAC/B,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IACrC,CAAC,uBAAS,CAAC,YAAY,CAAC,EAAE,qCAAiB;IAC3C,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IACrC,CAAC,uBAAS,CAAC,QAAQ,CAAC,EAAE,6BAAa;IAEnC,uBAAuB;IACvB,CAAC,uBAAS,CAAC,GAAG,CAAC,EAAE,mBAAQ;IAEzB,mBAAmB;IACnB,CAAC,uBAAS,CAAC,OAAO,CAAC,EAAE,2BAAY;IACjC,CAAC,uBAAS,CAAC,SAAS,CAAC,EAAE,+BAAc;IAErC,yBAAyB;IAEzB,yDAAyD;IACzD,+CAA+C;IAC/C,2EAA2E;IAC3E,8BAA8B;CAC/B,CAAC;AAEF;;GAEG;AACH,SAAgB,sBAAsB,CAAC,IAAe;IACpD,OAAO,6BAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAe,EAAE,IAAU;IACrD,MAAM,UAAU,GAAG,6BAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,36 @@
1
+ export * from './trait';
2
+ export * from './trait-types';
3
+ export * from './implementations';
4
+ export * from './identity';
5
+ export * from './container';
6
+ export * from './room';
7
+ export * from './openable';
8
+ export * from './lockable';
9
+ export * from './readable';
10
+ export * from './light-source';
11
+ export * from './exit';
12
+ export * from './climbable';
13
+ export * from './scenery';
14
+ export * from './supporter';
15
+ export * from './switchable';
16
+ export * from './wearable';
17
+ export * from './clothing';
18
+ export * from './edible';
19
+ export * from './door';
20
+ export * from './actor';
21
+ export * from './pullable';
22
+ export * from './attached';
23
+ export * from './pushable';
24
+ export * from './button';
25
+ export * from './moveable-scenery';
26
+ export * from './weapon';
27
+ export * from './breakable';
28
+ export * from './destructible';
29
+ export * from './combatant';
30
+ export * from './equipped';
31
+ export * from './vehicle';
32
+ export * from './enterable';
33
+ export * from './npc';
34
+ export * from './register-all';
35
+ export * from './all-traits';
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/traits/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,cAAc,OAAO,CAAC;AAGtB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}