@sharpee/world-model 0.9.60-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -0
- package/dist/behaviors/attack.d.ts +52 -0
- package/dist/behaviors/attack.d.ts.map +1 -0
- package/dist/behaviors/attack.js +161 -0
- package/dist/behaviors/attack.js.map +1 -0
- package/dist/behaviors/behavior.d.ts +67 -0
- package/dist/behaviors/behavior.d.ts.map +1 -0
- package/dist/behaviors/behavior.js +80 -0
- package/dist/behaviors/behavior.js.map +1 -0
- package/dist/behaviors/index.d.ts +21 -0
- package/dist/behaviors/index.d.ts.map +1 -0
- package/dist/behaviors/index.js +39 -0
- package/dist/behaviors/index.js.map +1 -0
- package/dist/capabilities/capability-behavior.d.ts +112 -0
- package/dist/capabilities/capability-behavior.d.ts.map +1 -0
- package/dist/capabilities/capability-behavior.js +9 -0
- package/dist/capabilities/capability-behavior.js.map +1 -0
- package/dist/capabilities/capability-defaults.d.ts +67 -0
- package/dist/capabilities/capability-defaults.d.ts.map +1 -0
- package/dist/capabilities/capability-defaults.js +81 -0
- package/dist/capabilities/capability-defaults.js.map +1 -0
- package/dist/capabilities/capability-helpers.d.ts +76 -0
- package/dist/capabilities/capability-helpers.d.ts.map +1 -0
- package/dist/capabilities/capability-helpers.js +112 -0
- package/dist/capabilities/capability-helpers.js.map +1 -0
- package/dist/capabilities/capability-registry.d.ts +115 -0
- package/dist/capabilities/capability-registry.d.ts.map +1 -0
- package/dist/capabilities/capability-registry.js +136 -0
- package/dist/capabilities/capability-registry.js.map +1 -0
- package/dist/capabilities/entity-builder.d.ts +79 -0
- package/dist/capabilities/entity-builder.d.ts.map +1 -0
- package/dist/capabilities/entity-builder.js +116 -0
- package/dist/capabilities/entity-builder.js.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +40 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/types.d.ts +35 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +16 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/commands/command-types.d.ts +30 -0
- package/dist/commands/command-types.d.ts.map +1 -0
- package/dist/commands/command-types.js +6 -0
- package/dist/commands/command-types.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +23 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/parsed-command.d.ts +204 -0
- package/dist/commands/parsed-command.d.ts.map +1 -0
- package/dist/commands/parsed-command.js +25 -0
- package/dist/commands/parsed-command.js.map +1 -0
- package/dist/commands/validated-command.d.ts +52 -0
- package/dist/commands/validated-command.d.ts.map +1 -0
- package/dist/commands/validated-command.js +8 -0
- package/dist/commands/validated-command.js.map +1 -0
- package/dist/constants/action-failures.d.ts +54 -0
- package/dist/constants/action-failures.d.ts.map +1 -0
- package/dist/constants/action-failures.js +68 -0
- package/dist/constants/action-failures.js.map +1 -0
- package/dist/constants/directions.d.ts +32 -0
- package/dist/constants/directions.d.ts.map +1 -0
- package/dist/constants/directions.js +53 -0
- package/dist/constants/directions.js.map +1 -0
- package/dist/constants/if-events.d.ts +5 -0
- package/dist/constants/if-events.d.ts.map +1 -0
- package/dist/constants/if-events.js +10 -0
- package/dist/constants/if-events.js.map +1 -0
- package/dist/constants/index.d.ts +9 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +25 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/entities/entity-store.d.ts +66 -0
- package/dist/entities/entity-store.d.ts.map +1 -0
- package/dist/entities/entity-store.js +116 -0
- package/dist/entities/entity-store.js.map +1 -0
- package/dist/entities/entity-types.d.ts +40 -0
- package/dist/entities/entity-types.d.ts.map +1 -0
- package/dist/entities/entity-types.js +56 -0
- package/dist/entities/entity-types.js.map +1 -0
- package/dist/entities/if-entity.d.ts +259 -0
- package/dist/entities/if-entity.d.ts.map +1 -0
- package/dist/entities/if-entity.js +498 -0
- package/dist/entities/if-entity.js.map +1 -0
- package/dist/entities/index.d.ts +5 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +13 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/events/types.d.ts +45 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +9 -0
- package/dist/events/types.js.map +1 -0
- package/dist/examples/event-handler-registration.d.ts +14 -0
- package/dist/examples/event-handler-registration.d.ts.map +1 -0
- package/dist/examples/event-handler-registration.js +158 -0
- package/dist/examples/event-handler-registration.js.map +1 -0
- package/dist/extensions/base-extension.d.ts +69 -0
- package/dist/extensions/base-extension.d.ts.map +1 -0
- package/dist/extensions/base-extension.js +83 -0
- package/dist/extensions/base-extension.js.map +1 -0
- package/dist/extensions/index.d.ts +11 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +39 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +52 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +177 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/manager.d.ts +68 -0
- package/dist/extensions/manager.d.ts.map +1 -0
- package/dist/extensions/manager.js +164 -0
- package/dist/extensions/manager.js.map +1 -0
- package/dist/extensions/registry.d.ts +100 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +193 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +226 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +28 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/command-executor.d.ts +17 -0
- package/dist/interfaces/command-executor.d.ts.map +1 -0
- package/dist/interfaces/command-executor.js +6 -0
- package/dist/interfaces/command-executor.js.map +1 -0
- package/dist/interfaces/command-processor.d.ts +17 -0
- package/dist/interfaces/command-processor.d.ts.map +1 -0
- package/dist/interfaces/command-processor.js +6 -0
- package/dist/interfaces/command-processor.js.map +1 -0
- package/dist/interfaces/command-validator.d.ts +17 -0
- package/dist/interfaces/command-validator.d.ts.map +1 -0
- package/dist/interfaces/command-validator.js +6 -0
- package/dist/interfaces/command-validator.js.map +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +24 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/language-provider.d.ts +86 -0
- package/dist/interfaces/language-provider.d.ts.map +1 -0
- package/dist/interfaces/language-provider.js +14 -0
- package/dist/interfaces/language-provider.js.map +1 -0
- package/dist/interfaces/parser.d.ts +16 -0
- package/dist/interfaces/parser.d.ts.map +1 -0
- package/dist/interfaces/parser.js +6 -0
- package/dist/interfaces/parser.js.map +1 -0
- package/dist/scope/index.d.ts +8 -0
- package/dist/scope/index.d.ts.map +1 -0
- package/dist/scope/index.js +24 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/scope-evaluator.d.ts +58 -0
- package/dist/scope/scope-evaluator.d.ts.map +1 -0
- package/dist/scope/scope-evaluator.js +207 -0
- package/dist/scope/scope-evaluator.js.map +1 -0
- package/dist/scope/scope-registry.d.ts +59 -0
- package/dist/scope/scope-registry.d.ts.map +1 -0
- package/dist/scope/scope-registry.js +182 -0
- package/dist/scope/scope-registry.js.map +1 -0
- package/dist/scope/scope-rule.d.ts +86 -0
- package/dist/scope/scope-rule.d.ts.map +1 -0
- package/dist/scope/scope-rule.js +7 -0
- package/dist/scope/scope-rule.js.map +1 -0
- package/dist/services/ScopeService.d.ts +8 -0
- package/dist/services/ScopeService.d.ts.map +1 -0
- package/dist/services/ScopeService.js +19 -0
- package/dist/services/ScopeService.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -0
- package/dist/test-structure.d.ts +3 -0
- package/dist/test-structure.d.ts.map +1 -0
- package/dist/test-structure.js +26 -0
- package/dist/test-structure.js.map +1 -0
- package/dist/traits/actor/actorBehavior.d.ts +121 -0
- package/dist/traits/actor/actorBehavior.d.ts.map +1 -0
- package/dist/traits/actor/actorBehavior.js +288 -0
- package/dist/traits/actor/actorBehavior.js.map +1 -0
- package/dist/traits/actor/actorTrait.d.ts +158 -0
- package/dist/traits/actor/actorTrait.d.ts.map +1 -0
- package/dist/traits/actor/actorTrait.js +152 -0
- package/dist/traits/actor/actorTrait.js.map +1 -0
- package/dist/traits/actor/index.d.ts +3 -0
- package/dist/traits/actor/index.d.ts.map +1 -0
- package/dist/traits/actor/index.js +11 -0
- package/dist/traits/actor/index.js.map +1 -0
- package/dist/traits/all-traits.d.ts +95 -0
- package/dist/traits/all-traits.d.ts.map +1 -0
- package/dist/traits/all-traits.js +178 -0
- package/dist/traits/all-traits.js.map +1 -0
- package/dist/traits/attached/attachedTrait.d.ts +61 -0
- package/dist/traits/attached/attachedTrait.d.ts.map +1 -0
- package/dist/traits/attached/attachedTrait.js +36 -0
- package/dist/traits/attached/attachedTrait.js.map +1 -0
- package/dist/traits/attached/index.d.ts +2 -0
- package/dist/traits/attached/index.d.ts.map +1 -0
- package/dist/traits/attached/index.js +18 -0
- package/dist/traits/attached/index.js.map +1 -0
- package/dist/traits/breakable/breakableBehavior.d.ts +43 -0
- package/dist/traits/breakable/breakableBehavior.d.ts.map +1 -0
- package/dist/traits/breakable/breakableBehavior.js +70 -0
- package/dist/traits/breakable/breakableBehavior.js.map +1 -0
- package/dist/traits/breakable/breakableTrait.d.ts +22 -0
- package/dist/traits/breakable/breakableTrait.d.ts.map +1 -0
- package/dist/traits/breakable/breakableTrait.js +25 -0
- package/dist/traits/breakable/breakableTrait.js.map +1 -0
- package/dist/traits/breakable/index.d.ts +3 -0
- package/dist/traits/breakable/index.d.ts.map +1 -0
- package/dist/traits/breakable/index.js +8 -0
- package/dist/traits/breakable/index.js.map +1 -0
- package/dist/traits/button/buttonTrait.d.ts +53 -0
- package/dist/traits/button/buttonTrait.d.ts.map +1 -0
- package/dist/traits/button/buttonTrait.js +36 -0
- package/dist/traits/button/buttonTrait.js.map +1 -0
- package/dist/traits/button/index.d.ts +2 -0
- package/dist/traits/button/index.d.ts.map +1 -0
- package/dist/traits/button/index.js +18 -0
- package/dist/traits/button/index.js.map +1 -0
- package/dist/traits/climbable/climbableBehavior.d.ts +37 -0
- package/dist/traits/climbable/climbableBehavior.d.ts.map +1 -0
- package/dist/traits/climbable/climbableBehavior.js +70 -0
- package/dist/traits/climbable/climbableBehavior.js.map +1 -0
- package/dist/traits/climbable/climbableTrait.d.ts +31 -0
- package/dist/traits/climbable/climbableTrait.d.ts.map +1 -0
- package/dist/traits/climbable/climbableTrait.js +47 -0
- package/dist/traits/climbable/climbableTrait.js.map +1 -0
- package/dist/traits/climbable/index.d.ts +6 -0
- package/dist/traits/climbable/index.d.ts.map +1 -0
- package/dist/traits/climbable/index.js +22 -0
- package/dist/traits/climbable/index.js.map +1 -0
- package/dist/traits/clothing/clothingTrait.d.ts +58 -0
- package/dist/traits/clothing/clothingTrait.d.ts.map +1 -0
- package/dist/traits/clothing/clothingTrait.js +78 -0
- package/dist/traits/clothing/clothingTrait.js.map +1 -0
- package/dist/traits/clothing/index.d.ts +2 -0
- package/dist/traits/clothing/index.d.ts.map +1 -0
- package/dist/traits/clothing/index.js +19 -0
- package/dist/traits/clothing/index.js.map +1 -0
- package/dist/traits/combatant/combatantBehavior.d.ts +70 -0
- package/dist/traits/combatant/combatantBehavior.d.ts.map +1 -0
- package/dist/traits/combatant/combatantBehavior.js +155 -0
- package/dist/traits/combatant/combatantBehavior.js.map +1 -0
- package/dist/traits/combatant/combatantTrait.d.ts +98 -0
- package/dist/traits/combatant/combatantTrait.d.ts.map +1 -0
- package/dist/traits/combatant/combatantTrait.js +122 -0
- package/dist/traits/combatant/combatantTrait.js.map +1 -0
- package/dist/traits/combatant/index.d.ts +3 -0
- package/dist/traits/combatant/index.d.ts.map +1 -0
- package/dist/traits/combatant/index.js +8 -0
- package/dist/traits/combatant/index.js.map +1 -0
- package/dist/traits/container/container-utils.d.ts +39 -0
- package/dist/traits/container/container-utils.d.ts.map +1 -0
- package/dist/traits/container/container-utils.js +72 -0
- package/dist/traits/container/container-utils.js.map +1 -0
- package/dist/traits/container/containerBehavior.d.ts +94 -0
- package/dist/traits/container/containerBehavior.d.ts.map +1 -0
- package/dist/traits/container/containerBehavior.js +256 -0
- package/dist/traits/container/containerBehavior.js.map +1 -0
- package/dist/traits/container/containerTrait.d.ts +30 -0
- package/dist/traits/container/containerTrait.d.ts.map +1 -0
- package/dist/traits/container/containerTrait.js +45 -0
- package/dist/traits/container/containerTrait.js.map +1 -0
- package/dist/traits/container/index.d.ts +4 -0
- package/dist/traits/container/index.d.ts.map +1 -0
- package/dist/traits/container/index.js +14 -0
- package/dist/traits/container/index.js.map +1 -0
- package/dist/traits/destructible/destructibleBehavior.d.ts +57 -0
- package/dist/traits/destructible/destructibleBehavior.d.ts.map +1 -0
- package/dist/traits/destructible/destructibleBehavior.js +145 -0
- package/dist/traits/destructible/destructibleBehavior.js.map +1 -0
- package/dist/traits/destructible/destructibleTrait.d.ts +49 -0
- package/dist/traits/destructible/destructibleTrait.d.ts.map +1 -0
- package/dist/traits/destructible/destructibleTrait.js +43 -0
- package/dist/traits/destructible/destructibleTrait.js.map +1 -0
- package/dist/traits/destructible/index.d.ts +3 -0
- package/dist/traits/destructible/index.d.ts.map +1 -0
- package/dist/traits/destructible/index.js +8 -0
- package/dist/traits/destructible/index.js.map +1 -0
- package/dist/traits/door/doorBehavior.d.ts +42 -0
- package/dist/traits/door/doorBehavior.d.ts.map +1 -0
- package/dist/traits/door/doorBehavior.js +76 -0
- package/dist/traits/door/doorBehavior.js.map +1 -0
- package/dist/traits/door/doorTrait.d.ts +19 -0
- package/dist/traits/door/doorTrait.d.ts.map +1 -0
- package/dist/traits/door/doorTrait.js +33 -0
- package/dist/traits/door/doorTrait.js.map +1 -0
- package/dist/traits/door/index.d.ts +3 -0
- package/dist/traits/door/index.d.ts.map +1 -0
- package/dist/traits/door/index.js +9 -0
- package/dist/traits/door/index.js.map +1 -0
- package/dist/traits/edible/edibleBehavior.d.ts +63 -0
- package/dist/traits/edible/edibleBehavior.d.ts.map +1 -0
- package/dist/traits/edible/edibleBehavior.js +157 -0
- package/dist/traits/edible/edibleBehavior.js.map +1 -0
- package/dist/traits/edible/edibleTrait.d.ts +57 -0
- package/dist/traits/edible/edibleTrait.d.ts.map +1 -0
- package/dist/traits/edible/edibleTrait.js +51 -0
- package/dist/traits/edible/edibleTrait.js.map +1 -0
- package/dist/traits/edible/index.d.ts +3 -0
- package/dist/traits/edible/index.d.ts.map +1 -0
- package/dist/traits/edible/index.js +20 -0
- package/dist/traits/edible/index.js.map +1 -0
- package/dist/traits/enterable/enterableTrait.d.ts +33 -0
- package/dist/traits/enterable/enterableTrait.d.ts.map +1 -0
- package/dist/traits/enterable/enterableTrait.js +38 -0
- package/dist/traits/enterable/enterableTrait.js.map +1 -0
- package/dist/traits/enterable/index.d.ts +5 -0
- package/dist/traits/enterable/index.d.ts.map +1 -0
- package/dist/traits/enterable/index.js +21 -0
- package/dist/traits/enterable/index.js.map +1 -0
- package/dist/traits/equipped/equippedTrait.d.ts +46 -0
- package/dist/traits/equipped/equippedTrait.d.ts.map +1 -0
- package/dist/traits/equipped/equippedTrait.js +34 -0
- package/dist/traits/equipped/equippedTrait.js.map +1 -0
- package/dist/traits/equipped/index.d.ts +2 -0
- package/dist/traits/equipped/index.d.ts.map +1 -0
- package/dist/traits/equipped/index.js +6 -0
- package/dist/traits/equipped/index.js.map +1 -0
- package/dist/traits/exit/exitBehavior.d.ts +51 -0
- package/dist/traits/exit/exitBehavior.d.ts.map +1 -0
- package/dist/traits/exit/exitBehavior.js +231 -0
- package/dist/traits/exit/exitBehavior.js.map +1 -0
- package/dist/traits/exit/exitTrait.d.ts +41 -0
- package/dist/traits/exit/exitTrait.d.ts.map +1 -0
- package/dist/traits/exit/exitTrait.js +75 -0
- package/dist/traits/exit/exitTrait.js.map +1 -0
- package/dist/traits/exit/index.d.ts +3 -0
- package/dist/traits/exit/index.d.ts.map +1 -0
- package/dist/traits/exit/index.js +9 -0
- package/dist/traits/exit/index.js.map +1 -0
- package/dist/traits/identity/identityBehavior.d.ts +64 -0
- package/dist/traits/identity/identityBehavior.d.ts.map +1 -0
- package/dist/traits/identity/identityBehavior.js +154 -0
- package/dist/traits/identity/identityBehavior.js.map +1 -0
- package/dist/traits/identity/identityTrait.d.ts +70 -0
- package/dist/traits/identity/identityTrait.d.ts.map +1 -0
- package/dist/traits/identity/identityTrait.js +79 -0
- package/dist/traits/identity/identityTrait.js.map +1 -0
- package/dist/traits/identity/index.d.ts +3 -0
- package/dist/traits/identity/index.d.ts.map +1 -0
- package/dist/traits/identity/index.js +20 -0
- package/dist/traits/identity/index.js.map +1 -0
- package/dist/traits/implementations.d.ts +51 -0
- package/dist/traits/implementations.d.ts.map +1 -0
- package/dist/traits/implementations.js +145 -0
- package/dist/traits/implementations.js.map +1 -0
- package/dist/traits/index.d.ts +36 -0
- package/dist/traits/index.d.ts.map +1 -0
- package/dist/traits/index.js +62 -0
- package/dist/traits/index.js.map +1 -0
- package/dist/traits/light-source/index.d.ts +3 -0
- package/dist/traits/light-source/index.d.ts.map +1 -0
- package/dist/traits/light-source/index.js +9 -0
- package/dist/traits/light-source/index.js.map +1 -0
- package/dist/traits/light-source/lightSourceBehavior.d.ts +57 -0
- package/dist/traits/light-source/lightSourceBehavior.d.ts.map +1 -0
- package/dist/traits/light-source/lightSourceBehavior.js +135 -0
- package/dist/traits/light-source/lightSourceBehavior.js.map +1 -0
- package/dist/traits/light-source/lightSourceTrait.d.ts +28 -0
- package/dist/traits/light-source/lightSourceTrait.d.ts.map +1 -0
- package/dist/traits/light-source/lightSourceTrait.js +37 -0
- package/dist/traits/light-source/lightSourceTrait.js.map +1 -0
- package/dist/traits/lockable/index.d.ts +3 -0
- package/dist/traits/lockable/index.d.ts.map +1 -0
- package/dist/traits/lockable/index.js +20 -0
- package/dist/traits/lockable/index.js.map +1 -0
- package/dist/traits/lockable/lockableBehavior.d.ts +88 -0
- package/dist/traits/lockable/lockableBehavior.d.ts.map +1 -0
- package/dist/traits/lockable/lockableBehavior.js +196 -0
- package/dist/traits/lockable/lockableBehavior.js.map +1 -0
- package/dist/traits/lockable/lockableTrait.d.ts +59 -0
- package/dist/traits/lockable/lockableTrait.d.ts.map +1 -0
- package/dist/traits/lockable/lockableTrait.js +50 -0
- package/dist/traits/lockable/lockableTrait.js.map +1 -0
- package/dist/traits/moveable-scenery/index.d.ts +2 -0
- package/dist/traits/moveable-scenery/index.d.ts.map +1 -0
- package/dist/traits/moveable-scenery/index.js +18 -0
- package/dist/traits/moveable-scenery/index.js.map +1 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts +69 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +1 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.js +43 -0
- package/dist/traits/moveable-scenery/moveableSceneryTrait.js.map +1 -0
- package/dist/traits/npc/index.d.ts +5 -0
- package/dist/traits/npc/index.d.ts.map +1 -0
- package/dist/traits/npc/index.js +9 -0
- package/dist/traits/npc/index.js.map +1 -0
- package/dist/traits/npc/npcTrait.d.ts +128 -0
- package/dist/traits/npc/npcTrait.d.ts.map +1 -0
- package/dist/traits/npc/npcTrait.js +180 -0
- package/dist/traits/npc/npcTrait.js.map +1 -0
- package/dist/traits/openable/index.d.ts +3 -0
- package/dist/traits/openable/index.d.ts.map +1 -0
- package/dist/traits/openable/index.js +20 -0
- package/dist/traits/openable/index.js.map +1 -0
- package/dist/traits/openable/openableBehavior.d.ts +64 -0
- package/dist/traits/openable/openableBehavior.d.ts.map +1 -0
- package/dist/traits/openable/openableBehavior.js +109 -0
- package/dist/traits/openable/openableBehavior.js.map +1 -0
- package/dist/traits/openable/openableTrait.d.ts +46 -0
- package/dist/traits/openable/openableTrait.d.ts.map +1 -0
- package/dist/traits/openable/openableTrait.js +42 -0
- package/dist/traits/openable/openableTrait.js.map +1 -0
- package/dist/traits/portable/portableTrait.d.ts +26 -0
- package/dist/traits/portable/portableTrait.d.ts.map +1 -0
- package/dist/traits/portable/portableTrait.js +35 -0
- package/dist/traits/portable/portableTrait.js.map +1 -0
- package/dist/traits/pullable/index.d.ts +2 -0
- package/dist/traits/pullable/index.d.ts.map +1 -0
- package/dist/traits/pullable/index.js +18 -0
- package/dist/traits/pullable/index.js.map +1 -0
- package/dist/traits/pullable/pullableTrait.d.ts +81 -0
- package/dist/traits/pullable/pullableTrait.d.ts.map +1 -0
- package/dist/traits/pullable/pullableTrait.js +44 -0
- package/dist/traits/pullable/pullableTrait.js.map +1 -0
- package/dist/traits/pushable/index.d.ts +2 -0
- package/dist/traits/pushable/index.d.ts.map +1 -0
- package/dist/traits/pushable/index.js +18 -0
- package/dist/traits/pushable/index.js.map +1 -0
- package/dist/traits/pushable/pushableTrait.d.ts +81 -0
- package/dist/traits/pushable/pushableTrait.d.ts.map +1 -0
- package/dist/traits/pushable/pushableTrait.js +44 -0
- package/dist/traits/pushable/pushableTrait.js.map +1 -0
- package/dist/traits/readable/index.d.ts +3 -0
- package/dist/traits/readable/index.d.ts.map +1 -0
- package/dist/traits/readable/index.js +9 -0
- package/dist/traits/readable/index.js.map +1 -0
- package/dist/traits/readable/readableBehavior.d.ts +42 -0
- package/dist/traits/readable/readableBehavior.d.ts.map +1 -0
- package/dist/traits/readable/readableBehavior.js +174 -0
- package/dist/traits/readable/readableBehavior.js.map +1 -0
- package/dist/traits/readable/readableTrait.d.ts +37 -0
- package/dist/traits/readable/readableTrait.d.ts.map +1 -0
- package/dist/traits/readable/readableTrait.js +51 -0
- package/dist/traits/readable/readableTrait.js.map +1 -0
- package/dist/traits/register-all.d.ts +10 -0
- package/dist/traits/register-all.d.ts.map +1 -0
- package/dist/traits/register-all.js +19 -0
- package/dist/traits/register-all.js.map +1 -0
- package/dist/traits/room/index.d.ts +9 -0
- package/dist/traits/room/index.d.ts.map +1 -0
- package/dist/traits/room/index.js +14 -0
- package/dist/traits/room/index.js.map +1 -0
- package/dist/traits/room/roomBehavior.d.ts +87 -0
- package/dist/traits/room/roomBehavior.d.ts.map +1 -0
- package/dist/traits/room/roomBehavior.js +232 -0
- package/dist/traits/room/roomBehavior.js.map +1 -0
- package/dist/traits/room/roomTrait.d.ts +87 -0
- package/dist/traits/room/roomTrait.d.ts.map +1 -0
- package/dist/traits/room/roomTrait.js +59 -0
- package/dist/traits/room/roomTrait.js.map +1 -0
- package/dist/traits/scenery/index.d.ts +3 -0
- package/dist/traits/scenery/index.d.ts.map +1 -0
- package/dist/traits/scenery/index.js +9 -0
- package/dist/traits/scenery/index.js.map +1 -0
- package/dist/traits/scenery/sceneryBehavior.d.ts +21 -0
- package/dist/traits/scenery/sceneryBehavior.d.ts.map +1 -0
- package/dist/traits/scenery/sceneryBehavior.js +42 -0
- package/dist/traits/scenery/sceneryBehavior.js.map +1 -0
- package/dist/traits/scenery/sceneryTrait.d.ts +30 -0
- package/dist/traits/scenery/sceneryTrait.d.ts.map +1 -0
- package/dist/traits/scenery/sceneryTrait.js +39 -0
- package/dist/traits/scenery/sceneryTrait.js.map +1 -0
- package/dist/traits/supporter/index.d.ts +3 -0
- package/dist/traits/supporter/index.d.ts.map +1 -0
- package/dist/traits/supporter/index.js +9 -0
- package/dist/traits/supporter/index.js.map +1 -0
- package/dist/traits/supporter/supporterBehavior.d.ts +83 -0
- package/dist/traits/supporter/supporterBehavior.d.ts.map +1 -0
- package/dist/traits/supporter/supporterBehavior.js +210 -0
- package/dist/traits/supporter/supporterBehavior.js.map +1 -0
- package/dist/traits/supporter/supporterTrait.d.ts +26 -0
- package/dist/traits/supporter/supporterTrait.d.ts.map +1 -0
- package/dist/traits/supporter/supporterTrait.js +30 -0
- package/dist/traits/supporter/supporterTrait.js.map +1 -0
- package/dist/traits/switchable/index.d.ts +3 -0
- package/dist/traits/switchable/index.d.ts.map +1 -0
- package/dist/traits/switchable/index.js +20 -0
- package/dist/traits/switchable/index.js.map +1 -0
- package/dist/traits/switchable/switchableBehavior.d.ts +73 -0
- package/dist/traits/switchable/switchableBehavior.d.ts.map +1 -0
- package/dist/traits/switchable/switchableBehavior.js +191 -0
- package/dist/traits/switchable/switchableBehavior.js.map +1 -0
- package/dist/traits/switchable/switchableTrait.d.ts +61 -0
- package/dist/traits/switchable/switchableTrait.d.ts.map +1 -0
- package/dist/traits/switchable/switchableTrait.js +52 -0
- package/dist/traits/switchable/switchableTrait.js.map +1 -0
- package/dist/traits/trait-types.d.ts +81 -0
- package/dist/traits/trait-types.d.ts.map +1 -0
- package/dist/traits/trait-types.js +146 -0
- package/dist/traits/trait-types.js.map +1 -0
- package/dist/traits/trait.d.ts +42 -0
- package/dist/traits/trait.d.ts.map +1 -0
- package/dist/traits/trait.js +42 -0
- package/dist/traits/trait.js.map +1 -0
- package/dist/traits/vehicle/index.d.ts +6 -0
- package/dist/traits/vehicle/index.d.ts.map +1 -0
- package/dist/traits/vehicle/index.js +22 -0
- package/dist/traits/vehicle/index.js.map +1 -0
- package/dist/traits/vehicle/vehicleBehavior.d.ts +62 -0
- package/dist/traits/vehicle/vehicleBehavior.d.ts.map +1 -0
- package/dist/traits/vehicle/vehicleBehavior.js +145 -0
- package/dist/traits/vehicle/vehicleBehavior.js.map +1 -0
- package/dist/traits/vehicle/vehicleTrait.d.ts +77 -0
- package/dist/traits/vehicle/vehicleTrait.d.ts.map +1 -0
- package/dist/traits/vehicle/vehicleTrait.js +92 -0
- package/dist/traits/vehicle/vehicleTrait.js.map +1 -0
- package/dist/traits/weapon/index.d.ts +3 -0
- package/dist/traits/weapon/index.d.ts.map +1 -0
- package/dist/traits/weapon/index.js +8 -0
- package/dist/traits/weapon/index.js.map +1 -0
- package/dist/traits/weapon/weaponBehavior.d.ts +47 -0
- package/dist/traits/weapon/weaponBehavior.d.ts.map +1 -0
- package/dist/traits/weapon/weaponBehavior.js +106 -0
- package/dist/traits/weapon/weaponBehavior.js.map +1 -0
- package/dist/traits/weapon/weaponTrait.d.ts +67 -0
- package/dist/traits/weapon/weaponTrait.d.ts.map +1 -0
- package/dist/traits/weapon/weaponTrait.js +60 -0
- package/dist/traits/weapon/weaponTrait.js.map +1 -0
- package/dist/traits/wearable/index.d.ts +3 -0
- package/dist/traits/wearable/index.d.ts.map +1 -0
- package/dist/traits/wearable/index.js +20 -0
- package/dist/traits/wearable/index.js.map +1 -0
- package/dist/traits/wearable/wearableBehavior.d.ts +64 -0
- package/dist/traits/wearable/wearableBehavior.d.ts.map +1 -0
- package/dist/traits/wearable/wearableBehavior.js +142 -0
- package/dist/traits/wearable/wearableBehavior.js.map +1 -0
- package/dist/traits/wearable/wearableTrait.d.ts +54 -0
- package/dist/traits/wearable/wearableTrait.d.ts.map +1 -0
- package/dist/traits/wearable/wearableTrait.js +53 -0
- package/dist/traits/wearable/wearableTrait.js.map +1 -0
- package/dist/utils/event-utils.d.ts +30 -0
- package/dist/utils/event-utils.d.ts.map +1 -0
- package/dist/utils/event-utils.js +33 -0
- package/dist/utils/event-utils.js.map +1 -0
- package/dist/world/AuthorModel.d.ts +151 -0
- package/dist/world/AuthorModel.d.ts.map +1 -0
- package/dist/world/AuthorModel.js +416 -0
- package/dist/world/AuthorModel.js.map +1 -0
- package/dist/world/SharedDataStore.d.ts +24 -0
- package/dist/world/SharedDataStore.d.ts.map +1 -0
- package/dist/world/SharedDataStore.js +50 -0
- package/dist/world/SharedDataStore.js.map +1 -0
- package/dist/world/SpatialIndex.d.ts +16 -0
- package/dist/world/SpatialIndex.d.ts.map +1 -0
- package/dist/world/SpatialIndex.js +117 -0
- package/dist/world/SpatialIndex.js.map +1 -0
- package/dist/world/VisibilityBehavior.d.ts +83 -0
- package/dist/world/VisibilityBehavior.d.ts.map +1 -0
- package/dist/world/VisibilityBehavior.js +484 -0
- package/dist/world/VisibilityBehavior.js.map +1 -0
- package/dist/world/WorldModel.d.ts +270 -0
- package/dist/world/WorldModel.d.ts.map +1 -0
- package/dist/world/WorldModel.js +1028 -0
- package/dist/world/WorldModel.js.map +1 -0
- package/dist/world/capabilities.d.ts +36 -0
- package/dist/world/capabilities.d.ts.map +1 -0
- package/dist/world/capabilities.js +18 -0
- package/dist/world/capabilities.js.map +1 -0
- package/dist/world/index.d.ts +7 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +21 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register all built-in traits with the trait registry.
|
|
3
|
+
* This should be called during application initialization.
|
|
4
|
+
*
|
|
5
|
+
* Note: All traits are now available through the TRAIT_IMPLEMENTATIONS map
|
|
6
|
+
* in implementations.ts. The registry pattern is optional and may be
|
|
7
|
+
* removed in the future.
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerAllTraits(): void;
|
|
10
|
+
//# sourceMappingURL=register-all.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-all.d.ts","sourceRoot":"","sources":["../../src/traits/register-all.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/register-all.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.registerAllTraits = registerAllTraits;
|
|
5
|
+
/**
|
|
6
|
+
* Register all built-in traits with the trait registry.
|
|
7
|
+
* This should be called during application initialization.
|
|
8
|
+
*
|
|
9
|
+
* Note: All traits are now available through the TRAIT_IMPLEMENTATIONS map
|
|
10
|
+
* in implementations.ts. The registry pattern is optional and may be
|
|
11
|
+
* removed in the future.
|
|
12
|
+
*/
|
|
13
|
+
function registerAllTraits() {
|
|
14
|
+
// All traits are now available through the TRAIT_IMPLEMENTATIONS map
|
|
15
|
+
// Registration is optional and handled through the implementations map
|
|
16
|
+
// TODO: Consider removing this file and the registry pattern entirely
|
|
17
|
+
// as we're using the implementations map for trait lookup
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=register-all.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../src/traits/register-all.ts"],"names":[],"mappings":";AAAA,kDAAkD;;AAUlD,8CAMC;AAdD;;;;;;;GAOG;AACH,SAAgB,iBAAiB;IAC/B,qEAAqE;IACrE,uEAAuE;IAEvE,sEAAsE;IACtE,0DAA0D;AAC5D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Room trait module
|
|
3
|
+
*
|
|
4
|
+
* Exports both the trait and behavior for rooms.
|
|
5
|
+
* Rooms are special entities that represent locations in the game world.
|
|
6
|
+
*/
|
|
7
|
+
export { RoomTrait } from './roomTrait';
|
|
8
|
+
export { RoomBehavior } from './roomBehavior';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/room/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Room trait module
|
|
4
|
+
*
|
|
5
|
+
* Exports both the trait and behavior for rooms.
|
|
6
|
+
* Rooms are special entities that represent locations in the game world.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RoomBehavior = exports.RoomTrait = void 0;
|
|
10
|
+
var roomTrait_1 = require("./roomTrait");
|
|
11
|
+
Object.defineProperty(exports, "RoomTrait", { enumerable: true, get: function () { return roomTrait_1.RoomTrait; } });
|
|
12
|
+
var roomBehavior_1 = require("./roomBehavior");
|
|
13
|
+
Object.defineProperty(exports, "RoomBehavior", { enumerable: true, get: function () { return roomBehavior_1.RoomBehavior; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/room/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
3
|
+
import { IExitInfo } from './roomTrait';
|
|
4
|
+
import { ISemanticEvent } from '@sharpee/core';
|
|
5
|
+
import { DirectionType } from '../../constants/directions';
|
|
6
|
+
/**
|
|
7
|
+
* Behavior for room entities.
|
|
8
|
+
*
|
|
9
|
+
* Handles the logic for rooms including exits, lighting, and visits.
|
|
10
|
+
* All methods are pure and only operate on the given room entity.
|
|
11
|
+
*/
|
|
12
|
+
export declare class RoomBehavior extends Behavior {
|
|
13
|
+
static requiredTraits: "room"[];
|
|
14
|
+
/**
|
|
15
|
+
* Get the exit in a given direction
|
|
16
|
+
*/
|
|
17
|
+
static getExit(room: IFEntity, direction: DirectionType): IExitInfo | null;
|
|
18
|
+
/**
|
|
19
|
+
* Check if an exit exists in a direction
|
|
20
|
+
*/
|
|
21
|
+
static hasExit(room: IFEntity, direction: DirectionType): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if an exit is blocked
|
|
24
|
+
*/
|
|
25
|
+
static isExitBlocked(room: IFEntity, direction: DirectionType): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get blocked exit message
|
|
28
|
+
*/
|
|
29
|
+
static getBlockedMessage(room: IFEntity, direction: DirectionType): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Add or update an exit in this room
|
|
32
|
+
*/
|
|
33
|
+
static setExit(room: IFEntity, direction: DirectionType, destination: string, via?: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Block an exit with a message
|
|
36
|
+
*/
|
|
37
|
+
static blockExit(room: IFEntity, direction: DirectionType, message: string): ISemanticEvent[];
|
|
38
|
+
/**
|
|
39
|
+
* Unblock an exit
|
|
40
|
+
*/
|
|
41
|
+
static unblockExit(room: IFEntity, direction: DirectionType): ISemanticEvent[];
|
|
42
|
+
/**
|
|
43
|
+
* Remove an exit from this room
|
|
44
|
+
*/
|
|
45
|
+
static removeExit(room: IFEntity, direction: DirectionType): void;
|
|
46
|
+
/**
|
|
47
|
+
* Mark room as visited
|
|
48
|
+
*/
|
|
49
|
+
static markVisited(room: IFEntity, actor: IFEntity): ISemanticEvent[];
|
|
50
|
+
/**
|
|
51
|
+
* Check if room has been visited
|
|
52
|
+
*/
|
|
53
|
+
static hasBeenVisited(room: IFEntity): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get all exits from the room
|
|
56
|
+
*/
|
|
57
|
+
static getAllExits(room: IFEntity): Map<DirectionType, IExitInfo>;
|
|
58
|
+
/**
|
|
59
|
+
* Get available (non-blocked) exits
|
|
60
|
+
*/
|
|
61
|
+
static getAvailableExits(room: IFEntity): Map<DirectionType, IExitInfo>;
|
|
62
|
+
/**
|
|
63
|
+
* Check if room is outdoors
|
|
64
|
+
*/
|
|
65
|
+
static isOutdoors(room: IFEntity): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Check if room is underground
|
|
68
|
+
*/
|
|
69
|
+
static isUnderground(room: IFEntity): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get room region
|
|
72
|
+
*/
|
|
73
|
+
static getRegion(room: IFEntity): string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Check if room has a specific tag
|
|
76
|
+
*/
|
|
77
|
+
static hasTag(room: IFEntity, tag: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Add a tag to the room
|
|
80
|
+
*/
|
|
81
|
+
static addTag(room: IFEntity, tag: string): void;
|
|
82
|
+
/**
|
|
83
|
+
* Remove a tag from the room
|
|
84
|
+
*/
|
|
85
|
+
static removeTag(room: IFEntity, tag: string): void;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=roomBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/room/roomBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAa,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAa,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AAG5F;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAC,cAAc,WAAoB;IAEzC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAS1E;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IAIjE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IAKvE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAKtF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBjG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAuB7F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE;IA2B9E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAcjE;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,cAAc,EAAE;IAuBrE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAM9C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;IAQjE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;IAiBvE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK1C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAK7C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAKpD;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnD;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAQpD"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/room/roomBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RoomBehavior = void 0;
|
|
5
|
+
const behavior_1 = require("../../behaviors/behavior");
|
|
6
|
+
const trait_types_1 = require("../trait-types");
|
|
7
|
+
const if_events_1 = require("../../constants/if-events");
|
|
8
|
+
/**
|
|
9
|
+
* Behavior for room entities.
|
|
10
|
+
*
|
|
11
|
+
* Handles the logic for rooms including exits, lighting, and visits.
|
|
12
|
+
* All methods are pure and only operate on the given room entity.
|
|
13
|
+
*/
|
|
14
|
+
class RoomBehavior extends behavior_1.Behavior {
|
|
15
|
+
static requiredTraits = [trait_types_1.TraitType.ROOM];
|
|
16
|
+
/**
|
|
17
|
+
* Get the exit in a given direction
|
|
18
|
+
*/
|
|
19
|
+
static getExit(room, direction) {
|
|
20
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
21
|
+
if (!roomTrait.exits) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const exitInfo = roomTrait.exits[direction];
|
|
25
|
+
return exitInfo || null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if an exit exists in a direction
|
|
29
|
+
*/
|
|
30
|
+
static hasExit(room, direction) {
|
|
31
|
+
return this.getExit(room, direction) !== undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if an exit is blocked
|
|
35
|
+
*/
|
|
36
|
+
static isExitBlocked(room, direction) {
|
|
37
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
38
|
+
return roomTrait.blockedExits?.hasOwnProperty(direction) ?? false;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get blocked exit message
|
|
42
|
+
*/
|
|
43
|
+
static getBlockedMessage(room, direction) {
|
|
44
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
45
|
+
return roomTrait.blockedExits?.[direction];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Add or update an exit in this room
|
|
49
|
+
*/
|
|
50
|
+
static setExit(room, direction, destination, via) {
|
|
51
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
52
|
+
// Initialize exits if needed
|
|
53
|
+
if (!roomTrait.exits) {
|
|
54
|
+
roomTrait.exits = {};
|
|
55
|
+
}
|
|
56
|
+
roomTrait.exits[direction] = {
|
|
57
|
+
destination,
|
|
58
|
+
via
|
|
59
|
+
};
|
|
60
|
+
// Remove any blocked message for this direction
|
|
61
|
+
if (roomTrait.blockedExits) {
|
|
62
|
+
delete roomTrait.blockedExits[direction];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Block an exit with a message
|
|
67
|
+
*/
|
|
68
|
+
static blockExit(room, direction, message) {
|
|
69
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
70
|
+
if (!roomTrait.blockedExits) {
|
|
71
|
+
roomTrait.blockedExits = {};
|
|
72
|
+
}
|
|
73
|
+
roomTrait.blockedExits[direction] = message;
|
|
74
|
+
return [{
|
|
75
|
+
id: `${Date.now()}-${Math.random()}`,
|
|
76
|
+
timestamp: Date.now(),
|
|
77
|
+
type: if_events_1.IFEvents.MOVEMENT_BLOCKED,
|
|
78
|
+
entities: {
|
|
79
|
+
location: room.id
|
|
80
|
+
},
|
|
81
|
+
data: {
|
|
82
|
+
direction: direction,
|
|
83
|
+
message
|
|
84
|
+
}
|
|
85
|
+
}];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Unblock an exit
|
|
89
|
+
*/
|
|
90
|
+
static unblockExit(room, direction) {
|
|
91
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
92
|
+
if (!roomTrait.blockedExits) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
if (!roomTrait.blockedExits[direction]) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
delete roomTrait.blockedExits[direction];
|
|
99
|
+
return [{
|
|
100
|
+
id: `${Date.now()}-${Math.random()}`,
|
|
101
|
+
timestamp: Date.now(),
|
|
102
|
+
type: if_events_1.IFEvents.NEW_EXIT_REVEALED,
|
|
103
|
+
entities: {
|
|
104
|
+
location: room.id
|
|
105
|
+
},
|
|
106
|
+
data: {
|
|
107
|
+
direction: direction,
|
|
108
|
+
unblocked: true
|
|
109
|
+
}
|
|
110
|
+
}];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Remove an exit from this room
|
|
114
|
+
*/
|
|
115
|
+
static removeExit(room, direction) {
|
|
116
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
117
|
+
// Remove the exit if exits exist
|
|
118
|
+
if (roomTrait.exits) {
|
|
119
|
+
delete roomTrait.exits[direction];
|
|
120
|
+
}
|
|
121
|
+
// Remove any blocked message
|
|
122
|
+
if (roomTrait.blockedExits) {
|
|
123
|
+
delete roomTrait.blockedExits[direction];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Mark room as visited
|
|
128
|
+
*/
|
|
129
|
+
static markVisited(room, actor) {
|
|
130
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
131
|
+
if (roomTrait.visited) {
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
roomTrait.visited = true;
|
|
135
|
+
return [{
|
|
136
|
+
id: `${Date.now()}-${Math.random()}`,
|
|
137
|
+
timestamp: Date.now(),
|
|
138
|
+
type: if_events_1.IFEvents.ROOM_FIRST_ENTERED,
|
|
139
|
+
entities: {
|
|
140
|
+
location: room.id,
|
|
141
|
+
actor: actor.id
|
|
142
|
+
},
|
|
143
|
+
data: {
|
|
144
|
+
hasInitialDescription: !!roomTrait.initialDescription
|
|
145
|
+
}
|
|
146
|
+
}];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Check if room has been visited
|
|
150
|
+
*/
|
|
151
|
+
static hasBeenVisited(room) {
|
|
152
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
153
|
+
return roomTrait.visited;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get all exits from the room
|
|
157
|
+
*/
|
|
158
|
+
static getAllExits(room) {
|
|
159
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
160
|
+
if (!roomTrait.exits) {
|
|
161
|
+
return new Map();
|
|
162
|
+
}
|
|
163
|
+
return new Map(Object.entries(roomTrait.exits));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get available (non-blocked) exits
|
|
167
|
+
*/
|
|
168
|
+
static getAvailableExits(room) {
|
|
169
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
170
|
+
const available = new Map();
|
|
171
|
+
if (!roomTrait.exits) {
|
|
172
|
+
return available;
|
|
173
|
+
}
|
|
174
|
+
for (const [direction, exitInfo] of Object.entries(roomTrait.exits)) {
|
|
175
|
+
if (!this.isExitBlocked(room, direction)) {
|
|
176
|
+
available.set(direction, exitInfo);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return available;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if room is outdoors
|
|
183
|
+
*/
|
|
184
|
+
static isOutdoors(room) {
|
|
185
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
186
|
+
return roomTrait.isOutdoors || false;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Check if room is underground
|
|
190
|
+
*/
|
|
191
|
+
static isUnderground(room) {
|
|
192
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
193
|
+
return roomTrait.isUnderground || false;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get room region
|
|
197
|
+
*/
|
|
198
|
+
static getRegion(room) {
|
|
199
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
200
|
+
return roomTrait.region;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Check if room has a specific tag
|
|
204
|
+
*/
|
|
205
|
+
static hasTag(room, tag) {
|
|
206
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
207
|
+
return roomTrait.tags.includes(tag.toLowerCase());
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Add a tag to the room
|
|
211
|
+
*/
|
|
212
|
+
static addTag(room, tag) {
|
|
213
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
214
|
+
const normalizedTag = tag.toLowerCase();
|
|
215
|
+
if (!roomTrait.tags.includes(normalizedTag)) {
|
|
216
|
+
roomTrait.tags.push(normalizedTag);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Remove a tag from the room
|
|
221
|
+
*/
|
|
222
|
+
static removeTag(room, tag) {
|
|
223
|
+
const roomTrait = RoomBehavior.require(room, trait_types_1.TraitType.ROOM);
|
|
224
|
+
const normalizedTag = tag.toLowerCase();
|
|
225
|
+
const index = roomTrait.tags.indexOf(normalizedTag);
|
|
226
|
+
if (index >= 0) {
|
|
227
|
+
roomTrait.tags.splice(index, 1);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
exports.RoomBehavior = RoomBehavior;
|
|
232
|
+
//# sourceMappingURL=roomBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomBehavior.js","sourceRoot":"","sources":["../../../src/traits/room/roomBehavior.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,uDAAoD;AAEpD,gDAA2C;AAG3C,yDAAqD;AAIrD;;;;;GAKG;AACH,MAAa,YAAa,SAAQ,mBAAQ;IACxC,MAAM,CAAC,cAAc,GAAG,CAAC,uBAAS,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,SAAwB;QACrD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,QAAQ,IAAI,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,SAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAc,EAAE,SAAwB;QAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAc,EAAE,SAAwB;QAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,SAAwB,EAAE,WAAmB,EAAE,GAAY;QACxF,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAExE,6BAA6B;QAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrB,SAAS,CAAC,KAAK,GAAG,EAA+C,CAAC;QACpE,CAAC;QAED,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG;YAC3B,WAAW;YACX,GAAG;SACJ,CAAC;QAEF,gDAAgD;QAChD,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAc,EAAE,SAAwB,EAAE,OAAe;QACxE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC5B,SAAS,CAAC,YAAY,GAAG,EAA4C,CAAC;QACxE,CAAC;QAED,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAE5C,OAAO,CAAC;gBACN,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,oBAAQ,CAAC,gBAAgB;gBAC/B,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,EAAE;iBAClB;gBACD,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS;oBACpB,OAAO;iBACR;aACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAc,EAAE,SAAwB;QACzD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzC,OAAO,CAAC;gBACN,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,oBAAQ,CAAC,iBAAiB;gBAChC,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,EAAE;iBAClB;gBACD,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS;oBACpB,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAc,EAAE,SAAwB;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAExE,iCAAiC;QACjC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,6BAA6B;QAC7B,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAc,EAAE,KAAe;QAChD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAEzB,OAAO,CAAC;gBACN,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,oBAAQ,CAAC,kBAAkB;gBACjC,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,EAAE;oBACjB,KAAK,EAAE,KAAK,CAAC,EAAE;iBAChB;gBACD,IAAI,EAAE;oBACJ,qBAAqB,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB;iBACtD;aACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAc;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAc;QAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAiC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACrC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAiC,EAAE,CAAC;YACpG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBACzC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAc;QAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAc;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,aAAa,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAc;QAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,GAAW;QACvC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,GAAW;QACvC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAc,EAAE,GAAW;QAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAY,IAAI,EAAE,uBAAS,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;;AA5PH,oCA6PC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ITrait } from '../trait';
|
|
2
|
+
import { DirectionType } from '../../constants/directions';
|
|
3
|
+
export interface IExitInfo {
|
|
4
|
+
/** The destination room ID (must be an entity ID, not a name) */
|
|
5
|
+
destination: string;
|
|
6
|
+
/** Optional door/portal entity ID that must be traversed (must be an entity ID, not a name) */
|
|
7
|
+
via?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IRoomData {
|
|
10
|
+
/** Whether this room has been visited by the player */
|
|
11
|
+
visited?: boolean;
|
|
12
|
+
/** Exits from this room */
|
|
13
|
+
exits?: Partial<Record<DirectionType, IExitInfo>>;
|
|
14
|
+
/** Custom messages for blocked exits */
|
|
15
|
+
blockedExits?: Partial<Record<DirectionType, string>>;
|
|
16
|
+
/** Whether this is an outdoor location */
|
|
17
|
+
outdoor?: boolean;
|
|
18
|
+
/** Whether this room is dark (requires light source to see) */
|
|
19
|
+
isDark?: boolean;
|
|
20
|
+
/** Whether this room is affected by time of day (for outdoor locations) */
|
|
21
|
+
isOutdoors?: boolean;
|
|
22
|
+
/** Whether this room is underground (never has natural light) */
|
|
23
|
+
isUnderground?: boolean;
|
|
24
|
+
/** Initial description (shown on first visit) */
|
|
25
|
+
initialDescription?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Message ID for localized initial description (ADR-107).
|
|
28
|
+
* If set, takes precedence over literal `initialDescription`.
|
|
29
|
+
*/
|
|
30
|
+
initialDescriptionId?: string;
|
|
31
|
+
/** Ambient sound description */
|
|
32
|
+
ambientSound?: string;
|
|
33
|
+
/** Ambient smell description */
|
|
34
|
+
ambientSmell?: string;
|
|
35
|
+
/** Region or area this room belongs to */
|
|
36
|
+
region?: string;
|
|
37
|
+
/** Tags for categorizing rooms */
|
|
38
|
+
tags?: string[];
|
|
39
|
+
/** Capacity constraints for the room (optional) */
|
|
40
|
+
capacity?: {
|
|
41
|
+
/** Maximum total weight the room can hold (in kg) */
|
|
42
|
+
maxWeight?: number;
|
|
43
|
+
/** Maximum total volume the room can hold (in liters) */
|
|
44
|
+
maxVolume?: number;
|
|
45
|
+
/** Maximum number of items the room can hold */
|
|
46
|
+
maxItems?: number;
|
|
47
|
+
};
|
|
48
|
+
/** Only these entity types can be placed in the room */
|
|
49
|
+
allowedTypes?: string[];
|
|
50
|
+
/** These entity types cannot be placed in the room */
|
|
51
|
+
excludedTypes?: string[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Room trait marks an entity as a location/room in the game world.
|
|
55
|
+
* Rooms are special entities that represent locations and can contain other entities.
|
|
56
|
+
*
|
|
57
|
+
* Rooms inherently have container functionality - they can hold items, actors, and other entities.
|
|
58
|
+
* The actual containment relationships are stored in the SpatialIndex, not in the trait itself.
|
|
59
|
+
*/
|
|
60
|
+
export declare class RoomTrait implements ITrait, IRoomData {
|
|
61
|
+
static readonly type: "room";
|
|
62
|
+
readonly type: "room";
|
|
63
|
+
visited: boolean;
|
|
64
|
+
exits: Partial<Record<DirectionType, IExitInfo>>;
|
|
65
|
+
blockedExits?: Partial<Record<DirectionType, string>>;
|
|
66
|
+
outdoor: boolean;
|
|
67
|
+
isDark: boolean;
|
|
68
|
+
isOutdoors: boolean;
|
|
69
|
+
isUnderground: boolean;
|
|
70
|
+
initialDescription?: string;
|
|
71
|
+
initialDescriptionId?: string;
|
|
72
|
+
ambientSound?: string;
|
|
73
|
+
ambientSmell?: string;
|
|
74
|
+
region?: string;
|
|
75
|
+
tags: string[];
|
|
76
|
+
capacity?: {
|
|
77
|
+
maxWeight?: number;
|
|
78
|
+
maxVolume?: number;
|
|
79
|
+
maxItems?: number;
|
|
80
|
+
};
|
|
81
|
+
allowedTypes?: string[];
|
|
82
|
+
excludedTypes?: string[];
|
|
83
|
+
readonly isTransparent: boolean;
|
|
84
|
+
readonly enterable: boolean;
|
|
85
|
+
constructor(data?: IRoomData);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=roomTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/room/roomTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RoomTrait = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Room trait marks an entity as a location/room in the game world.
|
|
8
|
+
* Rooms are special entities that represent locations and can contain other entities.
|
|
9
|
+
*
|
|
10
|
+
* Rooms inherently have container functionality - they can hold items, actors, and other entities.
|
|
11
|
+
* The actual containment relationships are stored in the SpatialIndex, not in the trait itself.
|
|
12
|
+
*/
|
|
13
|
+
class RoomTrait {
|
|
14
|
+
static type = trait_types_1.TraitType.ROOM;
|
|
15
|
+
type = trait_types_1.TraitType.ROOM;
|
|
16
|
+
// RoomData properties
|
|
17
|
+
visited;
|
|
18
|
+
exits;
|
|
19
|
+
blockedExits;
|
|
20
|
+
outdoor;
|
|
21
|
+
isDark;
|
|
22
|
+
isOutdoors;
|
|
23
|
+
isUnderground;
|
|
24
|
+
initialDescription;
|
|
25
|
+
initialDescriptionId;
|
|
26
|
+
ambientSound;
|
|
27
|
+
ambientSmell;
|
|
28
|
+
region;
|
|
29
|
+
tags;
|
|
30
|
+
// Container functionality
|
|
31
|
+
capacity;
|
|
32
|
+
allowedTypes;
|
|
33
|
+
excludedTypes;
|
|
34
|
+
// Rooms are always transparent (contents visible) and enterable
|
|
35
|
+
isTransparent = true;
|
|
36
|
+
enterable = true;
|
|
37
|
+
constructor(data = {}) {
|
|
38
|
+
// Set defaults and merge with provided data
|
|
39
|
+
this.visited = data.visited ?? false;
|
|
40
|
+
this.exits = data.exits ?? {};
|
|
41
|
+
this.blockedExits = data.blockedExits;
|
|
42
|
+
this.outdoor = data.outdoor ?? false;
|
|
43
|
+
this.isDark = data.isDark ?? false; // Default to lit
|
|
44
|
+
this.isOutdoors = data.isOutdoors ?? false;
|
|
45
|
+
this.isUnderground = data.isUnderground ?? false;
|
|
46
|
+
this.initialDescription = data.initialDescription;
|
|
47
|
+
this.initialDescriptionId = data.initialDescriptionId;
|
|
48
|
+
this.ambientSound = data.ambientSound;
|
|
49
|
+
this.ambientSmell = data.ambientSmell;
|
|
50
|
+
this.region = data.region;
|
|
51
|
+
this.tags = data.tags ?? [];
|
|
52
|
+
// Container properties
|
|
53
|
+
this.capacity = data.capacity;
|
|
54
|
+
this.allowedTypes = data.allowedTypes;
|
|
55
|
+
this.excludedTypes = data.excludedTypes;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.RoomTrait = RoomTrait;
|
|
59
|
+
//# sourceMappingURL=roomTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomTrait.js","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;AA0E3C;;;;;;GAMG;AACH,MAAa,SAAS;IACpB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAE/B,sBAAsB;IACtB,OAAO,CAAU;IACjB,KAAK,CAA4C;IACjD,YAAY,CAA0C;IACtD,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,aAAa,CAAU;IACvB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,YAAY,CAAU;IACtB,YAAY,CAAU;IACtB,MAAM,CAAU;IAChB,IAAI,CAAW;IAEf,0BAA0B;IAC1B,QAAQ,CAIN;IACF,YAAY,CAAY;IACxB,aAAa,CAAY;IAEzB,gEAAgE;IACvD,aAAa,GAAY,IAAI,CAAC;IAC9B,SAAS,GAAY,IAAI,CAAC;IAEnC,YAAY,OAAkB,EAAE;QAC9B,4CAA4C;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAA+C,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAE,iBAAiB;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;;AApDH,8BAqDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/scenery/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/scenery/index.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SceneryBehavior = exports.SceneryTrait = void 0;
|
|
5
|
+
var sceneryTrait_1 = require("./sceneryTrait");
|
|
6
|
+
Object.defineProperty(exports, "SceneryTrait", { enumerable: true, get: function () { return sceneryTrait_1.SceneryTrait; } });
|
|
7
|
+
var sceneryBehavior_1 = require("./sceneryBehavior");
|
|
8
|
+
Object.defineProperty(exports, "SceneryBehavior", { enumerable: true, get: function () { return sceneryBehavior_1.SceneryBehavior; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/scenery/index.ts"],"names":[],"mappings":";AAAA,mDAAmD;;;AAEnD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
2
|
+
/**
|
|
3
|
+
* Behavior for scenery entities.
|
|
4
|
+
* Handles logic related to fixed-in-place objects.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SceneryBehavior {
|
|
7
|
+
static readonly requiredTraits: "scenery"[];
|
|
8
|
+
/**
|
|
9
|
+
* Get the reason why this item can't be taken
|
|
10
|
+
*/
|
|
11
|
+
static getUntakeableReason(entity: IFEntity): string;
|
|
12
|
+
/**
|
|
13
|
+
* Get the custom can't-take message if any
|
|
14
|
+
*/
|
|
15
|
+
static getCantTakeMessage(entity: IFEntity): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Check if this scenery should be mentioned in room descriptions
|
|
18
|
+
*/
|
|
19
|
+
static isMentioned(entity: IFEntity): boolean;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sceneryBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneryBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/scenery/sceneryBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,MAAM,CAAC,QAAQ,CAAC,cAAc,cAAuB;IAErD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAapD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAK/D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAI9C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/scenery/sceneryBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SceneryBehavior = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Behavior for scenery entities.
|
|
8
|
+
* Handles logic related to fixed-in-place objects.
|
|
9
|
+
*/
|
|
10
|
+
class SceneryBehavior {
|
|
11
|
+
static requiredTraits = [trait_types_1.TraitType.SCENERY];
|
|
12
|
+
/**
|
|
13
|
+
* Get the reason why this item can't be taken
|
|
14
|
+
*/
|
|
15
|
+
static getUntakeableReason(entity) {
|
|
16
|
+
const trait = entity.get(trait_types_1.TraitType.SCENERY);
|
|
17
|
+
if (!trait)
|
|
18
|
+
return 'not_scenery';
|
|
19
|
+
// If there's a custom message, return a marker for it
|
|
20
|
+
if (trait.cantTakeMessage) {
|
|
21
|
+
return 'custom_message';
|
|
22
|
+
}
|
|
23
|
+
// Default reason
|
|
24
|
+
return 'fixed_in_place';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the custom can't-take message if any
|
|
28
|
+
*/
|
|
29
|
+
static getCantTakeMessage(entity) {
|
|
30
|
+
const trait = entity.get(trait_types_1.TraitType.SCENERY);
|
|
31
|
+
return trait?.cantTakeMessage;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if this scenery should be mentioned in room descriptions
|
|
35
|
+
*/
|
|
36
|
+
static isMentioned(entity) {
|
|
37
|
+
const trait = entity.get(trait_types_1.TraitType.SCENERY);
|
|
38
|
+
return trait ? trait.mentioned : true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.SceneryBehavior = SceneryBehavior;
|
|
42
|
+
//# sourceMappingURL=sceneryBehavior.js.map
|