@sharpee/world-model 0.9.66-beta → 0.9.67-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 (589) hide show
  1. package/annotations/index.d.ts +2 -0
  2. package/annotations/index.d.ts.map +1 -0
  3. package/annotations/index.js +18 -0
  4. package/annotations/index.js.map +1 -0
  5. package/annotations/types.d.ts +35 -0
  6. package/annotations/types.d.ts.map +1 -0
  7. package/annotations/types.js +9 -0
  8. package/annotations/types.js.map +1 -0
  9. package/behaviors/attack.d.ts +52 -0
  10. package/behaviors/attack.d.ts.map +1 -0
  11. package/behaviors/attack.js +161 -0
  12. package/behaviors/attack.js.map +1 -0
  13. package/behaviors/behavior.d.ts +67 -0
  14. package/behaviors/behavior.d.ts.map +1 -0
  15. package/behaviors/behavior.js +80 -0
  16. package/behaviors/behavior.js.map +1 -0
  17. package/behaviors/index.d.ts +21 -0
  18. package/behaviors/index.d.ts.map +1 -0
  19. package/behaviors/index.js +39 -0
  20. package/behaviors/index.js.map +1 -0
  21. package/capabilities/action-interceptor.d.ts +169 -0
  22. package/capabilities/action-interceptor.d.ts.map +1 -0
  23. package/capabilities/action-interceptor.js +15 -0
  24. package/capabilities/action-interceptor.js.map +1 -0
  25. package/capabilities/capability-behavior.d.ts +112 -0
  26. package/capabilities/capability-behavior.d.ts.map +1 -0
  27. package/capabilities/capability-behavior.js +9 -0
  28. package/capabilities/capability-behavior.js.map +1 -0
  29. package/capabilities/capability-defaults.d.ts +67 -0
  30. package/capabilities/capability-defaults.d.ts.map +1 -0
  31. package/capabilities/capability-defaults.js +81 -0
  32. package/capabilities/capability-defaults.js.map +1 -0
  33. package/capabilities/capability-helpers.d.ts +76 -0
  34. package/capabilities/capability-helpers.d.ts.map +1 -0
  35. package/capabilities/capability-helpers.js +112 -0
  36. package/capabilities/capability-helpers.js.map +1 -0
  37. package/capabilities/capability-registry.d.ts +115 -0
  38. package/capabilities/capability-registry.d.ts.map +1 -0
  39. package/capabilities/capability-registry.js +136 -0
  40. package/capabilities/capability-registry.js.map +1 -0
  41. package/capabilities/entity-builder.d.ts +79 -0
  42. package/capabilities/entity-builder.d.ts.map +1 -0
  43. package/capabilities/entity-builder.js +116 -0
  44. package/capabilities/entity-builder.js.map +1 -0
  45. package/capabilities/index.d.ts +16 -0
  46. package/capabilities/index.d.ts.map +1 -0
  47. package/capabilities/index.js +56 -0
  48. package/capabilities/index.js.map +1 -0
  49. package/capabilities/interceptor-helpers.d.ts +74 -0
  50. package/capabilities/interceptor-helpers.d.ts.map +1 -0
  51. package/capabilities/interceptor-helpers.js +111 -0
  52. package/capabilities/interceptor-helpers.js.map +1 -0
  53. package/capabilities/interceptor-registry.d.ts +125 -0
  54. package/capabilities/interceptor-registry.d.ts.map +1 -0
  55. package/capabilities/interceptor-registry.js +176 -0
  56. package/capabilities/interceptor-registry.js.map +1 -0
  57. package/capabilities/types.d.ts +35 -0
  58. package/capabilities/types.d.ts.map +1 -0
  59. package/capabilities/types.js +16 -0
  60. package/capabilities/types.js.map +1 -0
  61. package/commands/command-types.d.ts +30 -0
  62. package/commands/command-types.d.ts.map +1 -0
  63. package/commands/command-types.js +6 -0
  64. package/commands/command-types.js.map +1 -0
  65. package/commands/index.d.ts +7 -0
  66. package/commands/index.d.ts.map +1 -0
  67. package/commands/index.js +23 -0
  68. package/commands/index.js.map +1 -0
  69. package/commands/parsed-command.d.ts +204 -0
  70. package/commands/parsed-command.d.ts.map +1 -0
  71. package/commands/parsed-command.js +25 -0
  72. package/commands/parsed-command.js.map +1 -0
  73. package/commands/validated-command.d.ts +52 -0
  74. package/commands/validated-command.d.ts.map +1 -0
  75. package/commands/validated-command.js +8 -0
  76. package/commands/validated-command.js.map +1 -0
  77. package/constants/action-failures.d.ts +54 -0
  78. package/constants/action-failures.d.ts.map +1 -0
  79. package/constants/action-failures.js +68 -0
  80. package/constants/action-failures.js.map +1 -0
  81. package/constants/directions.d.ts +32 -0
  82. package/constants/directions.d.ts.map +1 -0
  83. package/constants/directions.js +53 -0
  84. package/constants/directions.js.map +1 -0
  85. package/constants/if-events.d.ts +5 -0
  86. package/constants/if-events.d.ts.map +1 -0
  87. package/constants/if-events.js +10 -0
  88. package/constants/if-events.js.map +1 -0
  89. package/constants/index.d.ts +9 -0
  90. package/constants/index.d.ts.map +1 -0
  91. package/constants/index.js +25 -0
  92. package/constants/index.js.map +1 -0
  93. package/entities/entity-store.d.ts +66 -0
  94. package/entities/entity-store.d.ts.map +1 -0
  95. package/entities/entity-store.js +116 -0
  96. package/entities/entity-store.js.map +1 -0
  97. package/entities/entity-types.d.ts +40 -0
  98. package/entities/entity-types.d.ts.map +1 -0
  99. package/entities/entity-types.js +56 -0
  100. package/entities/entity-types.js.map +1 -0
  101. package/entities/if-entity.d.ts +314 -0
  102. package/entities/if-entity.d.ts.map +1 -0
  103. package/entities/if-entity.js +621 -0
  104. package/entities/if-entity.js.map +1 -0
  105. package/entities/index.d.ts +5 -0
  106. package/entities/index.d.ts.map +1 -0
  107. package/entities/index.js +13 -0
  108. package/entities/index.js.map +1 -0
  109. package/events/types.d.ts +45 -0
  110. package/events/types.d.ts.map +1 -0
  111. package/events/types.js +9 -0
  112. package/events/types.js.map +1 -0
  113. package/examples/event-handler-registration.d.ts +14 -0
  114. package/examples/event-handler-registration.d.ts.map +1 -0
  115. package/examples/event-handler-registration.js +158 -0
  116. package/examples/event-handler-registration.js.map +1 -0
  117. package/extensions/base-extension.d.ts +69 -0
  118. package/extensions/base-extension.d.ts.map +1 -0
  119. package/extensions/base-extension.js +83 -0
  120. package/extensions/base-extension.js.map +1 -0
  121. package/extensions/index.d.ts +11 -0
  122. package/extensions/index.d.ts.map +1 -0
  123. package/extensions/index.js +39 -0
  124. package/extensions/index.js.map +1 -0
  125. package/extensions/loader.d.ts +52 -0
  126. package/extensions/loader.d.ts.map +1 -0
  127. package/extensions/loader.js +177 -0
  128. package/extensions/loader.js.map +1 -0
  129. package/extensions/manager.d.ts +68 -0
  130. package/extensions/manager.d.ts.map +1 -0
  131. package/extensions/manager.js +164 -0
  132. package/extensions/manager.js.map +1 -0
  133. package/extensions/registry.d.ts +100 -0
  134. package/extensions/registry.d.ts.map +1 -0
  135. package/extensions/registry.js +193 -0
  136. package/extensions/registry.js.map +1 -0
  137. package/extensions/types.d.ts +226 -0
  138. package/extensions/types.d.ts.map +1 -0
  139. package/extensions/types.js +28 -0
  140. package/extensions/types.js.map +1 -0
  141. package/index.d.ts +41 -0
  142. package/index.d.ts.map +1 -0
  143. package/index.js +71 -0
  144. package/index.js.map +1 -0
  145. package/interfaces/command-executor.d.ts +17 -0
  146. package/interfaces/command-executor.d.ts.map +1 -0
  147. package/interfaces/command-executor.js +6 -0
  148. package/interfaces/command-executor.js.map +1 -0
  149. package/interfaces/command-processor.d.ts +17 -0
  150. package/interfaces/command-processor.d.ts.map +1 -0
  151. package/interfaces/command-processor.js +6 -0
  152. package/interfaces/command-processor.js.map +1 -0
  153. package/interfaces/command-validator.d.ts +17 -0
  154. package/interfaces/command-validator.d.ts.map +1 -0
  155. package/interfaces/command-validator.js +6 -0
  156. package/interfaces/command-validator.js.map +1 -0
  157. package/interfaces/index.d.ts +8 -0
  158. package/interfaces/index.d.ts.map +1 -0
  159. package/interfaces/index.js +24 -0
  160. package/interfaces/index.js.map +1 -0
  161. package/interfaces/language-provider.d.ts +86 -0
  162. package/interfaces/language-provider.d.ts.map +1 -0
  163. package/interfaces/language-provider.js +14 -0
  164. package/interfaces/language-provider.js.map +1 -0
  165. package/interfaces/parser.d.ts +16 -0
  166. package/interfaces/parser.d.ts.map +1 -0
  167. package/interfaces/parser.js +6 -0
  168. package/interfaces/parser.js.map +1 -0
  169. package/package.json +1 -16
  170. package/scope/index.d.ts +8 -0
  171. package/scope/index.d.ts.map +1 -0
  172. package/scope/index.js +24 -0
  173. package/scope/index.js.map +1 -0
  174. package/scope/scope-evaluator.d.ts +58 -0
  175. package/scope/scope-evaluator.d.ts.map +1 -0
  176. package/scope/scope-evaluator.js +207 -0
  177. package/scope/scope-evaluator.js.map +1 -0
  178. package/scope/scope-registry.d.ts +59 -0
  179. package/scope/scope-registry.d.ts.map +1 -0
  180. package/scope/scope-registry.js +182 -0
  181. package/scope/scope-registry.js.map +1 -0
  182. package/scope/scope-rule.d.ts +86 -0
  183. package/scope/scope-rule.d.ts.map +1 -0
  184. package/scope/scope-rule.js +7 -0
  185. package/scope/scope-rule.js.map +1 -0
  186. package/services/ScopeService.d.ts +8 -0
  187. package/services/ScopeService.d.ts.map +1 -0
  188. package/services/ScopeService.js +19 -0
  189. package/services/ScopeService.js.map +1 -0
  190. package/services/index.d.ts +2 -0
  191. package/services/index.d.ts.map +1 -0
  192. package/services/index.js +6 -0
  193. package/services/index.js.map +1 -0
  194. package/test-structure.d.ts +3 -0
  195. package/test-structure.d.ts.map +1 -0
  196. package/test-structure.js +26 -0
  197. package/test-structure.js.map +1 -0
  198. package/traits/actor/actorBehavior.d.ts +121 -0
  199. package/traits/actor/actorBehavior.d.ts.map +1 -0
  200. package/traits/actor/actorBehavior.js +288 -0
  201. package/traits/actor/actorBehavior.js.map +1 -0
  202. package/traits/actor/actorTrait.d.ts +158 -0
  203. package/traits/actor/actorTrait.d.ts.map +1 -0
  204. package/traits/actor/actorTrait.js +152 -0
  205. package/traits/actor/actorTrait.js.map +1 -0
  206. package/traits/actor/index.d.ts +3 -0
  207. package/traits/actor/index.d.ts.map +1 -0
  208. package/traits/actor/index.js +11 -0
  209. package/traits/actor/index.js.map +1 -0
  210. package/traits/all-traits.d.ts +95 -0
  211. package/traits/all-traits.d.ts.map +1 -0
  212. package/traits/all-traits.js +178 -0
  213. package/traits/all-traits.js.map +1 -0
  214. package/traits/attached/attachedTrait.d.ts +61 -0
  215. package/traits/attached/attachedTrait.d.ts.map +1 -0
  216. package/traits/attached/attachedTrait.js +36 -0
  217. package/traits/attached/attachedTrait.js.map +1 -0
  218. package/traits/attached/index.d.ts +2 -0
  219. package/traits/attached/index.d.ts.map +1 -0
  220. package/traits/attached/index.js +18 -0
  221. package/traits/attached/index.js.map +1 -0
  222. package/traits/breakable/breakableBehavior.d.ts +43 -0
  223. package/traits/breakable/breakableBehavior.d.ts.map +1 -0
  224. package/traits/breakable/breakableBehavior.js +70 -0
  225. package/traits/breakable/breakableBehavior.js.map +1 -0
  226. package/traits/breakable/breakableTrait.d.ts +22 -0
  227. package/traits/breakable/breakableTrait.d.ts.map +1 -0
  228. package/traits/breakable/breakableTrait.js +25 -0
  229. package/traits/breakable/breakableTrait.js.map +1 -0
  230. package/traits/breakable/index.d.ts +3 -0
  231. package/traits/breakable/index.d.ts.map +1 -0
  232. package/traits/breakable/index.js +8 -0
  233. package/traits/breakable/index.js.map +1 -0
  234. package/traits/button/buttonTrait.d.ts +53 -0
  235. package/traits/button/buttonTrait.d.ts.map +1 -0
  236. package/traits/button/buttonTrait.js +36 -0
  237. package/traits/button/buttonTrait.js.map +1 -0
  238. package/traits/button/index.d.ts +2 -0
  239. package/traits/button/index.d.ts.map +1 -0
  240. package/traits/button/index.js +18 -0
  241. package/traits/button/index.js.map +1 -0
  242. package/traits/climbable/climbableBehavior.d.ts +37 -0
  243. package/traits/climbable/climbableBehavior.d.ts.map +1 -0
  244. package/traits/climbable/climbableBehavior.js +70 -0
  245. package/traits/climbable/climbableBehavior.js.map +1 -0
  246. package/traits/climbable/climbableTrait.d.ts +31 -0
  247. package/traits/climbable/climbableTrait.d.ts.map +1 -0
  248. package/traits/climbable/climbableTrait.js +47 -0
  249. package/traits/climbable/climbableTrait.js.map +1 -0
  250. package/traits/climbable/index.d.ts +6 -0
  251. package/traits/climbable/index.d.ts.map +1 -0
  252. package/traits/climbable/index.js +22 -0
  253. package/traits/climbable/index.js.map +1 -0
  254. package/traits/clothing/clothingTrait.d.ts +58 -0
  255. package/traits/clothing/clothingTrait.d.ts.map +1 -0
  256. package/traits/clothing/clothingTrait.js +78 -0
  257. package/traits/clothing/clothingTrait.js.map +1 -0
  258. package/traits/clothing/index.d.ts +2 -0
  259. package/traits/clothing/index.d.ts.map +1 -0
  260. package/traits/clothing/index.js +19 -0
  261. package/traits/clothing/index.js.map +1 -0
  262. package/traits/combatant/combatantBehavior.d.ts +70 -0
  263. package/traits/combatant/combatantBehavior.d.ts.map +1 -0
  264. package/traits/combatant/combatantBehavior.js +155 -0
  265. package/traits/combatant/combatantBehavior.js.map +1 -0
  266. package/traits/combatant/combatantTrait.d.ts +98 -0
  267. package/traits/combatant/combatantTrait.d.ts.map +1 -0
  268. package/traits/combatant/combatantTrait.js +122 -0
  269. package/traits/combatant/combatantTrait.js.map +1 -0
  270. package/traits/combatant/index.d.ts +3 -0
  271. package/traits/combatant/index.d.ts.map +1 -0
  272. package/traits/combatant/index.js +8 -0
  273. package/traits/combatant/index.js.map +1 -0
  274. package/traits/container/container-utils.d.ts +39 -0
  275. package/traits/container/container-utils.d.ts.map +1 -0
  276. package/traits/container/container-utils.js +72 -0
  277. package/traits/container/container-utils.js.map +1 -0
  278. package/traits/container/containerBehavior.d.ts +94 -0
  279. package/traits/container/containerBehavior.d.ts.map +1 -0
  280. package/traits/container/containerBehavior.js +256 -0
  281. package/traits/container/containerBehavior.js.map +1 -0
  282. package/traits/container/containerTrait.d.ts +30 -0
  283. package/traits/container/containerTrait.d.ts.map +1 -0
  284. package/traits/container/containerTrait.js +45 -0
  285. package/traits/container/containerTrait.js.map +1 -0
  286. package/traits/container/index.d.ts +4 -0
  287. package/traits/container/index.d.ts.map +1 -0
  288. package/traits/container/index.js +14 -0
  289. package/traits/container/index.js.map +1 -0
  290. package/traits/destructible/destructibleBehavior.d.ts +57 -0
  291. package/traits/destructible/destructibleBehavior.d.ts.map +1 -0
  292. package/traits/destructible/destructibleBehavior.js +145 -0
  293. package/traits/destructible/destructibleBehavior.js.map +1 -0
  294. package/traits/destructible/destructibleTrait.d.ts +49 -0
  295. package/traits/destructible/destructibleTrait.d.ts.map +1 -0
  296. package/traits/destructible/destructibleTrait.js +43 -0
  297. package/traits/destructible/destructibleTrait.js.map +1 -0
  298. package/traits/destructible/index.d.ts +3 -0
  299. package/traits/destructible/index.d.ts.map +1 -0
  300. package/traits/destructible/index.js +8 -0
  301. package/traits/destructible/index.js.map +1 -0
  302. package/traits/door/doorBehavior.d.ts +42 -0
  303. package/traits/door/doorBehavior.d.ts.map +1 -0
  304. package/traits/door/doorBehavior.js +76 -0
  305. package/traits/door/doorBehavior.js.map +1 -0
  306. package/traits/door/doorTrait.d.ts +19 -0
  307. package/traits/door/doorTrait.d.ts.map +1 -0
  308. package/traits/door/doorTrait.js +33 -0
  309. package/traits/door/doorTrait.js.map +1 -0
  310. package/traits/door/index.d.ts +3 -0
  311. package/traits/door/index.d.ts.map +1 -0
  312. package/traits/door/index.js +9 -0
  313. package/traits/door/index.js.map +1 -0
  314. package/traits/edible/edibleBehavior.d.ts +63 -0
  315. package/traits/edible/edibleBehavior.d.ts.map +1 -0
  316. package/traits/edible/edibleBehavior.js +157 -0
  317. package/traits/edible/edibleBehavior.js.map +1 -0
  318. package/traits/edible/edibleTrait.d.ts +57 -0
  319. package/traits/edible/edibleTrait.d.ts.map +1 -0
  320. package/traits/edible/edibleTrait.js +51 -0
  321. package/traits/edible/edibleTrait.js.map +1 -0
  322. package/traits/edible/index.d.ts +3 -0
  323. package/traits/edible/index.d.ts.map +1 -0
  324. package/traits/edible/index.js +20 -0
  325. package/traits/edible/index.js.map +1 -0
  326. package/traits/enterable/enterableTrait.d.ts +33 -0
  327. package/traits/enterable/enterableTrait.d.ts.map +1 -0
  328. package/traits/enterable/enterableTrait.js +38 -0
  329. package/traits/enterable/enterableTrait.js.map +1 -0
  330. package/traits/enterable/index.d.ts +5 -0
  331. package/traits/enterable/index.d.ts.map +1 -0
  332. package/traits/enterable/index.js +21 -0
  333. package/traits/enterable/index.js.map +1 -0
  334. package/traits/equipped/equippedTrait.d.ts +46 -0
  335. package/traits/equipped/equippedTrait.d.ts.map +1 -0
  336. package/traits/equipped/equippedTrait.js +34 -0
  337. package/traits/equipped/equippedTrait.js.map +1 -0
  338. package/traits/equipped/index.d.ts +2 -0
  339. package/traits/equipped/index.d.ts.map +1 -0
  340. package/traits/equipped/index.js +6 -0
  341. package/traits/equipped/index.js.map +1 -0
  342. package/traits/exit/exitBehavior.d.ts +51 -0
  343. package/traits/exit/exitBehavior.d.ts.map +1 -0
  344. package/traits/exit/exitBehavior.js +231 -0
  345. package/traits/exit/exitBehavior.js.map +1 -0
  346. package/traits/exit/exitTrait.d.ts +41 -0
  347. package/traits/exit/exitTrait.d.ts.map +1 -0
  348. package/traits/exit/exitTrait.js +75 -0
  349. package/traits/exit/exitTrait.js.map +1 -0
  350. package/traits/exit/index.d.ts +3 -0
  351. package/traits/exit/index.d.ts.map +1 -0
  352. package/traits/exit/index.js +9 -0
  353. package/traits/exit/index.js.map +1 -0
  354. package/traits/identity/identityBehavior.d.ts +64 -0
  355. package/traits/identity/identityBehavior.d.ts.map +1 -0
  356. package/traits/identity/identityBehavior.js +154 -0
  357. package/traits/identity/identityBehavior.js.map +1 -0
  358. package/traits/identity/identityTrait.d.ts +70 -0
  359. package/traits/identity/identityTrait.d.ts.map +1 -0
  360. package/traits/identity/identityTrait.js +79 -0
  361. package/traits/identity/identityTrait.js.map +1 -0
  362. package/traits/identity/index.d.ts +3 -0
  363. package/traits/identity/index.d.ts.map +1 -0
  364. package/traits/identity/index.js +20 -0
  365. package/traits/identity/index.js.map +1 -0
  366. package/traits/implementations.d.ts +52 -0
  367. package/traits/implementations.d.ts.map +1 -0
  368. package/traits/implementations.js +150 -0
  369. package/traits/implementations.js.map +1 -0
  370. package/traits/index.d.ts +37 -0
  371. package/traits/index.d.ts.map +1 -0
  372. package/traits/index.js +64 -0
  373. package/traits/index.js.map +1 -0
  374. package/traits/light-source/index.d.ts +3 -0
  375. package/traits/light-source/index.d.ts.map +1 -0
  376. package/traits/light-source/index.js +9 -0
  377. package/traits/light-source/index.js.map +1 -0
  378. package/traits/light-source/lightSourceBehavior.d.ts +57 -0
  379. package/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
  380. package/traits/light-source/lightSourceBehavior.js +135 -0
  381. package/traits/light-source/lightSourceBehavior.js.map +1 -0
  382. package/traits/light-source/lightSourceTrait.d.ts +28 -0
  383. package/traits/light-source/lightSourceTrait.d.ts.map +1 -0
  384. package/traits/light-source/lightSourceTrait.js +37 -0
  385. package/traits/light-source/lightSourceTrait.js.map +1 -0
  386. package/traits/lockable/index.d.ts +3 -0
  387. package/traits/lockable/index.d.ts.map +1 -0
  388. package/traits/lockable/index.js +20 -0
  389. package/traits/lockable/index.js.map +1 -0
  390. package/traits/lockable/lockableBehavior.d.ts +88 -0
  391. package/traits/lockable/lockableBehavior.d.ts.map +1 -0
  392. package/traits/lockable/lockableBehavior.js +196 -0
  393. package/traits/lockable/lockableBehavior.js.map +1 -0
  394. package/traits/lockable/lockableTrait.d.ts +59 -0
  395. package/traits/lockable/lockableTrait.d.ts.map +1 -0
  396. package/traits/lockable/lockableTrait.js +50 -0
  397. package/traits/lockable/lockableTrait.js.map +1 -0
  398. package/traits/moveable-scenery/index.d.ts +2 -0
  399. package/traits/moveable-scenery/index.d.ts.map +1 -0
  400. package/traits/moveable-scenery/index.js +18 -0
  401. package/traits/moveable-scenery/index.js.map +1 -0
  402. package/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
  403. package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
  404. package/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
  405. package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
  406. package/traits/npc/index.d.ts +5 -0
  407. package/traits/npc/index.d.ts.map +1 -0
  408. package/traits/npc/index.js +9 -0
  409. package/traits/npc/index.js.map +1 -0
  410. package/traits/npc/npcTrait.d.ts +128 -0
  411. package/traits/npc/npcTrait.d.ts.map +1 -0
  412. package/traits/npc/npcTrait.js +180 -0
  413. package/traits/npc/npcTrait.js.map +1 -0
  414. package/traits/openable/index.d.ts +3 -0
  415. package/traits/openable/index.d.ts.map +1 -0
  416. package/traits/openable/index.js +20 -0
  417. package/traits/openable/index.js.map +1 -0
  418. package/traits/openable/openableBehavior.d.ts +64 -0
  419. package/traits/openable/openableBehavior.d.ts.map +1 -0
  420. package/traits/openable/openableBehavior.js +109 -0
  421. package/traits/openable/openableBehavior.js.map +1 -0
  422. package/traits/openable/openableTrait.d.ts +46 -0
  423. package/traits/openable/openableTrait.d.ts.map +1 -0
  424. package/traits/openable/openableTrait.js +42 -0
  425. package/traits/openable/openableTrait.js.map +1 -0
  426. package/traits/pullable/index.d.ts +2 -0
  427. package/traits/pullable/index.d.ts.map +1 -0
  428. package/traits/pullable/index.js +18 -0
  429. package/traits/pullable/index.js.map +1 -0
  430. package/traits/pullable/pullableTrait.d.ts +81 -0
  431. package/traits/pullable/pullableTrait.d.ts.map +1 -0
  432. package/traits/pullable/pullableTrait.js +44 -0
  433. package/traits/pullable/pullableTrait.js.map +1 -0
  434. package/traits/pushable/index.d.ts +2 -0
  435. package/traits/pushable/index.d.ts.map +1 -0
  436. package/traits/pushable/index.js +18 -0
  437. package/traits/pushable/index.js.map +1 -0
  438. package/traits/pushable/pushableTrait.d.ts +81 -0
  439. package/traits/pushable/pushableTrait.d.ts.map +1 -0
  440. package/traits/pushable/pushableTrait.js +44 -0
  441. package/traits/pushable/pushableTrait.js.map +1 -0
  442. package/traits/readable/index.d.ts +3 -0
  443. package/traits/readable/index.d.ts.map +1 -0
  444. package/traits/readable/index.js +9 -0
  445. package/traits/readable/index.js.map +1 -0
  446. package/traits/readable/readableBehavior.d.ts +42 -0
  447. package/traits/readable/readableBehavior.d.ts.map +1 -0
  448. package/traits/readable/readableBehavior.js +174 -0
  449. package/traits/readable/readableBehavior.js.map +1 -0
  450. package/traits/readable/readableTrait.d.ts +37 -0
  451. package/traits/readable/readableTrait.d.ts.map +1 -0
  452. package/traits/readable/readableTrait.js +51 -0
  453. package/traits/readable/readableTrait.js.map +1 -0
  454. package/traits/register-all.d.ts +10 -0
  455. package/traits/register-all.d.ts.map +1 -0
  456. package/traits/register-all.js +19 -0
  457. package/traits/register-all.js.map +1 -0
  458. package/traits/room/index.d.ts +9 -0
  459. package/traits/room/index.d.ts.map +1 -0
  460. package/traits/room/index.js +14 -0
  461. package/traits/room/index.js.map +1 -0
  462. package/traits/room/roomBehavior.d.ts +87 -0
  463. package/traits/room/roomBehavior.d.ts.map +1 -0
  464. package/traits/room/roomBehavior.js +232 -0
  465. package/traits/room/roomBehavior.js.map +1 -0
  466. package/traits/room/roomTrait.d.ts +101 -0
  467. package/traits/room/roomTrait.d.ts.map +1 -0
  468. package/traits/room/roomTrait.js +59 -0
  469. package/traits/room/roomTrait.js.map +1 -0
  470. package/traits/scenery/index.d.ts +3 -0
  471. package/traits/scenery/index.d.ts.map +1 -0
  472. package/traits/scenery/index.js +9 -0
  473. package/traits/scenery/index.js.map +1 -0
  474. package/traits/scenery/sceneryBehavior.d.ts +21 -0
  475. package/traits/scenery/sceneryBehavior.d.ts.map +1 -0
  476. package/traits/scenery/sceneryBehavior.js +42 -0
  477. package/traits/scenery/sceneryBehavior.js.map +1 -0
  478. package/traits/scenery/sceneryTrait.d.ts +30 -0
  479. package/traits/scenery/sceneryTrait.d.ts.map +1 -0
  480. package/traits/scenery/sceneryTrait.js +39 -0
  481. package/traits/scenery/sceneryTrait.js.map +1 -0
  482. package/traits/story-info/index.d.ts +2 -0
  483. package/traits/story-info/index.d.ts.map +1 -0
  484. package/traits/story-info/index.js +6 -0
  485. package/traits/story-info/index.js.map +1 -0
  486. package/traits/story-info/storyInfoTrait.d.ts +22 -0
  487. package/traits/story-info/storyInfoTrait.d.ts.map +1 -0
  488. package/traits/story-info/storyInfoTrait.js +30 -0
  489. package/traits/story-info/storyInfoTrait.js.map +1 -0
  490. package/traits/supporter/index.d.ts +3 -0
  491. package/traits/supporter/index.d.ts.map +1 -0
  492. package/traits/supporter/index.js +9 -0
  493. package/traits/supporter/index.js.map +1 -0
  494. package/traits/supporter/supporterBehavior.d.ts +83 -0
  495. package/traits/supporter/supporterBehavior.d.ts.map +1 -0
  496. package/traits/supporter/supporterBehavior.js +210 -0
  497. package/traits/supporter/supporterBehavior.js.map +1 -0
  498. package/traits/supporter/supporterTrait.d.ts +26 -0
  499. package/traits/supporter/supporterTrait.d.ts.map +1 -0
  500. package/traits/supporter/supporterTrait.js +30 -0
  501. package/traits/supporter/supporterTrait.js.map +1 -0
  502. package/traits/switchable/index.d.ts +3 -0
  503. package/traits/switchable/index.d.ts.map +1 -0
  504. package/traits/switchable/index.js +20 -0
  505. package/traits/switchable/index.js.map +1 -0
  506. package/traits/switchable/switchableBehavior.d.ts +73 -0
  507. package/traits/switchable/switchableBehavior.d.ts.map +1 -0
  508. package/traits/switchable/switchableBehavior.js +191 -0
  509. package/traits/switchable/switchableBehavior.js.map +1 -0
  510. package/traits/switchable/switchableTrait.d.ts +61 -0
  511. package/traits/switchable/switchableTrait.d.ts.map +1 -0
  512. package/traits/switchable/switchableTrait.js +52 -0
  513. package/traits/switchable/switchableTrait.js.map +1 -0
  514. package/traits/trait-types.d.ts +82 -0
  515. package/traits/trait-types.d.ts.map +1 -0
  516. package/traits/trait-types.js +150 -0
  517. package/traits/trait-types.js.map +1 -0
  518. package/traits/trait.d.ts +44 -0
  519. package/traits/trait.d.ts.map +1 -0
  520. package/traits/trait.js +42 -0
  521. package/traits/trait.js.map +1 -0
  522. package/traits/vehicle/index.d.ts +6 -0
  523. package/traits/vehicle/index.d.ts.map +1 -0
  524. package/traits/vehicle/index.js +22 -0
  525. package/traits/vehicle/index.js.map +1 -0
  526. package/traits/vehicle/vehicleBehavior.d.ts +62 -0
  527. package/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
  528. package/traits/vehicle/vehicleBehavior.js +145 -0
  529. package/traits/vehicle/vehicleBehavior.js.map +1 -0
  530. package/traits/vehicle/vehicleTrait.d.ts +77 -0
  531. package/traits/vehicle/vehicleTrait.d.ts.map +1 -0
  532. package/traits/vehicle/vehicleTrait.js +92 -0
  533. package/traits/vehicle/vehicleTrait.js.map +1 -0
  534. package/traits/weapon/index.d.ts +3 -0
  535. package/traits/weapon/index.d.ts.map +1 -0
  536. package/traits/weapon/index.js +8 -0
  537. package/traits/weapon/index.js.map +1 -0
  538. package/traits/weapon/weaponBehavior.d.ts +47 -0
  539. package/traits/weapon/weaponBehavior.d.ts.map +1 -0
  540. package/traits/weapon/weaponBehavior.js +106 -0
  541. package/traits/weapon/weaponBehavior.js.map +1 -0
  542. package/traits/weapon/weaponTrait.d.ts +67 -0
  543. package/traits/weapon/weaponTrait.d.ts.map +1 -0
  544. package/traits/weapon/weaponTrait.js +60 -0
  545. package/traits/weapon/weaponTrait.js.map +1 -0
  546. package/traits/wearable/index.d.ts +3 -0
  547. package/traits/wearable/index.d.ts.map +1 -0
  548. package/traits/wearable/index.js +20 -0
  549. package/traits/wearable/index.js.map +1 -0
  550. package/traits/wearable/wearableBehavior.d.ts +64 -0
  551. package/traits/wearable/wearableBehavior.d.ts.map +1 -0
  552. package/traits/wearable/wearableBehavior.js +142 -0
  553. package/traits/wearable/wearableBehavior.js.map +1 -0
  554. package/traits/wearable/wearableTrait.d.ts +54 -0
  555. package/traits/wearable/wearableTrait.d.ts.map +1 -0
  556. package/traits/wearable/wearableTrait.js +53 -0
  557. package/traits/wearable/wearableTrait.js.map +1 -0
  558. package/utils/event-utils.d.ts +30 -0
  559. package/utils/event-utils.d.ts.map +1 -0
  560. package/utils/event-utils.js +33 -0
  561. package/utils/event-utils.js.map +1 -0
  562. package/world/AuthorModel.d.ts +151 -0
  563. package/world/AuthorModel.d.ts.map +1 -0
  564. package/world/AuthorModel.js +416 -0
  565. package/world/AuthorModel.js.map +1 -0
  566. package/world/SharedDataStore.d.ts +24 -0
  567. package/world/SharedDataStore.d.ts.map +1 -0
  568. package/world/SharedDataStore.js +50 -0
  569. package/world/SharedDataStore.js.map +1 -0
  570. package/world/SpatialIndex.d.ts +16 -0
  571. package/world/SpatialIndex.d.ts.map +1 -0
  572. package/world/SpatialIndex.js +117 -0
  573. package/world/SpatialIndex.js.map +1 -0
  574. package/world/VisibilityBehavior.d.ts +83 -0
  575. package/world/VisibilityBehavior.d.ts.map +1 -0
  576. package/world/VisibilityBehavior.js +484 -0
  577. package/world/VisibilityBehavior.js.map +1 -0
  578. package/world/WorldModel.d.ts +301 -0
  579. package/world/WorldModel.d.ts.map +1 -0
  580. package/world/WorldModel.js +1085 -0
  581. package/world/WorldModel.js.map +1 -0
  582. package/world/capabilities.d.ts +36 -0
  583. package/world/capabilities.d.ts.map +1 -0
  584. package/world/capabilities.js +18 -0
  585. package/world/capabilities.js.map +1 -0
  586. package/world/index.d.ts +7 -0
  587. package/world/index.d.ts.map +1 -0
  588. package/world/index.js +21 -0
  589. package/world/index.js.map +1 -0
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * Destructible trait for entities that require multiple hits or specific tools to destroy
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DestructibleTrait = void 0;
7
+ /**
8
+ * Destructible trait indicates an entity can be destroyed with multiple hits.
9
+ *
10
+ * This trait contains only data - all destruction logic
11
+ * is in DestructibleBehavior. Messages are stored here to be
12
+ * injected into events during the report phase.
13
+ */
14
+ class DestructibleTrait {
15
+ static type = 'destructible';
16
+ type = 'destructible';
17
+ // DestructibleData properties
18
+ hitPoints;
19
+ maxHitPoints;
20
+ requiresWeapon;
21
+ requiresType;
22
+ transformTo;
23
+ revealExit;
24
+ damageMessage;
25
+ destroyMessage;
26
+ invulnerable;
27
+ armor;
28
+ constructor(data = {}) {
29
+ // Set defaults and merge with provided data
30
+ this.hitPoints = data.hitPoints ?? data.maxHitPoints ?? 3;
31
+ this.maxHitPoints = data.maxHitPoints ?? 3;
32
+ this.requiresWeapon = data.requiresWeapon ?? false;
33
+ this.requiresType = data.requiresType;
34
+ this.transformTo = data.transformTo;
35
+ this.revealExit = data.revealExit;
36
+ this.damageMessage = data.damageMessage;
37
+ this.destroyMessage = data.destroyMessage;
38
+ this.invulnerable = data.invulnerable ?? false;
39
+ this.armor = data.armor ?? 0;
40
+ }
41
+ }
42
+ exports.DestructibleTrait = DestructibleTrait;
43
+ //# sourceMappingURL=destructibleTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destructibleTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/destructibleTrait.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqCH;;;;;;GAMG;AACH,MAAa,iBAAiB;IAC5B,MAAM,CAAU,IAAI,GAAG,cAAuB,CAAC;IACtC,IAAI,GAAG,cAAuB,CAAC;IAExC,8BAA8B;IAC9B,SAAS,CAAS;IAClB,YAAY,CAAS;IACrB,cAAc,CAAU;IACxB,YAAY,CAAU;IACtB,WAAW,CAAU;IACrB,UAAU,CAAU;IACpB,aAAa,CAAU;IACvB,cAAc,CAAU;IACxB,YAAY,CAAU;IACtB,KAAK,CAAS;IAEd,YAAY,OAA0B,EAAE;QACtC,4CAA4C;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,CAAC;;AA5BH,8CA6BC"}
@@ -0,0 +1,3 @@
1
+ export { DestructibleTrait, IDestructibleData } from './destructibleTrait';
2
+ export { DestructibleBehavior, IDamageResult } from './destructibleBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DestructibleBehavior = exports.DestructibleTrait = void 0;
4
+ var destructibleTrait_1 = require("./destructibleTrait");
5
+ Object.defineProperty(exports, "DestructibleTrait", { enumerable: true, get: function () { return destructibleTrait_1.DestructibleTrait; } });
6
+ var destructibleBehavior_1 = require("./destructibleBehavior");
7
+ Object.defineProperty(exports, "DestructibleBehavior", { enumerable: true, get: function () { return destructibleBehavior_1.DestructibleBehavior; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/destructible/index.ts"],"names":[],"mappings":";;;AAAA,yDAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,42 @@
1
+ import { Behavior } from '../../behaviors/behavior';
2
+ import { IFEntity } from '../../entities/if-entity';
3
+ /**
4
+ * Behavior for door entities.
5
+ *
6
+ * Handles the logic for doors that connect two rooms.
7
+ */
8
+ export declare class DoorBehavior extends Behavior {
9
+ static requiredTraits: "door"[];
10
+ /**
11
+ * Get the rooms this door connects
12
+ */
13
+ static getRooms(door: IFEntity): [string, string];
14
+ /**
15
+ * Get the other room when coming from a specific room
16
+ * @returns The other room ID, or undefined if the door doesn't connect to the current room
17
+ */
18
+ static getOtherRoom(door: IFEntity, currentRoom: string): string | undefined;
19
+ /**
20
+ * Check if the door can be traversed in both directions
21
+ */
22
+ static isBidirectional(door: IFEntity): boolean;
23
+ /**
24
+ * Check if the door connects two specific rooms (in any order)
25
+ */
26
+ static connects(door: IFEntity, room1: string, room2: string): boolean;
27
+ /**
28
+ * Check if the door connects to a specific room
29
+ */
30
+ static connectsTo(door: IFEntity, roomId: string): boolean;
31
+ /**
32
+ * Get the entry room (for one-way doors)
33
+ * This is the room you can enter from
34
+ */
35
+ static getEntryRoom(door: IFEntity): string;
36
+ /**
37
+ * Get the exit room (for one-way doors)
38
+ * This is the room you exit to
39
+ */
40
+ static getExitRoom(door: IFEntity): string;
41
+ }
42
+ //# sourceMappingURL=doorBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,cAAc,WAAoB;IAEzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKjD;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAa5E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK/C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMtE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAK1D;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAK3C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CAI3C"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/door/doorBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DoorBehavior = void 0;
5
+ const behavior_1 = require("../../behaviors/behavior");
6
+ const trait_types_1 = require("../trait-types");
7
+ /**
8
+ * Behavior for door entities.
9
+ *
10
+ * Handles the logic for doors that connect two rooms.
11
+ */
12
+ class DoorBehavior extends behavior_1.Behavior {
13
+ static requiredTraits = [trait_types_1.TraitType.DOOR];
14
+ /**
15
+ * Get the rooms this door connects
16
+ */
17
+ static getRooms(door) {
18
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
19
+ return [trait.room1, trait.room2];
20
+ }
21
+ /**
22
+ * Get the other room when coming from a specific room
23
+ * @returns The other room ID, or undefined if the door doesn't connect to the current room
24
+ */
25
+ static getOtherRoom(door, currentRoom) {
26
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
27
+ if (trait.room1 === currentRoom) {
28
+ return trait.room2;
29
+ }
30
+ else if (trait.room2 === currentRoom) {
31
+ // Check if traversal is allowed in this direction
32
+ return trait.bidirectional ? trait.room1 : undefined;
33
+ }
34
+ return undefined;
35
+ }
36
+ /**
37
+ * Check if the door can be traversed in both directions
38
+ */
39
+ static isBidirectional(door) {
40
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
41
+ return trait.bidirectional;
42
+ }
43
+ /**
44
+ * Check if the door connects two specific rooms (in any order)
45
+ */
46
+ static connects(door, room1, room2) {
47
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
48
+ return (trait.room1 === room1 && trait.room2 === room2) ||
49
+ (trait.room1 === room2 && trait.room2 === room1);
50
+ }
51
+ /**
52
+ * Check if the door connects to a specific room
53
+ */
54
+ static connectsTo(door, roomId) {
55
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
56
+ return trait.room1 === roomId || trait.room2 === roomId;
57
+ }
58
+ /**
59
+ * Get the entry room (for one-way doors)
60
+ * This is the room you can enter from
61
+ */
62
+ static getEntryRoom(door) {
63
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
64
+ return trait.room1;
65
+ }
66
+ /**
67
+ * Get the exit room (for one-way doors)
68
+ * This is the room you exit to
69
+ */
70
+ static getExitRoom(door) {
71
+ const trait = DoorBehavior.require(door, trait_types_1.TraitType.DOOR);
72
+ return trait.room2;
73
+ }
74
+ }
75
+ exports.DoorBehavior = DoorBehavior;
76
+ //# sourceMappingURL=doorBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorBehavior.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorBehavior.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,uDAAoD;AAEpD,gDAA2C;AAG3C;;;;GAIG;AACH,MAAa,YAAa,SAAQ,mBAAQ;IACxC,MAAM,CAAC,cAAc,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAc,EAAE,WAAmB;QACrD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACvC,kDAAkD;YAClD,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAc;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,KAAa,EAAE,KAAa;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;YAChD,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAc,EAAE,MAAc;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAc;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAc;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;;AArEH,oCAsEC"}
@@ -0,0 +1,19 @@
1
+ import { ITrait } from '../trait';
2
+ /**
3
+ * Door trait marks an entity as a connection between two rooms.
4
+ *
5
+ * This is a pure data structure - all validation and logic
6
+ * should be handled by DoorBehavior.
7
+ */
8
+ export declare class DoorTrait implements ITrait {
9
+ static readonly type: "door";
10
+ readonly type: "door";
11
+ /** First room this door connects (must be an entity ID, not a name) */
12
+ room1: string;
13
+ /** Second room this door connects (must be an entity ID, not a name) */
14
+ room2: string;
15
+ /** Whether the door can be traversed in both directions */
16
+ bidirectional: boolean;
17
+ constructor(data?: Partial<DoorTrait>);
18
+ }
19
+ //# sourceMappingURL=doorTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorTrait.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAkB;IACtC,QAAQ,CAAC,IAAI,SAAkB;IAE/B,uEAAuE;IACvE,KAAK,EAAG,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,EAAG,MAAM,CAAC;IAEf,2DAA2D;IAC3D,aAAa,UAAQ;gBAET,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;CAWtC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/door/doorTrait.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DoorTrait = void 0;
5
+ const trait_types_1 = require("../trait-types");
6
+ /**
7
+ * Door trait marks an entity as a connection between two rooms.
8
+ *
9
+ * This is a pure data structure - all validation and logic
10
+ * should be handled by DoorBehavior.
11
+ */
12
+ class DoorTrait {
13
+ static type = trait_types_1.TraitType.DOOR;
14
+ type = trait_types_1.TraitType.DOOR;
15
+ /** First room this door connects (must be an entity ID, not a name) */
16
+ room1;
17
+ /** Second room this door connects (must be an entity ID, not a name) */
18
+ room2;
19
+ /** Whether the door can be traversed in both directions */
20
+ bidirectional = true;
21
+ constructor(data) {
22
+ // Set defaults first
23
+ if (data) {
24
+ Object.assign(this, data);
25
+ }
26
+ // Validate required fields
27
+ if (!this.room1 || !this.room2) {
28
+ throw new Error('Door must connect two rooms');
29
+ }
30
+ }
31
+ }
32
+ exports.DoorTrait = DoorTrait;
33
+ //# sourceMappingURL=doorTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doorTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/doorTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;AAE3C;;;;;GAKG;AACH,MAAa,SAAS;IACpB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAE/B,uEAAuE;IACvE,KAAK,CAAU;IAEf,wEAAwE;IACxE,KAAK,CAAU;IAEf,2DAA2D;IAC3D,aAAa,GAAG,IAAI,CAAC;IAErB,YAAY,IAAyB;QACnC,qBAAqB;QACrB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;;AAvBH,8BAwBC"}
@@ -0,0 +1,3 @@
1
+ export { DoorTrait } from './doorTrait';
2
+ export { DoorBehavior } from './doorBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/door/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DoorBehavior = exports.DoorTrait = void 0;
5
+ var doorTrait_1 = require("./doorTrait");
6
+ Object.defineProperty(exports, "DoorTrait", { enumerable: true, get: function () { return doorTrait_1.DoorTrait; } });
7
+ var doorBehavior_1 = require("./doorBehavior");
8
+ Object.defineProperty(exports, "DoorBehavior", { enumerable: true, get: function () { return doorBehavior_1.DoorBehavior; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/door/index.ts"],"names":[],"mappings":";AAAA,gDAAgD;;;AAEhD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,63 @@
1
+ import { Behavior } from '../../behaviors/behavior';
2
+ import { IFEntity } from '../../entities/if-entity';
3
+ import { TasteQuality } from './edibleTrait';
4
+ import { ISemanticEvent } from "../../src/index";
5
+ /**
6
+ * Behavior for edible entities.
7
+ *
8
+ * Handles the logic for consuming food and drink.
9
+ */
10
+ export declare class EdibleBehavior extends Behavior {
11
+ static requiredTraits: "edible"[];
12
+ /**
13
+ * Check if an item can be consumed
14
+ * Supports both 'servings' (canonical) and 'consumed' (legacy) property names
15
+ */
16
+ static canConsume(item: IFEntity): boolean;
17
+ /**
18
+ * Consume the item
19
+ * @returns Events describing what happened
20
+ * Supports both 'servings' (canonical) and 'portions' (legacy) property names
21
+ */
22
+ static consume(item: IFEntity, actor: IFEntity): ISemanticEvent[];
23
+ /**
24
+ * Check if item is fully consumed
25
+ * Supports both 'servings' (canonical) and 'consumed' (legacy) property names
26
+ */
27
+ static isEmpty(item: IFEntity): boolean;
28
+ /**
29
+ * Check if this is a liquid
30
+ * Supports both 'liquid' (canonical) and 'isDrink' (legacy) property names
31
+ */
32
+ static isLiquid(item: IFEntity): boolean;
33
+ /**
34
+ * Get nutrition value
35
+ */
36
+ static getNutrition(item: IFEntity): number;
37
+ /**
38
+ * Get remaining servings
39
+ * Supports both 'servings' (canonical) and 'portions' (legacy) property names
40
+ */
41
+ static getServings(item: IFEntity): number;
42
+ /**
43
+ * Check if consuming has special effects
44
+ */
45
+ static hasEffect(item: IFEntity): boolean;
46
+ /**
47
+ * Get taste quality
48
+ */
49
+ static getTaste(item: IFEntity): TasteQuality | undefined;
50
+ /**
51
+ * Get effects array
52
+ */
53
+ static getEffects(item: IFEntity): string[] | undefined;
54
+ /**
55
+ * Check if item has a specific effect
56
+ */
57
+ static hasSpecificEffect(item: IFEntity, effect: string): boolean;
58
+ /**
59
+ * Check if eating satisfies hunger
60
+ */
61
+ static satisfiesHunger(item: IFEntity): boolean | undefined;
62
+ }
63
+ //# sourceMappingURL=edibleBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edibleBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAe,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAI5D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,MAAM,CAAC,cAAc,aAAsB;IAE3C;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAW1C;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,cAAc,EAAE;IA+DjE;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAWvC;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAMxC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAK3C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAS1C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS;IAKzD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKvD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKjE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;CAI5D"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/edible/edibleBehavior.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EdibleBehavior = void 0;
5
+ const behavior_1 = require("../../behaviors/behavior");
6
+ const trait_types_1 = require("../trait-types");
7
+ const core_1 = require("../../src/index.js");
8
+ const if_events_1 = require("../../constants/if-events");
9
+ const action_failures_1 = require("../../constants/action-failures");
10
+ /**
11
+ * Behavior for edible entities.
12
+ *
13
+ * Handles the logic for consuming food and drink.
14
+ */
15
+ class EdibleBehavior extends behavior_1.Behavior {
16
+ static requiredTraits = [trait_types_1.TraitType.EDIBLE];
17
+ /**
18
+ * Check if an item can be consumed
19
+ * Supports both 'servings' (canonical) and 'consumed' (legacy) property names
20
+ */
21
+ static canConsume(item) {
22
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
23
+ // Check legacy 'consumed' flag first
24
+ if (edible.consumed === true) {
25
+ return false;
26
+ }
27
+ // Then check servings (default to 1 if undefined)
28
+ const servings = edible.servings ?? edible.portions ?? 1;
29
+ return servings > 0;
30
+ }
31
+ /**
32
+ * Consume the item
33
+ * @returns Events describing what happened
34
+ * Supports both 'servings' (canonical) and 'portions' (legacy) property names
35
+ */
36
+ static consume(item, actor) {
37
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
38
+ // Get current servings (supporting legacy properties)
39
+ let currentServings = edible.servings ?? edible.portions ?? 1;
40
+ const isLiquid = edible.liquid || edible.isDrink || false;
41
+ if (currentServings <= 0 || edible.consumed === true) {
42
+ return [
43
+ (0, core_1.createEvent)(if_events_1.IFEvents.ACTION_FAILED, {
44
+ action: isLiquid ? 'drink' : 'eat',
45
+ reason: action_failures_1.ActionFailureReason.NOTHING_LEFT,
46
+ customMessage: "There's nothing left."
47
+ }, { target: item.id, actor: actor.id })
48
+ ];
49
+ }
50
+ // Consume one serving - update both properties for compatibility
51
+ currentServings--;
52
+ edible.servings = currentServings;
53
+ if (edible.portions !== undefined) {
54
+ edible.portions = currentServings;
55
+ }
56
+ // Mark as consumed if no servings left
57
+ if (currentServings <= 0) {
58
+ edible.consumed = true;
59
+ }
60
+ const events = [
61
+ (0, core_1.createEvent)(isLiquid ? if_events_1.IFEvents.ITEM_DRUNK : if_events_1.IFEvents.ITEM_EATEN, {
62
+ nutrition: edible.nutrition,
63
+ servingsLeft: currentServings,
64
+ customMessage: edible.consumeMessage,
65
+ hasEffect: edible.hasEffect,
66
+ effectDescription: edible.effectDescription
67
+ }, { target: item.id, actor: actor.id })
68
+ ];
69
+ // If fully consumed, note that
70
+ if (currentServings <= 0) {
71
+ events.push((0, core_1.createEvent)(if_events_1.IFEvents.ITEM_DESTROYED, {
72
+ reason: 'consumed',
73
+ remainsType: edible.remainsType
74
+ }, { target: item.id, actor: actor.id }));
75
+ }
76
+ return events;
77
+ }
78
+ /**
79
+ * Check if item is fully consumed
80
+ * Supports both 'servings' (canonical) and 'consumed' (legacy) property names
81
+ */
82
+ static isEmpty(item) {
83
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
84
+ // Check legacy 'consumed' flag first
85
+ if (edible.consumed === true) {
86
+ return true;
87
+ }
88
+ // Then check servings
89
+ const servings = edible.servings ?? edible.portions ?? 1;
90
+ return servings <= 0;
91
+ }
92
+ /**
93
+ * Check if this is a liquid
94
+ * Supports both 'liquid' (canonical) and 'isDrink' (legacy) property names
95
+ */
96
+ static isLiquid(item) {
97
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
98
+ // Support both property names for backward compatibility
99
+ return edible.liquid || edible.isDrink || false;
100
+ }
101
+ /**
102
+ * Get nutrition value
103
+ */
104
+ static getNutrition(item) {
105
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
106
+ return edible.nutrition;
107
+ }
108
+ /**
109
+ * Get remaining servings
110
+ * Supports both 'servings' (canonical) and 'portions' (legacy) property names
111
+ */
112
+ static getServings(item) {
113
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
114
+ // Check legacy 'consumed' flag - if consumed, return 0
115
+ if (edible.consumed === true) {
116
+ return 0;
117
+ }
118
+ return edible.servings ?? edible.portions ?? 1;
119
+ }
120
+ /**
121
+ * Check if consuming has special effects
122
+ */
123
+ static hasEffect(item) {
124
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
125
+ return edible.hasEffect;
126
+ }
127
+ /**
128
+ * Get taste quality
129
+ */
130
+ static getTaste(item) {
131
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
132
+ return edible.taste;
133
+ }
134
+ /**
135
+ * Get effects array
136
+ */
137
+ static getEffects(item) {
138
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
139
+ return edible.effects;
140
+ }
141
+ /**
142
+ * Check if item has a specific effect
143
+ */
144
+ static hasSpecificEffect(item, effect) {
145
+ const effects = EdibleBehavior.getEffects(item);
146
+ return effects?.includes(effect) ?? false;
147
+ }
148
+ /**
149
+ * Check if eating satisfies hunger
150
+ */
151
+ static satisfiesHunger(item) {
152
+ const edible = EdibleBehavior.require(item, trait_types_1.TraitType.EDIBLE);
153
+ return edible.satisfiesHunger;
154
+ }
155
+ }
156
+ exports.EdibleBehavior = EdibleBehavior;
157
+ //# sourceMappingURL=edibleBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edibleBehavior.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { ITrait } from '../trait';
2
+ /** Taste quality values */
3
+ export type TasteQuality = 'delicious' | 'tasty' | 'good' | 'plain' | 'bland' | 'awful' | 'terrible';
4
+ export interface IEdibleData {
5
+ /** Nutrition value (arbitrary units) */
6
+ nutrition?: number;
7
+ /** Number of bites/servings remaining (alias: portions) */
8
+ servings?: number;
9
+ /** Whether this is a liquid (drunk vs eaten) */
10
+ liquid?: boolean;
11
+ /** Custom message when eating/drinking */
12
+ consumeMessage?: string;
13
+ /** What remains after consumption (entity type to create) */
14
+ remainsType?: string;
15
+ /** Whether consuming this has special effects */
16
+ hasEffect?: boolean;
17
+ /** Effect description if hasEffect is true */
18
+ effectDescription?: string;
19
+ /** Weight of the item (since we removed PortableTrait) */
20
+ weight?: number;
21
+ /** Bulk of the item */
22
+ bulk?: number;
23
+ /** Taste quality of the food */
24
+ taste?: TasteQuality;
25
+ /** Array of effect names (e.g., 'poison', 'heal', 'sleep') */
26
+ effects?: string[];
27
+ /** Whether eating this satisfies hunger */
28
+ satisfiesHunger?: boolean;
29
+ }
30
+ /**
31
+ * Edible trait indicates an entity can be eaten or drunk.
32
+ *
33
+ * This trait contains only data - all consumption logic
34
+ * is in EdibleBehavior.
35
+ */
36
+ export declare class EdibleTrait implements ITrait, IEdibleData {
37
+ static readonly type: "edible";
38
+ readonly type: "edible";
39
+ nutrition: number;
40
+ servings: number;
41
+ liquid: boolean;
42
+ consumeMessage?: string;
43
+ remainsType?: string;
44
+ hasEffect: boolean;
45
+ effectDescription?: string;
46
+ weight: number;
47
+ bulk: number;
48
+ taste?: TasteQuality;
49
+ effects?: string[];
50
+ satisfiesHunger?: boolean;
51
+ constructor(data?: IEdibleData & {
52
+ portions?: number;
53
+ isDrink?: boolean;
54
+ consumed?: boolean;
55
+ });
56
+ }
57
+ //# sourceMappingURL=edibleTrait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edibleTrait.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,2BAA2B;AAC3B,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAErG,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,gCAAgC;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,MAAM,EAAE,WAAW;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAoB;IACxC,QAAQ,CAAC,IAAI,WAAoB;IAGjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;gBAEd,IAAI,GAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO;CAsBlG"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // packages/world-model/src/traits/edible/edibleTrait.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EdibleTrait = void 0;
5
+ const trait_types_1 = require("../trait-types");
6
+ /**
7
+ * Edible trait indicates an entity can be eaten or drunk.
8
+ *
9
+ * This trait contains only data - all consumption logic
10
+ * is in EdibleBehavior.
11
+ */
12
+ class EdibleTrait {
13
+ static type = trait_types_1.TraitType.EDIBLE;
14
+ type = trait_types_1.TraitType.EDIBLE;
15
+ // Core EdibleData properties
16
+ nutrition;
17
+ servings;
18
+ liquid;
19
+ consumeMessage;
20
+ remainsType;
21
+ hasEffect;
22
+ effectDescription;
23
+ weight;
24
+ bulk;
25
+ // Extended properties
26
+ taste;
27
+ effects;
28
+ satisfiesHunger;
29
+ constructor(data = {}) {
30
+ // Set defaults and merge with provided data
31
+ // Support both 'servings' and legacy 'portions' naming
32
+ // If consumed is true, set servings to 0
33
+ const baseServings = data.servings ?? data.portions ?? 1;
34
+ this.servings = data.consumed ? 0 : baseServings;
35
+ this.nutrition = data.nutrition ?? 1;
36
+ // Support both 'liquid' and legacy 'isDrink' naming
37
+ this.liquid = data.liquid ?? data.isDrink ?? false;
38
+ this.consumeMessage = data.consumeMessage;
39
+ this.remainsType = data.remainsType;
40
+ this.hasEffect = data.hasEffect ?? (data.effects && data.effects.length > 0) ?? false;
41
+ this.effectDescription = data.effectDescription;
42
+ this.weight = data.weight ?? 1;
43
+ this.bulk = data.bulk ?? 1;
44
+ // Extended properties
45
+ this.taste = data.taste;
46
+ this.effects = data.effects;
47
+ this.satisfiesHunger = data.satisfiesHunger;
48
+ }
49
+ }
50
+ exports.EdibleTrait = EdibleTrait;
51
+ //# sourceMappingURL=edibleTrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edibleTrait.js","sourceRoot":"","sources":["../../../../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/edibleTrait.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;AAGxD,gDAA2C;AA6C3C;;;;;GAKG;AACH,MAAa,WAAW;IACtB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,MAAM,CAAC;IAC/B,IAAI,GAAG,uBAAS,CAAC,MAAM,CAAC;IAEjC,6BAA6B;IAC7B,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,MAAM,CAAU;IAChB,cAAc,CAAU;IACxB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,iBAAiB,CAAU;IAC3B,MAAM,CAAS;IACf,IAAI,CAAS;IAEb,sBAAsB;IACtB,KAAK,CAAgB;IACrB,OAAO,CAAY;IACnB,eAAe,CAAW;IAE1B,YAAY,OAAmF,EAAE;QAC/F,4CAA4C;QAC5C,uDAAuD;QACvD,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACrC,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;QACtF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAE3B,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9C,CAAC;;AAzCH,kCA0CC"}
@@ -0,0 +1,3 @@
1
+ export * from './edibleTrait';
2
+ export * from './edibleBehavior';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../mnt/c/repotemp/sharpee/packages/world-model/src/traits/edible/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}