@almadar/std 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/behaviors/async.d.ts +8 -8
  2. package/dist/behaviors/async.js +548 -500
  3. package/dist/behaviors/async.js.map +1 -1
  4. package/dist/behaviors/data-management.d.ts +11 -19
  5. package/dist/behaviors/data-management.js +468 -449
  6. package/dist/behaviors/data-management.js.map +1 -1
  7. package/dist/behaviors/feedback.d.ts +6 -6
  8. package/dist/behaviors/feedback.js +312 -278
  9. package/dist/behaviors/feedback.js.map +1 -1
  10. package/dist/behaviors/game-core.d.ts +11 -12
  11. package/dist/behaviors/game-core.js +357 -406
  12. package/dist/behaviors/game-core.js.map +1 -1
  13. package/dist/behaviors/game-entity.d.ts +13 -14
  14. package/dist/behaviors/game-entity.js +622 -592
  15. package/dist/behaviors/game-entity.js.map +1 -1
  16. package/dist/behaviors/game-ui.d.ts +9 -10
  17. package/dist/behaviors/game-ui.js +522 -459
  18. package/dist/behaviors/game-ui.js.map +1 -1
  19. package/dist/behaviors/index.d.ts +3 -3
  20. package/dist/behaviors/index.js +3876 -3843
  21. package/dist/behaviors/index.js.map +1 -1
  22. package/dist/behaviors/registry.d.ts +14 -24
  23. package/dist/behaviors/registry.js +3868 -3803
  24. package/dist/behaviors/registry.js.map +1 -1
  25. package/dist/behaviors/types.d.ts +14 -138
  26. package/dist/behaviors/types.js +10 -47
  27. package/dist/behaviors/types.js.map +1 -1
  28. package/dist/behaviors/ui-interaction.d.ts +13 -20
  29. package/dist/behaviors/ui-interaction.js +961 -1043
  30. package/dist/behaviors/ui-interaction.js.map +1 -1
  31. package/dist/index.d.ts +44 -11
  32. package/dist/index.js +3913 -3870
  33. package/dist/index.js.map +1 -1
  34. package/dist/modules/index.js +11 -0
  35. package/dist/modules/index.js.map +1 -1
  36. package/dist/modules/str.js +11 -0
  37. package/dist/modules/str.js.map +1 -1
  38. package/dist/registry.js +11 -0
  39. package/dist/registry.js.map +1 -1
  40. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../behaviors/game-core.ts"],"names":[],"mappings":"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","file":"game-core.js","sourcesContent":["/**\n * Game Core Behaviors\n *\n * Foundation behaviors for game systems: loop, physics, input, collision.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameLoop - Master Game Tick Coordination\n// ============================================================================\n\n/**\n * std/GameLoop - Coordinates game tick execution at 60fps.\n *\n * States: Running, Paused\n * Provides the master clock for all game systems.\n */\nexport const GAME_LOOP_BEHAVIOR: StandardBehavior = {\n name: 'std/GameLoop',\n category: 'game-core',\n description: 'Master game loop coordinator running at 60fps',\n suggestedFor: [\n 'All real-time games',\n 'Platformers',\n 'Action games',\n 'Endless runners',\n ],\n\n dataEntities: [\n {\n name: 'GameLoopState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'frameCount', type: 'number', default: 0 },\n { name: 'deltaTime', type: 'number', default: 16 },\n { name: 'elapsedTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Stopped',\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Running' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START' },\n { key: 'STOP' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'TICK' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Running',\n event: 'START',\n effects: [\n ['set', '@entity.frameCount', 0],\n ['set', '@entity.elapsedTime', 0],\n ],\n },\n {\n from: 'Running',\n to: 'Paused',\n event: 'PAUSE',\n effects: [],\n },\n {\n from: 'Paused',\n to: 'Running',\n event: 'RESUME',\n effects: [],\n },\n {\n from: ['Running', 'Paused'],\n to: 'Stopped',\n event: 'STOP',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'GameTick',\n interval: 'frame',\n guard: ['=', '@state', 'Running'],\n effects: [\n ['set', '@entity.frameCount', ['+', '@entity.frameCount', 1]],\n ['set', '@entity.elapsedTime', ['+', '@entity.elapsedTime', '@entity.deltaTime']],\n ['emit', 'GAME_TICK', { frame: '@entity.frameCount', delta: '@entity.deltaTime' }],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'targetFps', type: 'number', description: 'Target frames per second', default: 60 },\n { name: 'fixedTimestep', type: 'boolean', description: 'Use fixed timestep', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Physics2D - Gravity and Velocity\n// ============================================================================\n\n/**\n * std/Physics2D - 2D physics with gravity, velocity, and friction.\n *\n * Applied to entities that need physics simulation.\n */\nexport const PHYSICS_2D_BEHAVIOR: StandardBehavior = {\n name: 'std/Physics2D',\n category: 'game-core',\n description: '2D physics with gravity, velocity, and friction',\n suggestedFor: [\n 'Platformer characters',\n 'Falling objects',\n 'Projectiles',\n 'Any entity affected by gravity',\n ],\n\n requiredFields: [\n { name: 'x', type: 'number', description: 'Entity X position' },\n { name: 'y', type: 'number', description: 'Entity Y position' },\n ],\n\n dataEntities: [\n {\n name: 'Physics2DState',\n runtime: true,\n fields: [\n { name: 'vx', type: 'number', default: 0 },\n { name: 'vy', type: 'number', default: 0 },\n { name: 'isGrounded', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Frozen' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'APPLY_FORCE' },\n { key: 'GROUND_HIT' },\n { key: 'FREEZE' },\n { key: 'UNFREEZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.vx', 0],\n ['set', '@entity.vy', 0],\n ['set', '@entity.isGrounded', false],\n ],\n },\n {\n from: 'Active',\n event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.vx', ['+', '@entity.vx', '@payload.fx']],\n ['set', '@entity.vy', ['+', '@entity.vy', '@payload.fy']],\n ],\n },\n {\n from: 'Active',\n event: 'GROUND_HIT',\n effects: [\n ['set', '@entity.isGrounded', true],\n ['set', '@entity.vy', 0],\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.friction']],\n ],\n },\n {\n from: 'Active',\n to: 'Frozen',\n event: 'FREEZE',\n effects: [],\n },\n {\n from: 'Frozen',\n to: 'Active',\n event: 'UNFREEZE',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ApplyGravity',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Active'], ['not', '@entity.isGrounded']],\n effects: [\n ['set', '@entity.vy', ['math/min', '@config.maxVelocityY', ['+', '@entity.vy', '@config.gravity']]],\n ],\n },\n {\n name: 'ApplyVelocity',\n interval: 'frame',\n guard: ['=', '@state', 'Active'],\n effects: [\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.airResistance']],\n ['set', '@entity.x', ['+', '@entity.x', '@entity.vx']],\n ['set', '@entity.y', ['+', '@entity.y', '@entity.vy']],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'gravity', type: 'number', description: 'Gravity acceleration (pixels/frame²)', default: 0.5 },\n { name: 'maxVelocityY', type: 'number', description: 'Terminal velocity', default: 15 },\n { name: 'friction', type: 'number', description: 'Ground friction (0-1)', default: 0.8 },\n { name: 'airResistance', type: 'number', description: 'Air resistance (0-1)', default: 0.99 },\n ],\n },\n};\n\n// ============================================================================\n// std/Input - Unified Input State\n// ============================================================================\n\n/**\n * std/Input - Manages keyboard and touch input state.\n *\n * Singleton behavior that tracks all input state.\n */\nexport const INPUT_BEHAVIOR: StandardBehavior = {\n name: 'std/Input',\n category: 'game-core',\n description: 'Unified keyboard and touch input state management',\n suggestedFor: [\n 'All interactive games',\n 'Player controls',\n 'Menu navigation',\n ],\n\n dataEntities: [\n {\n name: 'InputState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'left', type: 'boolean', default: false },\n { name: 'right', type: 'boolean', default: false },\n { name: 'up', type: 'boolean', default: false },\n { name: 'down', type: 'boolean', default: false },\n { name: 'jump', type: 'boolean', default: false },\n { name: 'action', type: 'boolean', default: false },\n { name: 'pause', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n ],\n events: [\n { key: 'KEY_DOWN' },\n { key: 'KEY_UP' },\n { key: 'TOUCH_START' },\n { key: 'TOUCH_END' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n event: 'KEY_DOWN',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', true]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', true]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', true]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', true]],\n ],\n },\n {\n event: 'KEY_UP',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', false]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', false]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', false]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', false]],\n ],\n },\n {\n event: 'RESET',\n effects: [\n ['set', '@entity.left', false],\n ['set', '@entity.right', false],\n ['set', '@entity.up', false],\n ['set', '@entity.down', false],\n ['set', '@entity.jump', false],\n ['set', '@entity.action', false],\n ['set', '@entity.pause', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'keyMap', type: 'object', description: 'Key to action mapping', default: {} },\n ],\n },\n};\n\n// ============================================================================\n// std/Collision - Collision Detection & Response\n// ============================================================================\n\n/**\n * std/Collision - Handles collision detection and response.\n *\n * Configures how an entity responds to collisions.\n */\nexport const COLLISION_BEHAVIOR: StandardBehavior = {\n name: 'std/Collision',\n category: 'game-core',\n description: 'Collision detection and response configuration',\n suggestedFor: [\n 'Solid platforms',\n 'Trigger zones',\n 'Collectibles',\n 'Hazards',\n ],\n\n dataEntities: [\n {\n name: 'CollisionState',\n runtime: true,\n fields: [\n { name: 'isColliding', type: 'boolean', default: false },\n { name: 'collidingWith', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Disabled' },\n ],\n events: [\n { key: 'COLLISION' },\n { key: 'TRIGGER_ENTER' },\n { key: 'TRIGGER_EXIT' },\n { key: 'ENABLE' },\n { key: 'DISABLE' },\n ],\n transitions: [\n {\n from: 'Active',\n event: 'COLLISION',\n effects: [\n ['set', '@entity.isColliding', true],\n ['set', '@entity.collidingWith', ['array/append', '@entity.collidingWith', '@payload.entityId']],\n ['if', '@config.onCollision',\n ['emit', '@config.onCollision', { entityId: '@payload.entityId', side: '@payload.side' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_ENTER',\n effects: [\n ['if', '@config.onTrigger',\n ['emit', '@config.onTrigger', { entityId: '@payload.entityId', action: 'enter' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_EXIT',\n effects: [\n ['set', '@entity.collidingWith', ['array/filter', '@entity.collidingWith', ['fn', 'id', ['!=', '@id', '@payload.entityId']]]],\n ['if', ['=', ['array/len', '@entity.collidingWith'], 0],\n ['set', '@entity.isColliding', false]],\n ],\n },\n {\n from: 'Active',\n to: 'Disabled',\n event: 'DISABLE',\n effects: [\n ['set', '@entity.isColliding', false],\n ['set', '@entity.collidingWith', []],\n ],\n },\n {\n from: 'Disabled',\n to: 'Active',\n event: 'ENABLE',\n effects: [],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'type', type: 'string', description: 'Collision type', default: 'solid', enum: ['solid', 'trigger'] },\n { name: 'layer', type: 'string', description: 'Collision layer', default: 'default' },\n { name: 'collidesWith', type: 'array', description: 'Layers to collide with', default: ['default'] },\n { name: 'onCollision', type: 'event', description: 'Event to emit on collision' },\n { name: 'onTrigger', type: 'event', description: 'Event to emit on trigger' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_CORE_BEHAVIORS: StandardBehavior[] = [\n GAME_LOOP_BEHAVIOR,\n PHYSICS_2D_BEHAVIOR,\n INPUT_BEHAVIOR,\n COLLISION_BEHAVIOR,\n];\n"]}
1
+ {"version":3,"sources":["../../behaviors/game-core.ts"],"names":[],"mappings":";AAqBO,IAAM,kBAAA,GAAoC;AAAA,EAC7C,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,+CAAA;AAAA,EACb,QAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAM,iBAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACJ,IAAA,EAAM,eAAA;AAAA,QACN,WAAA,EAAa,SAAA;AAAA,QACb,MAAA,EAAQ;AAAA,UACJ,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,UAAU,IAAA,EAAK;AAAA,UAC7C,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA,EAAE;AAAA,UACjD,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,QAAA,EAAU,SAAS,EAAA,EAAG;AAAA,UACjD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA;AAAE;AACtD,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAM,UAAA;AAAA,UACN,YAAA,EAAc,eAAA;AAAA,UACd,QAAA,EAAU,aAAA;AAAA,UACV,YAAA,EAAc;AAAA,YACV,MAAA,EAAQ;AAAA,cACJ,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,IAAA,EAAK;AAAA,cACnC,EAAE,MAAM,SAAA,EAAU;AAAA,cAClB,EAAE,MAAM,QAAA;AAAS,aACrB;AAAA,YACA,MAAA,EAAQ;AAAA,cACJ,EAAE,GAAA,EAAK,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ;AAAA,cAC9B,EAAE,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAO;AAAA,cAC5B,EAAE,GAAA,EAAK,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ;AAAA,cAC9B,EAAE,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,QAAA,EAAS;AAAA,cAChC,EAAE,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,MAAA;AAAO,aAChC;AAAA,YACA,WAAA,EAAa;AAAA,cACT;AAAA,gBACI,IAAA,EAAM,SAAA;AAAA,gBACN,EAAA,EAAI,SAAA;AAAA,gBACJ,KAAA,EAAO,OAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,oBAAA,EAAsB,CAAC,CAAA;AAAA,kBAC/B,CAAC,KAAA,EAAO,qBAAA,EAAuB,CAAC;AAAA;AACpC,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,SAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,OAAA;AAAA,gBACP,SAAS;AAAC,eACd;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,SAAA;AAAA,gBACJ,KAAA,EAAO,QAAA;AAAA,gBACP,SAAS;AAAC,eACd;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,SAAA;AAAA,gBACN,EAAA,EAAI,SAAA;AAAA,gBACJ,KAAA,EAAO,MAAA;AAAA,gBACP,SAAS;AAAC,eACd;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,SAAA;AAAA,gBACJ,KAAA,EAAO,MAAA;AAAA,gBACP,SAAS;AAAC;AACd;AACJ,WACJ;AAAA,UACA,KAAA,EAAO;AAAA,YACH;AAAA,cACI,IAAA,EAAM,UAAA;AAAA,cACN,QAAA,EAAU,OAAA;AAAA,cACV,KAAA,EAAO,CAAC,GAAA,EAAK,QAAA,EAAU,SAAS,CAAA;AAAA,cAChC,OAAA,EAAS;AAAA,gBACL,CAAC,KAAA,EAAO,oBAAA,EAAsB,CAAC,GAAA,EAAK,oBAAA,EAAsB,CAAC,CAAC,CAAA;AAAA,gBAC5D,CAAC,KAAA,EAAO,qBAAA,EAAuB,CAAC,GAAA,EAAK,qBAAA,EAAuB,mBAAmB,CAAC,CAAA;AAAA,gBAChF,CAAC,QAAQ,WAAA,EAAa,EAAE,OAAO,oBAAA,EAAsB,KAAA,EAAO,qBAAqB;AAAA;AACrF;AACJ;AACJ;AACJ,OACJ;AAAA,MACA,OAAO;AAAC;AACZ;AAER;AAWO,IAAM,mBAAA,GAAqC;AAAA,EAC9C,IAAA,EAAM,eAAA;AAAA,EACN,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,iDAAA;AAAA,EACb,QAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAM,kBAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACJ,IAAA,EAAM,gBAAA;AAAA,QACN,WAAA,EAAa,SAAA;AAAA,QACb,MAAA,EAAQ;AAAA,UACJ,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,UAAU,IAAA,EAAK;AAAA,UAC7C,EAAE,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA,EAAE;AAAA,UACxC,EAAE,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA,EAAE;AAAA,UACxC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA,EAAE;AAAA,UACzC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,SAAS,CAAA,EAAE;AAAA,UACzC,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA;AAAA,UAEtD,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,SAAS,GAAA,EAAI;AAAA,UAChD,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,SAAS,GAAA,EAAI;AAAA,UACjD,EAAE,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,UACvD,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,QAAA,EAAU,SAAS,EAAA;AAAG;AACxD,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAM,WAAA;AAAA,UACN,YAAA,EAAc,gBAAA;AAAA,UACd,QAAA,EAAU,aAAA;AAAA,UACV,YAAA,EAAc;AAAA,YACV,MAAA,EAAQ;AAAA,cACJ,EAAE,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,IAAA,EAAK;AAAA,cAClC,EAAE,MAAM,QAAA;AAAS,aACrB;AAAA,YACA,MAAA,EAAQ;AAAA,cACJ,EAAE,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAa;AAAA,cAClC,EAAE,GAAA,EAAK,aAAA,EAAe,IAAA,EAAM,aAAA,EAAc;AAAA,cAC1C,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,YAAA,EAAa;AAAA,cACxC,EAAE,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,QAAA,EAAS;AAAA,cAChC,EAAE,GAAA,EAAK,UAAA,EAAY,IAAA,EAAM,UAAA;AAAW,aACxC;AAAA,YACA,WAAA,EAAa;AAAA,cACT;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,MAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,CAAA;AAAA,kBACvB,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,CAAA;AAAA,kBACvB,CAAC,KAAA,EAAO,oBAAA,EAAsB,KAAK;AAAA;AACvC,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,MAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,CAAA;AAAA,kBACvB,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,CAAA;AAAA,kBACvB,CAAC,KAAA,EAAO,oBAAA,EAAsB,KAAK;AAAA;AACvC,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,aAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,GAAA,EAAK,YAAA,EAAc,aAAa,CAAC,CAAA;AAAA,kBACxD,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,GAAA,EAAK,YAAA,EAAc,aAAa,CAAC;AAAA;AAC5D,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,YAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,oBAAA,EAAsB,IAAI,CAAA;AAAA,kBAClC,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,CAAA;AAAA,kBACvB,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,GAAA,EAAK,YAAA,EAAc,kBAAkB,CAAC;AAAA;AACjE,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,QAAA;AAAA,gBACP,SAAS;AAAC,eACd;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,UAAA;AAAA,gBACP,SAAS;AAAC;AACd;AACJ,WACJ;AAAA,UACA,KAAA,EAAO;AAAA,YACH;AAAA,cACI,IAAA,EAAM,cAAA;AAAA,cACN,QAAA,EAAU,OAAA;AAAA,cACV,KAAA,EAAO,CAAC,KAAA,EAAO,CAAC,GAAA,EAAK,QAAA,EAAU,QAAQ,CAAA,EAAG,CAAC,KAAA,EAAO,oBAAoB,CAAC,CAAA;AAAA,cACvE,OAAA,EAAS;AAAA,gBACL,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,UAAA,EAAY,sBAAA,EAAwB,CAAC,GAAA,EAAK,YAAA,EAAc,iBAAiB,CAAC,CAAC;AAAA;AACtG,aACJ;AAAA,YACA;AAAA,cACI,IAAA,EAAM,eAAA;AAAA,cACN,QAAA,EAAU,OAAA;AAAA,cACV,KAAA,EAAO,CAAC,GAAA,EAAK,QAAA,EAAU,QAAQ,CAAA;AAAA,cAC/B,OAAA,EAAS;AAAA,gBACL,CAAC,KAAA,EAAO,YAAA,EAAc,CAAC,GAAA,EAAK,YAAA,EAAc,uBAAuB,CAAC,CAAA;AAAA,gBAClE,CAAC,KAAA,EAAO,WAAA,EAAa,CAAC,GAAA,EAAK,WAAA,EAAa,YAAY,CAAC,CAAA;AAAA,gBACrD,CAAC,KAAA,EAAO,WAAA,EAAa,CAAC,GAAA,EAAK,WAAA,EAAa,YAAY,CAAC;AAAA;AACzD;AACJ;AACJ;AACJ,OACJ;AAAA,MACA,OAAO;AAAC;AACZ;AAER;AAWO,IAAM,cAAA,GAAgC;AAAA,EACzC,IAAA,EAAM,WAAA;AAAA,EACN,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,mDAAA;AAAA,EACb,QAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAM,cAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACJ,IAAA,EAAM,YAAA;AAAA,QACN,WAAA,EAAa,SAAA;AAAA,QACb,MAAA,EAAQ;AAAA,UACJ,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,UAAU,IAAA,EAAK;AAAA,UAC7C,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UAChD,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UACjD,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UAC9C,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UAChD,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UAChD,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UAClD,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA;AAAM;AACrD,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAM,OAAA;AAAA,UACN,YAAA,EAAc,YAAA;AAAA,UACd,QAAA,EAAU,aAAA;AAAA,UACV,YAAA,EAAc;AAAA,YACV,QAAQ,CAAC,EAAE,MAAM,OAAA,EAAS,SAAA,EAAW,MAAM,CAAA;AAAA,YAC3C,MAAA,EAAQ;AAAA,cACJ,EAAE,GAAA,EAAK,UAAA,EAAY,IAAA,EAAM,UAAA,EAAW;AAAA,cACpC,EAAE,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,QAAA,EAAS;AAAA,cAChC,EAAE,GAAA,EAAK,aAAA,EAAe,IAAA,EAAM,aAAA,EAAc;AAAA,cAC1C,EAAE,GAAA,EAAK,WAAA,EAAa,IAAA,EAAM,WAAA,EAAY;AAAA,cACtC,EAAE,GAAA,EAAK,OAAA,EAAS,IAAA,EAAM,OAAA;AAAQ,aAClC;AAAA,YACA,WAAA,EAAa;AAAA,cACT;AAAA,gBACI,IAAA,EAAM,OAAA;AAAA,gBACN,EAAA,EAAI,OAAA;AAAA,gBACJ,KAAA,EAAO,UAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,WAAW,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,IAAI,CAAC,CAAA;AAAA,kBAC5G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,YAAY,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,eAAA,EAAiB,IAAI,CAAC,CAAA;AAAA,kBAC9G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,SAAS,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,YAAA,EAAc,IAAI,CAAC,CAAA;AAAA,kBACxG,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,WAAW,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,IAAI,CAAC,CAAA;AAAA,kBAC5G,CAAC,IAAA,EAAM,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,IAAI,CAAC,CAAA;AAAA,kBAChE,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,OAAO,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,gBAAA,EAAkB,IAAI,CAAC,CAAA;AAAA,kBAC1G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,QAAQ,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,eAAA,EAAiB,IAAI,CAAC;AAAA;AAC9G,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,OAAA;AAAA,gBACN,EAAA,EAAI,OAAA;AAAA,gBACJ,KAAA,EAAO,QAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,WAAW,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAC,CAAA;AAAA,kBAC7G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,YAAY,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,eAAA,EAAiB,KAAK,CAAC,CAAA;AAAA,kBAC/G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,SAAS,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,YAAA,EAAc,KAAK,CAAC,CAAA;AAAA,kBACzG,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,WAAW,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAC,CAAA;AAAA,kBAC7G,CAAC,IAAA,EAAM,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAC,CAAA;AAAA,kBACjE,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,OAAO,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,gBAAA,EAAkB,KAAK,CAAC,CAAA;AAAA,kBAC3G,CAAC,IAAA,EAAM,CAAC,MAAM,CAAC,GAAA,EAAK,gBAAgB,QAAQ,CAAA,EAAG,CAAC,GAAA,EAAK,cAAA,EAAgB,GAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,eAAA,EAAiB,KAAK,CAAC;AAAA;AAC/G,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,OAAA;AAAA,gBACN,EAAA,EAAI,OAAA;AAAA,gBACJ,KAAA,EAAO,OAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAA;AAAA,kBAC7B,CAAC,KAAA,EAAO,eAAA,EAAiB,KAAK,CAAA;AAAA,kBAC9B,CAAC,KAAA,EAAO,YAAA,EAAc,KAAK,CAAA;AAAA,kBAC3B,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAA;AAAA,kBAC7B,CAAC,KAAA,EAAO,cAAA,EAAgB,KAAK,CAAA;AAAA,kBAC7B,CAAC,KAAA,EAAO,gBAAA,EAAkB,KAAK,CAAA;AAAA,kBAC/B,CAAC,KAAA,EAAO,eAAA,EAAiB,KAAK;AAAA;AAClC;AACJ;AACJ;AACJ;AACJ,OACJ;AAAA,MACA,OAAO;AAAC;AACZ;AAER;AAWO,IAAM,kBAAA,GAAoC;AAAA,EAC7C,IAAA,EAAM,eAAA;AAAA,EACN,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,gDAAA;AAAA,EACb,QAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAM,kBAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACJ,IAAA,EAAM,gBAAA;AAAA,QACN,WAAA,EAAa,SAAA;AAAA,QACb,MAAA,EAAQ;AAAA,UACJ,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,UAAU,IAAA,EAAK;AAAA,UAC7C,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,SAAA,EAAW,SAAS,KAAA,EAAM;AAAA,UACvD,EAAE,IAAA,EAAM,eAAA,EAAiB,MAAM,OAAA,EAAS,OAAA,EAAS,EAAC,EAAE;AAAA;AAAA,UAEpD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,UACrD,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA;AAAK;AACvD,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAM,WAAA;AAAA,UACN,YAAA,EAAc,gBAAA;AAAA,UACd,QAAA,EAAU,aAAA;AAAA,UACV,YAAA,EAAc;AAAA,YACV,MAAA,EAAQ;AAAA,cACJ,EAAE,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,IAAA,EAAK;AAAA,cAClC,EAAE,MAAM,UAAA;AAAW,aACvB;AAAA,YACA,MAAA,EAAQ;AAAA,cACJ,EAAE,GAAA,EAAK,WAAA,EAAa,IAAA,EAAM,WAAA,EAAY;AAAA,cACtC,EAAE,GAAA,EAAK,eAAA,EAAiB,IAAA,EAAM,eAAA,EAAgB;AAAA,cAC9C,EAAE,GAAA,EAAK,cAAA,EAAgB,IAAA,EAAM,cAAA,EAAe;AAAA,cAC5C,EAAE,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,QAAA,EAAS;AAAA,cAChC,EAAE,GAAA,EAAK,SAAA,EAAW,IAAA,EAAM,SAAA;AAAU,aACtC;AAAA,YACA,WAAA,EAAa;AAAA,cACT;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,WAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,qBAAA,EAAuB,IAAI,CAAA;AAAA,kBACnC,CAAC,KAAA,EAAO,uBAAA,EAAyB,CAAC,cAAA,EAAgB,uBAAA,EAAyB,mBAAmB,CAAC,CAAA;AAAA,kBAC/F,CAAC,IAAA,EAAM,qBAAA,EAAuB,CAAC,MAAA,EAAQ,qBAAA,EAAuB,EAAE,QAAA,EAAU,mBAAA,EAAqB,IAAA,EAAM,eAAA,EAAiB,CAAC;AAAA;AAC3H,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,eAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,IAAA,EAAM,mBAAA,EAAqB,CAAC,MAAA,EAAQ,mBAAA,EAAqB,EAAE,QAAA,EAAU,mBAAA,EAAqB,MAAA,EAAQ,OAAA,EAAS,CAAC;AAAA;AACjH,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,cAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,uBAAA,EAAyB,CAAC,gBAAgB,uBAAA,EAAyB,CAAC,IAAA,EAAM,IAAA,EAAM,CAAC,IAAA,EAAM,KAAA,EAAO,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAAA,kBAC5H,CAAC,IAAA,EAAM,CAAC,GAAA,EAAK,CAAC,WAAA,EAAa,uBAAuB,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,KAAA,EAAO,qBAAA,EAAuB,KAAK,CAAC;AAAA;AAClG,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,QAAA;AAAA,gBACN,EAAA,EAAI,UAAA;AAAA,gBACJ,KAAA,EAAO,SAAA;AAAA,gBACP,OAAA,EAAS;AAAA,kBACL,CAAC,KAAA,EAAO,qBAAA,EAAuB,KAAK,CAAA;AAAA,kBACpC,CAAC,KAAA,EAAO,uBAAA,EAAyB,EAAE;AAAA;AACvC,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAM,UAAA;AAAA,gBACN,EAAA,EAAI,QAAA;AAAA,gBACJ,KAAA,EAAO,QAAA;AAAA,gBACP,SAAS;AAAC;AACd;AACJ;AACJ;AACJ,OACJ;AAAA,MACA,OAAO;AAAC;AACZ;AAER;AAMO,IAAM,mBAAA,GAAuC;AAAA,EAChD,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACJ","file":"game-core.js","sourcesContent":["/**\n * Game Core Behaviors\n *\n * Foundation behaviors for game systems: loop, physics, input, collision.\n * Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from './types.js';\n\n// ============================================================================\n// std-gameloop - Master Game Tick Coordination\n// ============================================================================\n\n/**\n * std-gameloop - Coordinates game tick execution at 60fps.\n *\n * States: Running, Paused\n * Provides the master clock for all game systems.\n */\nexport const GAME_LOOP_BEHAVIOR: OrbitalSchema = {\n name: 'std-gameloop',\n version: '1.0.0',\n description: 'Master game loop coordinator running at 60fps',\n orbitals: [\n {\n name: 'GameLoopOrbital',\n entity: {\n name: 'GameLoopState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'frameCount', type: 'number', default: 0 },\n { name: 'deltaTime', type: 'number', default: 16 },\n { name: 'elapsedTime', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'GameLoop',\n linkedEntity: 'GameLoopState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Running' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START', name: 'Start' },\n { key: 'STOP', name: 'Stop' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'TICK', name: 'Tick' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Running',\n event: 'START',\n effects: [\n ['set', '@entity.frameCount', 0],\n ['set', '@entity.elapsedTime', 0],\n ],\n },\n {\n from: 'Running',\n to: 'Paused',\n event: 'PAUSE',\n effects: [],\n },\n {\n from: 'Paused',\n to: 'Running',\n event: 'RESUME',\n effects: [],\n },\n {\n from: 'Running',\n to: 'Stopped',\n event: 'STOP',\n effects: [],\n },\n {\n from: 'Paused',\n to: 'Stopped',\n event: 'STOP',\n effects: [],\n },\n ],\n },\n ticks: [\n {\n name: 'GameTick',\n interval: 'frame',\n guard: ['=', '@state', 'Running'],\n effects: [\n ['set', '@entity.frameCount', ['+', '@entity.frameCount', 1]],\n ['set', '@entity.elapsedTime', ['+', '@entity.elapsedTime', '@entity.deltaTime']],\n ['emit', 'GAME_TICK', { frame: '@entity.frameCount', delta: '@entity.deltaTime' }],\n ],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-physics2d - Gravity and Velocity\n// ============================================================================\n\n/**\n * std-physics2d - 2D physics with gravity, velocity, and friction.\n *\n * Applied to entities that need physics simulation.\n */\nexport const PHYSICS_2D_BEHAVIOR: OrbitalSchema = {\n name: 'std-physics2d',\n version: '1.0.0',\n description: '2D physics with gravity, velocity, and friction',\n orbitals: [\n {\n name: 'Physics2DOrbital',\n entity: {\n name: 'Physics2DState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'x', type: 'number', default: 0 },\n { name: 'y', type: 'number', default: 0 },\n { name: 'vx', type: 'number', default: 0 },\n { name: 'vy', type: 'number', default: 0 },\n { name: 'isGrounded', type: 'boolean', default: false },\n // Config fields (previously @config bindings)\n { name: 'gravity', type: 'number', default: 0.5 },\n { name: 'friction', type: 'number', default: 0.8 },\n { name: 'airResistance', type: 'number', default: 0.99 },\n { name: 'maxVelocityY', type: 'number', default: 20 },\n ],\n },\n traits: [\n {\n name: 'Physics2D',\n linkedEntity: 'Physics2DState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Frozen' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'APPLY_FORCE', name: 'Apply Force' },\n { key: 'GROUND_HIT', name: 'Ground Hit' },\n { key: 'FREEZE', name: 'Freeze' },\n { key: 'UNFREEZE', name: 'Unfreeze' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.vx', 0],\n ['set', '@entity.vy', 0],\n ['set', '@entity.isGrounded', false],\n ],\n },\n {\n from: 'Frozen',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.vx', 0],\n ['set', '@entity.vy', 0],\n ['set', '@entity.isGrounded', false],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.vx', ['+', '@entity.vx', '@payload.fx']],\n ['set', '@entity.vy', ['+', '@entity.vy', '@payload.fy']],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'GROUND_HIT',\n effects: [\n ['set', '@entity.isGrounded', true],\n ['set', '@entity.vy', 0],\n ['set', '@entity.vx', ['*', '@entity.vx', '@entity.friction']],\n ],\n },\n {\n from: 'Active',\n to: 'Frozen',\n event: 'FREEZE',\n effects: [],\n },\n {\n from: 'Frozen',\n to: 'Active',\n event: 'UNFREEZE',\n effects: [],\n },\n ],\n },\n ticks: [\n {\n name: 'ApplyGravity',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Active'], ['not', '@entity.isGrounded']],\n effects: [\n ['set', '@entity.vy', ['math/min', '@entity.maxVelocityY', ['+', '@entity.vy', '@entity.gravity']]],\n ],\n },\n {\n name: 'ApplyVelocity',\n interval: 'frame',\n guard: ['=', '@state', 'Active'],\n effects: [\n ['set', '@entity.vx', ['*', '@entity.vx', '@entity.airResistance']],\n ['set', '@entity.x', ['+', '@entity.x', '@entity.vx']],\n ['set', '@entity.y', ['+', '@entity.y', '@entity.vy']],\n ],\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-input - Unified Input State\n// ============================================================================\n\n/**\n * std-input - Manages keyboard and touch input state.\n *\n * Singleton behavior that tracks all input state.\n */\nexport const INPUT_BEHAVIOR: OrbitalSchema = {\n name: 'std-input',\n version: '1.0.0',\n description: 'Unified keyboard and touch input state management',\n orbitals: [\n {\n name: 'InputOrbital',\n entity: {\n name: 'InputState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'left', type: 'boolean', default: false },\n { name: 'right', type: 'boolean', default: false },\n { name: 'up', type: 'boolean', default: false },\n { name: 'down', type: 'boolean', default: false },\n { name: 'jump', type: 'boolean', default: false },\n { name: 'action', type: 'boolean', default: false },\n { name: 'pause', type: 'boolean', default: false },\n ],\n },\n traits: [\n {\n name: 'Input',\n linkedEntity: 'InputState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Ready', isInitial: true }],\n events: [\n { key: 'KEY_DOWN', name: 'Key Down' },\n { key: 'KEY_UP', name: 'Key Up' },\n { key: 'TOUCH_START', name: 'Touch Start' },\n { key: 'TOUCH_END', name: 'Touch End' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n {\n from: 'Ready',\n to: 'Ready',\n event: 'KEY_DOWN',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']], ['set', '@entity.left', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']], ['set', '@entity.right', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']], ['set', '@entity.up', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']], ['set', '@entity.down', true]],\n ['if', ['=', '@payload.key', ' '], ['set', '@entity.jump', true]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']], ['set', '@entity.action', true]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']], ['set', '@entity.pause', true]],\n ],\n },\n {\n from: 'Ready',\n to: 'Ready',\n event: 'KEY_UP',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']], ['set', '@entity.left', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']], ['set', '@entity.right', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']], ['set', '@entity.up', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']], ['set', '@entity.down', false]],\n ['if', ['=', '@payload.key', ' '], ['set', '@entity.jump', false]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']], ['set', '@entity.action', false]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']], ['set', '@entity.pause', false]],\n ],\n },\n {\n from: 'Ready',\n to: 'Ready',\n event: 'RESET',\n effects: [\n ['set', '@entity.left', false],\n ['set', '@entity.right', false],\n ['set', '@entity.up', false],\n ['set', '@entity.down', false],\n ['set', '@entity.jump', false],\n ['set', '@entity.action', false],\n ['set', '@entity.pause', false],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-collision - Collision Detection & Response\n// ============================================================================\n\n/**\n * std-collision - Handles collision detection and response.\n *\n * Configures how an entity responds to collisions.\n */\nexport const COLLISION_BEHAVIOR: OrbitalSchema = {\n name: 'std-collision',\n version: '1.0.0',\n description: 'Collision detection and response configuration',\n orbitals: [\n {\n name: 'CollisionOrbital',\n entity: {\n name: 'CollisionState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'isColliding', type: 'boolean', default: false },\n { name: 'collidingWith', type: 'array', default: [] },\n // Config fields (previously @config bindings)\n { name: 'onCollision', type: 'string', default: null },\n { name: 'onTrigger', type: 'string', default: null },\n ],\n },\n traits: [\n {\n name: 'Collision',\n linkedEntity: 'CollisionState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Disabled' },\n ],\n events: [\n { key: 'COLLISION', name: 'Collision' },\n { key: 'TRIGGER_ENTER', name: 'Trigger Enter' },\n { key: 'TRIGGER_EXIT', name: 'Trigger Exit' },\n { key: 'ENABLE', name: 'Enable' },\n { key: 'DISABLE', name: 'Disable' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'COLLISION',\n effects: [\n ['set', '@entity.isColliding', true],\n ['set', '@entity.collidingWith', ['array/append', '@entity.collidingWith', '@payload.entityId']],\n ['if', '@entity.onCollision', ['emit', '@entity.onCollision', { entityId: '@payload.entityId', side: '@payload.side' }]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'TRIGGER_ENTER',\n effects: [\n ['if', '@entity.onTrigger', ['emit', '@entity.onTrigger', { entityId: '@payload.entityId', action: 'enter' }]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'TRIGGER_EXIT',\n effects: [\n ['set', '@entity.collidingWith', ['array/filter', '@entity.collidingWith', ['fn', 'id', ['!=', '@id', '@payload.entityId']]]],\n ['if', ['=', ['array/len', '@entity.collidingWith'], 0], ['set', '@entity.isColliding', false]],\n ],\n },\n {\n from: 'Active',\n to: 'Disabled',\n event: 'DISABLE',\n effects: [\n ['set', '@entity.isColliding', false],\n ['set', '@entity.collidingWith', []],\n ],\n },\n {\n from: 'Disabled',\n to: 'Active',\n event: 'ENABLE',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_CORE_BEHAVIORS: OrbitalSchema[] = [\n GAME_LOOP_BEHAVIOR,\n PHYSICS_2D_BEHAVIOR,\n INPUT_BEHAVIOR,\n COLLISION_BEHAVIOR,\n];\n"]}
@@ -1,39 +1,38 @@
1
- import { StandardBehavior } from './types.js';
2
- import '@almadar/core/types';
1
+ import { OrbitalSchema } from '@almadar/core/types';
3
2
 
4
3
  /**
5
4
  * Game Entity Behaviors
6
5
  *
7
6
  * Entity state behaviors: health, score, movement, combat, inventory.
8
- * These use the Trait architecture with stateMachine and ticks.
7
+ * Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.
9
8
  *
10
9
  * @packageDocumentation
11
10
  */
12
11
 
13
12
  /**
14
- * std/Health - Manages entity health with damage, healing, and death.
13
+ * std-health - Manages entity health with damage, healing, and death.
15
14
  *
16
15
  * States: Alive → Damaged → Dead
17
16
  */
18
- declare const HEALTH_BEHAVIOR: StandardBehavior;
17
+ declare const HEALTH_BEHAVIOR: OrbitalSchema;
19
18
  /**
20
- * std/Score - Manages score with points, combos, and multipliers.
19
+ * std-score - Manages score with points, combos, and multipliers.
21
20
  */
22
- declare const SCORE_BEHAVIOR: StandardBehavior;
21
+ declare const SCORE_BEHAVIOR: OrbitalSchema;
23
22
  /**
24
- * std/Movement - Basic movement for any entity.
23
+ * std-movement - Basic movement for any entity.
25
24
  *
26
25
  * Handles position updates based on input or AI.
27
26
  */
28
- declare const MOVEMENT_BEHAVIOR: StandardBehavior;
27
+ declare const MOVEMENT_BEHAVIOR: OrbitalSchema;
29
28
  /**
30
- * std/Combat - Handles attacks, cooldowns, and hit detection.
29
+ * std-combat - Handles attacks, cooldowns, and hit detection.
31
30
  */
32
- declare const COMBAT_BEHAVIOR: StandardBehavior;
31
+ declare const COMBAT_BEHAVIOR: OrbitalSchema;
33
32
  /**
34
- * std/Inventory - Manages collected items and equipment.
33
+ * std-inventory - Manages collected items and equipment.
35
34
  */
36
- declare const INVENTORY_BEHAVIOR: StandardBehavior;
37
- declare const GAME_ENTITY_BEHAVIORS: StandardBehavior[];
35
+ declare const INVENTORY_BEHAVIOR: OrbitalSchema;
36
+ declare const GAME_ENTITY_BEHAVIORS: OrbitalSchema[];
38
37
 
39
38
  export { COMBAT_BEHAVIOR, GAME_ENTITY_BEHAVIORS, HEALTH_BEHAVIOR, INVENTORY_BEHAVIOR, MOVEMENT_BEHAVIOR, SCORE_BEHAVIOR };