@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":"sceneryBehavior.js","sourceRoot":"","sources":["../../../src/traits/scenery/sceneryBehavior.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;AAG7D,gDAA2C;AAG3C;;;GAGG;AACH,MAAa,eAAe;IAC1B,MAAM,CAAU,cAAc,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAC,CAAC;IAErD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAgB;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAiB,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,OAAO,aAAa,CAAC;QAEjC,sDAAsD;QACtD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,iBAAiB;QACjB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAgB;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAiB,CAAC;QAC5D,OAAO,KAAK,EAAE,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAgB;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAS,CAAC,OAAO,CAAiB,CAAC;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;;AAjCH,0CAkCC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ITrait } from '../trait';
|
|
2
|
+
/**
|
|
3
|
+
* Scenery trait marks items as fixed in place and not takeable.
|
|
4
|
+
*
|
|
5
|
+
* In IF conventions, objects are takeable by default unless they have
|
|
6
|
+
* this trait. This replaces the need for a separate "portable" trait.
|
|
7
|
+
*
|
|
8
|
+
* This trait contains only data - all behavior is in SceneryBehavior.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SceneryTrait implements ITrait {
|
|
11
|
+
static readonly type: "scenery";
|
|
12
|
+
readonly type: "scenery";
|
|
13
|
+
/**
|
|
14
|
+
* Custom message when trying to take this item.
|
|
15
|
+
* If not provided, a default message will be used.
|
|
16
|
+
*/
|
|
17
|
+
cantTakeMessage?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether this scenery is mentioned in room descriptions.
|
|
20
|
+
* If false, the item won't be listed but can still be examined.
|
|
21
|
+
*/
|
|
22
|
+
mentioned: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whether this scenery is visible.
|
|
25
|
+
* If false, the item is hidden from view and queries unless explicitly requested.
|
|
26
|
+
*/
|
|
27
|
+
visible: boolean;
|
|
28
|
+
constructor(data?: Partial<SceneryTrait>);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=sceneryTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneryTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/scenery/sceneryTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAqB;IACzC,QAAQ,CAAC,IAAI,YAAqB;IAElC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,SAAS,UAAQ;IAEjB;;;OAGG;IACH,OAAO,UAAQ;gBAEH,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAKzC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/scenery/sceneryTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SceneryTrait = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Scenery trait marks items as fixed in place and not takeable.
|
|
8
|
+
*
|
|
9
|
+
* In IF conventions, objects are takeable by default unless they have
|
|
10
|
+
* this trait. This replaces the need for a separate "portable" trait.
|
|
11
|
+
*
|
|
12
|
+
* This trait contains only data - all behavior is in SceneryBehavior.
|
|
13
|
+
*/
|
|
14
|
+
class SceneryTrait {
|
|
15
|
+
static type = trait_types_1.TraitType.SCENERY;
|
|
16
|
+
type = trait_types_1.TraitType.SCENERY;
|
|
17
|
+
/**
|
|
18
|
+
* Custom message when trying to take this item.
|
|
19
|
+
* If not provided, a default message will be used.
|
|
20
|
+
*/
|
|
21
|
+
cantTakeMessage;
|
|
22
|
+
/**
|
|
23
|
+
* Whether this scenery is mentioned in room descriptions.
|
|
24
|
+
* If false, the item won't be listed but can still be examined.
|
|
25
|
+
*/
|
|
26
|
+
mentioned = true;
|
|
27
|
+
/**
|
|
28
|
+
* Whether this scenery is visible.
|
|
29
|
+
* If false, the item is hidden from view and queries unless explicitly requested.
|
|
30
|
+
*/
|
|
31
|
+
visible = true;
|
|
32
|
+
constructor(data) {
|
|
33
|
+
if (data) {
|
|
34
|
+
Object.assign(this, data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.SceneryTrait = SceneryTrait;
|
|
39
|
+
//# sourceMappingURL=sceneryTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneryTrait.js","sourceRoot":"","sources":["../../../src/traits/scenery/sceneryTrait.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;AAG1D,gDAA2C;AAE3C;;;;;;;GAOG;AACH,MAAa,YAAY;IACvB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,OAAO,CAAC;IAChC,IAAI,GAAG,uBAAS,CAAC,OAAO,CAAC;IAElC;;;OAGG;IACH,eAAe,CAAU;IAEzB;;;OAGG;IACH,SAAS,GAAG,IAAI,CAAC;IAEjB;;;OAGG;IACH,OAAO,GAAG,IAAI,CAAC;IAEf,YAAY,IAA4B;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AA1BH,oCA2BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/supporter/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/supporter/index.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SupporterBehavior = exports.SupporterTrait = void 0;
|
|
5
|
+
var supporterTrait_1 = require("./supporterTrait");
|
|
6
|
+
Object.defineProperty(exports, "SupporterTrait", { enumerable: true, get: function () { return supporterTrait_1.SupporterTrait; } });
|
|
7
|
+
var supporterBehavior_1 = require("./supporterBehavior");
|
|
8
|
+
Object.defineProperty(exports, "SupporterBehavior", { enumerable: true, get: function () { return supporterBehavior_1.SupporterBehavior; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/supporter/index.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAErD,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,yDAA6H;AAApH,sHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
3
|
+
import { IWorldQuery } from '../container/containerBehavior';
|
|
4
|
+
/**
|
|
5
|
+
* Result of adding an item to a supporter
|
|
6
|
+
*/
|
|
7
|
+
export interface IAddItemToSupporterResult {
|
|
8
|
+
success: boolean;
|
|
9
|
+
stateChanged: boolean;
|
|
10
|
+
alreadyThere?: boolean;
|
|
11
|
+
noSpace?: boolean;
|
|
12
|
+
wrongType?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Result of removing an item from a supporter
|
|
16
|
+
*/
|
|
17
|
+
export interface IRemoveItemFromSupporterResult {
|
|
18
|
+
success: boolean;
|
|
19
|
+
stateChanged: boolean;
|
|
20
|
+
notThere?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Behavior for entities that can support other entities on their surface.
|
|
24
|
+
*
|
|
25
|
+
* Handles capacity checks, type restrictions, and weight calculations.
|
|
26
|
+
*/
|
|
27
|
+
export declare class SupporterBehavior extends Behavior {
|
|
28
|
+
static requiredTraits: "supporter"[];
|
|
29
|
+
/**
|
|
30
|
+
* Check if a supporter can accept an item
|
|
31
|
+
* @returns true if the item can be accepted
|
|
32
|
+
*/
|
|
33
|
+
static canAccept(supporter: IFEntity, item: IFEntity, world: IWorldQuery): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Check capacity constraints
|
|
36
|
+
*/
|
|
37
|
+
static checkCapacity(supporter: IFEntity, item: IFEntity, world: IWorldQuery): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Get total weight on supporter
|
|
40
|
+
* For supporters, we count the total weight of all items including their contents
|
|
41
|
+
*/
|
|
42
|
+
static getTotalWeight(supporter: IFEntity, world: IWorldQuery): number;
|
|
43
|
+
/**
|
|
44
|
+
* Get total weight of an item including its contents
|
|
45
|
+
*/
|
|
46
|
+
private static getItemTotalWeight;
|
|
47
|
+
/**
|
|
48
|
+
* Get remaining capacity
|
|
49
|
+
*/
|
|
50
|
+
static getRemainingCapacity(supporter: IFEntity, world: IWorldQuery): {
|
|
51
|
+
items?: number;
|
|
52
|
+
weight?: number;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Check if the supporter is enterable by actors
|
|
56
|
+
*/
|
|
57
|
+
static isEnterable(supporter: IFEntity): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Get allowed types for this supporter
|
|
60
|
+
*/
|
|
61
|
+
static getAllowedTypes(supporter: IFEntity): string[] | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get excluded types for this supporter
|
|
64
|
+
*/
|
|
65
|
+
static getExcludedTypes(supporter: IFEntity): string[] | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Add an item to a supporter
|
|
68
|
+
* @param supporter The supporter receiving the item
|
|
69
|
+
* @param item The item being added
|
|
70
|
+
* @param world World query interface
|
|
71
|
+
* @returns Result describing what happened
|
|
72
|
+
*/
|
|
73
|
+
static addItem(supporter: IFEntity, item: IFEntity, world: IWorldQuery): IAddItemToSupporterResult;
|
|
74
|
+
/**
|
|
75
|
+
* Remove an item from a supporter
|
|
76
|
+
* @param supporter The supporter losing the item
|
|
77
|
+
* @param item The item being removed
|
|
78
|
+
* @param world World query interface
|
|
79
|
+
* @returns Result describing what happened
|
|
80
|
+
*/
|
|
81
|
+
static removeItem(supporter: IFEntity, item: IFEntity, world: IWorldQuery): IRemoveItemFromSupporterResult;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=supporterBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supporterBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/supporter/supporterBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,MAAM,CAAC,cAAc,gBAAyB;IAE9C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAgClF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAwBtF;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;IAQtE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG;QACpE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAgBD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO;IAKhD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKjE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS;IAKlE;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,yBAAyB;IAsDlG;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,8BAA8B;CAiB3G"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/supporter/supporterBehavior.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SupporterBehavior = void 0;
|
|
5
|
+
const behavior_1 = require("../../behaviors/behavior");
|
|
6
|
+
const trait_types_1 = require("../trait-types");
|
|
7
|
+
const identityBehavior_1 = require("../identity/identityBehavior");
|
|
8
|
+
/**
|
|
9
|
+
* Behavior for entities that can support other entities on their surface.
|
|
10
|
+
*
|
|
11
|
+
* Handles capacity checks, type restrictions, and weight calculations.
|
|
12
|
+
*/
|
|
13
|
+
class SupporterBehavior extends behavior_1.Behavior {
|
|
14
|
+
static requiredTraits = [trait_types_1.TraitType.SUPPORTER];
|
|
15
|
+
/**
|
|
16
|
+
* Check if a supporter can accept an item
|
|
17
|
+
* @returns true if the item can be accepted
|
|
18
|
+
*/
|
|
19
|
+
static canAccept(supporter, item, world) {
|
|
20
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
21
|
+
// Check type restrictions
|
|
22
|
+
if (trait.allowedTypes && trait.allowedTypes.length > 0) {
|
|
23
|
+
const itemType = item.type || 'object';
|
|
24
|
+
if (!trait.allowedTypes.includes(itemType)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (trait.excludedTypes && trait.excludedTypes.length > 0) {
|
|
29
|
+
const itemType = item.type || 'object';
|
|
30
|
+
if (trait.excludedTypes.includes(itemType)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Check enterable restrictions for actors
|
|
35
|
+
if (item.has(trait_types_1.TraitType.ACTOR) && !trait.enterable) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
// Check capacity constraints
|
|
39
|
+
if (trait.capacity) {
|
|
40
|
+
const result = this.checkCapacity(supporter, item, world);
|
|
41
|
+
if (!result)
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check capacity constraints
|
|
48
|
+
*/
|
|
49
|
+
static checkCapacity(supporter, item, world) {
|
|
50
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
51
|
+
const capacity = trait.capacity;
|
|
52
|
+
// Check item count limit
|
|
53
|
+
if (capacity.maxItems !== undefined) {
|
|
54
|
+
const currentCount = world.getContents(supporter.id).length;
|
|
55
|
+
if (currentCount >= capacity.maxItems) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Check weight limit
|
|
60
|
+
if (capacity.maxWeight !== undefined) {
|
|
61
|
+
const currentWeight = this.getTotalWeight(supporter, world);
|
|
62
|
+
const itemWeight = this.getItemTotalWeight(item, world);
|
|
63
|
+
if (currentWeight + itemWeight > capacity.maxWeight) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get total weight on supporter
|
|
71
|
+
* For supporters, we count the total weight of all items including their contents
|
|
72
|
+
*/
|
|
73
|
+
static getTotalWeight(supporter, world) {
|
|
74
|
+
const contents = world.getContents(supporter.id);
|
|
75
|
+
return contents.reduce((sum, item) => {
|
|
76
|
+
// For supporters, we count total weight including nested contents
|
|
77
|
+
return sum + this.getItemTotalWeight(item, world);
|
|
78
|
+
}, 0);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get total weight of an item including its contents
|
|
82
|
+
*/
|
|
83
|
+
static getItemTotalWeight(item, world) {
|
|
84
|
+
let weight = identityBehavior_1.IdentityBehavior.getWeight(item);
|
|
85
|
+
// Add weight of contents if this is a container or supporter
|
|
86
|
+
if (item.has(trait_types_1.TraitType.CONTAINER) || item.has(trait_types_1.TraitType.SUPPORTER)) {
|
|
87
|
+
const contents = world.getContents(item.id);
|
|
88
|
+
for (const subItem of contents) {
|
|
89
|
+
weight += this.getItemTotalWeight(subItem, world);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return weight;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get remaining capacity
|
|
96
|
+
*/
|
|
97
|
+
static getRemainingCapacity(supporter, world) {
|
|
98
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
99
|
+
const result = {};
|
|
100
|
+
if (trait.capacity?.maxItems !== undefined) {
|
|
101
|
+
const current = world.getContents(supporter.id).length;
|
|
102
|
+
result.items = trait.capacity.maxItems - current;
|
|
103
|
+
}
|
|
104
|
+
if (trait.capacity?.maxWeight !== undefined) {
|
|
105
|
+
result.weight = trait.capacity.maxWeight - this.getTotalWeight(supporter, world);
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if the supporter is enterable by actors
|
|
111
|
+
*/
|
|
112
|
+
static isEnterable(supporter) {
|
|
113
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
114
|
+
return trait.enterable || false;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get allowed types for this supporter
|
|
118
|
+
*/
|
|
119
|
+
static getAllowedTypes(supporter) {
|
|
120
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
121
|
+
return trait.allowedTypes;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get excluded types for this supporter
|
|
125
|
+
*/
|
|
126
|
+
static getExcludedTypes(supporter) {
|
|
127
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
128
|
+
return trait.excludedTypes;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Add an item to a supporter
|
|
132
|
+
* @param supporter The supporter receiving the item
|
|
133
|
+
* @param item The item being added
|
|
134
|
+
* @param world World query interface
|
|
135
|
+
* @returns Result describing what happened
|
|
136
|
+
*/
|
|
137
|
+
static addItem(supporter, item, world) {
|
|
138
|
+
// Check if item is already on supporter
|
|
139
|
+
const currentLocation = world.getLocation(item.id);
|
|
140
|
+
if (currentLocation === supporter.id) {
|
|
141
|
+
return {
|
|
142
|
+
success: false,
|
|
143
|
+
alreadyThere: true,
|
|
144
|
+
stateChanged: false
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// Check if supporter can accept the item
|
|
148
|
+
if (!SupporterBehavior.canAccept(supporter, item, world)) {
|
|
149
|
+
// Determine specific failure reason
|
|
150
|
+
const trait = SupporterBehavior.require(supporter, trait_types_1.TraitType.SUPPORTER);
|
|
151
|
+
// Check type restrictions
|
|
152
|
+
if (trait.allowedTypes && trait.allowedTypes.length > 0) {
|
|
153
|
+
const itemType = item.type || 'object';
|
|
154
|
+
if (!trait.allowedTypes.includes(itemType)) {
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
wrongType: true,
|
|
158
|
+
stateChanged: false
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (trait.excludedTypes && trait.excludedTypes.length > 0) {
|
|
163
|
+
const itemType = item.type || 'object';
|
|
164
|
+
if (trait.excludedTypes.includes(itemType)) {
|
|
165
|
+
return {
|
|
166
|
+
success: false,
|
|
167
|
+
wrongType: true,
|
|
168
|
+
stateChanged: false
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Must be a capacity issue
|
|
173
|
+
return {
|
|
174
|
+
success: false,
|
|
175
|
+
noSpace: true,
|
|
176
|
+
stateChanged: false
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// All checks passed - adding is valid
|
|
180
|
+
return {
|
|
181
|
+
success: true,
|
|
182
|
+
stateChanged: true
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Remove an item from a supporter
|
|
187
|
+
* @param supporter The supporter losing the item
|
|
188
|
+
* @param item The item being removed
|
|
189
|
+
* @param world World query interface
|
|
190
|
+
* @returns Result describing what happened
|
|
191
|
+
*/
|
|
192
|
+
static removeItem(supporter, item, world) {
|
|
193
|
+
// Check if item is actually on the supporter
|
|
194
|
+
const currentLocation = world.getLocation(item.id);
|
|
195
|
+
if (currentLocation !== supporter.id) {
|
|
196
|
+
return {
|
|
197
|
+
success: false,
|
|
198
|
+
notThere: true,
|
|
199
|
+
stateChanged: false
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
// All checks passed - removal is valid
|
|
203
|
+
return {
|
|
204
|
+
success: true,
|
|
205
|
+
stateChanged: true
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.SupporterBehavior = SupporterBehavior;
|
|
210
|
+
//# sourceMappingURL=supporterBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supporterBehavior.js","sourceRoot":"","sources":["../../../src/traits/supporter/supporterBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ITrait } from '../trait';
|
|
2
|
+
/**
|
|
3
|
+
* Supporter trait allows entities to have other entities placed on top of them.
|
|
4
|
+
*
|
|
5
|
+
* This is a pure data structure - all validation and logic
|
|
6
|
+
* should be handled by SupporterBehavior.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SupporterTrait implements ITrait {
|
|
9
|
+
static readonly type: "supporter";
|
|
10
|
+
readonly type: "supporter";
|
|
11
|
+
/** Capacity constraints for the supporter */
|
|
12
|
+
capacity?: {
|
|
13
|
+
/** Maximum total weight the supporter can hold (in kg) */
|
|
14
|
+
maxWeight?: number;
|
|
15
|
+
/** Maximum number of items that can be placed on the supporter */
|
|
16
|
+
maxItems?: number;
|
|
17
|
+
};
|
|
18
|
+
/** Whether actors can sit/stand/lie on this supporter */
|
|
19
|
+
enterable?: boolean;
|
|
20
|
+
/** Only these entity types can be placed on the supporter */
|
|
21
|
+
allowedTypes?: string[];
|
|
22
|
+
/** These entity types cannot be placed on the supporter */
|
|
23
|
+
excludedTypes?: string[];
|
|
24
|
+
constructor(data?: Partial<SupporterTrait>);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=supporterTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supporterTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/supporter/supporterTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,MAAM;IAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAuB;IAC3C,QAAQ,CAAC,IAAI,cAAuB;IAEpC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,kEAAkE;QAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAS;IAE5B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEb,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;CAK3C"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/supporter/supporterTrait.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SupporterTrait = void 0;
|
|
5
|
+
const trait_types_1 = require("../trait-types");
|
|
6
|
+
/**
|
|
7
|
+
* Supporter trait allows entities to have other entities placed on top of them.
|
|
8
|
+
*
|
|
9
|
+
* This is a pure data structure - all validation and logic
|
|
10
|
+
* should be handled by SupporterBehavior.
|
|
11
|
+
*/
|
|
12
|
+
class SupporterTrait {
|
|
13
|
+
static type = trait_types_1.TraitType.SUPPORTER;
|
|
14
|
+
type = trait_types_1.TraitType.SUPPORTER;
|
|
15
|
+
/** Capacity constraints for the supporter */
|
|
16
|
+
capacity;
|
|
17
|
+
/** Whether actors can sit/stand/lie on this supporter */
|
|
18
|
+
enterable = false;
|
|
19
|
+
/** Only these entity types can be placed on the supporter */
|
|
20
|
+
allowedTypes;
|
|
21
|
+
/** These entity types cannot be placed on the supporter */
|
|
22
|
+
excludedTypes;
|
|
23
|
+
constructor(data) {
|
|
24
|
+
if (data) {
|
|
25
|
+
Object.assign(this, data);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.SupporterTrait = SupporterTrait;
|
|
30
|
+
//# sourceMappingURL=supporterTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supporterTrait.js","sourceRoot":"","sources":["../../../src/traits/supporter/supporterTrait.ts"],"names":[],"mappings":";AAAA,8DAA8D;;;AAG9D,gDAA2C;AAE3C;;;;;GAKG;AACH,MAAa,cAAc;IACzB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,SAAS,CAAC;IAClC,IAAI,GAAG,uBAAS,CAAC,SAAS,CAAC;IAEpC,6CAA6C;IAC7C,QAAQ,CAMN;IAEF,yDAAyD;IACzD,SAAS,GAAa,KAAK,CAAC;IAE5B,6DAA6D;IAC7D,YAAY,CAAY;IAExB,2DAA2D;IAC3D,aAAa,CAAY;IAEzB,YAAY,IAA8B;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AA1BH,wCA2BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/switchable/index.ts"],"names":[],"mappings":"AAEA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/world-model/src/traits/switchable/index.ts
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
__exportStar(require("./switchableTrait"), exports);
|
|
19
|
+
__exportStar(require("./switchableBehavior"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traits/switchable/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;;;;;;;;;;;AAEtD,oDAAkC;AAClC,uDAAqC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Behavior } from '../../behaviors/behavior';
|
|
2
|
+
import { IFEntity } from '../../entities/if-entity';
|
|
3
|
+
import { ISemanticEvent } from '@sharpee/core';
|
|
4
|
+
export interface ISwitchOnResult {
|
|
5
|
+
success: boolean;
|
|
6
|
+
wasOn?: boolean;
|
|
7
|
+
noPower?: boolean;
|
|
8
|
+
autoOffTime?: number;
|
|
9
|
+
powerConsumption?: number;
|
|
10
|
+
runningSound?: string;
|
|
11
|
+
onSound?: string;
|
|
12
|
+
onMessage?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ISwitchOffResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
wasOff?: boolean;
|
|
17
|
+
offSound?: string;
|
|
18
|
+
offMessage?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Behavior for switchable entities.
|
|
22
|
+
*
|
|
23
|
+
* Handles the logic for turning devices on and off.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SwitchableBehavior extends Behavior {
|
|
26
|
+
static requiredTraits: "switchable"[];
|
|
27
|
+
/**
|
|
28
|
+
* Check if the device can be turned on
|
|
29
|
+
*/
|
|
30
|
+
static canSwitchOn(entity: IFEntity): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check if the device can be turned off
|
|
33
|
+
*/
|
|
34
|
+
static canSwitchOff(entity: IFEntity): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Turn the entity on
|
|
37
|
+
* @returns Result object describing what happened
|
|
38
|
+
*/
|
|
39
|
+
static switchOn(entity: IFEntity): ISwitchOnResult;
|
|
40
|
+
/**
|
|
41
|
+
* Turn the entity off
|
|
42
|
+
* @returns Result object describing what happened
|
|
43
|
+
*/
|
|
44
|
+
static switchOff(entity: IFEntity): ISwitchOffResult;
|
|
45
|
+
/**
|
|
46
|
+
* Toggle on/off state
|
|
47
|
+
* @returns Result from either switch on or off
|
|
48
|
+
*/
|
|
49
|
+
static toggle(entity: IFEntity): ISwitchOnResult | ISwitchOffResult;
|
|
50
|
+
/**
|
|
51
|
+
* Update power state
|
|
52
|
+
* @returns Events if device was forced off due to power loss
|
|
53
|
+
*/
|
|
54
|
+
static setPower(entity: IFEntity, hasPower: boolean): ISemanticEvent[];
|
|
55
|
+
/**
|
|
56
|
+
* Process turn-based updates (for auto-off)
|
|
57
|
+
* @returns Events if device auto-turned off
|
|
58
|
+
*/
|
|
59
|
+
static updateTurn(entity: IFEntity): ISemanticEvent[];
|
|
60
|
+
/**
|
|
61
|
+
* Check if entity is currently on
|
|
62
|
+
*/
|
|
63
|
+
static isOn(entity: IFEntity): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Get time remaining before auto-off
|
|
66
|
+
*/
|
|
67
|
+
static getTimeRemaining(entity: IFEntity): number;
|
|
68
|
+
/**
|
|
69
|
+
* Get power consumption
|
|
70
|
+
*/
|
|
71
|
+
static getPowerConsumption(entity: IFEntity): number;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=switchableBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchableBehavior.d.ts","sourceRoot":"","sources":["../../../src/traits/switchable/switchableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,MAAM,CAAC,cAAc,iBAA0B;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAS7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK9C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe;IAmClD;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,gBAAgB;IAqBpD;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,gBAAgB;IAUnE;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc,EAAE;IA4CtE;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,EAAE;IA2BrD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKtC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IAKjD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;CAIrD"}
|