@sharpee/world-model 3.0.0 → 3.3.0
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.
- package/annotations/index.d.ts +1 -1
- package/annotations/index.d.ts.map +1 -1
- package/annotations/index.js +1 -1
- package/annotations/index.js.map +1 -1
- package/behaviors/attack.d.ts +21 -4
- package/behaviors/attack.d.ts.map +1 -1
- package/behaviors/attack.js +37 -33
- package/behaviors/attack.js.map +1 -1
- package/behaviors/behavior.d.ts +3 -3
- package/behaviors/behavior.d.ts.map +1 -1
- package/behaviors/index.d.ts +21 -20
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +35 -32
- package/behaviors/index.js.map +1 -1
- package/capabilities/action-interceptor.d.ts +96 -9
- package/capabilities/action-interceptor.d.ts.map +1 -1
- package/capabilities/action-interceptor.js +59 -2
- package/capabilities/action-interceptor.js.map +1 -1
- package/capabilities/capability-behavior.d.ts +3 -3
- package/capabilities/capability-behavior.d.ts.map +1 -1
- package/capabilities/capability-binding.d.ts +3 -3
- package/capabilities/capability-binding.d.ts.map +1 -1
- package/capabilities/capability-helpers.d.ts +2 -2
- package/capabilities/capability-helpers.d.ts.map +1 -1
- package/capabilities/entity-builder.d.ts +2 -2
- package/capabilities/entity-builder.d.ts.map +1 -1
- package/capabilities/index.d.ts +9 -9
- package/capabilities/index.d.ts.map +1 -1
- package/capabilities/index.js +27 -26
- package/capabilities/index.js.map +1 -1
- package/capabilities/interceptor-binding.d.ts +2 -2
- package/capabilities/interceptor-binding.d.ts.map +1 -1
- package/capabilities/interceptor-helpers.d.ts +2 -2
- package/capabilities/interceptor-helpers.d.ts.map +1 -1
- package/commands/command-types.d.ts +2 -2
- package/commands/command-types.d.ts.map +1 -1
- package/commands/index.d.ts +3 -3
- package/commands/index.d.ts.map +1 -1
- package/commands/index.js +3 -3
- package/commands/index.js.map +1 -1
- package/commands/parsed-command.d.ts +13 -0
- package/commands/parsed-command.d.ts.map +1 -1
- package/commands/validated-command.d.ts +16 -2
- package/commands/validated-command.d.ts.map +1 -1
- package/constants/index.d.ts +3 -3
- package/constants/index.d.ts.map +1 -1
- package/constants/index.js +3 -3
- package/constants/index.js.map +1 -1
- package/entities/entity-store.d.ts +1 -1
- package/entities/entity-store.d.ts.map +1 -1
- package/entities/entity-store.js +2 -2
- package/entities/entity-store.js.map +1 -1
- package/entities/if-entity.d.ts +3 -3
- package/entities/if-entity.d.ts.map +1 -1
- package/entities/if-entity.js +38 -34
- package/entities/if-entity.js.map +1 -1
- package/entities/index.d.ts +6 -6
- package/entities/index.d.ts.map +1 -1
- package/entities/index.js +10 -10
- package/entities/index.js.map +1 -1
- package/entities/trait-rehydrator.d.ts +43 -0
- package/entities/trait-rehydrator.d.ts.map +1 -0
- package/entities/trait-rehydrator.js +45 -0
- package/entities/trait-rehydrator.js.map +1 -0
- package/entities/wall-entity.d.ts +2 -2
- package/entities/wall-entity.d.ts.map +1 -1
- package/entities/wall-entity.js +2 -2
- package/entities/wall-entity.js.map +1 -1
- package/examples/event-handler-registration.d.ts +1 -1
- package/examples/event-handler-registration.d.ts.map +1 -1
- package/examples/event-handler-registration.js +24 -24
- package/examples/event-handler-registration.js.map +1 -1
- package/extensions/base-extension.d.ts +3 -3
- package/extensions/base-extension.d.ts.map +1 -1
- package/extensions/index.d.ts +4 -4
- package/extensions/index.d.ts.map +1 -1
- package/extensions/index.js +11 -11
- package/extensions/index.js.map +1 -1
- package/extensions/loader.d.ts +1 -1
- package/extensions/loader.d.ts.map +1 -1
- package/extensions/loader.js +2 -2
- package/extensions/loader.js.map +1 -1
- package/extensions/manager.d.ts +1 -1
- package/extensions/manager.d.ts.map +1 -1
- package/extensions/manager.js +2 -2
- package/extensions/manager.js.map +1 -1
- package/extensions/registry.d.ts +2 -2
- package/extensions/registry.d.ts.map +1 -1
- package/extensions/registry.js +4 -4
- package/extensions/registry.js.map +1 -1
- package/extensions/types.d.ts +2 -2
- package/extensions/types.d.ts.map +1 -1
- package/index.d.ts +58 -46
- package/index.d.ts.map +1 -1
- package/index.js +72 -50
- package/index.js.map +1 -1
- package/interfaces/command-executor.d.ts +1 -1
- package/interfaces/command-executor.d.ts.map +1 -1
- package/interfaces/command-processor.d.ts +1 -1
- package/interfaces/command-processor.d.ts.map +1 -1
- package/interfaces/command-validator.d.ts +1 -1
- package/interfaces/command-validator.d.ts.map +1 -1
- package/interfaces/index.d.ts +4 -4
- package/interfaces/index.d.ts.map +1 -1
- package/interfaces/index.js +4 -4
- package/interfaces/index.js.map +1 -1
- package/interfaces/parser.d.ts +1 -1
- package/interfaces/parser.d.ts.map +1 -1
- package/package.json +3 -3
- package/scope/index.d.ts +3 -3
- package/scope/index.d.ts.map +1 -1
- package/scope/index.js +3 -3
- package/scope/index.js.map +1 -1
- package/scope/scope-evaluator.d.ts +2 -2
- package/scope/scope-evaluator.d.ts.map +1 -1
- package/scope/scope-registry.d.ts +1 -1
- package/scope/scope-registry.d.ts.map +1 -1
- package/state-adjectives.d.ts +1 -1
- package/state-adjectives.d.ts.map +1 -1
- package/state-adjectives.js +5 -5
- package/state-adjectives.js.map +1 -1
- package/state-clauses.d.ts +1 -1
- package/state-clauses.d.ts.map +1 -1
- package/state-clauses.js +5 -5
- package/state-clauses.js.map +1 -1
- package/test-structure.d.ts +1 -1
- package/test-structure.d.ts.map +1 -1
- package/test-structure.js +7 -7
- package/test-structure.js.map +1 -1
- package/traits/acoustic/acousticDampenerTrait.d.ts +1 -1
- package/traits/acoustic/acousticDampenerTrait.d.ts.map +1 -1
- package/traits/acoustic/acousticDampenerTrait.js +3 -3
- package/traits/acoustic/acousticDampenerTrait.js.map +1 -1
- package/traits/acoustic/acousticTrait.d.ts +1 -1
- package/traits/acoustic/acousticTrait.d.ts.map +1 -1
- package/traits/acoustic/acousticTrait.js +3 -3
- package/traits/acoustic/acousticTrait.js.map +1 -1
- package/traits/acoustic/index.d.ts +2 -2
- package/traits/acoustic/index.d.ts.map +1 -1
- package/traits/acoustic/index.js +5 -5
- package/traits/acoustic/index.js.map +1 -1
- package/traits/actor/actorBehavior.d.ts +4 -4
- package/traits/actor/actorBehavior.d.ts.map +1 -1
- package/traits/actor/actorBehavior.js +38 -34
- package/traits/actor/actorBehavior.js.map +1 -1
- package/traits/actor/actorTrait.d.ts +1 -1
- package/traits/actor/actorTrait.d.ts.map +1 -1
- package/traits/actor/actorTrait.js +3 -3
- package/traits/actor/actorTrait.js.map +1 -1
- package/traits/actor/index.d.ts +2 -2
- package/traits/actor/index.d.ts.map +1 -1
- package/traits/actor/index.js +6 -6
- package/traits/actor/index.js.map +1 -1
- package/traits/all-traits.d.ts +30 -33
- package/traits/all-traits.d.ts.map +1 -1
- package/traits/all-traits.js +56 -62
- package/traits/all-traits.js.map +1 -1
- package/traits/attached/attachedTrait.d.ts +1 -1
- package/traits/attached/attachedTrait.d.ts.map +1 -1
- package/traits/attached/attachedTrait.js +3 -3
- package/traits/attached/attachedTrait.js.map +1 -1
- package/traits/attached/index.d.ts +1 -1
- package/traits/attached/index.d.ts.map +1 -1
- package/traits/attached/index.js +1 -1
- package/traits/attached/index.js.map +1 -1
- package/traits/breakable/breakableBehavior.d.ts +3 -3
- package/traits/breakable/breakableBehavior.d.ts.map +1 -1
- package/traits/breakable/breakableBehavior.js +10 -10
- package/traits/breakable/breakableBehavior.js.map +1 -1
- package/traits/breakable/breakableTrait.d.ts +1 -1
- package/traits/breakable/breakableTrait.d.ts.map +1 -1
- package/traits/breakable/index.d.ts +2 -2
- package/traits/breakable/index.d.ts.map +1 -1
- package/traits/breakable/index.js +4 -4
- package/traits/breakable/index.js.map +1 -1
- package/traits/button/buttonTrait.d.ts +1 -1
- package/traits/button/buttonTrait.d.ts.map +1 -1
- package/traits/button/buttonTrait.js +3 -3
- package/traits/button/buttonTrait.js.map +1 -1
- package/traits/button/index.d.ts +1 -1
- package/traits/button/index.d.ts.map +1 -1
- package/traits/button/index.js +1 -1
- package/traits/button/index.js.map +1 -1
- package/traits/character-model/characterModelTrait.d.ts +2 -2
- package/traits/character-model/characterModelTrait.d.ts.map +1 -1
- package/traits/character-model/characterModelTrait.js +16 -16
- package/traits/character-model/characterModelTrait.js.map +1 -1
- package/traits/character-model/index.d.ts +2 -2
- package/traits/character-model/index.d.ts.map +1 -1
- package/traits/character-model/index.js +3 -3
- package/traits/character-model/index.js.map +1 -1
- package/traits/climbable/climbableBehavior.d.ts +1 -1
- package/traits/climbable/climbableBehavior.d.ts.map +1 -1
- package/traits/climbable/climbableBehavior.js +9 -9
- package/traits/climbable/climbableBehavior.js.map +1 -1
- package/traits/climbable/climbableTrait.d.ts +1 -1
- package/traits/climbable/climbableTrait.d.ts.map +1 -1
- package/traits/climbable/climbableTrait.js +4 -4
- package/traits/climbable/climbableTrait.js.map +1 -1
- package/traits/climbable/index.d.ts +2 -2
- package/traits/climbable/index.d.ts.map +1 -1
- package/traits/climbable/index.js +2 -2
- package/traits/climbable/index.js.map +1 -1
- package/traits/clothing/clothingTrait.d.ts +2 -2
- package/traits/clothing/clothingTrait.d.ts.map +1 -1
- package/traits/clothing/clothingTrait.js +3 -3
- package/traits/clothing/clothingTrait.js.map +1 -1
- package/traits/clothing/index.d.ts +1 -1
- package/traits/clothing/index.d.ts.map +1 -1
- package/traits/clothing/index.js +1 -1
- package/traits/clothing/index.js.map +1 -1
- package/traits/combatant/combatantBehavior.d.ts +26 -21
- package/traits/combatant/combatantBehavior.d.ts.map +1 -1
- package/traits/combatant/combatantBehavior.js +58 -56
- package/traits/combatant/combatantBehavior.js.map +1 -1
- package/traits/combatant/combatantTrait.d.ts +15 -49
- package/traits/combatant/combatantTrait.d.ts.map +1 -1
- package/traits/combatant/combatantTrait.js +13 -80
- package/traits/combatant/combatantTrait.js.map +1 -1
- package/traits/combatant/index.d.ts +2 -2
- package/traits/combatant/index.d.ts.map +1 -1
- package/traits/combatant/index.js +4 -4
- package/traits/combatant/index.js.map +1 -1
- package/traits/concealment/concealedStateTrait.d.ts +3 -3
- package/traits/concealment/concealedStateTrait.d.ts.map +1 -1
- package/traits/concealment/concealedStateTrait.js +2 -2
- package/traits/concealment/concealedStateTrait.js.map +1 -1
- package/traits/concealment/concealedVisibilityBehavior.d.ts +2 -2
- package/traits/concealment/concealedVisibilityBehavior.d.ts.map +1 -1
- package/traits/concealment/concealedVisibilityBehavior.js +3 -3
- package/traits/concealment/concealedVisibilityBehavior.js.map +1 -1
- package/traits/concealment/concealmentTrait.d.ts +1 -1
- package/traits/concealment/concealmentTrait.d.ts.map +1 -1
- package/traits/concealment/index.d.ts +3 -3
- package/traits/concealment/index.d.ts.map +1 -1
- package/traits/concealment/index.js +3 -3
- package/traits/concealment/index.js.map +1 -1
- package/traits/container/container-utils.d.ts +2 -2
- package/traits/container/container-utils.d.ts.map +1 -1
- package/traits/container/container-utils.js +14 -14
- package/traits/container/container-utils.js.map +1 -1
- package/traits/container/containerBehavior.d.ts +7 -2
- package/traits/container/containerBehavior.d.ts.map +1 -1
- package/traits/container/containerBehavior.js +26 -26
- package/traits/container/containerBehavior.js.map +1 -1
- package/traits/container/containerTrait.d.ts +1 -1
- package/traits/container/containerTrait.d.ts.map +1 -1
- package/traits/container/containerTrait.js +3 -3
- package/traits/container/containerTrait.js.map +1 -1
- package/traits/container/index.d.ts +3 -3
- package/traits/container/index.d.ts.map +1 -1
- package/traits/container/index.js +9 -9
- package/traits/container/index.js.map +1 -1
- package/traits/cuttable/cuttableBehavior.d.ts +23 -0
- package/traits/cuttable/cuttableBehavior.d.ts.map +1 -0
- package/traits/cuttable/cuttableBehavior.js +39 -0
- package/traits/cuttable/cuttableBehavior.js.map +1 -0
- package/traits/cuttable/cuttableTrait.d.ts +37 -0
- package/traits/cuttable/cuttableTrait.d.ts.map +1 -0
- package/traits/cuttable/cuttableTrait.js +30 -0
- package/traits/cuttable/cuttableTrait.js.map +1 -0
- package/traits/cuttable/index.d.ts +3 -0
- package/traits/cuttable/index.d.ts.map +1 -0
- package/traits/cuttable/index.js +20 -0
- package/traits/cuttable/index.js.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts +48 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.js +59 -0
- package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts +51 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.js +37 -0
- package/traits/deadly-room/deadlyRoomTrait.js.map +1 -0
- package/traits/deadly-room/index.d.ts +3 -0
- package/traits/deadly-room/index.d.ts.map +1 -0
- package/traits/deadly-room/index.js +8 -0
- package/traits/deadly-room/index.js.map +1 -0
- package/traits/destructible/destructibleBehavior.d.ts +3 -3
- package/traits/destructible/destructibleBehavior.d.ts.map +1 -1
- package/traits/destructible/destructibleBehavior.js +12 -12
- package/traits/destructible/destructibleBehavior.js.map +1 -1
- package/traits/destructible/destructibleTrait.d.ts +1 -1
- package/traits/destructible/destructibleTrait.d.ts.map +1 -1
- package/traits/destructible/index.d.ts +2 -2
- package/traits/destructible/index.d.ts.map +1 -1
- package/traits/destructible/index.js +4 -4
- package/traits/destructible/index.js.map +1 -1
- package/traits/diggable/diggableBehavior.d.ts +23 -0
- package/traits/diggable/diggableBehavior.d.ts.map +1 -0
- package/traits/diggable/diggableBehavior.js +39 -0
- package/traits/diggable/diggableBehavior.js.map +1 -0
- package/traits/diggable/diggableTrait.d.ts +37 -0
- package/traits/diggable/diggableTrait.d.ts.map +1 -0
- package/traits/diggable/diggableTrait.js +30 -0
- package/traits/diggable/diggableTrait.js.map +1 -0
- package/traits/diggable/index.d.ts +3 -0
- package/traits/diggable/index.d.ts.map +1 -0
- package/traits/diggable/index.js +20 -0
- package/traits/diggable/index.js.map +1 -0
- package/traits/door/doorBehavior.d.ts +2 -2
- package/traits/door/doorBehavior.d.ts.map +1 -1
- package/traits/door/doorBehavior.js +11 -11
- package/traits/door/doorBehavior.js.map +1 -1
- package/traits/door/doorTrait.d.ts +1 -1
- package/traits/door/doorTrait.d.ts.map +1 -1
- package/traits/door/doorTrait.js +3 -3
- package/traits/door/doorTrait.js.map +1 -1
- package/traits/door/index.d.ts +2 -2
- package/traits/door/index.d.ts.map +1 -1
- package/traits/door/index.js +4 -4
- package/traits/door/index.js.map +1 -1
- package/traits/edible/edibleBehavior.d.ts +3 -3
- package/traits/edible/edibleBehavior.d.ts.map +1 -1
- package/traits/edible/edibleBehavior.js +20 -20
- package/traits/edible/edibleBehavior.js.map +1 -1
- package/traits/edible/edibleTrait.d.ts +1 -1
- package/traits/edible/edibleTrait.d.ts.map +1 -1
- package/traits/edible/edibleTrait.js +3 -3
- package/traits/edible/edibleTrait.js.map +1 -1
- package/traits/edible/index.d.ts +2 -2
- package/traits/edible/index.d.ts.map +1 -1
- package/traits/edible/index.js +2 -2
- package/traits/edible/index.js.map +1 -1
- package/traits/enterable/enterableTrait.d.ts +1 -1
- package/traits/enterable/enterableTrait.d.ts.map +1 -1
- package/traits/enterable/enterableTrait.js +4 -4
- package/traits/enterable/enterableTrait.js.map +1 -1
- package/traits/enterable/index.d.ts +1 -1
- package/traits/enterable/index.d.ts.map +1 -1
- package/traits/enterable/index.js +1 -1
- package/traits/enterable/index.js.map +1 -1
- package/traits/equipped/equippedTrait.d.ts +1 -1
- package/traits/equipped/equippedTrait.d.ts.map +1 -1
- package/traits/equipped/index.d.ts +1 -1
- package/traits/equipped/index.d.ts.map +1 -1
- package/traits/equipped/index.js +2 -2
- package/traits/equipped/index.js.map +1 -1
- package/traits/exit/exitBehavior.d.ts +2 -2
- package/traits/exit/exitBehavior.d.ts.map +1 -1
- package/traits/exit/exitBehavior.js +27 -27
- package/traits/exit/exitBehavior.js.map +1 -1
- package/traits/exit/exitTrait.d.ts +1 -1
- package/traits/exit/exitTrait.d.ts.map +1 -1
- package/traits/exit/exitTrait.js +3 -3
- package/traits/exit/exitTrait.js.map +1 -1
- package/traits/exit/index.d.ts +2 -2
- package/traits/exit/index.d.ts.map +1 -1
- package/traits/exit/index.js +4 -4
- package/traits/exit/index.js.map +1 -1
- package/traits/health/healthBehavior.d.ts +66 -0
- package/traits/health/healthBehavior.d.ts.map +1 -0
- package/traits/health/healthBehavior.js +98 -0
- package/traits/health/healthBehavior.js.map +1 -0
- package/traits/health/healthTrait.d.ts +60 -0
- package/traits/health/healthTrait.d.ts.map +1 -0
- package/traits/health/healthTrait.js +49 -0
- package/traits/health/healthTrait.js.map +1 -0
- package/traits/health/index.d.ts +3 -0
- package/traits/health/index.d.ts.map +1 -0
- package/traits/health/index.js +8 -0
- package/traits/health/index.js.map +1 -0
- package/traits/identity/identityBehavior.d.ts +2 -2
- package/traits/identity/identityBehavior.d.ts.map +1 -1
- package/traits/identity/identityBehavior.js +16 -16
- package/traits/identity/identityBehavior.js.map +1 -1
- package/traits/identity/identityTrait.d.ts +8 -1
- package/traits/identity/identityTrait.d.ts.map +1 -1
- package/traits/identity/identityTrait.js +10 -3
- package/traits/identity/identityTrait.js.map +1 -1
- package/traits/identity/index.d.ts +3 -2
- package/traits/identity/index.d.ts.map +1 -1
- package/traits/identity/index.js +3 -2
- package/traits/identity/index.js.map +1 -1
- package/traits/identity/name-vocabulary.d.ts +31 -0
- package/traits/identity/name-vocabulary.d.ts.map +1 -0
- package/traits/identity/name-vocabulary.js +57 -0
- package/traits/identity/name-vocabulary.js.map +1 -0
- package/traits/implementations.d.ts +65 -38
- package/traits/implementations.d.ts.map +1 -1
- package/traits/implementations.js +165 -117
- package/traits/implementations.js.map +1 -1
- package/traits/index.d.ts +47 -44
- package/traits/index.d.ts.map +1 -1
- package/traits/index.js +48 -44
- package/traits/index.js.map +1 -1
- package/traits/light-source/index.d.ts +2 -2
- package/traits/light-source/index.d.ts.map +1 -1
- package/traits/light-source/index.js +4 -4
- package/traits/light-source/index.js.map +1 -1
- package/traits/light-source/lightSourceBehavior.d.ts +2 -2
- package/traits/light-source/lightSourceBehavior.d.ts.map +1 -1
- package/traits/light-source/lightSourceBehavior.js +16 -16
- package/traits/light-source/lightSourceBehavior.js.map +1 -1
- package/traits/light-source/lightSourceTrait.d.ts +1 -1
- package/traits/light-source/lightSourceTrait.d.ts.map +1 -1
- package/traits/light-source/lightSourceTrait.js +3 -3
- package/traits/light-source/lightSourceTrait.js.map +1 -1
- package/traits/listener/index.d.ts +1 -1
- package/traits/listener/index.d.ts.map +1 -1
- package/traits/listener/index.js +2 -2
- package/traits/listener/index.js.map +1 -1
- package/traits/listener/listenerTrait.d.ts +1 -1
- package/traits/listener/listenerTrait.d.ts.map +1 -1
- package/traits/listener/listenerTrait.js +3 -3
- package/traits/listener/listenerTrait.js.map +1 -1
- package/traits/lockable/index.d.ts +2 -2
- package/traits/lockable/index.d.ts.map +1 -1
- package/traits/lockable/index.js +2 -2
- package/traits/lockable/index.js.map +1 -1
- package/traits/lockable/lockableBehavior.d.ts +2 -2
- package/traits/lockable/lockableBehavior.d.ts.map +1 -1
- package/traits/lockable/lockableBehavior.js +19 -19
- package/traits/lockable/lockableBehavior.js.map +1 -1
- package/traits/lockable/lockableTrait.d.ts +1 -1
- package/traits/lockable/lockableTrait.d.ts.map +1 -1
- package/traits/lockable/lockableTrait.js +3 -3
- package/traits/lockable/lockableTrait.js.map +1 -1
- package/traits/moveable-scenery/index.d.ts +1 -1
- package/traits/moveable-scenery/index.d.ts.map +1 -1
- package/traits/moveable-scenery/index.js +1 -1
- package/traits/moveable-scenery/index.js.map +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -1
- package/traits/moveable-scenery/moveableSceneryTrait.js +3 -3
- package/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -1
- package/traits/npc/index.d.ts +1 -1
- package/traits/npc/index.d.ts.map +1 -1
- package/traits/npc/index.js +2 -2
- package/traits/npc/index.js.map +1 -1
- package/traits/npc/npcTrait.d.ts +6 -28
- package/traits/npc/npcTrait.d.ts.map +1 -1
- package/traits/npc/npcTrait.js +0 -38
- package/traits/npc/npcTrait.js.map +1 -1
- package/traits/obstructor-protocol.d.ts +3 -3
- package/traits/obstructor-protocol.d.ts.map +1 -1
- package/traits/open-inventory/index.d.ts +1 -1
- package/traits/open-inventory/index.d.ts.map +1 -1
- package/traits/open-inventory/index.js +2 -2
- package/traits/open-inventory/index.js.map +1 -1
- package/traits/open-inventory/openInventoryTrait.d.ts +1 -1
- package/traits/open-inventory/openInventoryTrait.d.ts.map +1 -1
- package/traits/open-inventory/openInventoryTrait.js +3 -3
- package/traits/open-inventory/openInventoryTrait.js.map +1 -1
- package/traits/openable/index.d.ts +2 -2
- package/traits/openable/index.d.ts.map +1 -1
- package/traits/openable/index.js +2 -2
- package/traits/openable/index.js.map +1 -1
- package/traits/openable/openableBehavior.d.ts +12 -2
- package/traits/openable/openableBehavior.d.ts.map +1 -1
- package/traits/openable/openableBehavior.js +32 -11
- package/traits/openable/openableBehavior.js.map +1 -1
- package/traits/openable/openableTrait.d.ts +8 -1
- package/traits/openable/openableTrait.d.ts.map +1 -1
- package/traits/openable/openableTrait.js +7 -3
- package/traits/openable/openableTrait.js.map +1 -1
- package/traits/pullable/index.d.ts +1 -1
- package/traits/pullable/index.d.ts.map +1 -1
- package/traits/pullable/index.js +1 -1
- package/traits/pullable/index.js.map +1 -1
- package/traits/pullable/pullableTrait.d.ts +1 -1
- package/traits/pullable/pullableTrait.d.ts.map +1 -1
- package/traits/pullable/pullableTrait.js +3 -3
- package/traits/pullable/pullableTrait.js.map +1 -1
- package/traits/pushable/index.d.ts +1 -1
- package/traits/pushable/index.d.ts.map +1 -1
- package/traits/pushable/index.js +1 -1
- package/traits/pushable/index.js.map +1 -1
- package/traits/pushable/pushableTrait.d.ts +1 -1
- package/traits/pushable/pushableTrait.d.ts.map +1 -1
- package/traits/pushable/pushableTrait.js +3 -3
- package/traits/pushable/pushableTrait.js.map +1 -1
- package/traits/readable/index.d.ts +2 -2
- package/traits/readable/index.d.ts.map +1 -1
- package/traits/readable/index.js +4 -4
- package/traits/readable/index.js.map +1 -1
- package/traits/readable/readableBehavior.d.ts +1 -1
- package/traits/readable/readableBehavior.d.ts.map +1 -1
- package/traits/readable/readableBehavior.js +10 -10
- package/traits/readable/readableBehavior.js.map +1 -1
- package/traits/readable/readableTrait.d.ts +1 -1
- package/traits/readable/readableTrait.d.ts.map +1 -1
- package/traits/readable/readableTrait.js +3 -3
- package/traits/readable/readableTrait.js.map +1 -1
- package/traits/region/index.d.ts +1 -1
- package/traits/region/index.d.ts.map +1 -1
- package/traits/region/index.js +2 -2
- package/traits/region/index.js.map +1 -1
- package/traits/region/regionTrait.d.ts +1 -1
- package/traits/region/regionTrait.d.ts.map +1 -1
- package/traits/region/regionTrait.js +3 -3
- package/traits/region/regionTrait.js.map +1 -1
- package/traits/room/index.d.ts +2 -2
- package/traits/room/index.d.ts.map +1 -1
- package/traits/room/index.js +4 -4
- package/traits/room/index.js.map +1 -1
- package/traits/room/roomBehavior.d.ts +4 -4
- package/traits/room/roomBehavior.d.ts.map +1 -1
- package/traits/room/roomBehavior.js +25 -25
- package/traits/room/roomBehavior.js.map +1 -1
- package/traits/room/roomTrait.d.ts +10 -5
- package/traits/room/roomTrait.d.ts.map +1 -1
- package/traits/room/roomTrait.js +5 -5
- package/traits/room/roomTrait.js.map +1 -1
- package/traits/scene/index.d.ts +1 -1
- package/traits/scene/index.d.ts.map +1 -1
- package/traits/scene/index.js +2 -2
- package/traits/scene/index.js.map +1 -1
- package/traits/scene/sceneTrait.d.ts +1 -1
- package/traits/scene/sceneTrait.d.ts.map +1 -1
- package/traits/scene/sceneTrait.js +3 -3
- package/traits/scene/sceneTrait.js.map +1 -1
- package/traits/scenery/index.d.ts +2 -2
- package/traits/scenery/index.d.ts.map +1 -1
- package/traits/scenery/index.js +4 -4
- package/traits/scenery/index.js.map +1 -1
- package/traits/scenery/sceneryBehavior.d.ts +1 -1
- package/traits/scenery/sceneryBehavior.d.ts.map +1 -1
- package/traits/scenery/sceneryBehavior.js +5 -5
- package/traits/scenery/sceneryBehavior.js.map +1 -1
- package/traits/scenery/sceneryTrait.d.ts +1 -1
- package/traits/scenery/sceneryTrait.d.ts.map +1 -1
- package/traits/scenery/sceneryTrait.js +3 -3
- package/traits/scenery/sceneryTrait.js.map +1 -1
- package/traits/story-info/index.d.ts +1 -1
- package/traits/story-info/index.d.ts.map +1 -1
- package/traits/story-info/index.js +2 -2
- package/traits/story-info/index.js.map +1 -1
- package/traits/story-info/storyInfoTrait.d.ts +1 -1
- package/traits/story-info/storyInfoTrait.d.ts.map +1 -1
- package/traits/supporter/index.d.ts +2 -2
- package/traits/supporter/index.d.ts.map +1 -1
- package/traits/supporter/index.js +4 -4
- package/traits/supporter/index.js.map +1 -1
- package/traits/supporter/supporterBehavior.d.ts +3 -3
- package/traits/supporter/supporterBehavior.d.ts.map +1 -1
- package/traits/supporter/supporterBehavior.js +15 -15
- package/traits/supporter/supporterBehavior.js.map +1 -1
- package/traits/supporter/supporterTrait.d.ts +1 -1
- package/traits/supporter/supporterTrait.d.ts.map +1 -1
- package/traits/supporter/supporterTrait.js +3 -3
- package/traits/supporter/supporterTrait.js.map +1 -1
- package/traits/switchable/index.d.ts +2 -2
- package/traits/switchable/index.d.ts.map +1 -1
- package/traits/switchable/index.js +2 -2
- package/traits/switchable/index.js.map +1 -1
- package/traits/switchable/switchableBehavior.d.ts +2 -2
- package/traits/switchable/switchableBehavior.d.ts.map +1 -1
- package/traits/switchable/switchableBehavior.js +18 -18
- package/traits/switchable/switchableBehavior.js.map +1 -1
- package/traits/switchable/switchableTrait.d.ts +1 -1
- package/traits/switchable/switchableTrait.d.ts.map +1 -1
- package/traits/switchable/switchableTrait.js +3 -3
- package/traits/switchable/switchableTrait.js.map +1 -1
- package/traits/trait-types.d.ts +4 -1
- package/traits/trait-types.d.ts.map +1 -1
- package/traits/trait-types.js +12 -2
- package/traits/trait-types.js.map +1 -1
- package/traits/trait.d.ts +1 -1
- package/traits/trait.d.ts.map +1 -1
- package/traits/vehicle/index.d.ts +2 -2
- package/traits/vehicle/index.d.ts.map +1 -1
- package/traits/vehicle/index.js +2 -2
- package/traits/vehicle/index.js.map +1 -1
- package/traits/vehicle/vehicleBehavior.d.ts +2 -2
- package/traits/vehicle/vehicleBehavior.d.ts.map +1 -1
- package/traits/vehicle/vehicleBehavior.js +7 -7
- package/traits/vehicle/vehicleBehavior.js.map +1 -1
- package/traits/vehicle/vehicleTrait.d.ts +1 -1
- package/traits/vehicle/vehicleTrait.d.ts.map +1 -1
- package/traits/vehicle/vehicleTrait.js +4 -4
- package/traits/vehicle/vehicleTrait.js.map +1 -1
- package/traits/weapon/index.d.ts +2 -2
- package/traits/weapon/index.d.ts.map +1 -1
- package/traits/weapon/index.js +4 -4
- package/traits/weapon/index.js.map +1 -1
- package/traits/weapon/weaponBehavior.d.ts +11 -4
- package/traits/weapon/weaponBehavior.d.ts.map +1 -1
- package/traits/weapon/weaponBehavior.js +24 -19
- package/traits/weapon/weaponBehavior.js.map +1 -1
- package/traits/weapon/weaponTrait.d.ts +1 -1
- package/traits/weapon/weaponTrait.d.ts.map +1 -1
- package/traits/wearable/index.d.ts +2 -2
- package/traits/wearable/index.d.ts.map +1 -1
- package/traits/wearable/index.js +2 -2
- package/traits/wearable/index.js.map +1 -1
- package/traits/wearable/wearableBehavior.d.ts +1 -1
- package/traits/wearable/wearableBehavior.d.ts.map +1 -1
- package/traits/wearable/wearableBehavior.js +11 -11
- package/traits/wearable/wearableBehavior.js.map +1 -1
- package/traits/wearable/wearableTrait.d.ts +1 -1
- package/traits/wearable/wearableTrait.d.ts.map +1 -1
- package/traits/wearable/wearableTrait.js +3 -3
- package/traits/wearable/wearableTrait.js.map +1 -1
- package/world/AuthorModel.d.ts +23 -17
- package/world/AuthorModel.d.ts.map +1 -1
- package/world/AuthorModel.js +15 -4
- package/world/AuthorModel.js.map +1 -1
- package/world/SharedDataStore.d.ts +2 -2
- package/world/SharedDataStore.d.ts.map +1 -1
- package/world/SharedDataStore.js +2 -2
- package/world/SharedDataStore.js.map +1 -1
- package/world/VisibilityBehavior.d.ts +60 -4
- package/world/VisibilityBehavior.d.ts.map +1 -1
- package/world/VisibilityBehavior.js +193 -101
- package/world/VisibilityBehavior.js.map +1 -1
- package/world/WorldEventSystem.d.ts +1 -1
- package/world/WorldEventSystem.d.ts.map +1 -1
- package/world/WorldModel.d.ts +65 -18
- package/world/WorldModel.d.ts.map +1 -1
- package/world/WorldModel.js +164 -114
- package/world/WorldModel.js.map +1 -1
- package/world/WorldSerializer.d.ts +4 -4
- package/world/WorldSerializer.d.ts.map +1 -1
- package/world/WorldSerializer.js +2 -2
- package/world/WorldSerializer.js.map +1 -1
- package/world/default-trait-registry.d.ts +1 -1
- package/world/default-trait-registry.d.ts.map +1 -1
- package/world/default-trait-registry.js +3 -3
- package/world/default-trait-registry.js.map +1 -1
- package/world/index.d.ts +9 -9
- package/world/index.d.ts.map +1 -1
- package/world/index.js +17 -16
- package/world/index.js.map +1 -1
- package/world/wall-creation.d.ts +2 -2
- package/world/wall-creation.d.ts.map +1 -1
- package/world/wall-creation.js +6 -6
- package/world/wall-creation.js.map +1 -1
- package/world/wall-validation.d.ts +2 -2
- package/world/wall-validation.d.ts.map +1 -1
- package/world/wall-validation.js +3 -3
- package/world/wall-validation.js.map +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Concealment trait module (ADR-148)
|
|
3
3
|
*/
|
|
4
|
-
export * from './concealmentTrait';
|
|
5
|
-
export * from './concealedStateTrait';
|
|
6
|
-
export * from './concealedVisibilityBehavior';
|
|
4
|
+
export * from './concealmentTrait.js';
|
|
5
|
+
export * from './concealedStateTrait.js';
|
|
6
|
+
export * from './concealedVisibilityBehavior.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC"}
|
|
@@ -17,7 +17,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./concealmentTrait"), exports);
|
|
21
|
-
__exportStar(require("./concealedStateTrait"), exports);
|
|
22
|
-
__exportStar(require("./concealedVisibilityBehavior"), exports);
|
|
20
|
+
__exportStar(require("./concealmentTrait.js"), exports);
|
|
21
|
+
__exportStar(require("./concealedStateTrait.js"), exports);
|
|
22
|
+
__exportStar(require("./concealedVisibilityBehavior.js"), exports);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/concealment/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,wDAAsC;AACtC,2DAAyC;AACzC,mEAAiD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ITrait } from '../trait';
|
|
2
|
-
import { IFEntity } from '../../entities/if-entity';
|
|
1
|
+
import { ITrait } from '../trait.js';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity.js';
|
|
3
3
|
/**
|
|
4
4
|
* Interface for traits that provide container functionality.
|
|
5
5
|
* This includes ContainerTrait, RoomTrait, and ActorTrait.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-utils.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/container-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"container-utils.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/container-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,gEAAgE;IAChE,aAAa,EAAE,OAAO,CAAC;IAEvB,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAM5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAepD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,CA+BjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAO7E"}
|
|
@@ -5,14 +5,14 @@ exports.isContainerCapable = isContainerCapable;
|
|
|
5
5
|
exports.canContain = canContain;
|
|
6
6
|
exports.getContainerTrait = getContainerTrait;
|
|
7
7
|
exports.hasContainerProperties = hasContainerProperties;
|
|
8
|
-
const
|
|
8
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
9
9
|
/**
|
|
10
10
|
* Check if a trait provides container functionality
|
|
11
11
|
*/
|
|
12
12
|
function isContainerCapable(trait) {
|
|
13
|
-
return (trait.type ===
|
|
14
|
-
trait.type ===
|
|
15
|
-
trait.type ===
|
|
13
|
+
return (trait.type === trait_types_js_1.TraitType.CONTAINER ||
|
|
14
|
+
trait.type === trait_types_js_1.TraitType.ROOM ||
|
|
15
|
+
trait.type === trait_types_js_1.TraitType.ACTOR);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Check if an entity can contain other entities
|
|
@@ -23,29 +23,29 @@ function canContain(entity) {
|
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
// Then check for explicit container traits
|
|
26
|
-
return (entity.hasTrait(
|
|
27
|
-
entity.hasTrait(
|
|
28
|
-
entity.hasTrait(
|
|
29
|
-
entity.hasTrait(
|
|
30
|
-
entity.hasTrait(
|
|
31
|
-
entity.hasTrait(
|
|
26
|
+
return (entity.hasTrait(trait_types_js_1.TraitType.CONTAINER) ||
|
|
27
|
+
entity.hasTrait(trait_types_js_1.TraitType.ROOM) ||
|
|
28
|
+
entity.hasTrait(trait_types_js_1.TraitType.ACTOR) ||
|
|
29
|
+
entity.hasTrait(trait_types_js_1.TraitType.SUPPORTER) || // Supporters can also hold things
|
|
30
|
+
entity.hasTrait(trait_types_js_1.TraitType.ENTERABLE) ||
|
|
31
|
+
entity.hasTrait(trait_types_js_1.TraitType.VEHICLE));
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Get the container trait from an entity, regardless of which trait provides it
|
|
35
35
|
*/
|
|
36
36
|
function getContainerTrait(entity) {
|
|
37
37
|
// Check for explicit container trait first
|
|
38
|
-
const container = entity.getTrait(
|
|
38
|
+
const container = entity.getTrait(trait_types_js_1.TraitType.CONTAINER);
|
|
39
39
|
if (container && isContainerCapable(container)) {
|
|
40
40
|
return container;
|
|
41
41
|
}
|
|
42
42
|
// Check for room trait
|
|
43
|
-
const room = entity.getTrait(
|
|
43
|
+
const room = entity.getTrait(trait_types_js_1.TraitType.ROOM);
|
|
44
44
|
if (room && isContainerCapable(room)) {
|
|
45
45
|
return room;
|
|
46
46
|
}
|
|
47
47
|
// Check for actor trait
|
|
48
|
-
const actor = entity.getTrait(
|
|
48
|
+
const actor = entity.getTrait(trait_types_js_1.TraitType.ACTOR);
|
|
49
49
|
if (actor && isContainerCapable(actor)) {
|
|
50
50
|
return actor;
|
|
51
51
|
}
|
|
@@ -53,7 +53,7 @@ function getContainerTrait(entity) {
|
|
|
53
53
|
if (entity.type === 'room' || entity.type === 'actor') {
|
|
54
54
|
// Return a default container capability
|
|
55
55
|
return {
|
|
56
|
-
type: entity.type === 'room' ?
|
|
56
|
+
type: entity.type === 'room' ? trait_types_js_1.TraitType.ROOM : trait_types_js_1.TraitType.ACTOR,
|
|
57
57
|
isTransparent: entity.type === 'room', // Rooms are transparent by default
|
|
58
58
|
enterable: entity.type === 'room', // Only rooms are enterable
|
|
59
59
|
capacity: undefined // No capacity limits by default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-utils.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/container-utils.ts"],"names":[],"mappings":";AAAA,+DAA+D;;AAkC/D,gDAMC;AAKD,gCAeC;AAKD,8CA+BC;AAKD,wDAOC;AAzGD,
|
|
1
|
+
{"version":3,"file":"container-utils.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/container-utils.ts"],"names":[],"mappings":";AAAA,+DAA+D;;AAkC/D,gDAMC;AAKD,gCAeC;AAKD,8CA+BC;AAKD,wDAOC;AAzGD,sDAA8C;AA4B9C;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,0BAAS,CAAC,SAAS;QAClC,KAAK,CAAC,IAAI,KAAK,0BAAS,CAAC,IAAI;QAC7B,KAAK,CAAC,IAAI,KAAK,0BAAS,CAAC,KAAK,CAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,MAAgB;IACzC,0EAA0E;IAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,SAAS,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,SAAS,CAAC,IAAI,kCAAkC;QAC1E,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,SAAS,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,OAAO,CAAC,CACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAgB;IAChD,2CAA2C;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,SAAS,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAAS,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oFAAoF;IACpF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACtD,wCAAwC;QACxC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC,0BAAS,CAAC,KAAK;YAC/D,aAAa,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,mCAAmC;YAC1E,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,2BAA2B;YAC9D,QAAQ,EAAE,SAAS,CAAC,gCAAgC;SAChC,CAAC;IACzB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAU;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS;QACxC,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,CACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
-
import { IFEntity } from '../../entities/if-entity';
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior.js';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity.js';
|
|
3
3
|
/**
|
|
4
4
|
* Result of an add item operation
|
|
5
5
|
*/
|
|
@@ -25,6 +25,11 @@ export interface IRemoveItemResult {
|
|
|
25
25
|
export interface IWorldQuery {
|
|
26
26
|
getContents(containerId: string): IFEntity[];
|
|
27
27
|
getLocation(entityId: string): string | undefined;
|
|
28
|
+
/** ADR-247: partition a holder's direct contents into held-not-worn and worn. */
|
|
29
|
+
getCarriedAndWorn(holderId: string): {
|
|
30
|
+
carried: IFEntity[];
|
|
31
|
+
worn: IFEntity[];
|
|
32
|
+
};
|
|
28
33
|
}
|
|
29
34
|
/**
|
|
30
35
|
* Behavior for entities that can contain other entities.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"containerBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AASvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAC7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,iFAAiF;IACjF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;CAChF;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,MAAM,CAAC,cAAc,gBAAyB;IAE9C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAwClF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAuCtF;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;IAOtE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;IAOtE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG;QACpE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAoBD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO;IAKlD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO;IAKhD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKjE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKlE;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc;IAkEvF;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,iBAAiB;CA6B9F"}
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
// packages/world-model/src/traits/container/containerBehavior.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ContainerBehavior = void 0;
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
5
|
+
const behavior_js_1 = require("../../behaviors/behavior.js");
|
|
6
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
7
|
+
const identityBehavior_js_1 = require("../identity/identityBehavior.js");
|
|
8
|
+
const wearableBehavior_js_1 = require("../wearable/wearableBehavior.js");
|
|
9
9
|
/**
|
|
10
10
|
* Behavior for entities that can contain other entities.
|
|
11
11
|
*
|
|
12
12
|
* Handles capacity checks, type restrictions, and container state.
|
|
13
13
|
*/
|
|
14
|
-
class ContainerBehavior extends
|
|
15
|
-
static requiredTraits = [
|
|
14
|
+
class ContainerBehavior extends behavior_js_1.Behavior {
|
|
15
|
+
static requiredTraits = [trait_types_js_1.TraitType.CONTAINER];
|
|
16
16
|
/**
|
|
17
17
|
* Check if a container can accept an item
|
|
18
18
|
* @returns true if the item can be accepted
|
|
19
19
|
*/
|
|
20
20
|
static canAccept(container, item, world) {
|
|
21
|
-
const trait = ContainerBehavior.require(container,
|
|
21
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
22
22
|
// Check if container is accessible (must be open if openable)
|
|
23
|
-
if (container.has(
|
|
24
|
-
const openable = container.get(
|
|
23
|
+
if (container.has(trait_types_js_1.TraitType.OPENABLE)) {
|
|
24
|
+
const openable = container.get(trait_types_js_1.TraitType.OPENABLE);
|
|
25
25
|
if (openable && !openable.isOpen) {
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
@@ -40,7 +40,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
// Check enterable restrictions for actors
|
|
43
|
-
if (item.has(
|
|
43
|
+
if (item.has(trait_types_js_1.TraitType.ACTOR) && !trait.enterable) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
46
46
|
// Check capacity constraints
|
|
@@ -55,7 +55,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
55
55
|
* Check capacity constraints
|
|
56
56
|
*/
|
|
57
57
|
static checkCapacity(container, item, world) {
|
|
58
|
-
const trait = ContainerBehavior.require(container,
|
|
58
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
59
59
|
const capacity = trait.capacity;
|
|
60
60
|
// If no capacity defined, allow any items
|
|
61
61
|
if (!capacity) {
|
|
@@ -64,7 +64,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
64
64
|
// Check item count limit (excluding worn items for actors)
|
|
65
65
|
if (capacity.maxItems !== undefined) {
|
|
66
66
|
const contents = world.getContents(container.id);
|
|
67
|
-
const currentCount = contents.filter(item => !
|
|
67
|
+
const currentCount = contents.filter(item => !wearableBehavior_js_1.WearableBehavior.isWorn(item)).length;
|
|
68
68
|
if (currentCount >= capacity.maxItems) {
|
|
69
69
|
return false;
|
|
70
70
|
}
|
|
@@ -72,7 +72,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
72
72
|
// Check weight limit
|
|
73
73
|
if (capacity.maxWeight !== undefined) {
|
|
74
74
|
const currentWeight = this.getTotalWeight(container, world);
|
|
75
|
-
const itemWeight =
|
|
75
|
+
const itemWeight = identityBehavior_js_1.IdentityBehavior.getWeight(item);
|
|
76
76
|
if (currentWeight + itemWeight > capacity.maxWeight) {
|
|
77
77
|
return false;
|
|
78
78
|
}
|
|
@@ -80,7 +80,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
80
80
|
// Check volume limit
|
|
81
81
|
if (capacity.maxVolume !== undefined) {
|
|
82
82
|
const currentVolume = this.getTotalVolume(container, world);
|
|
83
|
-
const itemVolume =
|
|
83
|
+
const itemVolume = identityBehavior_js_1.IdentityBehavior.getVolume(item);
|
|
84
84
|
if (currentVolume + itemVolume > capacity.maxVolume) {
|
|
85
85
|
return false;
|
|
86
86
|
}
|
|
@@ -93,7 +93,7 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
93
93
|
static getTotalWeight(container, world) {
|
|
94
94
|
const contents = world.getContents(container.id);
|
|
95
95
|
return contents.reduce((sum, item) => {
|
|
96
|
-
return sum +
|
|
96
|
+
return sum + identityBehavior_js_1.IdentityBehavior.getWeight(item);
|
|
97
97
|
}, 0);
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
@@ -102,14 +102,14 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
102
102
|
static getTotalVolume(container, world) {
|
|
103
103
|
const contents = world.getContents(container.id);
|
|
104
104
|
return contents.reduce((sum, item) => {
|
|
105
|
-
return sum +
|
|
105
|
+
return sum + identityBehavior_js_1.IdentityBehavior.getVolume(item);
|
|
106
106
|
}, 0);
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
* Get remaining capacity
|
|
110
110
|
*/
|
|
111
111
|
static getRemainingCapacity(container, world) {
|
|
112
|
-
const trait = ContainerBehavior.require(container,
|
|
112
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
113
113
|
const result = {};
|
|
114
114
|
if (trait.capacity?.maxItems !== undefined) {
|
|
115
115
|
const current = world.getContents(container.id).length;
|
|
@@ -127,28 +127,28 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
127
127
|
* Check if the container is transparent (can see contents when closed)
|
|
128
128
|
*/
|
|
129
129
|
static isTransparent(container) {
|
|
130
|
-
const trait = ContainerBehavior.require(container,
|
|
130
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
131
131
|
return trait.isTransparent || false;
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
134
|
* Check if the container is enterable by actors
|
|
135
135
|
*/
|
|
136
136
|
static isEnterable(container) {
|
|
137
|
-
const trait = ContainerBehavior.require(container,
|
|
137
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
138
138
|
return trait.enterable || false;
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* Get allowed types for this container
|
|
142
142
|
*/
|
|
143
143
|
static getAllowedTypes(container) {
|
|
144
|
-
const trait = ContainerBehavior.require(container,
|
|
144
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
145
145
|
return trait.allowedTypes;
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
148
|
* Get excluded types for this container
|
|
149
149
|
*/
|
|
150
150
|
static getExcludedTypes(container) {
|
|
151
|
-
const trait = ContainerBehavior.require(container,
|
|
151
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
152
152
|
return trait.excludedTypes;
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
@@ -159,10 +159,10 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
159
159
|
* @returns Result describing what happened
|
|
160
160
|
*/
|
|
161
161
|
static addItem(container, item, world) {
|
|
162
|
-
const trait = ContainerBehavior.require(container,
|
|
162
|
+
const trait = ContainerBehavior.require(container, trait_types_js_1.TraitType.CONTAINER);
|
|
163
163
|
// Check if container is accessible (must be open if openable)
|
|
164
|
-
if (container.has(
|
|
165
|
-
const openable = container.get(
|
|
164
|
+
if (container.has(trait_types_js_1.TraitType.OPENABLE)) {
|
|
165
|
+
const openable = container.get(trait_types_js_1.TraitType.OPENABLE);
|
|
166
166
|
if (openable && !openable.isOpen) {
|
|
167
167
|
return {
|
|
168
168
|
success: false,
|
|
@@ -226,8 +226,8 @@ class ContainerBehavior extends behavior_1.Behavior {
|
|
|
226
226
|
*/
|
|
227
227
|
static removeItem(container, item, world) {
|
|
228
228
|
// Check if container is accessible (must be open if openable)
|
|
229
|
-
if (container.has(
|
|
230
|
-
const openable = container.get(
|
|
229
|
+
if (container.has(trait_types_js_1.TraitType.OPENABLE)) {
|
|
230
|
+
const openable = container.get(trait_types_js_1.TraitType.OPENABLE);
|
|
231
231
|
if (openable && !openable.isOpen) {
|
|
232
232
|
return {
|
|
233
233
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerBehavior.ts"],"names":[],"mappings":";AAAA,iEAAiE;;;AAEjE,
|
|
1
|
+
{"version":3,"file":"containerBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"containerTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAuB;IAC3C,QAAQ,CAAC,IAAI,cAAuB;IAEpC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,8DAA8D;QAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,qDAAqD;QACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,gEAAgE;IAChE,aAAa,EAAE,OAAO,CAAC;IAEvB,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;CAiB3C"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// packages/world-model/src/traits/container/containerTrait.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ContainerTrait = void 0;
|
|
5
|
-
const
|
|
5
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
6
6
|
/**
|
|
7
7
|
* Container trait allows entities to hold other entities inside them.
|
|
8
8
|
*
|
|
@@ -10,8 +10,8 @@ const trait_types_1 = require("../trait-types");
|
|
|
10
10
|
* should be handled by ContainerBehavior.
|
|
11
11
|
*/
|
|
12
12
|
class ContainerTrait {
|
|
13
|
-
static type =
|
|
14
|
-
type =
|
|
13
|
+
static type = trait_types_js_1.TraitType.CONTAINER;
|
|
14
|
+
type = trait_types_js_1.TraitType.CONTAINER;
|
|
15
15
|
/** Capacity constraints for the container */
|
|
16
16
|
capacity;
|
|
17
17
|
/** Whether contents are visible when the container is closed */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerTrait.ts"],"names":[],"mappings":";AAAA,8DAA8D;;;AAG9D,
|
|
1
|
+
{"version":3,"file":"containerTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/containerTrait.ts"],"names":[],"mappings":";AAAA,8DAA8D;;;AAG9D,sDAA8C;AAE9C;;;;;GAKG;AACH,MAAa,cAAc;IACzB,MAAM,CAAU,IAAI,GAAG,0BAAS,CAAC,SAAS,CAAC;IAClC,IAAI,GAAG,0BAAS,CAAC,SAAS,CAAC;IAEpC,6CAA6C;IAC7C,QAAQ,CASN;IAEF,gEAAgE;IAChE,aAAa,CAAU;IAEvB,8CAA8C;IAC9C,SAAS,CAAU;IAEnB,6DAA6D;IAC7D,YAAY,CAAY;IAExB,2DAA2D;IAC3D,aAAa,CAAY;IAEzB,4CAA4C;IAC5C,cAAc,CAAW;IAEzB,6DAA6D;IAC7D,UAAU,CAAU;IAEpB,mDAAmD;IACnD,YAAY,CAAU;IAEtB,YAAY,IAA8B;QACxC,eAAe;QACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,8BAA8B;QAC9B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAClE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3E,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9E,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACjF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7E,CAAC;IACH,CAAC;;AArDH,wCAsDC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ContainerTrait } from './containerTrait';
|
|
2
|
-
export { ContainerBehavior, type IWorldQuery, type IAddItemResult, type IRemoveItemResult } from './containerBehavior';
|
|
3
|
-
export { canContain, getContainerTrait, isContainerCapable, hasContainerProperties, type IContainerCapable } from './container-utils';
|
|
1
|
+
export { ContainerTrait } from './containerTrait.js';
|
|
2
|
+
export { ContainerBehavior, type IWorldQuery, type IAddItemResult, type IRemoveItemResult } from './containerBehavior.js';
|
|
3
|
+
export { canContain, getContainerTrait, isContainerCapable, hasContainerProperties, type IContainerCapable } from './container-utils.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1H,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// packages/world-model/src/traits/container/index.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.hasContainerProperties = exports.isContainerCapable = exports.getContainerTrait = exports.canContain = exports.ContainerBehavior = exports.ContainerTrait = void 0;
|
|
5
|
-
var
|
|
6
|
-
Object.defineProperty(exports, "ContainerTrait", { enumerable: true, get: function () { return
|
|
7
|
-
var
|
|
8
|
-
Object.defineProperty(exports, "ContainerBehavior", { enumerable: true, get: function () { return
|
|
9
|
-
var
|
|
10
|
-
Object.defineProperty(exports, "canContain", { enumerable: true, get: function () { return
|
|
11
|
-
Object.defineProperty(exports, "getContainerTrait", { enumerable: true, get: function () { return
|
|
12
|
-
Object.defineProperty(exports, "isContainerCapable", { enumerable: true, get: function () { return
|
|
13
|
-
Object.defineProperty(exports, "hasContainerProperties", { enumerable: true, get: function () { return
|
|
5
|
+
var containerTrait_js_1 = require("./containerTrait.js");
|
|
6
|
+
Object.defineProperty(exports, "ContainerTrait", { enumerable: true, get: function () { return containerTrait_js_1.ContainerTrait; } });
|
|
7
|
+
var containerBehavior_js_1 = require("./containerBehavior.js");
|
|
8
|
+
Object.defineProperty(exports, "ContainerBehavior", { enumerable: true, get: function () { return containerBehavior_js_1.ContainerBehavior; } });
|
|
9
|
+
var container_utils_js_1 = require("./container-utils.js");
|
|
10
|
+
Object.defineProperty(exports, "canContain", { enumerable: true, get: function () { return container_utils_js_1.canContain; } });
|
|
11
|
+
Object.defineProperty(exports, "getContainerTrait", { enumerable: true, get: function () { return container_utils_js_1.getContainerTrait; } });
|
|
12
|
+
Object.defineProperty(exports, "isContainerCapable", { enumerable: true, get: function () { return container_utils_js_1.isContainerCapable; } });
|
|
13
|
+
Object.defineProperty(exports, "hasContainerProperties", { enumerable: true, get: function () { return container_utils_js_1.hasContainerProperties; } });
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/index.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/container/index.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AACvB,+DAA0H;AAAjH,yHAAA,iBAAiB,OAAA;AAC1B,2DAM8B;AAL5B,gHAAA,UAAU,OAAA;AACV,uHAAA,iBAAiB,OAAA;AACjB,wHAAA,kBAAkB,OAAA;AAClB,4HAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EntityId } from '@sharpee/core';
|
|
2
|
+
import { Behavior } from '../../behaviors/behavior.js';
|
|
3
|
+
import { IFEntity } from '../../entities/if-entity.js';
|
|
4
|
+
/**
|
|
5
|
+
* Behavior for cuttable entities (ADR-230 D3c).
|
|
6
|
+
*
|
|
7
|
+
* Pure predicates only — the cutting action's validate() consults these;
|
|
8
|
+
* the cut mutation itself belongs to the entity's registered
|
|
9
|
+
* implementation, never here.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CuttableBehavior extends Behavior {
|
|
12
|
+
static requiredTraits: "cuttable"[];
|
|
13
|
+
/**
|
|
14
|
+
* Check if this entity requires a tool to cut (mirrors
|
|
15
|
+
* LockableBehavior.requiresKey / OpenableBehavior.requiresTool)
|
|
16
|
+
*/
|
|
17
|
+
static requiresTool(entity: IFEntity): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a tool can cut this entity (mirrors LockableBehavior.canUnlockWith)
|
|
20
|
+
*/
|
|
21
|
+
static canCutWith(entity: IFEntity, toolId: EntityId): boolean;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=cuttableBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuttableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/cuttableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIvD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;CAa/D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/cuttable/cuttableBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CuttableBehavior = void 0;
|
|
5
|
+
const behavior_js_1 = require("../../behaviors/behavior.js");
|
|
6
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
7
|
+
/**
|
|
8
|
+
* Behavior for cuttable entities (ADR-230 D3c).
|
|
9
|
+
*
|
|
10
|
+
* Pure predicates only — the cutting action's validate() consults these;
|
|
11
|
+
* the cut mutation itself belongs to the entity's registered
|
|
12
|
+
* implementation, never here.
|
|
13
|
+
*/
|
|
14
|
+
class CuttableBehavior extends behavior_js_1.Behavior {
|
|
15
|
+
static requiredTraits = [trait_types_js_1.TraitType.CUTTABLE];
|
|
16
|
+
/**
|
|
17
|
+
* Check if this entity requires a tool to cut (mirrors
|
|
18
|
+
* LockableBehavior.requiresKey / OpenableBehavior.requiresTool)
|
|
19
|
+
*/
|
|
20
|
+
static requiresTool(entity) {
|
|
21
|
+
const cuttable = CuttableBehavior.require(entity, trait_types_js_1.TraitType.CUTTABLE);
|
|
22
|
+
return !!(cuttable.toolId || cuttable.toolIds?.length);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check if a tool can cut this entity (mirrors LockableBehavior.canUnlockWith)
|
|
26
|
+
*/
|
|
27
|
+
static canCutWith(entity, toolId) {
|
|
28
|
+
const cuttable = CuttableBehavior.require(entity, trait_types_js_1.TraitType.CUTTABLE);
|
|
29
|
+
if (cuttable.toolId === toolId) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
if (cuttable.toolIds && cuttable.toolIds.includes(toolId)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.CuttableBehavior = CuttableBehavior;
|
|
39
|
+
//# sourceMappingURL=cuttableBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuttableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/cuttableBehavior.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;AAG/D,6DAAuD;AAEvD,sDAA8C;AAG9C;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,sBAAQ;IAC5C,MAAM,CAAC,cAAc,GAAG,CAAC,0BAAS,CAAC,QAAQ,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAgB;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAgB,MAAM,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAgB,EAAE,MAAgB;QAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAgB,MAAM,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;QAErF,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;AA3BH,4CA4BC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { EntityId } from '@sharpee/core';
|
|
2
|
+
import { ITrait } from '../trait.js';
|
|
3
|
+
/**
|
|
4
|
+
* Data for the cuttable trait (ADR-230 D3c).
|
|
5
|
+
*
|
|
6
|
+
* Tool fields mirror ILockableData's key config (PIN 2 shared shape with
|
|
7
|
+
* OpenableTrait's tool fields): a declared requirement makes the cutting
|
|
8
|
+
* action refuse wrong/missing tools; no requirement means any explicit
|
|
9
|
+
* tool (or none) passes validation.
|
|
10
|
+
*/
|
|
11
|
+
export interface ICuttableData {
|
|
12
|
+
/** Single tool entity required to cut this (mirrors ILockableData.keyId) */
|
|
13
|
+
toolId?: EntityId;
|
|
14
|
+
/** Multiple tool entities that can cut this (mirrors ILockableData.keyIds) */
|
|
15
|
+
toolIds?: EntityId[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Cuttable trait — marks an entity the cutting action may target.
|
|
19
|
+
*
|
|
20
|
+
* The trait gates eligibility only. The cut OUTCOME is the entity's own
|
|
21
|
+
* registered implementation (ADR-090 capability behavior from TS, or a
|
|
22
|
+
* Chord `on cutting it` interceptor) — the standard cutting action never
|
|
23
|
+
* mutates state itself. An entity with this trait and no registered
|
|
24
|
+
* implementation is an authoring error (load-time in Chord; runtime
|
|
25
|
+
* safety-net refusal otherwise).
|
|
26
|
+
*
|
|
27
|
+
* This trait contains only data - eligibility/tool logic is in
|
|
28
|
+
* CuttableBehavior.
|
|
29
|
+
*/
|
|
30
|
+
export declare class CuttableTrait implements ITrait, ICuttableData {
|
|
31
|
+
static readonly type: "cuttable";
|
|
32
|
+
readonly type: "cuttable";
|
|
33
|
+
toolId?: EntityId;
|
|
34
|
+
toolIds?: EntityId[];
|
|
35
|
+
constructor(data?: ICuttableData);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=cuttableTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuttableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/cuttableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,MAAM,EAAE,aAAa;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAEnC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAET,IAAI,GAAE,aAAkB;CAIrC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/cuttable/cuttableTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CuttableTrait = void 0;
|
|
5
|
+
const trait_types_js_1 = require("../trait-types.js");
|
|
6
|
+
/**
|
|
7
|
+
* Cuttable trait — marks an entity the cutting action may target.
|
|
8
|
+
*
|
|
9
|
+
* The trait gates eligibility only. The cut OUTCOME is the entity's own
|
|
10
|
+
* registered implementation (ADR-090 capability behavior from TS, or a
|
|
11
|
+
* Chord `on cutting it` interceptor) — the standard cutting action never
|
|
12
|
+
* mutates state itself. An entity with this trait and no registered
|
|
13
|
+
* implementation is an authoring error (load-time in Chord; runtime
|
|
14
|
+
* safety-net refusal otherwise).
|
|
15
|
+
*
|
|
16
|
+
* This trait contains only data - eligibility/tool logic is in
|
|
17
|
+
* CuttableBehavior.
|
|
18
|
+
*/
|
|
19
|
+
class CuttableTrait {
|
|
20
|
+
static type = trait_types_js_1.TraitType.CUTTABLE;
|
|
21
|
+
type = trait_types_js_1.TraitType.CUTTABLE;
|
|
22
|
+
toolId;
|
|
23
|
+
toolIds;
|
|
24
|
+
constructor(data = {}) {
|
|
25
|
+
this.toolId = data.toolId;
|
|
26
|
+
this.toolIds = data.toolIds;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.CuttableTrait = CuttableTrait;
|
|
30
|
+
//# sourceMappingURL=cuttableTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuttableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/cuttable/cuttableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAI5D,sDAA8C;AAkB9C;;;;;;;;;;;;GAYG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,0BAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,0BAAS,CAAC,QAAQ,CAAC;IAEnC,MAAM,CAAY;IAClB,OAAO,CAAc;IAErB,YAAY,OAAsB,EAAE;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAVH,sCAWC"}
|