@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 @@
|
|
|
1
|
+
{"version":3,"file":"parsed-command.js","sourceRoot":"","sources":["../../src/commands/parsed-command.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAkCH,wCAAwC;AAExC;;GAEG;AACH,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,2CAA2B,CAAA;IAC3B,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,2CAA2B,CAAA;IAC3B,mCAAmB,CAAA;AACrB,CAAC,EAVW,YAAY,4BAAZ,YAAY,QAUvB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command types for the validation phase
|
|
3
|
+
* These types represent fully resolved and validated commands
|
|
4
|
+
* with entities and action IDs identified
|
|
5
|
+
*/
|
|
6
|
+
import type { IParsedObjectReference, IParsedCommand } from './parsed-command';
|
|
7
|
+
import type { IFEntity } from '../entities/if-entity';
|
|
8
|
+
/**
|
|
9
|
+
* Resolved entity reference after validation
|
|
10
|
+
*/
|
|
11
|
+
export interface IValidatedObjectReference {
|
|
12
|
+
/** The resolved entity */
|
|
13
|
+
entity: IFEntity;
|
|
14
|
+
/** Original parsed reference */
|
|
15
|
+
parsed: IParsedObjectReference;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of validation phase - fully resolved and checked
|
|
19
|
+
*/
|
|
20
|
+
export interface IValidatedCommand {
|
|
21
|
+
/** Original parsed command */
|
|
22
|
+
parsed: IParsedCommand;
|
|
23
|
+
/** ID of the action that will handle this command */
|
|
24
|
+
actionId: string;
|
|
25
|
+
/** Resolved direct object if present */
|
|
26
|
+
directObject?: IValidatedObjectReference;
|
|
27
|
+
/** Resolved indirect object if present */
|
|
28
|
+
indirectObject?: IValidatedObjectReference;
|
|
29
|
+
/**
|
|
30
|
+
* Resolved instrument if present (ADR-080)
|
|
31
|
+
* For patterns using .instrument() to mark a slot as a tool/weapon
|
|
32
|
+
* e.g., "attack troll with sword" where sword is the instrument
|
|
33
|
+
*/
|
|
34
|
+
instrument?: IValidatedObjectReference;
|
|
35
|
+
/** Validation metadata */
|
|
36
|
+
metadata?: {
|
|
37
|
+
/** Time taken to validate */
|
|
38
|
+
validationTime?: number;
|
|
39
|
+
/** Any warnings during validation */
|
|
40
|
+
warnings?: string[];
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Errors that can occur during validation
|
|
45
|
+
*/
|
|
46
|
+
export interface IValidationError {
|
|
47
|
+
type: 'VALIDATION_ERROR';
|
|
48
|
+
code: 'ENTITY_NOT_FOUND' | 'ENTITY_NOT_VISIBLE' | 'ACTION_NOT_AVAILABLE' | 'PRECONDITION_FAILED' | 'AMBIGUOUS_ENTITY';
|
|
49
|
+
parsed: IParsedCommand;
|
|
50
|
+
details?: Record<string, any>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=validated-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validated-command.d.ts","sourceRoot":"","sources":["../../src/commands/validated-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,0BAA0B;IAC1B,MAAM,EAAE,QAAQ,CAAC;IAEjB,gCAAgC;IAChC,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IAEvB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IAEjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAE3C;;;;OAIG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEvC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE;QACT,6BAA6B;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,qCAAqC;QACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;IACtH,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Command types for the validation phase
|
|
4
|
+
* These types represent fully resolved and validated commands
|
|
5
|
+
* with entities and action IDs identified
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
//# sourceMappingURL=validated-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validated-command.js","sourceRoot":"","sources":["../../src/commands/validated-command.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action failure reasons for the IF system.
|
|
3
|
+
*
|
|
4
|
+
* These are semantic codes used by behaviors to indicate why an action failed.
|
|
5
|
+
* The language layer maps these to appropriate messages.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ActionFailureReason: {
|
|
8
|
+
readonly NOT_VISIBLE: "not_visible";
|
|
9
|
+
readonly NOT_REACHABLE: "not_reachable";
|
|
10
|
+
readonly NOT_IN_SCOPE: "not_in_scope";
|
|
11
|
+
readonly FIXED_IN_PLACE: "fixed_in_place";
|
|
12
|
+
readonly ALREADY_OPEN: "already_open";
|
|
13
|
+
readonly ALREADY_CLOSED: "already_closed";
|
|
14
|
+
readonly NOT_OPENABLE: "not_openable";
|
|
15
|
+
readonly LOCKED: "locked";
|
|
16
|
+
readonly NOT_LOCKABLE: "not_lockable";
|
|
17
|
+
readonly ALREADY_LOCKED: "already_locked";
|
|
18
|
+
readonly ALREADY_UNLOCKED: "already_unlocked";
|
|
19
|
+
readonly CONTAINER_FULL: "container_full";
|
|
20
|
+
readonly CONTAINER_CLOSED: "container_closed";
|
|
21
|
+
readonly NOT_A_CONTAINER: "not_a_container";
|
|
22
|
+
readonly NOT_A_SUPPORTER: "not_a_supporter";
|
|
23
|
+
readonly ALREADY_IN_CONTAINER: "already_in_container";
|
|
24
|
+
readonly NOT_WEARABLE: "not_wearable";
|
|
25
|
+
readonly ALREADY_WEARING: "already_wearing";
|
|
26
|
+
readonly NOT_WEARING: "not_wearing";
|
|
27
|
+
readonly WORN_BY_OTHER: "worn_by_other";
|
|
28
|
+
readonly TOO_HEAVY: "too_heavy";
|
|
29
|
+
readonly CARRYING_TOO_MUCH: "carrying_too_much";
|
|
30
|
+
readonly WRONG_KEY: "wrong_key";
|
|
31
|
+
readonly NO_KEY_SPECIFIED: "no_key_specified";
|
|
32
|
+
readonly NOT_A_KEY: "not_a_key";
|
|
33
|
+
readonly ALREADY_ON: "already_on";
|
|
34
|
+
readonly ALREADY_OFF: "already_off";
|
|
35
|
+
readonly NOT_SWITCHABLE: "not_switchable";
|
|
36
|
+
readonly NO_POWER: "no_power";
|
|
37
|
+
readonly NO_EXIT_THAT_WAY: "no_exit_that_way";
|
|
38
|
+
readonly CANT_GO_THAT_WAY: "cant_go_that_way";
|
|
39
|
+
readonly DOOR_CLOSED: "door_closed";
|
|
40
|
+
readonly DOOR_LOCKED: "door_locked";
|
|
41
|
+
readonly CANT_DO_THAT: "cant_do_that";
|
|
42
|
+
readonly NOT_IMPLEMENTED: "not_implemented";
|
|
43
|
+
readonly INVALID_TARGET: "invalid_target";
|
|
44
|
+
readonly NOTHING_HAPPENS: "nothing_happens";
|
|
45
|
+
readonly ACTOR_CANT_SEE: "actor_cant_see";
|
|
46
|
+
readonly ACTOR_CANT_REACH: "actor_cant_reach";
|
|
47
|
+
readonly ACTOR_BUSY: "actor_busy";
|
|
48
|
+
readonly NOT_EDIBLE: "not_edible";
|
|
49
|
+
readonly NOTHING_LEFT: "nothing_left";
|
|
50
|
+
readonly NOT_READABLE: "not_readable";
|
|
51
|
+
readonly NOTHING_WRITTEN: "nothing_written";
|
|
52
|
+
};
|
|
53
|
+
export type ActionFailureReasonType = typeof ActionFailureReason[keyof typeof ActionFailureReason];
|
|
54
|
+
//# sourceMappingURL=action-failures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-failures.d.ts","sourceRoot":"","sources":["../../src/constants/action-failures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEtB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Action failure reasons for the IF system.
|
|
4
|
+
*
|
|
5
|
+
* These are semantic codes used by behaviors to indicate why an action failed.
|
|
6
|
+
* The language layer maps these to appropriate messages.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ActionFailureReason = void 0;
|
|
10
|
+
exports.ActionFailureReason = {
|
|
11
|
+
// Scope and reachability
|
|
12
|
+
NOT_VISIBLE: 'not_visible',
|
|
13
|
+
NOT_REACHABLE: 'not_reachable',
|
|
14
|
+
NOT_IN_SCOPE: 'not_in_scope',
|
|
15
|
+
// Object state
|
|
16
|
+
FIXED_IN_PLACE: 'fixed_in_place',
|
|
17
|
+
ALREADY_OPEN: 'already_open',
|
|
18
|
+
ALREADY_CLOSED: 'already_closed',
|
|
19
|
+
NOT_OPENABLE: 'not_openable',
|
|
20
|
+
LOCKED: 'locked',
|
|
21
|
+
NOT_LOCKABLE: 'not_lockable',
|
|
22
|
+
ALREADY_LOCKED: 'already_locked',
|
|
23
|
+
ALREADY_UNLOCKED: 'already_unlocked',
|
|
24
|
+
// Container and supporter
|
|
25
|
+
CONTAINER_FULL: 'container_full',
|
|
26
|
+
CONTAINER_CLOSED: 'container_closed',
|
|
27
|
+
NOT_A_CONTAINER: 'not_a_container',
|
|
28
|
+
NOT_A_SUPPORTER: 'not_a_supporter',
|
|
29
|
+
ALREADY_IN_CONTAINER: 'already_in_container',
|
|
30
|
+
// Wearable
|
|
31
|
+
NOT_WEARABLE: 'not_wearable',
|
|
32
|
+
ALREADY_WEARING: 'already_wearing',
|
|
33
|
+
NOT_WEARING: 'not_wearing',
|
|
34
|
+
WORN_BY_OTHER: 'worn_by_other',
|
|
35
|
+
// Portable/weight
|
|
36
|
+
TOO_HEAVY: 'too_heavy',
|
|
37
|
+
CARRYING_TOO_MUCH: 'carrying_too_much',
|
|
38
|
+
// Keys and unlocking
|
|
39
|
+
WRONG_KEY: 'wrong_key',
|
|
40
|
+
NO_KEY_SPECIFIED: 'no_key_specified',
|
|
41
|
+
NOT_A_KEY: 'not_a_key',
|
|
42
|
+
// Device/switchable
|
|
43
|
+
ALREADY_ON: 'already_on',
|
|
44
|
+
ALREADY_OFF: 'already_off',
|
|
45
|
+
NOT_SWITCHABLE: 'not_switchable',
|
|
46
|
+
NO_POWER: 'no_power',
|
|
47
|
+
// Movement
|
|
48
|
+
NO_EXIT_THAT_WAY: 'no_exit_that_way',
|
|
49
|
+
CANT_GO_THAT_WAY: 'cant_go_that_way',
|
|
50
|
+
DOOR_CLOSED: 'door_closed',
|
|
51
|
+
DOOR_LOCKED: 'door_locked',
|
|
52
|
+
// General
|
|
53
|
+
CANT_DO_THAT: 'cant_do_that',
|
|
54
|
+
NOT_IMPLEMENTED: 'not_implemented',
|
|
55
|
+
INVALID_TARGET: 'invalid_target',
|
|
56
|
+
NOTHING_HAPPENS: 'nothing_happens',
|
|
57
|
+
// Actor state
|
|
58
|
+
ACTOR_CANT_SEE: 'actor_cant_see',
|
|
59
|
+
ACTOR_CANT_REACH: 'actor_cant_reach',
|
|
60
|
+
ACTOR_BUSY: 'actor_busy',
|
|
61
|
+
// Edible
|
|
62
|
+
NOT_EDIBLE: 'not_edible',
|
|
63
|
+
NOTHING_LEFT: 'nothing_left',
|
|
64
|
+
// Readable
|
|
65
|
+
NOT_READABLE: 'not_readable',
|
|
66
|
+
NOTHING_WRITTEN: 'nothing_written',
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=action-failures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-failures.js","sourceRoot":"","sources":["../../src/constants/action-failures.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,mBAAmB,GAAG;IACjC,yBAAyB;IACzB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAE5B,eAAe;IACf,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IAEpC,0BAA0B;IAC1B,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,sBAAsB;IAE5C,WAAW;IACX,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAE9B,kBAAkB;IAClB,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,mBAAmB;IAEtC,qBAAqB;IACrB,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IAEtB,oBAAoB;IACpB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IAEpB,WAAW;IACX,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAE1B,UAAU;IACV,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAElC,cAAc;IACd,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IAExB,SAAS;IACT,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAE5B,WAAW;IACX,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;CAC1B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language-agnostic direction constants for Interactive Fiction
|
|
3
|
+
* These constants represent spatial relationships, not English words
|
|
4
|
+
*/
|
|
5
|
+
export declare const Direction: {
|
|
6
|
+
readonly NORTH: "NORTH";
|
|
7
|
+
readonly SOUTH: "SOUTH";
|
|
8
|
+
readonly EAST: "EAST";
|
|
9
|
+
readonly WEST: "WEST";
|
|
10
|
+
readonly NORTHEAST: "NORTHEAST";
|
|
11
|
+
readonly NORTHWEST: "NORTHWEST";
|
|
12
|
+
readonly SOUTHEAST: "SOUTHEAST";
|
|
13
|
+
readonly SOUTHWEST: "SOUTHWEST";
|
|
14
|
+
readonly UP: "UP";
|
|
15
|
+
readonly DOWN: "DOWN";
|
|
16
|
+
readonly IN: "IN";
|
|
17
|
+
readonly OUT: "OUT";
|
|
18
|
+
};
|
|
19
|
+
export type DirectionType = typeof Direction[keyof typeof Direction];
|
|
20
|
+
/**
|
|
21
|
+
* Map of opposite directions using constants
|
|
22
|
+
*/
|
|
23
|
+
export declare const DirectionOpposites: Record<DirectionType, DirectionType>;
|
|
24
|
+
/**
|
|
25
|
+
* Get the opposite direction
|
|
26
|
+
*/
|
|
27
|
+
export declare function getOppositeDirection(direction: DirectionType): DirectionType;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a value is a valid Direction constant
|
|
30
|
+
*/
|
|
31
|
+
export declare function isDirection(value: unknown): value is DirectionType;
|
|
32
|
+
//# sourceMappingURL=directions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directions.d.ts","sourceRoot":"","sources":["../../src/constants/directions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAaZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAanE,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAE5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAElE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Language-agnostic direction constants for Interactive Fiction
|
|
4
|
+
* These constants represent spatial relationships, not English words
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DirectionOpposites = exports.Direction = void 0;
|
|
8
|
+
exports.getOppositeDirection = getOppositeDirection;
|
|
9
|
+
exports.isDirection = isDirection;
|
|
10
|
+
exports.Direction = {
|
|
11
|
+
NORTH: 'NORTH',
|
|
12
|
+
SOUTH: 'SOUTH',
|
|
13
|
+
EAST: 'EAST',
|
|
14
|
+
WEST: 'WEST',
|
|
15
|
+
NORTHEAST: 'NORTHEAST',
|
|
16
|
+
NORTHWEST: 'NORTHWEST',
|
|
17
|
+
SOUTHEAST: 'SOUTHEAST',
|
|
18
|
+
SOUTHWEST: 'SOUTHWEST',
|
|
19
|
+
UP: 'UP',
|
|
20
|
+
DOWN: 'DOWN',
|
|
21
|
+
IN: 'IN',
|
|
22
|
+
OUT: 'OUT'
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Map of opposite directions using constants
|
|
26
|
+
*/
|
|
27
|
+
exports.DirectionOpposites = {
|
|
28
|
+
[exports.Direction.NORTH]: exports.Direction.SOUTH,
|
|
29
|
+
[exports.Direction.SOUTH]: exports.Direction.NORTH,
|
|
30
|
+
[exports.Direction.EAST]: exports.Direction.WEST,
|
|
31
|
+
[exports.Direction.WEST]: exports.Direction.EAST,
|
|
32
|
+
[exports.Direction.NORTHEAST]: exports.Direction.SOUTHWEST,
|
|
33
|
+
[exports.Direction.NORTHWEST]: exports.Direction.SOUTHEAST,
|
|
34
|
+
[exports.Direction.SOUTHEAST]: exports.Direction.NORTHWEST,
|
|
35
|
+
[exports.Direction.SOUTHWEST]: exports.Direction.NORTHEAST,
|
|
36
|
+
[exports.Direction.UP]: exports.Direction.DOWN,
|
|
37
|
+
[exports.Direction.DOWN]: exports.Direction.UP,
|
|
38
|
+
[exports.Direction.IN]: exports.Direction.OUT,
|
|
39
|
+
[exports.Direction.OUT]: exports.Direction.IN
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Get the opposite direction
|
|
43
|
+
*/
|
|
44
|
+
function getOppositeDirection(direction) {
|
|
45
|
+
return exports.DirectionOpposites[direction];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if a value is a valid Direction constant
|
|
49
|
+
*/
|
|
50
|
+
function isDirection(value) {
|
|
51
|
+
return typeof value === 'string' && Object.values(exports.Direction).includes(value);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=directions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directions.js","sourceRoot":"","sources":["../../src/constants/directions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwCH,oDAEC;AAKD,kCAEC;AA/CY,QAAA,SAAS,GAAG;IACvB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;CACF,CAAC;AAIX;;GAEG;AACU,QAAA,kBAAkB,GAAyC;IACtE,CAAC,iBAAS,CAAC,KAAK,CAAC,EAAE,iBAAS,CAAC,KAAK;IAClC,CAAC,iBAAS,CAAC,KAAK,CAAC,EAAE,iBAAS,CAAC,KAAK;IAClC,CAAC,iBAAS,CAAC,IAAI,CAAC,EAAE,iBAAS,CAAC,IAAI;IAChC,CAAC,iBAAS,CAAC,IAAI,CAAC,EAAE,iBAAS,CAAC,IAAI;IAChC,CAAC,iBAAS,CAAC,SAAS,CAAC,EAAE,iBAAS,CAAC,SAAS;IAC1C,CAAC,iBAAS,CAAC,SAAS,CAAC,EAAE,iBAAS,CAAC,SAAS;IAC1C,CAAC,iBAAS,CAAC,SAAS,CAAC,EAAE,iBAAS,CAAC,SAAS;IAC1C,CAAC,iBAAS,CAAC,SAAS,CAAC,EAAE,iBAAS,CAAC,SAAS;IAC1C,CAAC,iBAAS,CAAC,EAAE,CAAC,EAAE,iBAAS,CAAC,IAAI;IAC9B,CAAC,iBAAS,CAAC,IAAI,CAAC,EAAE,iBAAS,CAAC,EAAE;IAC9B,CAAC,iBAAS,CAAC,EAAE,CAAC,EAAE,iBAAS,CAAC,GAAG;IAC7B,CAAC,iBAAS,CAAC,GAAG,CAAC,EAAE,iBAAS,CAAC,EAAE;CAC9B,CAAC;AAEF;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAwB;IAC3D,OAAO,0BAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAS,CAAC,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"if-events.d.ts","sourceRoot":"","sources":["../../src/constants/if-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IFEventCategory = exports.IFEvents = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Re-export IF events from domain package
|
|
6
|
+
*/
|
|
7
|
+
var if_domain_1 = require("@sharpee/if-domain");
|
|
8
|
+
Object.defineProperty(exports, "IFEvents", { enumerable: true, get: function () { return if_domain_1.IFEvents; } });
|
|
9
|
+
Object.defineProperty(exports, "IFEventCategory", { enumerable: true, get: function () { return if_domain_1.IFEventCategory; } });
|
|
10
|
+
//# sourceMappingURL=if-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"if-events.js","sourceRoot":"","sources":["../../src/constants/if-events.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,gDAAiG;AAAxF,qGAAA,QAAQ,OAAA;AAAe,4GAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Constants for the world model
|
|
4
|
+
*
|
|
5
|
+
* Re-exports all constant definitions
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./action-failures"), exports);
|
|
23
|
+
__exportStar(require("./if-events"), exports);
|
|
24
|
+
__exportStar(require("./directions"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { IFEntity } from './if-entity';
|
|
2
|
+
/**
|
|
3
|
+
* Entity store that works with IFEntity instances.
|
|
4
|
+
* Provides trait-aware entity management.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EntityStore {
|
|
7
|
+
private ifEntities;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Add an IF entity to the store
|
|
11
|
+
*/
|
|
12
|
+
add(entity: IFEntity): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get an IF entity by ID
|
|
15
|
+
*/
|
|
16
|
+
get(id: string): IFEntity | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Check if an entity exists
|
|
19
|
+
*/
|
|
20
|
+
has(id: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Remove an entity from the store
|
|
23
|
+
*/
|
|
24
|
+
remove(id: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Get all entities
|
|
27
|
+
*/
|
|
28
|
+
getAll(): IFEntity[];
|
|
29
|
+
/**
|
|
30
|
+
* Get entities by type
|
|
31
|
+
*/
|
|
32
|
+
getByType(type: string): IFEntity[];
|
|
33
|
+
/**
|
|
34
|
+
* Find entities with a specific trait
|
|
35
|
+
*/
|
|
36
|
+
findWithTrait(traitType: string): IFEntity[];
|
|
37
|
+
/**
|
|
38
|
+
* Find entities with all specified traits
|
|
39
|
+
*/
|
|
40
|
+
findWithAllTraits(...traitTypes: string[]): IFEntity[];
|
|
41
|
+
/**
|
|
42
|
+
* Find entities with any of the specified traits
|
|
43
|
+
*/
|
|
44
|
+
findWithAnyTraits(...traitTypes: string[]): IFEntity[];
|
|
45
|
+
/**
|
|
46
|
+
* Clear all entities from the store
|
|
47
|
+
*/
|
|
48
|
+
clear(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get the number of entities in the store
|
|
51
|
+
*/
|
|
52
|
+
get size(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Iterate over all entities
|
|
55
|
+
*/
|
|
56
|
+
[Symbol.iterator](): Iterator<IFEntity>;
|
|
57
|
+
/**
|
|
58
|
+
* Serialize all entities to JSON
|
|
59
|
+
*/
|
|
60
|
+
toJSON(): any[];
|
|
61
|
+
/**
|
|
62
|
+
* Load entities from JSON data
|
|
63
|
+
*/
|
|
64
|
+
static fromJSON(json: any[]): EntityStore;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=entity-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-store.d.ts","sourceRoot":"","sources":["../../src/entities/entity-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;;IAM1C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAI3B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;OAEG;IACH,MAAM,IAAI,QAAQ,EAAE;IAIpB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAInC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAI5C;;OAEG;IACH,iBAAiB,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;IAItD;;OAEG;IACH,iBAAiB,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;IAItD;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAIvC;;OAEG;IACH,MAAM,IAAI,GAAG,EAAE;IAIf;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW;CAY1C"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/entities/entity-store.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EntityStore = void 0;
|
|
5
|
+
const if_entity_1 = require("./if-entity");
|
|
6
|
+
/**
|
|
7
|
+
* Entity store that works with IFEntity instances.
|
|
8
|
+
* Provides trait-aware entity management.
|
|
9
|
+
*/
|
|
10
|
+
class EntityStore {
|
|
11
|
+
ifEntities;
|
|
12
|
+
constructor() {
|
|
13
|
+
this.ifEntities = new Map();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Add an IF entity to the store
|
|
17
|
+
*/
|
|
18
|
+
add(entity) {
|
|
19
|
+
this.ifEntities.set(entity.id, entity);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get an IF entity by ID
|
|
23
|
+
*/
|
|
24
|
+
get(id) {
|
|
25
|
+
return this.ifEntities.get(id);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if an entity exists
|
|
29
|
+
*/
|
|
30
|
+
has(id) {
|
|
31
|
+
return this.ifEntities.has(id);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Remove an entity from the store
|
|
35
|
+
*/
|
|
36
|
+
remove(id) {
|
|
37
|
+
const entity = this.ifEntities.get(id);
|
|
38
|
+
if (entity) {
|
|
39
|
+
entity.clearTraits(); // Cleanup traits before removal
|
|
40
|
+
}
|
|
41
|
+
return this.ifEntities.delete(id);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get all entities
|
|
45
|
+
*/
|
|
46
|
+
getAll() {
|
|
47
|
+
return Array.from(this.ifEntities.values());
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get entities by type
|
|
51
|
+
*/
|
|
52
|
+
getByType(type) {
|
|
53
|
+
return this.getAll().filter(entity => entity.type === type);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Find entities with a specific trait
|
|
57
|
+
*/
|
|
58
|
+
findWithTrait(traitType) {
|
|
59
|
+
return this.getAll().filter(entity => entity.has(traitType));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Find entities with all specified traits
|
|
63
|
+
*/
|
|
64
|
+
findWithAllTraits(...traitTypes) {
|
|
65
|
+
return this.getAll().filter(entity => entity.hasAll(...traitTypes));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Find entities with any of the specified traits
|
|
69
|
+
*/
|
|
70
|
+
findWithAnyTraits(...traitTypes) {
|
|
71
|
+
return this.getAll().filter(entity => entity.hasAny(...traitTypes));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Clear all entities from the store
|
|
75
|
+
*/
|
|
76
|
+
clear() {
|
|
77
|
+
// Cleanup all entities
|
|
78
|
+
for (const entity of this.ifEntities.values()) {
|
|
79
|
+
entity.clearTraits();
|
|
80
|
+
}
|
|
81
|
+
this.ifEntities.clear();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get the number of entities in the store
|
|
85
|
+
*/
|
|
86
|
+
get size() {
|
|
87
|
+
return this.ifEntities.size;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Iterate over all entities
|
|
91
|
+
*/
|
|
92
|
+
[Symbol.iterator]() {
|
|
93
|
+
return this.ifEntities.values();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Serialize all entities to JSON
|
|
97
|
+
*/
|
|
98
|
+
toJSON() {
|
|
99
|
+
return this.getAll().map(entity => entity.toJSON());
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Load entities from JSON data
|
|
103
|
+
*/
|
|
104
|
+
static fromJSON(json) {
|
|
105
|
+
const store = new EntityStore();
|
|
106
|
+
if (Array.isArray(json)) {
|
|
107
|
+
for (const entityData of json) {
|
|
108
|
+
const entity = if_entity_1.IFEntity.fromJSON(entityData);
|
|
109
|
+
store.add(entity);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return store;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.EntityStore = EntityStore;
|
|
116
|
+
//# sourceMappingURL=entity-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-store.js","sourceRoot":"","sources":["../../src/entities/entity-store.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,2CAAuC;AAEvC;;;GAGG;AACH,MAAa,WAAW;IACd,UAAU,CAAwB;IAE1C;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,MAAgB;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,gCAAgC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,GAAG,UAAoB;QACvC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,GAAG,UAAoB;QACvC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,uBAAuB;QACvB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAW;QACzB,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC7C,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAzHD,kCAyHC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Interactive Fiction entity types
|
|
3
|
+
*
|
|
4
|
+
* These represent the fundamental object types in IF games.
|
|
5
|
+
* The values match the type strings used throughout the system.
|
|
6
|
+
*/
|
|
7
|
+
export declare const EntityType: {
|
|
8
|
+
/** A location in the game world */
|
|
9
|
+
readonly ROOM: "room";
|
|
10
|
+
/** A doorway or portal between rooms */
|
|
11
|
+
readonly DOOR: "door";
|
|
12
|
+
/** A generic takeable object */
|
|
13
|
+
readonly ITEM: "item";
|
|
14
|
+
/** A character (NPC or player) */
|
|
15
|
+
readonly ACTOR: "actor";
|
|
16
|
+
/** An object that can contain other objects */
|
|
17
|
+
readonly CONTAINER: "container";
|
|
18
|
+
/** An object that can support other objects on top */
|
|
19
|
+
readonly SUPPORTER: "supporter";
|
|
20
|
+
/** Fixed decorative objects that can't be taken */
|
|
21
|
+
readonly SCENERY: "scenery";
|
|
22
|
+
/** A directional exit (rarely used as entity) */
|
|
23
|
+
readonly EXIT: "exit";
|
|
24
|
+
/** Generic object type (default) */
|
|
25
|
+
readonly OBJECT: "object";
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Type representing valid entity types
|
|
29
|
+
*/
|
|
30
|
+
export type EntityType = typeof EntityType[keyof typeof EntityType];
|
|
31
|
+
/**
|
|
32
|
+
* Type guard to check if a string is a valid IF entity type
|
|
33
|
+
*/
|
|
34
|
+
export declare function isEntityType(type: string): type is EntityType;
|
|
35
|
+
/**
|
|
36
|
+
* Get the ID prefix for an entity type
|
|
37
|
+
* Used for generating consistent entity IDs
|
|
38
|
+
*/
|
|
39
|
+
export declare function getEntityTypePrefix(type: EntityType): string;
|
|
40
|
+
//# sourceMappingURL=entity-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-types.d.ts","sourceRoot":"","sources":["../../src/entities/entity-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,UAAU;IACrB,mCAAmC;;IAGnC,wCAAwC;;IAGxC,gCAAgC;;IAGhC,kCAAkC;;IAGlC,+CAA+C;;IAG/C,sDAAsD;;IAGtD,mDAAmD;;IAGnD,iDAAiD;;IAGjD,oCAAoC;;CAE5B,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,UAAU,CAE7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAc5D"}
|