rn-gamekit 0.1.0 → 0.2.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.
- package/CHANGELOG.md +75 -0
- package/README.md +97 -16
- package/lib/module/assets/defineAssets.js +28 -3
- package/lib/module/assets/defineAssets.js.map +1 -1
- package/lib/module/assets.js +11 -0
- package/lib/module/assets.js.map +1 -0
- package/lib/module/audio/createGameAudio.js +784 -0
- package/lib/module/audio/createGameAudio.js.map +1 -0
- package/lib/module/audio/errors.js +12 -0
- package/lib/module/audio/errors.js.map +1 -0
- package/lib/module/audio/index.js +5 -0
- package/lib/module/audio/index.js.map +1 -0
- package/lib/module/audio/resolver.js +37 -0
- package/lib/module/audio/resolver.js.map +1 -0
- package/lib/module/audio/types.js +4 -0
- package/lib/module/audio/types.js.map +1 -0
- package/lib/module/audio.js +9 -0
- package/lib/module/audio.js.map +1 -0
- package/lib/module/camera2d/bounds.js +59 -0
- package/lib/module/camera2d/bounds.js.map +1 -0
- package/lib/module/camera2d/extents.js +25 -0
- package/lib/module/camera2d/extents.js.map +1 -0
- package/lib/module/camera2d/follow.js +138 -0
- package/lib/module/camera2d/follow.js.map +1 -0
- package/lib/module/camera2d/index.js +20 -0
- package/lib/module/camera2d/index.js.map +1 -0
- package/lib/module/camera2d/interpolation.js +98 -0
- package/lib/module/camera2d/interpolation.js.map +1 -0
- package/lib/module/camera2d/shake.js +85 -0
- package/lib/module/camera2d/shake.js.map +1 -0
- package/lib/module/camera2d/transform.js +151 -0
- package/lib/module/camera2d/transform.js.map +1 -0
- package/lib/module/camera2d/types.js +4 -0
- package/lib/module/camera2d/types.js.map +1 -0
- package/lib/module/camera2d/validation.js +98 -0
- package/lib/module/camera2d/validation.js.map +1 -0
- package/lib/module/camera2d/visibility.js +138 -0
- package/lib/module/camera2d/visibility.js.map +1 -0
- package/lib/module/camera2d.js +9 -0
- package/lib/module/camera2d.js.map +1 -0
- package/lib/module/collision2d/colliders.js +266 -0
- package/lib/module/collision2d/colliders.js.map +1 -0
- package/lib/module/collision2d/debug.js +105 -0
- package/lib/module/collision2d/debug.js.map +1 -0
- package/lib/module/collision2d/filters.js +40 -0
- package/lib/module/collision2d/filters.js.map +1 -0
- package/lib/module/collision2d/index.js +12 -0
- package/lib/module/collision2d/index.js.map +1 -0
- package/lib/module/collision2d/intersections.js +67 -0
- package/lib/module/collision2d/intersections.js.map +1 -0
- package/lib/module/collision2d/manifolds.js +218 -0
- package/lib/module/collision2d/manifolds.js.map +1 -0
- package/lib/module/collision2d/segments.js +187 -0
- package/lib/module/collision2d/segments.js.map +1 -0
- package/lib/module/collision2d/spatialHash.js +167 -0
- package/lib/module/collision2d/spatialHash.js.map +1 -0
- package/lib/module/collision2d/sweeps.js +255 -0
- package/lib/module/collision2d/sweeps.js.map +1 -0
- package/lib/module/collision2d.js +9 -0
- package/lib/module/collision2d.js.map +1 -0
- package/lib/module/core/input/buttonPad.js +214 -0
- package/lib/module/core/input/buttonPad.js.map +1 -0
- package/lib/module/core/input/createInputBuffer.js +66 -14
- package/lib/module/core/input/createInputBuffer.js.map +1 -1
- package/lib/module/core/session/createGameSession.js +454 -50
- package/lib/module/core/session/createGameSession.js.map +1 -1
- package/lib/module/core/session/deepFreeze.js +92 -2
- package/lib/module/core/session/deepFreeze.js.map +1 -1
- package/lib/module/core/session/types.js +12 -0
- package/lib/module/core/session/types.js.map +1 -1
- package/lib/module/definition/defineGame.js +23 -0
- package/lib/module/definition/defineGame.js.map +1 -1
- package/lib/module/events/defineGameEvents.js +46 -0
- package/lib/module/events/defineGameEvents.js.map +1 -0
- package/lib/module/events/errors.js +16 -0
- package/lib/module/events/errors.js.map +1 -0
- package/lib/module/events/index.js +7 -0
- package/lib/module/events/index.js.map +1 -0
- package/lib/module/events/payload.js +219 -0
- package/lib/module/events/payload.js.map +1 -0
- package/lib/module/events/seed.js +33 -0
- package/lib/module/events/seed.js.map +1 -0
- package/lib/module/events/types.js +4 -0
- package/lib/module/events/types.js.map +1 -0
- package/lib/module/events.js +13 -0
- package/lib/module/events.js.map +1 -0
- package/lib/module/geometry/helpers.js +140 -0
- package/lib/module/geometry/helpers.js.map +1 -0
- package/lib/module/geometry/index.js +5 -0
- package/lib/module/geometry/index.js.map +1 -0
- package/lib/module/geometry/validation.js +104 -0
- package/lib/module/geometry/validation.js.map +1 -0
- package/lib/module/geometry.js +9 -0
- package/lib/module/geometry.js.map +1 -0
- package/lib/module/haptics/createGameHaptics.js +214 -0
- package/lib/module/haptics/createGameHaptics.js.map +1 -0
- package/lib/module/haptics/errors.js +12 -0
- package/lib/module/haptics/errors.js.map +1 -0
- package/lib/module/haptics/index.js +5 -0
- package/lib/module/haptics/index.js.map +1 -0
- package/lib/module/haptics/resolver.js +37 -0
- package/lib/module/haptics/resolver.js.map +1 -0
- package/lib/module/haptics/types.js +4 -0
- package/lib/module/haptics/types.js.map +1 -0
- package/lib/module/haptics.js +9 -0
- package/lib/module/haptics.js.map +1 -0
- package/lib/module/index.js +8 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/particles/createParticleSystem.js +481 -0
- package/lib/module/particles/createParticleSystem.js.map +1 -0
- package/lib/module/particles/defineParticleEffect.js +178 -0
- package/lib/module/particles/defineParticleEffect.js.map +1 -0
- package/lib/module/particles/errors.js +9 -0
- package/lib/module/particles/errors.js.map +1 -0
- package/lib/module/particles/index.js +8 -0
- package/lib/module/particles/index.js.map +1 -0
- package/lib/module/particles/sampling.js +121 -0
- package/lib/module/particles/sampling.js.map +1 -0
- package/lib/module/particles/types.js +4 -0
- package/lib/module/particles/types.js.map +1 -0
- package/lib/module/particles.js +4 -0
- package/lib/module/particles.js.map +1 -0
- package/lib/module/react/GameButtonPad.js +344 -0
- package/lib/module/react/GameButtonPad.js.map +1 -0
- package/lib/module/react/GamePointerInput.js +74 -16
- package/lib/module/react/GamePointerInput.js.map +1 -1
- package/lib/module/react/GameView.js +139 -60
- package/lib/module/react/GameView.js.map +1 -1
- package/lib/module/react/assets/createGameAssetStore.js +145 -95
- package/lib/module/react/assets/createGameAssetStore.js.map +1 -1
- package/lib/module/react/assets/useGameAssets.js +60 -35
- package/lib/module/react/assets/useGameAssets.js.map +1 -1
- package/lib/module/react/bindAppLifecycle.js +46 -17
- package/lib/module/react/bindAppLifecycle.js.map +1 -1
- package/lib/module/react/bindGameSession.js +13 -2
- package/lib/module/react/bindGameSession.js.map +1 -1
- package/lib/module/react/camera2d/GameLayer2D.js +50 -0
- package/lib/module/react/camera2d/GameLayer2D.js.map +1 -0
- package/lib/module/react/camera2d/defineGameCamera2D.js +30 -0
- package/lib/module/react/camera2d/defineGameCamera2D.js.map +1 -0
- package/lib/module/react/camera2d/usePresentedCameraBinding.js +177 -0
- package/lib/module/react/camera2d/usePresentedCameraBinding.js.map +1 -0
- package/lib/module/react/cleanupList.js +38 -0
- package/lib/module/react/cleanupList.js.map +1 -0
- package/lib/module/react/lifecycleSource.js +49 -0
- package/lib/module/react/lifecycleSource.js.map +1 -0
- package/lib/module/react/particles/ParticleView.js +308 -0
- package/lib/module/react/particles/ParticleView.js.map +1 -0
- package/lib/module/react/particles/culling.js +115 -0
- package/lib/module/react/particles/culling.js.map +1 -0
- package/lib/module/react/particles/index.js +7 -0
- package/lib/module/react/particles/index.js.map +1 -0
- package/lib/module/react/particles/spriteXForm.js +45 -0
- package/lib/module/react/particles/spriteXForm.js.map +1 -0
- package/lib/module/react/particles/useParticlePresentation.js +204 -0
- package/lib/module/react/particles/useParticlePresentation.js.map +1 -0
- package/lib/module/react/pointerBinding.js +55 -17
- package/lib/module/react/pointerBinding.js.map +1 -1
- package/lib/module/react/pointerCamera.js +28 -0
- package/lib/module/react/pointerCamera.js.map +1 -0
- package/lib/module/react/pointerCoalescer.js +16 -9
- package/lib/module/react/pointerCoalescer.js.map +1 -1
- package/lib/module/react/sprites/GameSprite.js +5 -17
- package/lib/module/react/sprites/GameSprite.js.map +1 -1
- package/lib/module/react/sprites/GameWorld2D.js +112 -9
- package/lib/module/react/sprites/GameWorld2D.js.map +1 -1
- package/lib/module/react/sprites/Sprite.js +48 -63
- package/lib/module/react/sprites/Sprite.js.map +1 -1
- package/lib/module/react/sprites/SpriteBatch.js +53 -28
- package/lib/module/react/sprites/SpriteBatch.js.map +1 -1
- package/lib/module/react/sprites/batchVisibility.js +58 -0
- package/lib/module/react/sprites/batchVisibility.js.map +1 -0
- package/lib/module/react/sprites/spriteSelection.js +103 -0
- package/lib/module/react/sprites/spriteSelection.js.map +1 -0
- package/lib/module/react/sprites/spriteTransform.js +46 -25
- package/lib/module/react/sprites/spriteTransform.js.map +1 -1
- package/lib/module/react/tilemap/TileMapLayer2D.js +217 -0
- package/lib/module/react/tilemap/TileMapLayer2D.js.map +1 -0
- package/lib/module/react/tilemap/tilePresentation.js +374 -0
- package/lib/module/react/tilemap/tilePresentation.js.map +1 -0
- package/lib/module/react/useGameSession.js +70 -0
- package/lib/module/react/useGameSession.js.map +1 -0
- package/lib/module/react/useGameSessionStatus.js +46 -0
- package/lib/module/react/useGameSessionStatus.js.map +1 -0
- package/lib/module/react/viewportBinding.js +5 -1
- package/lib/module/react/viewportBinding.js.map +1 -1
- package/lib/module/react.js +12 -1
- package/lib/module/react.js.map +1 -1
- package/lib/module/scene/defineScene.js +17 -0
- package/lib/module/scene/defineScene.js.map +1 -1
- package/lib/module/sprites/sampleSpriteClip.js +66 -6
- package/lib/module/sprites/sampleSpriteClip.js.map +1 -1
- package/lib/module/sprites/spriteAnimationState.js +10 -20
- package/lib/module/sprites/spriteAnimationState.js.map +1 -1
- package/lib/module/sprites.js +11 -0
- package/lib/module/sprites.js.map +1 -0
- package/lib/module/storage/adapters/asyncStorage.js +57 -0
- package/lib/module/storage/adapters/asyncStorage.js.map +1 -0
- package/lib/module/storage/adapters/memory.js +50 -0
- package/lib/module/storage/adapters/memory.js.map +1 -0
- package/lib/module/storage/errors.js +34 -0
- package/lib/module/storage/errors.js.map +1 -0
- package/lib/module/storage/index.js +11 -0
- package/lib/module/storage/index.js.map +1 -0
- package/lib/module/storage/schema.js +151 -0
- package/lib/module/storage/schema.js.map +1 -0
- package/lib/module/storage/serialization.js +249 -0
- package/lib/module/storage/serialization.js.map +1 -0
- package/lib/module/storage/store.js +387 -0
- package/lib/module/storage/store.js.map +1 -0
- package/lib/module/storage/types.js +16 -0
- package/lib/module/storage/types.js.map +1 -0
- package/lib/module/storage/validation.js +111 -0
- package/lib/module/storage/validation.js.map +1 -0
- package/lib/module/storage.js +4 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/testing.js +4 -0
- package/lib/module/testing.js.map +1 -1
- package/lib/module/tilemap/chunkStats.js +27 -0
- package/lib/module/tilemap/chunkStats.js.map +1 -0
- package/lib/module/tilemap/definitions.js +308 -0
- package/lib/module/tilemap/definitions.js.map +1 -0
- package/lib/module/tilemap/errors.js +13 -0
- package/lib/module/tilemap/errors.js.map +1 -0
- package/lib/module/tilemap/index.js +10 -0
- package/lib/module/tilemap/index.js.map +1 -0
- package/lib/module/tilemap/movement.js +379 -0
- package/lib/module/tilemap/movement.js.map +1 -0
- package/lib/module/tilemap/queries.js +114 -0
- package/lib/module/tilemap/queries.js.map +1 -0
- package/lib/module/tilemap/tiledAdapter.js +141 -0
- package/lib/module/tilemap/tiledAdapter.js.map +1 -0
- package/lib/module/tilemap/types.js +4 -0
- package/lib/module/tilemap/types.js.map +1 -0
- package/lib/module/tilemap.js +4 -0
- package/lib/module/tilemap.js.map +1 -0
- package/lib/typescript/src/assets/defineAssets.d.ts +1 -1
- package/lib/typescript/src/assets/defineAssets.d.ts.map +1 -1
- package/lib/typescript/src/assets.d.ts +11 -0
- package/lib/typescript/src/assets.d.ts.map +1 -0
- package/lib/typescript/src/audio/createGameAudio.d.ts +5 -0
- package/lib/typescript/src/audio/createGameAudio.d.ts.map +1 -0
- package/lib/typescript/src/audio/errors.d.ts +6 -0
- package/lib/typescript/src/audio/errors.d.ts.map +1 -0
- package/lib/typescript/src/audio/index.d.ts +4 -0
- package/lib/typescript/src/audio/index.d.ts.map +1 -0
- package/lib/typescript/src/audio/resolver.d.ts +44 -0
- package/lib/typescript/src/audio/resolver.d.ts.map +1 -0
- package/lib/typescript/src/audio/types.d.ts +42 -0
- package/lib/typescript/src/audio/types.d.ts.map +1 -0
- package/lib/typescript/src/audio.d.ts +8 -0
- package/lib/typescript/src/audio.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/bounds.d.ts +25 -0
- package/lib/typescript/src/camera2d/bounds.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/extents.d.ts +17 -0
- package/lib/typescript/src/camera2d/extents.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/follow.d.ts +24 -0
- package/lib/typescript/src/camera2d/follow.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/index.d.ts +19 -0
- package/lib/typescript/src/camera2d/index.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/interpolation.d.ts +17 -0
- package/lib/typescript/src/camera2d/interpolation.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/shake.d.ts +20 -0
- package/lib/typescript/src/camera2d/shake.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/transform.d.ts +44 -0
- package/lib/typescript/src/camera2d/transform.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/types.d.ts +74 -0
- package/lib/typescript/src/camera2d/types.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/validation.d.ts +30 -0
- package/lib/typescript/src/camera2d/validation.d.ts.map +1 -0
- package/lib/typescript/src/camera2d/visibility.d.ts +47 -0
- package/lib/typescript/src/camera2d/visibility.d.ts.map +1 -0
- package/lib/typescript/src/camera2d.d.ts +7 -0
- package/lib/typescript/src/camera2d.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/colliders.d.ts +120 -0
- package/lib/typescript/src/collision2d/colliders.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/debug.d.ts +67 -0
- package/lib/typescript/src/collision2d/debug.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/filters.d.ts +28 -0
- package/lib/typescript/src/collision2d/filters.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/index.d.ts +17 -0
- package/lib/typescript/src/collision2d/index.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/intersections.d.ts +24 -0
- package/lib/typescript/src/collision2d/intersections.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/manifolds.d.ts +39 -0
- package/lib/typescript/src/collision2d/manifolds.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/segments.d.ts +24 -0
- package/lib/typescript/src/collision2d/segments.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/spatialHash.d.ts +50 -0
- package/lib/typescript/src/collision2d/spatialHash.d.ts.map +1 -0
- package/lib/typescript/src/collision2d/sweeps.d.ts +60 -0
- package/lib/typescript/src/collision2d/sweeps.d.ts.map +1 -0
- package/lib/typescript/src/collision2d.d.ts +7 -0
- package/lib/typescript/src/collision2d.d.ts.map +1 -0
- package/lib/typescript/src/core/input/buttonPad.d.ts +59 -0
- package/lib/typescript/src/core/input/buttonPad.d.ts.map +1 -0
- package/lib/typescript/src/core/input/createInputBuffer.d.ts +1 -1
- package/lib/typescript/src/core/input/createInputBuffer.d.ts.map +1 -1
- package/lib/typescript/src/core/input/types.d.ts +7 -0
- package/lib/typescript/src/core/input/types.d.ts.map +1 -1
- package/lib/typescript/src/core/session/createGameSession.d.ts +4 -2
- package/lib/typescript/src/core/session/createGameSession.d.ts.map +1 -1
- package/lib/typescript/src/core/session/deepFreeze.d.ts +21 -1
- package/lib/typescript/src/core/session/deepFreeze.d.ts.map +1 -1
- package/lib/typescript/src/core/session/diagnostics.d.ts +2 -0
- package/lib/typescript/src/core/session/diagnostics.d.ts.map +1 -1
- package/lib/typescript/src/core/session/types.d.ts +69 -4
- package/lib/typescript/src/core/session/types.d.ts.map +1 -1
- package/lib/typescript/src/definition/defineGame.d.ts +12 -1
- package/lib/typescript/src/definition/defineGame.d.ts.map +1 -1
- package/lib/typescript/src/definition/types.d.ts +10 -1
- package/lib/typescript/src/definition/types.d.ts.map +1 -1
- package/lib/typescript/src/events/defineGameEvents.d.ts +26 -0
- package/lib/typescript/src/events/defineGameEvents.d.ts.map +1 -0
- package/lib/typescript/src/events/errors.d.ts +12 -0
- package/lib/typescript/src/events/errors.d.ts.map +1 -0
- package/lib/typescript/src/events/index.d.ts +6 -0
- package/lib/typescript/src/events/index.d.ts.map +1 -0
- package/lib/typescript/src/events/payload.d.ts +21 -0
- package/lib/typescript/src/events/payload.d.ts.map +1 -0
- package/lib/typescript/src/events/seed.d.ts +3 -0
- package/lib/typescript/src/events/seed.d.ts.map +1 -0
- package/lib/typescript/src/events/types.d.ts +42 -0
- package/lib/typescript/src/events/types.d.ts.map +1 -0
- package/lib/typescript/src/events.d.ts +12 -0
- package/lib/typescript/src/events.d.ts.map +1 -0
- package/lib/typescript/src/geometry/helpers.d.ts +35 -0
- package/lib/typescript/src/geometry/helpers.d.ts.map +1 -0
- package/lib/typescript/src/geometry/index.d.ts +4 -0
- package/lib/typescript/src/geometry/index.d.ts.map +1 -0
- package/lib/typescript/src/geometry/types.d.ts +49 -0
- package/lib/typescript/src/geometry/types.d.ts.map +1 -1
- package/lib/typescript/src/geometry/validation.d.ts +44 -0
- package/lib/typescript/src/geometry/validation.d.ts.map +1 -0
- package/lib/typescript/src/geometry.d.ts +7 -0
- package/lib/typescript/src/geometry.d.ts.map +1 -0
- package/lib/typescript/src/haptics/createGameHaptics.d.ts +3 -0
- package/lib/typescript/src/haptics/createGameHaptics.d.ts.map +1 -0
- package/lib/typescript/src/haptics/errors.d.ts +6 -0
- package/lib/typescript/src/haptics/errors.d.ts.map +1 -0
- package/lib/typescript/src/haptics/index.d.ts +4 -0
- package/lib/typescript/src/haptics/index.d.ts.map +1 -0
- package/lib/typescript/src/haptics/resolver.d.ts +22 -0
- package/lib/typescript/src/haptics/resolver.d.ts.map +1 -0
- package/lib/typescript/src/haptics/types.d.ts +37 -0
- package/lib/typescript/src/haptics/types.d.ts.map +1 -0
- package/lib/typescript/src/haptics.d.ts +8 -0
- package/lib/typescript/src/haptics.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +10 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/particles/createParticleSystem.d.ts +5 -0
- package/lib/typescript/src/particles/createParticleSystem.d.ts.map +1 -0
- package/lib/typescript/src/particles/defineParticleEffect.d.ts +3 -0
- package/lib/typescript/src/particles/defineParticleEffect.d.ts.map +1 -0
- package/lib/typescript/src/particles/errors.d.ts +5 -0
- package/lib/typescript/src/particles/errors.d.ts.map +1 -0
- package/lib/typescript/src/particles/index.d.ts +6 -0
- package/lib/typescript/src/particles/index.d.ts.map +1 -0
- package/lib/typescript/src/particles/sampling.d.ts +54 -0
- package/lib/typescript/src/particles/sampling.d.ts.map +1 -0
- package/lib/typescript/src/particles/types.d.ts +292 -0
- package/lib/typescript/src/particles/types.d.ts.map +1 -0
- package/lib/typescript/src/particles.d.ts +2 -0
- package/lib/typescript/src/particles.d.ts.map +1 -0
- package/lib/typescript/src/react/GameButtonPad.d.ts +84 -0
- package/lib/typescript/src/react/GameButtonPad.d.ts.map +1 -0
- package/lib/typescript/src/react/GamePointerInput.d.ts.map +1 -1
- package/lib/typescript/src/react/GameView.d.ts +27 -1
- package/lib/typescript/src/react/GameView.d.ts.map +1 -1
- package/lib/typescript/src/react/assets/createGameAssetStore.d.ts.map +1 -1
- package/lib/typescript/src/react/assets/useGameAssets.d.ts.map +1 -1
- package/lib/typescript/src/react/bindAppLifecycle.d.ts +7 -1
- package/lib/typescript/src/react/bindAppLifecycle.d.ts.map +1 -1
- package/lib/typescript/src/react/bindGameSession.d.ts.map +1 -1
- package/lib/typescript/src/react/camera2d/GameLayer2D.d.ts +24 -0
- package/lib/typescript/src/react/camera2d/GameLayer2D.d.ts.map +1 -0
- package/lib/typescript/src/react/camera2d/defineGameCamera2D.d.ts +44 -0
- package/lib/typescript/src/react/camera2d/defineGameCamera2D.d.ts.map +1 -0
- package/lib/typescript/src/react/camera2d/usePresentedCameraBinding.d.ts +22 -0
- package/lib/typescript/src/react/camera2d/usePresentedCameraBinding.d.ts.map +1 -0
- package/lib/typescript/src/react/cleanupList.d.ts +21 -0
- package/lib/typescript/src/react/cleanupList.d.ts.map +1 -0
- package/lib/typescript/src/react/instrumentation.d.ts +33 -3
- package/lib/typescript/src/react/instrumentation.d.ts.map +1 -1
- package/lib/typescript/src/react/lifecycleSource.d.ts +21 -0
- package/lib/typescript/src/react/lifecycleSource.d.ts.map +1 -0
- package/lib/typescript/src/react/particles/ParticleView.d.ts +65 -0
- package/lib/typescript/src/react/particles/ParticleView.d.ts.map +1 -0
- package/lib/typescript/src/react/particles/culling.d.ts +70 -0
- package/lib/typescript/src/react/particles/culling.d.ts.map +1 -0
- package/lib/typescript/src/react/particles/index.d.ts +7 -0
- package/lib/typescript/src/react/particles/index.d.ts.map +1 -0
- package/lib/typescript/src/react/particles/spriteXForm.d.ts +28 -0
- package/lib/typescript/src/react/particles/spriteXForm.d.ts.map +1 -0
- package/lib/typescript/src/react/particles/useParticlePresentation.d.ts +48 -0
- package/lib/typescript/src/react/particles/useParticlePresentation.d.ts.map +1 -0
- package/lib/typescript/src/react/pointerBinding.d.ts +38 -8
- package/lib/typescript/src/react/pointerBinding.d.ts.map +1 -1
- package/lib/typescript/src/react/pointerCamera.d.ts +20 -0
- package/lib/typescript/src/react/pointerCamera.d.ts.map +1 -0
- package/lib/typescript/src/react/pointerCoalescer.d.ts +17 -1
- package/lib/typescript/src/react/pointerCoalescer.d.ts.map +1 -1
- package/lib/typescript/src/react/sprites/GameSprite.d.ts +3 -10
- package/lib/typescript/src/react/sprites/GameSprite.d.ts.map +1 -1
- package/lib/typescript/src/react/sprites/GameWorld2D.d.ts +51 -6
- package/lib/typescript/src/react/sprites/GameWorld2D.d.ts.map +1 -1
- package/lib/typescript/src/react/sprites/Sprite.d.ts.map +1 -1
- package/lib/typescript/src/react/sprites/SpriteBatch.d.ts +22 -1
- package/lib/typescript/src/react/sprites/SpriteBatch.d.ts.map +1 -1
- package/lib/typescript/src/react/sprites/batchVisibility.d.ts +28 -0
- package/lib/typescript/src/react/sprites/batchVisibility.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/spriteSelection.d.ts +58 -0
- package/lib/typescript/src/react/sprites/spriteSelection.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/spriteTransform.d.ts +27 -12
- package/lib/typescript/src/react/sprites/spriteTransform.d.ts.map +1 -1
- package/lib/typescript/src/react/tilemap/TileMapLayer2D.d.ts +69 -0
- package/lib/typescript/src/react/tilemap/TileMapLayer2D.d.ts.map +1 -0
- package/lib/typescript/src/react/tilemap/tilePresentation.d.ts +217 -0
- package/lib/typescript/src/react/tilemap/tilePresentation.d.ts.map +1 -0
- package/lib/typescript/src/react/useGameSession.d.ts +48 -0
- package/lib/typescript/src/react/useGameSession.d.ts.map +1 -0
- package/lib/typescript/src/react/useGameSessionStatus.d.ts +23 -0
- package/lib/typescript/src/react/useGameSessionStatus.d.ts.map +1 -0
- package/lib/typescript/src/react/viewportBinding.d.ts +5 -1
- package/lib/typescript/src/react/viewportBinding.d.ts.map +1 -1
- package/lib/typescript/src/react.d.ts +18 -1
- package/lib/typescript/src/react.d.ts.map +1 -1
- package/lib/typescript/src/scene/defineScene.d.ts +22 -2
- package/lib/typescript/src/scene/defineScene.d.ts.map +1 -1
- package/lib/typescript/src/scene/types.d.ts +24 -4
- package/lib/typescript/src/scene/types.d.ts.map +1 -1
- package/lib/typescript/src/sprites/sampleSpriteClip.d.ts +26 -2
- package/lib/typescript/src/sprites/sampleSpriteClip.d.ts.map +1 -1
- package/lib/typescript/src/sprites/spriteAnimationState.d.ts +6 -7
- package/lib/typescript/src/sprites/spriteAnimationState.d.ts.map +1 -1
- package/lib/typescript/src/sprites.d.ts +10 -0
- package/lib/typescript/src/sprites.d.ts.map +1 -0
- package/lib/typescript/src/storage/adapters/asyncStorage.d.ts +18 -0
- package/lib/typescript/src/storage/adapters/asyncStorage.d.ts.map +1 -0
- package/lib/typescript/src/storage/adapters/memory.d.ts +16 -0
- package/lib/typescript/src/storage/adapters/memory.d.ts.map +1 -0
- package/lib/typescript/src/storage/errors.d.ts +37 -0
- package/lib/typescript/src/storage/errors.d.ts.map +1 -0
- package/lib/typescript/src/storage/index.d.ts +11 -0
- package/lib/typescript/src/storage/index.d.ts.map +1 -0
- package/lib/typescript/src/storage/schema.d.ts +22 -0
- package/lib/typescript/src/storage/schema.d.ts.map +1 -0
- package/lib/typescript/src/storage/serialization.d.ts +23 -0
- package/lib/typescript/src/storage/serialization.d.ts.map +1 -0
- package/lib/typescript/src/storage/store.d.ts +3 -0
- package/lib/typescript/src/storage/store.d.ts.map +1 -0
- package/lib/typescript/src/storage/types.d.ts +69 -0
- package/lib/typescript/src/storage/types.d.ts.map +1 -0
- package/lib/typescript/src/storage/validation.d.ts +24 -0
- package/lib/typescript/src/storage/validation.d.ts.map +1 -0
- package/lib/typescript/src/storage.d.ts +2 -0
- package/lib/typescript/src/storage.d.ts.map +1 -0
- package/lib/typescript/src/testing.d.ts +1 -0
- package/lib/typescript/src/testing.d.ts.map +1 -1
- package/lib/typescript/src/tilemap/chunkStats.d.ts +14 -0
- package/lib/typescript/src/tilemap/chunkStats.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/definitions.d.ts +38 -0
- package/lib/typescript/src/tilemap/definitions.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/errors.d.ts +7 -0
- package/lib/typescript/src/tilemap/errors.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/index.d.ts +8 -0
- package/lib/typescript/src/tilemap/index.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/movement.d.ts +52 -0
- package/lib/typescript/src/tilemap/movement.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/queries.d.ts +21 -0
- package/lib/typescript/src/tilemap/queries.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/tiledAdapter.d.ts +32 -0
- package/lib/typescript/src/tilemap/tiledAdapter.d.ts.map +1 -0
- package/lib/typescript/src/tilemap/types.d.ts +127 -0
- package/lib/typescript/src/tilemap/types.d.ts.map +1 -0
- package/lib/typescript/src/tilemap.d.ts +2 -0
- package/lib/typescript/src/tilemap.d.ts.map +1 -0
- package/package.json +100 -10
- package/src/assets/defineAssets.ts +31 -5
- package/src/assets.ts +27 -0
- package/src/audio/createGameAudio.ts +749 -0
- package/src/audio/errors.ts +12 -0
- package/src/audio/index.ts +9 -0
- package/src/audio/resolver.ts +74 -0
- package/src/audio/types.ts +47 -0
- package/src/audio.ts +13 -0
- package/src/camera2d/bounds.ts +69 -0
- package/src/camera2d/extents.ts +25 -0
- package/src/camera2d/follow.ts +165 -0
- package/src/camera2d/index.ts +29 -0
- package/src/camera2d/interpolation.ts +113 -0
- package/src/camera2d/shake.ts +90 -0
- package/src/camera2d/transform.ts +148 -0
- package/src/camera2d/types.ts +73 -0
- package/src/camera2d/validation.ts +126 -0
- package/src/camera2d/visibility.ts +181 -0
- package/src/camera2d.ts +6 -0
- package/src/collision2d/colliders.ts +292 -0
- package/src/collision2d/debug.ts +133 -0
- package/src/collision2d/filters.ts +48 -0
- package/src/collision2d/index.ts +74 -0
- package/src/collision2d/intersections.ts +82 -0
- package/src/collision2d/manifolds.ts +191 -0
- package/src/collision2d/segments.ts +176 -0
- package/src/collision2d/spatialHash.ts +211 -0
- package/src/collision2d/sweeps.ts +269 -0
- package/src/collision2d.ts +6 -0
- package/src/core/input/buttonPad.ts +235 -0
- package/src/core/input/createInputBuffer.ts +95 -14
- package/src/core/input/types.ts +7 -0
- package/src/core/session/createGameSession.ts +480 -53
- package/src/core/session/deepFreeze.ts +104 -3
- package/src/core/session/diagnostics.ts +2 -0
- package/src/core/session/types.ts +77 -4
- package/src/definition/defineGame.ts +61 -3
- package/src/definition/types.ts +10 -0
- package/src/events/defineGameEvents.ts +46 -0
- package/src/events/errors.ts +14 -0
- package/src/events/index.ts +14 -0
- package/src/events/payload.ts +234 -0
- package/src/events/seed.ts +33 -0
- package/src/events/types.ts +53 -0
- package/src/events.ts +20 -0
- package/src/geometry/helpers.ts +136 -0
- package/src/geometry/index.ts +14 -0
- package/src/geometry/types.ts +54 -0
- package/src/geometry/validation.ts +131 -0
- package/src/geometry.ts +6 -0
- package/src/haptics/createGameHaptics.ts +214 -0
- package/src/haptics/errors.ts +12 -0
- package/src/haptics/index.ts +3 -0
- package/src/haptics/resolver.ts +58 -0
- package/src/haptics/types.ts +48 -0
- package/src/haptics.ts +7 -0
- package/src/index.ts +37 -1
- package/src/particles/createParticleSystem.ts +505 -0
- package/src/particles/defineParticleEffect.ts +164 -0
- package/src/particles/errors.ts +6 -0
- package/src/particles/index.ts +5 -0
- package/src/particles/sampling.ts +141 -0
- package/src/particles/types.ts +327 -0
- package/src/particles.ts +1 -0
- package/src/react/GameButtonPad.tsx +436 -0
- package/src/react/GamePointerInput.tsx +73 -8
- package/src/react/GameView.tsx +160 -61
- package/src/react/assets/createGameAssetStore.ts +140 -107
- package/src/react/assets/useGameAssets.ts +63 -31
- package/src/react/bindAppLifecycle.ts +55 -19
- package/src/react/bindGameSession.ts +12 -2
- package/src/react/camera2d/GameLayer2D.tsx +43 -0
- package/src/react/camera2d/defineGameCamera2D.ts +59 -0
- package/src/react/camera2d/usePresentedCameraBinding.ts +185 -0
- package/src/react/cleanupList.ts +48 -0
- package/src/react/instrumentation.ts +31 -3
- package/src/react/lifecycleSource.ts +58 -0
- package/src/react/particles/ParticleView.tsx +358 -0
- package/src/react/particles/culling.ts +145 -0
- package/src/react/particles/index.ts +6 -0
- package/src/react/particles/spriteXForm.ts +72 -0
- package/src/react/particles/useParticlePresentation.ts +261 -0
- package/src/react/pointerBinding.ts +74 -16
- package/src/react/pointerCamera.ts +33 -0
- package/src/react/pointerCoalescer.ts +36 -10
- package/src/react/sprites/GameSprite.tsx +4 -33
- package/src/react/sprites/GameWorld2D.tsx +113 -7
- package/src/react/sprites/Sprite.tsx +51 -72
- package/src/react/sprites/SpriteBatch.tsx +74 -22
- package/src/react/sprites/batchVisibility.ts +76 -0
- package/src/react/sprites/spriteSelection.ts +133 -0
- package/src/react/sprites/spriteTransform.ts +46 -26
- package/src/react/tilemap/TileMapLayer2D.tsx +274 -0
- package/src/react/tilemap/tilePresentation.ts +491 -0
- package/src/react/useGameSession.ts +90 -0
- package/src/react/useGameSessionStatus.ts +53 -0
- package/src/react/viewportBinding.ts +5 -1
- package/src/react.ts +18 -1
- package/src/scene/defineScene.ts +47 -5
- package/src/scene/types.ts +37 -3
- package/src/sprites/sampleSpriteClip.ts +82 -14
- package/src/sprites/spriteAnimationState.ts +29 -25
- package/src/sprites.ts +22 -0
- package/src/storage/adapters/asyncStorage.ts +77 -0
- package/src/storage/adapters/memory.ts +58 -0
- package/src/storage/errors.ts +88 -0
- package/src/storage/index.ts +18 -0
- package/src/storage/schema.ts +147 -0
- package/src/storage/serialization.ts +248 -0
- package/src/storage/store.ts +380 -0
- package/src/storage/types.ts +76 -0
- package/src/storage/validation.ts +102 -0
- package/src/storage.ts +1 -0
- package/src/testing.ts +4 -0
- package/src/tilemap/chunkStats.ts +24 -0
- package/src/tilemap/definitions.ts +327 -0
- package/src/tilemap/errors.ts +11 -0
- package/src/tilemap/index.ts +10 -0
- package/src/tilemap/movement.ts +368 -0
- package/src/tilemap/queries.ts +136 -0
- package/src/tilemap/tiledAdapter.ts +165 -0
- package/src/tilemap/types.ts +119 -0
- package/src/tilemap.ts +1 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swept collision queries (T11.3, repaired in T11-F2, allocation-disciplined
|
|
3
|
+
* in T11-FF7).
|
|
4
|
+
*
|
|
5
|
+
* `time` is normalized to `[0, 1]` along the displacement. A starting
|
|
6
|
+
* overlap returns `time: 0` with the static manifold normal; zero
|
|
7
|
+
* displacement returns `undefined` (never NaN). At equal times the
|
|
8
|
+
* candidate evaluated FIRST wins — the X face before the Y face, faces
|
|
9
|
+
* before corners, corners in index order (T11-TF1). Circle-sweep misses
|
|
10
|
+
* allocate nothing; AABB-AABB sweep misses still allocate the expanded
|
|
11
|
+
* box, segment endpoints, and axis array (GS-COLLISION-03: the old blanket
|
|
12
|
+
* claim overstated this path, which stays scalar-simple by design).
|
|
13
|
+
*
|
|
14
|
+
* Circle-AABB sweeps raycast against the exact Minkowski geometry: the
|
|
15
|
+
* target expanded by the radius with ROUNDED corners. Face candidates come
|
|
16
|
+
* from the four expanded faces (valid only within the face's extent), and
|
|
17
|
+
* corner candidates come from radius circles around each target corner
|
|
18
|
+
* (valid only in the corner's exterior quadrant). AABB-AABB sweeps use the
|
|
19
|
+
* asymmetric expansion for the moving AABB's top-left reference point —
|
|
20
|
+
* the Minkowski sum of two AABBs is an AABB, so the slab method is exact.
|
|
21
|
+
*
|
|
22
|
+
* T11-FF7 allocation discipline: the four corner descriptors are derived
|
|
23
|
+
* arithmetically from the corner index (no per-call arrays or predicate
|
|
24
|
+
* closures), the two quadratic roots are evaluated as scalars, and the best
|
|
25
|
+
* candidate is tracked in scalars; only the final public `SweepHit2D` is
|
|
26
|
+
* allocated.
|
|
27
|
+
*/
|
|
28
|
+
import type { Aabb2D, Circle2D, Point2D, Vector2D } from '../geometry/types.js';
|
|
29
|
+
/** Earliest impact of a swept circle against an AABB. */
|
|
30
|
+
export interface SweepCircleAabb2DOptions {
|
|
31
|
+
/** The moving circle at the start of the step. */
|
|
32
|
+
readonly circle: Circle2D;
|
|
33
|
+
/** Displacement over the step (velocity times delta time). */
|
|
34
|
+
readonly displacement: Vector2D;
|
|
35
|
+
/** The stationary target. */
|
|
36
|
+
readonly target: Aabb2D;
|
|
37
|
+
}
|
|
38
|
+
/** Earliest impact of a swept AABB against an AABB. */
|
|
39
|
+
export interface SweepAabbAabb2DOptions {
|
|
40
|
+
/** The moving AABB at the start of the step. */
|
|
41
|
+
readonly aabb: Aabb2D;
|
|
42
|
+
/** Displacement over the step. */
|
|
43
|
+
readonly displacement: Vector2D;
|
|
44
|
+
/** The stationary target. */
|
|
45
|
+
readonly target: Aabb2D;
|
|
46
|
+
}
|
|
47
|
+
/** Earliest impact of a swept shape against a target. */
|
|
48
|
+
export interface SweepHit2D {
|
|
49
|
+
/** Normalized impact time in `[0, 1]`. */
|
|
50
|
+
readonly time: number;
|
|
51
|
+
/** Unit normal moving the swept shape out of the target. */
|
|
52
|
+
readonly normal: Vector2D;
|
|
53
|
+
/** Contact point on the target at impact. */
|
|
54
|
+
readonly point: Point2D;
|
|
55
|
+
}
|
|
56
|
+
/** Swept circle-AABB against the exact rounded-rectangle Minkowski shape. */
|
|
57
|
+
export declare function sweepCircleAabb2D(options: SweepCircleAabb2DOptions): SweepHit2D | undefined;
|
|
58
|
+
/** Swept AABB-AABB with the exact asymmetric reference expansion. */
|
|
59
|
+
export declare function sweepAabbAabb2D(options: SweepAabbAabb2DOptions): SweepHit2D | undefined;
|
|
60
|
+
//# sourceMappingURL=sweeps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweeps.d.ts","sourceRoot":"","sources":["../../../../src/collision2d/sweeps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAmB,CAAC;AAU7E,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAuBD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,GAAG,SAAS,CA0H3F;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,GAAG,SAAS,CA0CvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collision2d.d.ts","sourceRoot":"","sources":["../../../src/collision2d.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,wBAAqB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multitouch button-pad controller (headless).
|
|
3
|
+
*
|
|
4
|
+
* Maps every active pointer to the button zone it covers and turns touch
|
|
5
|
+
* transitions into press/release diffs for a session input buffer. Pure and
|
|
6
|
+
* React-free: the React surface (`GameButtonPad`) only registers zone rects,
|
|
7
|
+
* feeds touch lists in, and applies the returned diffs to
|
|
8
|
+
* `session.input`.
|
|
9
|
+
*
|
|
10
|
+
* Semantics:
|
|
11
|
+
* - A zone is a rectangle; an optional global hit slop expands it.
|
|
12
|
+
* - Each pointer maps to AT MOST one action (first registered zone wins).
|
|
13
|
+
* - An action is pressed while ANY pointer covers its zone (refcounted);
|
|
14
|
+
* it releases when the last pointer leaves or lifts. Edges fire only on
|
|
15
|
+
* 0-to-1 (press) and 1-to-0 (release) owner transitions — a second owner
|
|
16
|
+
* never re-presses and an unbalanced release never emits.
|
|
17
|
+
* - Sliding between zones reassigns the pointer: release + press diff.
|
|
18
|
+
* - Moves acquire: a pointer that begins in empty space and slides into a
|
|
19
|
+
* zone presses it; leaving a zone releases. Every touch in a move list
|
|
20
|
+
* is hit-tested, mapped or not.
|
|
21
|
+
* - Zone rects are cloned at registration: later caller mutation of the
|
|
22
|
+
* passed object cannot alter hit areas invisibly.
|
|
23
|
+
*/
|
|
24
|
+
/** A rectangular hit area, in the pad's local coordinate space. */
|
|
25
|
+
export interface ButtonPadRect {
|
|
26
|
+
readonly x: number;
|
|
27
|
+
readonly y: number;
|
|
28
|
+
readonly width: number;
|
|
29
|
+
readonly height: number;
|
|
30
|
+
}
|
|
31
|
+
/** One active pointer sample. */
|
|
32
|
+
export interface ButtonPadTouch {
|
|
33
|
+
/** Native pointer id; stable for the lifetime of one touch. */
|
|
34
|
+
readonly id: number;
|
|
35
|
+
readonly x: number;
|
|
36
|
+
readonly y: number;
|
|
37
|
+
}
|
|
38
|
+
/** Press/release transitions derived from one touch event. */
|
|
39
|
+
export interface ButtonPadDiff {
|
|
40
|
+
/** Actions that transitioned to held. */
|
|
41
|
+
readonly pressed: readonly string[];
|
|
42
|
+
/** Actions that transitioned to released. */
|
|
43
|
+
readonly released: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
/** Create a controller bound to no particular session (diffs are applied by the caller). */
|
|
46
|
+
export declare function createButtonPadController(options?: {
|
|
47
|
+
readonly hitSlop?: number;
|
|
48
|
+
}): {
|
|
49
|
+
setZone(action: string, rect: ButtonPadRect): void;
|
|
50
|
+
removeZone(action: string): readonly string[];
|
|
51
|
+
touchesDown(touches: readonly ButtonPadTouch[]): ButtonPadDiff;
|
|
52
|
+
touchesMove(touches: readonly ButtonPadTouch[]): ButtonPadDiff;
|
|
53
|
+
touchesUp(changed: readonly ButtonPadTouch[]): ButtonPadDiff;
|
|
54
|
+
touchesCancel(changed: readonly ButtonPadTouch[]): ButtonPadDiff;
|
|
55
|
+
releaseAll(): readonly string[];
|
|
56
|
+
invalidateOwnership(): void;
|
|
57
|
+
held(): readonly string[];
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=buttonPad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonPad.d.ts","sourceRoot":"","sources":["../../../../../src/core/input/buttonPad.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAkBD,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAClF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IACnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9C,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAAC;IAC/D,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAAC;IAC/D,SAAS,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAAC;IAC7D,aAAa,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAAC;IACjE,UAAU,IAAI,SAAS,MAAM,EAAE,CAAC;IAChC,mBAAmB,IAAI,IAAI,CAAC;IAC5B,IAAI,IAAI,SAAS,MAAM,EAAE,CAAC;CAC3B,CA+JA"}
|
|
@@ -7,6 +7,6 @@ interface InputBuffer<TActionName extends string> {
|
|
|
7
7
|
resetForTransition(targetActions: readonly string[]): void;
|
|
8
8
|
reset(): void;
|
|
9
9
|
}
|
|
10
|
-
export declare function createInputBuffer<TInput extends InputMap>(input: TInput, assertLive: () => void): InputBuffer<Extract<keyof TInput, string>>;
|
|
10
|
+
export declare function createInputBuffer<TInput extends InputMap>(input: TInput, assertLive: () => void, isRejectingInput?: () => boolean): InputBuffer<Extract<keyof TInput, string>>;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=createInputBuffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInputBuffer.d.ts","sourceRoot":"","sources":["../../../../../src/core/input/createInputBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AAEvD,OAAO,KAAK,EAAe,eAAe,EAAE,UAAU,EAAgB,MAAM,YAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"createInputBuffer.d.ts","sourceRoot":"","sources":["../../../../../src/core/input/createInputBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AAEvD,OAAO,KAAK,EAAe,eAAe,EAAE,UAAU,EAAgB,MAAM,YAAS,CAAC;AA0CtF,UAAU,WAAW,CAAC,WAAW,SAAS,MAAM;IAC9C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAClC,oFAAoF;IACpF,kBAAkB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3D,KAAK,IAAI,IAAI,CAAC;CACf;AAkBD,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,QAAQ,EACvD,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,IAAI,EACtB,gBAAgB,GAAE,MAAM,OAAqB,GAC5C,WAAW,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAAC,CAyV5C"}
|
|
@@ -60,5 +60,12 @@ export interface InputController<TActionName extends string> {
|
|
|
60
60
|
* inputs its fixed step actually sampled.
|
|
61
61
|
*/
|
|
62
62
|
readonly acceptedCount: number;
|
|
63
|
+
/**
|
|
64
|
+
* The number of fixed-step input samples taken by the session (T12-TF3):
|
|
65
|
+
* the authoritative committed boundary — one increment per tick, whether
|
|
66
|
+
* or not any pointer or button changed. Distinct from the dispatch-stage
|
|
67
|
+
* `acceptedCount`.
|
|
68
|
+
*/
|
|
69
|
+
readonly sampledCount: number;
|
|
63
70
|
}
|
|
64
71
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/input/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAsB,CAAC;AAEpD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU,CAAC,WAAW,SAAS,MAAM;IACpD,6CAA6C;IAC7C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IACzC,sCAAsC;IACtC,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;CAC5C;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe,CAAC,WAAW,SAAS,MAAM;IACzD,oDAAoD;IACpD,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,qDAAqD;IACrD,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACvE,4DAA4D;IAC5D,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACtE,2DAA2D;IAC3D,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/input/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAsB,CAAC;AAEpD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU,CAAC,WAAW,SAAS,MAAM;IACpD,6CAA6C;IAC7C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IACzC,sCAAsC;IACtC,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;CAC5C;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe,CAAC,WAAW,SAAS,MAAM;IACzD,oDAAoD;IACpD,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,qDAAqD;IACrD,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACvE,4DAA4D;IAC5D,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACtE,2DAA2D;IAC3D,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { AssetGroupMap } from '../../assets/types.js';
|
|
1
2
|
import type { GameDefinition, InputMap, SceneMap } from '../../definition/types.js';
|
|
2
3
|
import { type FrameDriver } from '../frameDriver.js';
|
|
3
4
|
import { type GameSession } from './types.js';
|
|
4
5
|
import type { SessionDiagnostics } from './diagnostics.js';
|
|
6
|
+
import type { GameEventDescriptor } from '../../events/types.js';
|
|
5
7
|
interface SessionOptions {
|
|
6
8
|
readonly frameDriver: FrameDriver;
|
|
7
9
|
readonly fixedStepMs?: number;
|
|
@@ -11,8 +13,8 @@ interface SessionOptions {
|
|
|
11
13
|
readonly diagnostics?: SessionDiagnostics;
|
|
12
14
|
}
|
|
13
15
|
/** Create a live session using the platform animation-frame driver. */
|
|
14
|
-
export declare function createGameSession<const TScenes extends SceneMap, const TInput extends InputMap, const TInitialScene extends keyof TScenes
|
|
16
|
+
export declare function createGameSession<const TScenes extends SceneMap, const TInput extends InputMap, const TInitialScene extends keyof TScenes, const TEventDefs extends Record<string, GameEventDescriptor<unknown>> = Record<string, never>>(definition: GameDefinition<TScenes, TInput, TInitialScene, AssetGroupMap, TEventDefs>): GameSession<TScenes, TInput, TEventDefs>;
|
|
15
17
|
/** @internal Deterministic construction seam used by the headless test suite. */
|
|
16
|
-
export declare function createGameSessionWithDriver<const TScenes extends SceneMap, const TInput extends InputMap, const TInitialScene extends keyof TScenes
|
|
18
|
+
export declare function createGameSessionWithDriver<const TScenes extends SceneMap, const TInput extends InputMap, const TInitialScene extends keyof TScenes, const TEventDefs extends Record<string, GameEventDescriptor<unknown>> = Record<string, never>>(definition: GameDefinition<TScenes, TInput, TInitialScene, AssetGroupMap, TEventDefs>, options: SessionOptions): GameSession<TScenes, TInput, TEventDefs>;
|
|
17
19
|
export {};
|
|
18
20
|
//# sourceMappingURL=createGameSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGameSession.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/createGameSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AAEjF,OAAO,EAA8B,KAAK,WAAW,EAAoB,MAAM,mBAAgB,CAAC;AAGhG,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,YAAS,CAAC;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"createGameSession.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/createGameSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AAEjF,OAAO,EAA8B,KAAK,WAAW,EAAoB,MAAM,mBAAgB,CAAC;AAGhG,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,YAAS,CAAC;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAe,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAoB,CAAC;AAkD9D,UAAU,cAAc;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AA8DD,uEAAuE;AACvE,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,OAAO,SAAS,QAAQ,EAC9B,KAAK,CAAC,MAAM,SAAS,QAAQ,EAC7B,KAAK,CAAC,aAAa,SAAS,MAAM,OAAO,EACzC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE7F,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,GACpF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAI1C;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,OAAO,SAAS,QAAQ,EAC9B,KAAK,CAAC,MAAM,SAAS,QAAQ,EAC7B,KAAK,CAAC,aAAa,SAAS,MAAM,OAAO,EACzC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE7F,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,EACrF,OAAO,EAAE,cAAc,GACtB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAu5B1C"}
|
|
@@ -20,8 +20,28 @@
|
|
|
20
20
|
* snapshots holds in every build.
|
|
21
21
|
*/
|
|
22
22
|
import type { DeepReadonly } from './types.js';
|
|
23
|
+
/**
|
|
24
|
+
* Supported snapshot domain (GS-SCENE-03): plain records
|
|
25
|
+
* (`Object.prototype` or `null` prototype), arrays, and scalar values.
|
|
26
|
+
* Everything else — functions, symbols, bigints, and class instances
|
|
27
|
+
* (Map, Set, Date, typed arrays, custom classes, …) — is rejected at the
|
|
28
|
+
* publication boundary because freezing cannot secure it (`Object.freeze`
|
|
29
|
+
* on a Map does not freeze its entries; a frozen function stays callable).
|
|
30
|
+
*/
|
|
31
|
+
export declare class SnapshotDomainError extends Error {
|
|
32
|
+
/** Dot/bracket path from the snapshot root to the offending value. */
|
|
33
|
+
readonly path: string;
|
|
34
|
+
/** The scene whose snapshot was rejected, when the session supplied it. */
|
|
35
|
+
readonly scene?: string;
|
|
36
|
+
constructor(path: string, detail: string, scene?: string);
|
|
37
|
+
}
|
|
38
|
+
/** Context the session attaches so rejections name the offending scene. */
|
|
39
|
+
export interface SnapshotFreezeContext {
|
|
40
|
+
readonly scene?: string;
|
|
41
|
+
readonly tick?: number;
|
|
42
|
+
}
|
|
23
43
|
export interface DeepFreezer {
|
|
24
|
-
<T>(value: T): DeepReadonly<T>;
|
|
44
|
+
<T>(value: T, context?: SnapshotFreezeContext): DeepReadonly<T>;
|
|
25
45
|
}
|
|
26
46
|
export declare function createDeepFreeze(): DeepFreezer;
|
|
27
47
|
//# sourceMappingURL=deepFreeze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepFreeze.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/deepFreeze.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deepFreeze.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/deepFreeze.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAE5C;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAYzD;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAyGD,MAAM,WAAW,WAAW;IAC1B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;CACjE;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CA8F9C"}
|
|
@@ -32,5 +32,7 @@ export interface SessionDiagnostics {
|
|
|
32
32
|
onCommitNotification(): void;
|
|
33
33
|
/** Listener count at publish time. */
|
|
34
34
|
onListenerCount(count: number): void;
|
|
35
|
+
/** Status-listener count after registration or removal (T10 control plane). */
|
|
36
|
+
onStatusListenerCount?(count: number): void;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,iBAAiB,IAAI,IAAI,CAAC;IAC1B,yDAAyD;IACzD,kBAAkB,IAAI,IAAI,CAAC;IAC3B,mCAAmC;IACnC,WAAW,IAAI,IAAI,CAAC;IACpB,kEAAkE;IAClE,aAAa,IAAI,IAAI,CAAC;IACtB,gEAAgE;IAChE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kDAAkD;IAClD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,yDAAyD;IACzD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sDAAsD;IACtD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gEAAgE;IAChE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iDAAiD;IACjD,oBAAoB,IAAI,IAAI,CAAC;IAC7B,sCAAsC;IACtC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,iBAAiB,IAAI,IAAI,CAAC;IAC1B,yDAAyD;IACzD,kBAAkB,IAAI,IAAI,CAAC;IAC3B,mCAAmC;IACnC,WAAW,IAAI,IAAI,CAAC;IACpB,kEAAkE;IAClE,aAAa,IAAI,IAAI,CAAC;IACtB,gEAAgE;IAChE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kDAAkD;IAClD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,yDAAyD;IACzD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sDAAsD;IACtD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gEAAgE;IAChE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iDAAiD;IACjD,oBAAoB,IAAI,IAAI,CAAC;IAC7B,sCAAsC;IACtC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,+EAA+E;IAC/E,qBAAqB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InputMap, SceneMap } from '../../definition/types.js';
|
|
2
|
+
import type { GameEventDescriptor, GameEventEnvelope, InferGameEventMap } from '../../events/types.js';
|
|
2
3
|
import type { SceneSnapshot } from '../../scene/types.js';
|
|
3
4
|
import type { Viewport } from '../../viewport2d/types.js';
|
|
4
5
|
import type { InputController } from '../input/types.js';
|
|
@@ -8,6 +9,28 @@ export type DeepReadonly<T> = T extends (...arguments_: never[]) => unknown ? T
|
|
|
8
9
|
} : T;
|
|
9
10
|
/** Lifecycle states of a headless game session. */
|
|
10
11
|
export type GameSessionStatus = 'idle' | 'running' | 'paused' | 'disposed';
|
|
12
|
+
/**
|
|
13
|
+
* Minimal read-only lifecycle surface for presentation layers (T20.3).
|
|
14
|
+
*
|
|
15
|
+
* Exposes exactly what a renderer-side consumer needs to follow its owning
|
|
16
|
+
* session — the current status and a way to observe transitions — and
|
|
17
|
+
* nothing it must not have: no `start`, `pause`, `press`, `setScene`, event
|
|
18
|
+
* subscription, or other session internals. `GameView` owns one source per
|
|
19
|
+
* session and supplies it to its renderer subtree; haptics and particle
|
|
20
|
+
* presentation consume it instead of casting to private session methods or
|
|
21
|
+
* reaching for module-global coordinators.
|
|
22
|
+
*/
|
|
23
|
+
export interface GameLifecycleSource {
|
|
24
|
+
/** The owning session's current lifecycle status. */
|
|
25
|
+
getStatus(): GameSessionStatus;
|
|
26
|
+
/**
|
|
27
|
+
* Observe lifecycle transitions. Returns a detach function. Subscribing
|
|
28
|
+
* to a disposed session returns a no-op detach: the terminal notification
|
|
29
|
+
* was already delivered, and `addStatusListener` follows the
|
|
30
|
+
* disposed-error policy for new subscribers.
|
|
31
|
+
*/
|
|
32
|
+
subscribe(listener: (status: GameSessionStatus) => void): () => void;
|
|
33
|
+
}
|
|
11
34
|
/** One renderer-neutral simulation commit produced by a game session. */
|
|
12
35
|
export interface CommitFrameBase<TSnapshot> {
|
|
13
36
|
/** Snapshot immediately before the latest simulation update. */
|
|
@@ -49,7 +72,7 @@ export interface GameSubscription {
|
|
|
49
72
|
remove(): void;
|
|
50
73
|
}
|
|
51
74
|
/** A closure-backed, headless running instance of one game definition. */
|
|
52
|
-
export interface GameSession<TScenes extends SceneMap = SceneMap, TInput extends InputMap = InputMap
|
|
75
|
+
export interface GameSession<TScenes extends SceneMap = SceneMap, TInput extends InputMap = InputMap, TEventDefs extends Record<string, GameEventDescriptor<unknown>> = Record<string, never>> {
|
|
53
76
|
/** Current lifecycle status. */
|
|
54
77
|
readonly status: GameSessionStatus;
|
|
55
78
|
/** The active scene name, updated by transitions and restarts. */
|
|
@@ -62,12 +85,28 @@ export interface GameSession<TScenes extends SceneMap = SceneMap, TInput extends
|
|
|
62
85
|
start(): void;
|
|
63
86
|
/** Pause simulation and discard suspended wall time. */
|
|
64
87
|
pause(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Observe lifecycle transitions at control frequency.
|
|
90
|
+
*
|
|
91
|
+
* The listener receives each actual status transition after it becomes
|
|
92
|
+
* authoritative (`idle`, `running`, `paused`, `disposed`); idempotent
|
|
93
|
+
* commands emit nothing, and no initial value is emitted on subscribe —
|
|
94
|
+
* read `status` for the snapshot. `disposed` is delivered exactly once
|
|
95
|
+
* before listeners are released. Listeners are called from a snapshot and
|
|
96
|
+
* a listener that issues another lifecycle command observes complete
|
|
97
|
+
* states; a throwing listener does not abort delivery, and the first
|
|
98
|
+
* failure is rethrown from the command after the pass completes. Status
|
|
99
|
+
* notifications are not render commits.
|
|
100
|
+
*/
|
|
101
|
+
addStatusListener(listener: (status: GameSessionStatus) => void): GameSubscription;
|
|
65
102
|
/**
|
|
66
103
|
* Transition to a declared scene.
|
|
67
104
|
*
|
|
68
|
-
* While running, the transition commits at the next
|
|
69
|
-
*
|
|
70
|
-
*
|
|
105
|
+
* While running, the transition commits at the next frame-driver callback
|
|
106
|
+
* — even when no fixed step is due — without advancing simulation tick or
|
|
107
|
+
* time. The target scene first updates at the next due fixed step. While
|
|
108
|
+
* idle or paused, it commits synchronously and publishes the new frame.
|
|
109
|
+
* Setting the current scene is an idempotent no-op.
|
|
71
110
|
*/
|
|
72
111
|
setScene(name: keyof TScenes): void;
|
|
73
112
|
/** Recreate the active scene with fresh state. */
|
|
@@ -82,10 +121,36 @@ export interface GameSession<TScenes extends SceneMap = SceneMap, TInput extends
|
|
|
82
121
|
* accumulated timing fraction at call time and is only meaningful for
|
|
83
122
|
* headless inspection. Rendering uses the UI-owned alpha clock; the
|
|
84
123
|
* envelope fields never change between commits.
|
|
124
|
+
*
|
|
125
|
+
* Event-time authority (GS-EVENT-02): this frame is the most recently
|
|
126
|
+
* PUBLISHED presentation frame, which can lag the authoritative tick
|
|
127
|
+
* when several simulation ticks run in one driver callback. Inside a
|
|
128
|
+
* game-event listener, the envelope (tick, scene, ordinal, payload) is
|
|
129
|
+
* the authority for that event — never re-read this frame to place the
|
|
130
|
+
* event. Put the data an effect needs into its small payload.
|
|
85
131
|
*/
|
|
86
132
|
getRenderFrame(): GameRenderFrame<TScenes>;
|
|
87
133
|
/** Observe simulation commits at commit frequency (never per display frame). */
|
|
88
134
|
addCommitListener(listener: (frame: CommitFrame<TScenes>) => void): GameSubscription;
|
|
135
|
+
/**
|
|
136
|
+
* Observe deterministic game events after they commit (T13).
|
|
137
|
+
*
|
|
138
|
+
* Each listener receives committed envelopes for the subscribed name in
|
|
139
|
+
* deterministic `(tick, ordinal)` order. Delivery happens after the
|
|
140
|
+
* source tick's authoritative state commits and never during the update
|
|
141
|
+
* itself. Listeners run from a per-tick snapshot taken before the
|
|
142
|
+
* tick's first delivery (GS-EVENT-01): a listener added during delivery
|
|
143
|
+
* receives only later ticks, and a removal prevents only future ticks —
|
|
144
|
+
* neither affects the envelopes already staged for the running tick.
|
|
145
|
+
* Lifecycle calls during delivery (pause, setScene, dispose) take
|
|
146
|
+
* effect after the staged batch completes: every snapshotted listener
|
|
147
|
+
* still runs exactly once for the tick. Removing a listener is
|
|
148
|
+
* idempotent. A throwing listener does not suppress siblings or alter
|
|
149
|
+
* simulation; the error is reported via a visible non-recursive sink
|
|
150
|
+
* (`console.error`). Simulation never awaits an async effect started
|
|
151
|
+
* by a listener.
|
|
152
|
+
*/
|
|
153
|
+
addGameEventListener<TName extends keyof InferGameEventMap<TEventDefs> & string>(name: TName, listener: (event: GameEventEnvelope<TName, InferGameEventMap<TEventDefs>[TName]>) => void | Promise<void>): GameSubscription;
|
|
89
154
|
}
|
|
90
155
|
/** Error thrown when live work is requested from a disposed session. */
|
|
91
156
|
export declare class GameSessionDisposedError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAgB,CAAC;AAEtD,2DAA2D;AAC3D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,OAAO,GACvE,CAAC,GACD,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,GAChC,SAAS,YAAY,CAAC,KAAK,CAAC,EAAE,GAC9B,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CAAE,GACrD,CAAC,CAAC;AAEV,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3E,yEAAyE;AACzE,MAAM,WAAW,eAAe,CAAC,SAAS;IACxC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,QAAQ,IAAI;KACjD,KAAK,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;QACzE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;KACvB;CACF,CAAC,MAAM,OAAO,CAAC,CAAC;AAEjB,sEAAsE;AACtE,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG;IAC7E,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,0EAA0E;AAC1E,MAAM,WAAW,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/session/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AssetGroupMap } from '../assets/types.js';
|
|
2
|
+
import type { GameEventDescriptor } from '../events/types.js';
|
|
2
3
|
import type { GameDefinition, InputMap, SceneMap } from './types.js';
|
|
3
4
|
type SceneActions<TScene> = TScene extends {
|
|
4
5
|
readonly __actionType?: infer TAction;
|
|
@@ -14,6 +15,16 @@ type ValidateSceneActions<TScenes extends SceneMap, TInput extends InputMap> = U
|
|
|
14
15
|
type ValidateSceneTransitions<TScenes extends SceneMap> = UndeclaredSceneTransitions<TScenes> extends never ? unknown : {
|
|
15
16
|
readonly __undeclaredSceneTransitions: UndeclaredSceneTransitions<TScenes>;
|
|
16
17
|
};
|
|
18
|
+
type SceneEmits<TScene> = TScene extends {
|
|
19
|
+
readonly __emitType?: infer TEmits;
|
|
20
|
+
} ? Exclude<TEmits, undefined> : never;
|
|
21
|
+
type UndeclaredSceneEmits<TScenes extends SceneMap, TEventDefs extends Record<string, GameEventDescriptor<unknown>>> = TEventDefs extends Record<string, never> ? SceneEmits<TScenes[keyof TScenes]> : Exclude<SceneEmits<TScenes[keyof TScenes]>, keyof TEventDefs & string>;
|
|
22
|
+
type ValidateSceneEmits<TScenes extends SceneMap, TEventDefs extends Record<string, GameEventDescriptor<unknown>>> = UndeclaredSceneEmits<TScenes, TEventDefs> extends never ? unknown : {
|
|
23
|
+
readonly __undeclaredSceneEmits: UndeclaredSceneEmits<TScenes, TEventDefs>;
|
|
24
|
+
};
|
|
25
|
+
type ValidateEventsWhenScenesEmit<TScenes extends SceneMap, TEventDefs extends Record<string, GameEventDescriptor<unknown>>> = SceneEmits<TScenes[keyof TScenes]> extends never ? unknown : TEventDefs extends Record<string, never> ? {
|
|
26
|
+
readonly __eventsRequired: 'scenes declare emits but game has no events map';
|
|
27
|
+
} : unknown;
|
|
17
28
|
/**
|
|
18
29
|
* Declare a game.
|
|
19
30
|
*
|
|
@@ -61,6 +72,6 @@ type ValidateSceneTransitions<TScenes extends SceneMap> = UndeclaredSceneTransit
|
|
|
61
72
|
* });
|
|
62
73
|
* ```
|
|
63
74
|
*/
|
|
64
|
-
export declare function defineGame<const TScenes extends SceneMap, const TInput extends InputMap = InputMap, const TInitialScene extends keyof TScenes = keyof TScenes, const TAssets extends AssetGroupMap = AssetGroupMap
|
|
75
|
+
export declare function defineGame<const TScenes extends SceneMap, const TInput extends InputMap = InputMap, const TInitialScene extends keyof TScenes = keyof TScenes, const TAssets extends AssetGroupMap = AssetGroupMap, const TEventDefs extends Record<string, GameEventDescriptor<unknown>> = Record<string, never>>(definition: GameDefinition<TScenes, TInput, TInitialScene, TAssets, TEventDefs> & ValidateSceneActions<TScenes, TInput> & ValidateSceneTransitions<TScenes> & ValidateSceneEmits<TScenes, TEventDefs> & ValidateEventsWhenScenesEmit<TScenes, TEventDefs>): GameDefinition<TScenes, TInput, TInitialScene, TAssets, TEventDefs>;
|
|
65
76
|
export {};
|
|
66
77
|
//# sourceMappingURL=defineGame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineGame.d.ts","sourceRoot":"","sources":["../../../../src/definition/defineGame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAS,CAAC;AAElE,KAAK,YAAY,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,GAC3B,KAAK,CAAC;AAEV,KAAK,gBAAgB,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,WAAW,CAAA;CAAE,GAC5F,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,GAC/B,KAAK,CAAC;AAEV,KAAK,sBAAsB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,IAAI,OAAO,CACtF,YAAY,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,EACpC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAC9B,CAAC;AAEF,KAAK,0BAA0B,CAAC,OAAO,SAAS,QAAQ,IAAI,OAAO,CACjE,gBAAgB,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,EACxC,MAAM,OAAO,CACd,CAAC;AAEF,KAAK,oBAAoB,CAAC,OAAO,SAAS,QAAQ,EAAE,MAAM,SAAS,QAAQ,IACzE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,KAAK,GACjD,OAAO,GACP;IAAE,QAAQ,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAErF,KAAK,wBAAwB,CAAC,OAAO,SAAS,QAAQ,IACpD,0BAA0B,CAAC,OAAO,CAAC,SAAS,KAAK,GAC7C,OAAO,GACP;IAAE,QAAQ,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,UAAU,CACxB,KAAK,CAAC,OAAO,SAAS,QAAQ,EAC9B,KAAK,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,EACxC,KAAK,CAAC,aAAa,SAAS,MAAM,OAAO,GAAG,MAAM,OAAO,EACzD,KAAK,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"defineGame.d.ts","sourceRoot":"","sources":["../../../../src/definition/defineGame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AssetGroupMap, GameAssetManifest } from '../assets/types.js';
|
|
2
|
+
import type { GameEventDescriptor } from '../events/types.js';
|
|
2
3
|
import type { Viewport } from '../viewport2d/types.js';
|
|
3
4
|
/** The button action supported by the runtime. */
|
|
4
5
|
export interface ButtonInputAction {
|
|
@@ -32,6 +33,12 @@ export interface SceneDefinitionMarker {
|
|
|
32
33
|
readonly __actionType?: string;
|
|
33
34
|
/** @internal Type witness for transition targets declared by this scene. */
|
|
34
35
|
readonly __transitionType?: string;
|
|
36
|
+
/** @internal Type witness for emitted event names. */
|
|
37
|
+
readonly __emitType?: string;
|
|
38
|
+
/** @internal Type witness for the game event map. */
|
|
39
|
+
readonly __eventMapType?: Record<string, unknown>;
|
|
40
|
+
/** @internal Type witness for the branded event definitions identity. */
|
|
41
|
+
readonly __eventDefsType?: Record<string, GameEventDescriptor<unknown>>;
|
|
35
42
|
}
|
|
36
43
|
/** The collection of functional scenes declared by a game. */
|
|
37
44
|
export type SceneMap = Readonly<Record<string, SceneDefinitionMarker>>;
|
|
@@ -41,7 +48,7 @@ export type SceneMap = Readonly<Record<string, SceneDefinitionMarker>>;
|
|
|
41
48
|
* Creating a definition allocates no runtime state. Pass it to
|
|
42
49
|
* `createGameSession` when a live headless session is required.
|
|
43
50
|
*/
|
|
44
|
-
export interface GameDefinition<TScenes extends SceneMap = SceneMap, TInput extends InputMap = InputMap, TInitialScene extends keyof TScenes = keyof TScenes, TAssets extends AssetGroupMap = AssetGroupMap
|
|
51
|
+
export interface GameDefinition<TScenes extends SceneMap = SceneMap, TInput extends InputMap = InputMap, TInitialScene extends keyof TScenes = keyof TScenes, TAssets extends AssetGroupMap = AssetGroupMap, TEventDefs extends Record<string, GameEventDescriptor<unknown>> = Record<string, never>> {
|
|
45
52
|
/** The viewport configuration of the game. */
|
|
46
53
|
readonly viewport: Viewport;
|
|
47
54
|
/** Typed asset manifest; optional for shape-only games. */
|
|
@@ -52,5 +59,7 @@ export interface GameDefinition<TScenes extends SceneMap = SceneMap, TInput exte
|
|
|
52
59
|
readonly scenes: TScenes;
|
|
53
60
|
/** The scene created first when a session starts. */
|
|
54
61
|
readonly initialScene: TInitialScene;
|
|
62
|
+
/** Typed game event declarations (T13). Absence keeps the no-event fast path. */
|
|
63
|
+
readonly events?: TEventDefs;
|
|
55
64
|
}
|
|
56
65
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/definition/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAEpD,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAEjE,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/definition/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAqB,CAAC;AAEpD,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAEjE,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,yEAAyE;IACzE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;CACzE;AAED,8DAA8D;AAC9D,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAC7B,OAAO,SAAS,QAAQ,GAAG,QAAQ,EACnC,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,aAAa,SAAS,MAAM,OAAO,GAAG,MAAM,OAAO,EACnD,OAAO,SAAS,aAAa,GAAG,aAAa,EAC7C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvF,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BrandedGameEventDefs, GameEventDescriptor } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a type witness for one event payload.
|
|
4
|
+
*
|
|
5
|
+
* `gameEvent` owns no runtime resource — it returns a frozen empty
|
|
6
|
+
* descriptor whose generic preserves the payload type. Payload shapes are
|
|
7
|
+
* validated when events are staged, not when they are declared.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const events = defineGameEvents({
|
|
12
|
+
* 'brick-hit': gameEvent<{ brickId: string; point: Point2D }>(),
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function gameEvent<TPayload>(): GameEventDescriptor<TPayload>;
|
|
17
|
+
/**
|
|
18
|
+
* Define and freeze a game event map.
|
|
19
|
+
*
|
|
20
|
+
* Validates every name, freezes the declaration map and its entries,
|
|
21
|
+
* and preserves literal inference so `keyof typeof events` and the
|
|
22
|
+
* payload types flow through `defineGame`, scenes, and subscriptions
|
|
23
|
+
* without duplicate author-written unions.
|
|
24
|
+
*/
|
|
25
|
+
export declare function defineGameEvents<const T extends Record<string, GameEventDescriptor<unknown>>>(definitions: T): BrandedGameEventDefs<T>;
|
|
26
|
+
//# sourceMappingURL=defineGameEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineGameEvents.d.ts","sourceRoot":"","sources":["../../../../src/events/defineGameEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAEzE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,QAAQ,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAEnE;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAC3F,WAAW,EAAE,CAAC,GACb,oBAAoB,CAAC,CAAC,CAAC,CAWzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Game event payload validation errors (T13).
|
|
3
|
+
*
|
|
4
|
+
* Every rejection identifies the event name and the exact payload path
|
|
5
|
+
* that caused the failure. The payload never captures React or native
|
|
6
|
+
* handles, sparse holes, cycles, or non-finite numbers.
|
|
7
|
+
*/
|
|
8
|
+
export declare class GameEventError extends Error {
|
|
9
|
+
readonly name = "GameEventError";
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/events/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAkB,IAAI,oBAAoB;gBAE9B,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { GameEventError } from './errors.js';
|
|
2
|
+
export { cloneAndValidatePayload, PAYLOAD_LIMITS } from './payload.js';
|
|
3
|
+
export { defineGameEvents, gameEvent } from './defineGameEvents.js';
|
|
4
|
+
export { seedGameEvent } from './seed.js';
|
|
5
|
+
export type { AnyGameEventEnvelope, GameEventDefinitions, GameEventDescriptor, GameEventEmitter, GameEventEnvelope, GameEventListener, GameEventMap, InferGameEventMap, } from './types.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAU,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,cAAW,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAoB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAQ,CAAC;AACvC,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate, clone, and deeply freeze a payload.
|
|
3
|
+
*
|
|
4
|
+
* Accepted: finite numbers, strings, booleans, `null`, `undefined` (as an
|
|
5
|
+
* optional property value), arrays, and plain records (`Object.prototype`
|
|
6
|
+
* or `Object.create(null)`). Rejected: functions, symbols, bigints,
|
|
7
|
+
* promises/thenables, sparse arrays, class instances, unsafe prototypes,
|
|
8
|
+
* native handles, React elements (`$$typeof`), cycles, accessors,
|
|
9
|
+
* non-enumerable properties, and non-finite numbers. Errors are reported
|
|
10
|
+
* with `Event "<name>" payload invalid at <path>`.
|
|
11
|
+
*
|
|
12
|
+
* The clone is frozen deeply so callers cannot mutate the staged envelope.
|
|
13
|
+
*/
|
|
14
|
+
export declare function cloneAndValidatePayload(payload: unknown, eventName: string, basePath?: string): unknown;
|
|
15
|
+
export declare const PAYLOAD_LIMITS: {
|
|
16
|
+
readonly MAX_PAYLOAD_NODES: 512;
|
|
17
|
+
readonly MAX_PAYLOAD_DEPTH: 10;
|
|
18
|
+
readonly MAX_PAYLOAD_STRING_LENGTH: 4096;
|
|
19
|
+
readonly MAX_PAYLOAD_ARRAY_LENGTH: 256;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../src/events/payload.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,SAAY,GACnB,OAAO,CA0MT;AAED,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../../src/events/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAqBpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAWjE"}
|