@nice2dev/game-engine 0.1.0
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 +33 -0
- package/LICENSE +21 -0
- package/README.md +105 -0
- package/dist/cjs/accessibility/Accessibility.js +162 -0
- package/dist/cjs/accessibility/Accessibility.js.map +1 -0
- package/dist/cjs/ai/AI.js +321 -0
- package/dist/cjs/ai/AI.js.map +1 -0
- package/dist/cjs/animation/Animation.js +233 -0
- package/dist/cjs/animation/Animation.js.map +1 -0
- package/dist/cjs/audio/AudioAdvanced.js +262 -0
- package/dist/cjs/audio/AudioAdvanced.js.map +1 -0
- package/dist/cjs/audio/AudioManager.js +248 -0
- package/dist/cjs/audio/AudioManager.js.map +1 -0
- package/dist/cjs/core/EventBus.js +63 -0
- package/dist/cjs/core/EventBus.js.map +1 -0
- package/dist/cjs/core/GameClock.js +70 -0
- package/dist/cjs/core/GameClock.js.map +1 -0
- package/dist/cjs/core/GameConfig.js +86 -0
- package/dist/cjs/core/GameConfig.js.map +1 -0
- package/dist/cjs/core/GameLoop.js +93 -0
- package/dist/cjs/core/GameLoop.js.map +1 -0
- package/dist/cjs/core/ServiceLocator.js +73 -0
- package/dist/cjs/core/ServiceLocator.js.map +1 -0
- package/dist/cjs/core/Validation.js +119 -0
- package/dist/cjs/core/Validation.js.map +1 -0
- package/dist/cjs/core/math.js +116 -0
- package/dist/cjs/core/math.js.map +1 -0
- package/dist/cjs/devtools/DevTools.js +560 -0
- package/dist/cjs/devtools/DevTools.js.map +1 -0
- package/dist/cjs/devtools/DeveloperExperience.js +562 -0
- package/dist/cjs/devtools/DeveloperExperience.js.map +1 -0
- package/dist/cjs/docs/DocGenerator.js +357 -0
- package/dist/cjs/docs/DocGenerator.js.map +1 -0
- package/dist/cjs/ecs/World.js +280 -0
- package/dist/cjs/ecs/World.js.map +1 -0
- package/dist/cjs/editor/AdvancedEditor.js +149 -0
- package/dist/cjs/editor/AdvancedEditor.js.map +1 -0
- package/dist/cjs/editor/AssetManager.js +190 -0
- package/dist/cjs/editor/AssetManager.js.map +1 -0
- package/dist/cjs/editor/DebugTools.js +187 -0
- package/dist/cjs/editor/DebugTools.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +361 -0
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -0
- package/dist/cjs/editor/SceneEditor.js +223 -0
- package/dist/cjs/editor/SceneEditor.js.map +1 -0
- package/dist/cjs/engine/NiceGameEngine.js +172 -0
- package/dist/cjs/engine/NiceGameEngine.js.map +1 -0
- package/dist/cjs/enterprise/Enterprise.js +258 -0
- package/dist/cjs/enterprise/Enterprise.js.map +1 -0
- package/dist/cjs/i18n/I18n.js +634 -0
- package/dist/cjs/i18n/I18n.js.map +1 -0
- package/dist/cjs/i18n/useTranslation.js +100 -0
- package/dist/cjs/i18n/useTranslation.js.map +1 -0
- package/dist/cjs/index.js +526 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/input/GamepadNavigation.js +181 -0
- package/dist/cjs/input/GamepadNavigation.js.map +1 -0
- package/dist/cjs/input/InputManager.js +404 -0
- package/dist/cjs/input/InputManager.js.map +1 -0
- package/dist/cjs/input/useGamepads.js +86 -0
- package/dist/cjs/input/useGamepads.js.map +1 -0
- package/dist/cjs/kids/KidMode.js +670 -0
- package/dist/cjs/kids/KidMode.js.map +1 -0
- package/dist/cjs/kids/KidTools.js +533 -0
- package/dist/cjs/kids/KidTools.js.map +1 -0
- package/dist/cjs/monetization/Monetization.js +197 -0
- package/dist/cjs/monetization/Monetization.js.map +1 -0
- package/dist/cjs/multiplayer/LocalMultiplayer.js +288 -0
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -0
- package/dist/cjs/multiplayer/MiniGameTypes.js +70 -0
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -0
- package/dist/cjs/network/MultiplayerTransport.js +109 -0
- package/dist/cjs/network/MultiplayerTransport.js.map +1 -0
- package/dist/cjs/network/Networking.js +569 -0
- package/dist/cjs/network/Networking.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js +32 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +51 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +46 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +18 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js +145 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +161 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +56 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +11 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +52 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +576 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +956 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +149 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +124 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js +17 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +188 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +199 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +108 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js +38 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +24 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js +264 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +160 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +88 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js +50 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +6 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
- package/dist/cjs/pathfinding/Pathfinding.js +255 -0
- package/dist/cjs/pathfinding/Pathfinding.js.map +1 -0
- package/dist/cjs/performance/BenchmarkSuite.js +318 -0
- package/dist/cjs/performance/BenchmarkSuite.js.map +1 -0
- package/dist/cjs/performance/Performance.js +180 -0
- package/dist/cjs/performance/Performance.js.map +1 -0
- package/dist/cjs/performance/PerformanceAdvanced.js +628 -0
- package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -0
- package/dist/cjs/physics/PhysicsAdvanced.js +432 -0
- package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -0
- package/dist/cjs/physics/PhysicsEngine2D.js +445 -0
- package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -0
- package/dist/cjs/plugins/PluginSDK.js +488 -0
- package/dist/cjs/plugins/PluginSDK.js.map +1 -0
- package/dist/cjs/plugins/PluginTestKit.js +368 -0
- package/dist/cjs/plugins/PluginTestKit.js.map +1 -0
- package/dist/cjs/procedural/Procedural.js +288 -0
- package/dist/cjs/procedural/Procedural.js.map +1 -0
- package/dist/cjs/procedural/WorldBuilding.js +246 -0
- package/dist/cjs/procedural/WorldBuilding.js.map +1 -0
- package/dist/cjs/release/MobileExport.js +149 -0
- package/dist/cjs/release/MobileExport.js.map +1 -0
- package/dist/cjs/release/Release.js +151 -0
- package/dist/cjs/release/Release.js.map +1 -0
- package/dist/cjs/rendering/Camera2D.js +129 -0
- package/dist/cjs/rendering/Camera2D.js.map +1 -0
- package/dist/cjs/rendering/Renderer2D.js +337 -0
- package/dist/cjs/rendering/Renderer2D.js.map +1 -0
- package/dist/cjs/runtime3d/Runtime3D.js +381 -0
- package/dist/cjs/runtime3d/Runtime3D.js.map +1 -0
- package/dist/cjs/runtime3d/SceneEditor3D.js +316 -0
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -0
- package/dist/cjs/scene/SceneManager.js +186 -0
- package/dist/cjs/scene/SceneManager.js.map +1 -0
- package/dist/cjs/scripting/NodeGraph.js +573 -0
- package/dist/cjs/scripting/NodeGraph.js.map +1 -0
- package/dist/cjs/social/Social.js +91 -0
- package/dist/cjs/social/Social.js.map +1 -0
- package/dist/cjs/templates/ActionTemplates.js +229 -0
- package/dist/cjs/templates/ActionTemplates.js.map +1 -0
- package/dist/cjs/templates/PartyTemplates.js +221 -0
- package/dist/cjs/templates/PartyTemplates.js.map +1 -0
- package/dist/cjs/templates/PuzzleTemplates.js +283 -0
- package/dist/cjs/templates/PuzzleTemplates.js.map +1 -0
- package/dist/cjs/templates/RPGTemplates.js +209 -0
- package/dist/cjs/templates/RPGTemplates.js.map +1 -0
- package/dist/cjs/templates/SportsTemplates.js +272 -0
- package/dist/cjs/templates/SportsTemplates.js.map +1 -0
- package/dist/cjs/templates/StrategyTemplates.js +173 -0
- package/dist/cjs/templates/StrategyTemplates.js.map +1 -0
- package/dist/cjs/templates/WaveDefense.js +470 -0
- package/dist/cjs/templates/WaveDefense.js.map +1 -0
- package/dist/cjs/tilemap/Tilemap.js +208 -0
- package/dist/cjs/tilemap/Tilemap.js.map +1 -0
- package/dist/cjs/tutorials/TutorialBranching.js +392 -0
- package/dist/cjs/tutorials/TutorialBranching.js.map +1 -0
- package/dist/cjs/tutorials/TutorialEngine.js +903 -0
- package/dist/cjs/tutorials/TutorialEngine.js.map +1 -0
- package/dist/cjs/tutorials/TutorialOverlay.js +602 -0
- package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +816 -0
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +741 -0
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +1 -0
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +786 -0
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +1 -0
- package/dist/cjs/ui/GameUI.js +312 -0
- package/dist/cjs/ui/GameUI.js.map +1 -0
- package/dist/cjs/xr/ARVR.js +197 -0
- package/dist/cjs/xr/ARVR.js.map +1 -0
- package/dist/esm/accessibility/Accessibility.js +153 -0
- package/dist/esm/accessibility/Accessibility.js.map +1 -0
- package/dist/esm/ai/AI.js +302 -0
- package/dist/esm/ai/AI.js.map +1 -0
- package/dist/esm/animation/Animation.js +227 -0
- package/dist/esm/animation/Animation.js.map +1 -0
- package/dist/esm/audio/AudioAdvanced.js +243 -0
- package/dist/esm/audio/AudioAdvanced.js.map +1 -0
- package/dist/esm/audio/AudioManager.js +246 -0
- package/dist/esm/audio/AudioManager.js.map +1 -0
- package/dist/esm/core/EventBus.js +61 -0
- package/dist/esm/core/EventBus.js.map +1 -0
- package/dist/esm/core/GameClock.js +68 -0
- package/dist/esm/core/GameClock.js.map +1 -0
- package/dist/esm/core/GameConfig.js +80 -0
- package/dist/esm/core/GameConfig.js.map +1 -0
- package/dist/esm/core/GameLoop.js +91 -0
- package/dist/esm/core/GameLoop.js.map +1 -0
- package/dist/esm/core/ServiceLocator.js +70 -0
- package/dist/esm/core/ServiceLocator.js.map +1 -0
- package/dist/esm/core/Validation.js +108 -0
- package/dist/esm/core/Validation.js.map +1 -0
- package/dist/esm/core/math.js +114 -0
- package/dist/esm/core/math.js.map +1 -0
- package/dist/esm/devtools/DevTools.js +555 -0
- package/dist/esm/devtools/DevTools.js.map +1 -0
- package/dist/esm/devtools/DeveloperExperience.js +547 -0
- package/dist/esm/devtools/DeveloperExperience.js.map +1 -0
- package/dist/esm/docs/DocGenerator.js +353 -0
- package/dist/esm/docs/DocGenerator.js.map +1 -0
- package/dist/esm/ecs/World.js +276 -0
- package/dist/esm/ecs/World.js.map +1 -0
- package/dist/esm/editor/AdvancedEditor.js +141 -0
- package/dist/esm/editor/AdvancedEditor.js.map +1 -0
- package/dist/esm/editor/AssetManager.js +188 -0
- package/dist/esm/editor/AssetManager.js.map +1 -0
- package/dist/esm/editor/DebugTools.js +179 -0
- package/dist/esm/editor/DebugTools.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +355 -0
- package/dist/esm/editor/NiceGameEditor.js.map +1 -0
- package/dist/esm/editor/SceneEditor.js +209 -0
- package/dist/esm/editor/SceneEditor.js.map +1 -0
- package/dist/esm/engine/NiceGameEngine.js +170 -0
- package/dist/esm/engine/NiceGameEngine.js.map +1 -0
- package/dist/esm/enterprise/Enterprise.js +246 -0
- package/dist/esm/enterprise/Enterprise.js.map +1 -0
- package/dist/esm/i18n/I18n.js +622 -0
- package/dist/esm/i18n/I18n.js.map +1 -0
- package/dist/esm/i18n/useTranslation.js +95 -0
- package/dist/esm/i18n/useTranslation.js.map +1 -0
- package/dist/esm/index.js +71 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/input/GamepadNavigation.js +178 -0
- package/dist/esm/input/GamepadNavigation.js.map +1 -0
- package/dist/esm/input/InputManager.js +399 -0
- package/dist/esm/input/InputManager.js.map +1 -0
- package/dist/esm/input/useGamepads.js +83 -0
- package/dist/esm/input/useGamepads.js.map +1 -0
- package/dist/esm/kids/KidMode.js +663 -0
- package/dist/esm/kids/KidMode.js.map +1 -0
- package/dist/esm/kids/KidTools.js +529 -0
- package/dist/esm/kids/KidTools.js.map +1 -0
- package/dist/esm/monetization/Monetization.js +186 -0
- package/dist/esm/monetization/Monetization.js.map +1 -0
- package/dist/esm/multiplayer/LocalMultiplayer.js +284 -0
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -0
- package/dist/esm/multiplayer/MiniGameTypes.js +60 -0
- package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -0
- package/dist/esm/network/MultiplayerTransport.js +106 -0
- package/dist/esm/network/MultiplayerTransport.js.map +1 -0
- package/dist/esm/network/Networking.js +561 -0
- package/dist/esm/network/Networking.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js +30 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +49 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +44 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +16 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js +136 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +159 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +54 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +9 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +49 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +573 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +954 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +147 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +122 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js +15 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +186 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +197 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +106 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js +36 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +22 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js +249 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +158 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +86 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js +13 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +4 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
- package/dist/esm/pathfinding/Pathfinding.js +250 -0
- package/dist/esm/pathfinding/Pathfinding.js.map +1 -0
- package/dist/esm/performance/BenchmarkSuite.js +315 -0
- package/dist/esm/performance/BenchmarkSuite.js.map +1 -0
- package/dist/esm/performance/Performance.js +171 -0
- package/dist/esm/performance/Performance.js.map +1 -0
- package/dist/esm/performance/PerformanceAdvanced.js +620 -0
- package/dist/esm/performance/PerformanceAdvanced.js.map +1 -0
- package/dist/esm/physics/PhysicsAdvanced.js +417 -0
- package/dist/esm/physics/PhysicsAdvanced.js.map +1 -0
- package/dist/esm/physics/PhysicsEngine2D.js +442 -0
- package/dist/esm/physics/PhysicsEngine2D.js.map +1 -0
- package/dist/esm/plugins/PluginSDK.js +484 -0
- package/dist/esm/plugins/PluginSDK.js.map +1 -0
- package/dist/esm/plugins/PluginTestKit.js +359 -0
- package/dist/esm/plugins/PluginTestKit.js.map +1 -0
- package/dist/esm/procedural/Procedural.js +282 -0
- package/dist/esm/procedural/Procedural.js.map +1 -0
- package/dist/esm/procedural/WorldBuilding.js +225 -0
- package/dist/esm/procedural/WorldBuilding.js.map +1 -0
- package/dist/esm/release/MobileExport.js +142 -0
- package/dist/esm/release/MobileExport.js.map +1 -0
- package/dist/esm/release/Release.js +141 -0
- package/dist/esm/release/Release.js.map +1 -0
- package/dist/esm/rendering/Camera2D.js +127 -0
- package/dist/esm/rendering/Camera2D.js.map +1 -0
- package/dist/esm/rendering/Renderer2D.js +334 -0
- package/dist/esm/rendering/Renderer2D.js.map +1 -0
- package/dist/esm/runtime3d/Runtime3D.js +371 -0
- package/dist/esm/runtime3d/Runtime3D.js.map +1 -0
- package/dist/esm/runtime3d/SceneEditor3D.js +299 -0
- package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -0
- package/dist/esm/scene/SceneManager.js +184 -0
- package/dist/esm/scene/SceneManager.js.map +1 -0
- package/dist/esm/scripting/NodeGraph.js +568 -0
- package/dist/esm/scripting/NodeGraph.js.map +1 -0
- package/dist/esm/social/Social.js +85 -0
- package/dist/esm/social/Social.js.map +1 -0
- package/dist/esm/templates/ActionTemplates.js +217 -0
- package/dist/esm/templates/ActionTemplates.js.map +1 -0
- package/dist/esm/templates/PartyTemplates.js +204 -0
- package/dist/esm/templates/PartyTemplates.js.map +1 -0
- package/dist/esm/templates/PuzzleTemplates.js +267 -0
- package/dist/esm/templates/PuzzleTemplates.js.map +1 -0
- package/dist/esm/templates/RPGTemplates.js +196 -0
- package/dist/esm/templates/RPGTemplates.js.map +1 -0
- package/dist/esm/templates/SportsTemplates.js +257 -0
- package/dist/esm/templates/SportsTemplates.js.map +1 -0
- package/dist/esm/templates/StrategyTemplates.js +157 -0
- package/dist/esm/templates/StrategyTemplates.js.map +1 -0
- package/dist/esm/templates/WaveDefense.js +467 -0
- package/dist/esm/templates/WaveDefense.js.map +1 -0
- package/dist/esm/tilemap/Tilemap.js +205 -0
- package/dist/esm/tilemap/Tilemap.js.map +1 -0
- package/dist/esm/tutorials/TutorialBranching.js +388 -0
- package/dist/esm/tutorials/TutorialBranching.js.map +1 -0
- package/dist/esm/tutorials/TutorialEngine.js +897 -0
- package/dist/esm/tutorials/TutorialEngine.js.map +1 -0
- package/dist/esm/tutorials/TutorialOverlay.js +600 -0
- package/dist/esm/tutorials/TutorialOverlay.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js +810 -0
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js +736 -0
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +1 -0
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js +780 -0
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +1 -0
- package/dist/esm/ui/GameUI.js +310 -0
- package/dist/esm/ui/GameUI.js.map +1 -0
- package/dist/esm/xr/ARVR.js +182 -0
- package/dist/esm/xr/ARVR.js.map +1 -0
- package/dist/types/__tests__/setup.d.ts +1 -0
- package/dist/types/accessibility/Accessibility.d.ts +82 -0
- package/dist/types/accessibility/index.d.ts +1 -0
- package/dist/types/ai/AI.d.ts +140 -0
- package/dist/types/ai/index.d.ts +1 -0
- package/dist/types/animation/Animation.d.ts +90 -0
- package/dist/types/animation/index.d.ts +1 -0
- package/dist/types/audio/AudioAdvanced.d.ts +190 -0
- package/dist/types/audio/AudioManager.d.ts +55 -0
- package/dist/types/audio/index.d.ts +1 -0
- package/dist/types/community/Community.d.ts +112 -0
- package/dist/types/community/index.d.ts +1 -0
- package/dist/types/core/EventBus.d.ts +16 -0
- package/dist/types/core/GameClock.d.ts +29 -0
- package/dist/types/core/GameConfig.d.ts +20 -0
- package/dist/types/core/GameLoop.d.ts +32 -0
- package/dist/types/core/ServiceLocator.d.ts +36 -0
- package/dist/types/core/TypeSafety.d.ts +190 -0
- package/dist/types/core/Validation.d.ts +24 -0
- package/dist/types/core/index.d.ts +7 -0
- package/dist/types/core/math.d.ts +32 -0
- package/dist/types/core/types.d.ts +130 -0
- package/dist/types/devtools/AssetStore.d.ts +133 -0
- package/dist/types/devtools/DevTools.d.ts +217 -0
- package/dist/types/devtools/DeveloperExperience.d.ts +123 -0
- package/dist/types/devtools/index.d.ts +3 -0
- package/dist/types/docs/APIPlayground.d.ts +26 -0
- package/dist/types/docs/Cookbook.d.ts +18 -0
- package/dist/types/docs/DocGenerator.d.ts +83 -0
- package/dist/types/docs/Guides.d.ts +18 -0
- package/dist/types/docs/index.d.ts +4 -0
- package/dist/types/ecs/World.d.ts +219 -0
- package/dist/types/ecs/index.d.ts +1 -0
- package/dist/types/editor/AdvancedEditor.d.ts +267 -0
- package/dist/types/editor/AssetManager.d.ts +45 -0
- package/dist/types/editor/DebugTools.d.ts +74 -0
- package/dist/types/editor/NiceGameEditor.d.ts +115 -0
- package/dist/types/editor/SceneEditor.d.ts +37 -0
- package/dist/types/editor/index.d.ts +8 -0
- package/dist/types/engine/NiceGameEngine.d.ts +53 -0
- package/dist/types/engine/index.d.ts +2 -0
- package/dist/types/enterprise/Enterprise.d.ts +217 -0
- package/dist/types/enterprise/index.d.ts +1 -0
- package/dist/types/epic/index.d.ts +10 -0
- package/dist/types/i18n/I18n.d.ts +107 -0
- package/dist/types/i18n/index.d.ts +2 -0
- package/dist/types/i18n/useTranslation.d.ts +74 -0
- package/dist/types/index.d.ts +127 -0
- package/dist/types/input/GamepadNavigation.d.ts +34 -0
- package/dist/types/input/InputManager.d.ts +77 -0
- package/dist/types/input/index.d.ts +3 -0
- package/dist/types/input/useGamepads.d.ts +39 -0
- package/dist/types/kids/KidMode.d.ts +207 -0
- package/dist/types/kids/KidTools.d.ts +135 -0
- package/dist/types/kids/index.d.ts +2 -0
- package/dist/types/legendary/index.d.ts +57 -0
- package/dist/types/monetization/Monetization.d.ts +224 -0
- package/dist/types/monetization/index.d.ts +1 -0
- package/dist/types/multiplayer/LocalMultiplayer.d.ts +61 -0
- package/dist/types/multiplayer/MiniGameTypes.d.ts +70 -0
- package/dist/types/multiplayer/index.d.ts +3 -0
- package/dist/types/network/MultiplayerTransport.d.ts +71 -0
- package/dist/types/network/Networking.d.ts +199 -0
- package/dist/types/network/index.d.ts +2 -0
- package/dist/types/pathfinding/Pathfinding.d.ts +42 -0
- package/dist/types/pathfinding/index.d.ts +1 -0
- package/dist/types/performance/AssetCompression.d.ts +137 -0
- package/dist/types/performance/BenchmarkSuite.d.ts +99 -0
- package/dist/types/performance/Performance.d.ts +87 -0
- package/dist/types/performance/PerformanceAdvanced.d.ts +220 -0
- package/dist/types/performance/WASMModules.d.ts +65 -0
- package/dist/types/performance/WebGPUCompute.d.ts +164 -0
- package/dist/types/performance/index.d.ts +1 -0
- package/dist/types/physics/PhysicsAdvanced.d.ts +148 -0
- package/dist/types/physics/PhysicsEngine2D.d.ts +66 -0
- package/dist/types/physics/index.d.ts +1 -0
- package/dist/types/plugins/PluginSDK.d.ts +134 -0
- package/dist/types/plugins/PluginTestKit.d.ts +107 -0
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/procedural/Procedural.d.ts +90 -0
- package/dist/types/procedural/WorldBuilding.d.ts +200 -0
- package/dist/types/procedural/index.d.ts +2 -0
- package/dist/types/release/MobileExport.d.ts +218 -0
- package/dist/types/release/Release.d.ts +81 -0
- package/dist/types/release/index.d.ts +1 -0
- package/dist/types/rendering/Camera2D.d.ts +39 -0
- package/dist/types/rendering/Renderer2D.d.ts +41 -0
- package/dist/types/rendering/index.d.ts +2 -0
- package/dist/types/runtime3d/Runtime3D.d.ts +259 -0
- package/dist/types/runtime3d/SceneEditor3D.d.ts +186 -0
- package/dist/types/runtime3d/index.d.ts +2 -0
- package/dist/types/scene/SceneManager.d.ts +59 -0
- package/dist/types/scene/index.d.ts +2 -0
- package/dist/types/scripting/NodeGraph.d.ts +84 -0
- package/dist/types/scripting/index.d.ts +2 -0
- package/dist/types/social/Social.d.ts +245 -0
- package/dist/types/social/index.d.ts +1 -0
- package/dist/types/templates/ActionTemplates.d.ts +173 -0
- package/dist/types/templates/PartyTemplates.d.ts +195 -0
- package/dist/types/templates/PuzzleTemplates.d.ts +127 -0
- package/dist/types/templates/RPGTemplates.d.ts +210 -0
- package/dist/types/templates/SportsTemplates.d.ts +162 -0
- package/dist/types/templates/StrategyTemplates.d.ts +264 -0
- package/dist/types/templates/WaveDefense.d.ts +92 -0
- package/dist/types/templates/index.d.ts +2 -0
- package/dist/types/tilemap/Tilemap.d.ts +66 -0
- package/dist/types/tilemap/index.d.ts +1 -0
- package/dist/types/tutorials/TutorialBranching.d.ts +132 -0
- package/dist/types/tutorials/TutorialEditor.d.ts +43 -0
- package/dist/types/tutorials/TutorialEngine.d.ts +237 -0
- package/dist/types/tutorials/TutorialOverlay.d.ts +79 -0
- package/dist/types/tutorials/VoiceNarration.d.ts +75 -0
- package/dist/types/tutorials/content/Tutorials_T04.d.ts +3 -0
- package/dist/types/tutorials/content/Tutorials_T05_T08.d.ts +6 -0
- package/dist/types/tutorials/content/Tutorials_T09_T11.d.ts +5 -0
- package/dist/types/tutorials/content/Tutorials_T12_T15.d.ts +6 -0
- package/dist/types/tutorials/content/UITutorials.d.ts +14 -0
- package/dist/types/tutorials/content/index.d.ts +5 -0
- package/dist/types/tutorials/index.d.ts +6 -0
- package/dist/types/ui/GameUI.d.ts +97 -0
- package/dist/types/ui/index.d.ts +2 -0
- package/dist/types/xr/ARVR.d.ts +252 -0
- package/dist/types/xr/index.d.ts +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { EventBus } from '../core/EventBus';
|
|
2
|
+
import type { Vec2, EntityId } from '../core/types';
|
|
3
|
+
export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'failed';
|
|
4
|
+
export interface PeerInfo {
|
|
5
|
+
peerId: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
state: ConnectionState;
|
|
8
|
+
latencyMs: number;
|
|
9
|
+
/** DataChannel reference */
|
|
10
|
+
channel: RTCDataChannel | null;
|
|
11
|
+
connection: RTCPeerConnection | null;
|
|
12
|
+
}
|
|
13
|
+
export interface SignalingMessage {
|
|
14
|
+
type: 'offer' | 'answer' | 'ice-candidate' | 'join' | 'leave' | 'room-info';
|
|
15
|
+
from: string;
|
|
16
|
+
to?: string;
|
|
17
|
+
roomId?: string;
|
|
18
|
+
payload: unknown;
|
|
19
|
+
}
|
|
20
|
+
export type SignalingTransport = {
|
|
21
|
+
send(msg: SignalingMessage): void;
|
|
22
|
+
onMessage: ((msg: SignalingMessage) => void) | null;
|
|
23
|
+
connect(url: string): Promise<void>;
|
|
24
|
+
disconnect(): void;
|
|
25
|
+
};
|
|
26
|
+
/** Default WebSocket-based signaling transport. */
|
|
27
|
+
export declare function createWebSocketSignaling(): SignalingTransport;
|
|
28
|
+
export interface RTCConfig {
|
|
29
|
+
iceServers?: RTCIceServer[];
|
|
30
|
+
dataChannelLabel?: string;
|
|
31
|
+
ordered?: boolean;
|
|
32
|
+
maxRetransmits?: number;
|
|
33
|
+
}
|
|
34
|
+
export declare class PeerManager {
|
|
35
|
+
readonly events: EventBus;
|
|
36
|
+
private peers;
|
|
37
|
+
private localId;
|
|
38
|
+
private rtcConfig;
|
|
39
|
+
private signaling;
|
|
40
|
+
constructor(localId: string, signaling: SignalingTransport, config?: Partial<RTCConfig>);
|
|
41
|
+
get localPeerId(): string;
|
|
42
|
+
get connectedPeers(): PeerInfo[];
|
|
43
|
+
getPeer(id: string): PeerInfo | undefined;
|
|
44
|
+
/** Initiate connection to a remote peer. */
|
|
45
|
+
connectToPeer(remotePeerId: string): Promise<void>;
|
|
46
|
+
private handleSignaling;
|
|
47
|
+
private setupChannel;
|
|
48
|
+
/** Send to a specific peer. */
|
|
49
|
+
sendTo(peerId: string, data: ArrayBuffer | string): void;
|
|
50
|
+
/** Broadcast to all connected peers. */
|
|
51
|
+
broadcast(data: ArrayBuffer | string): void;
|
|
52
|
+
/** Measure latency via ping / pong. */
|
|
53
|
+
ping(peerId: string): void;
|
|
54
|
+
disconnectPeer(peerId: string): void;
|
|
55
|
+
disconnectAll(): void;
|
|
56
|
+
}
|
|
57
|
+
export type NetworkMode = 'offline' | 'host' | 'client' | 'dedicated';
|
|
58
|
+
export interface NetworkIdentity {
|
|
59
|
+
netId: number;
|
|
60
|
+
ownerId: string;
|
|
61
|
+
entityId: EntityId;
|
|
62
|
+
}
|
|
63
|
+
export interface RPCDef {
|
|
64
|
+
name: string;
|
|
65
|
+
/** 'server' = only host runs it, 'client' = everyone, 'owner' = only the owner */
|
|
66
|
+
target: 'server' | 'client' | 'owner';
|
|
67
|
+
}
|
|
68
|
+
export interface SyncVarDef {
|
|
69
|
+
entityId: EntityId;
|
|
70
|
+
component: string;
|
|
71
|
+
property: string;
|
|
72
|
+
/** Interpolate on clients (for transforms). */
|
|
73
|
+
interpolate: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface NetworkMessage {
|
|
76
|
+
type: 'rpc' | 'sync' | 'spawn' | 'destroy' | 'snapshot' | 'input' | 'ping' | 'pong';
|
|
77
|
+
tick: number;
|
|
78
|
+
senderId: string;
|
|
79
|
+
payload: unknown;
|
|
80
|
+
}
|
|
81
|
+
export declare class NetworkManager {
|
|
82
|
+
readonly events: EventBus;
|
|
83
|
+
private _mode;
|
|
84
|
+
private _tick;
|
|
85
|
+
private _tickRate;
|
|
86
|
+
private _tickAccumulator;
|
|
87
|
+
private identities;
|
|
88
|
+
private rpcHandlers;
|
|
89
|
+
private syncVars;
|
|
90
|
+
private _nextNetId;
|
|
91
|
+
peers: PeerManager | null;
|
|
92
|
+
get mode(): NetworkMode;
|
|
93
|
+
get tick(): number;
|
|
94
|
+
get tickRate(): number;
|
|
95
|
+
set tickRate(v: number);
|
|
96
|
+
get isHost(): boolean;
|
|
97
|
+
get isOnline(): boolean;
|
|
98
|
+
/** Start as host or client. */
|
|
99
|
+
start(mode: NetworkMode, peerManager: PeerManager): void;
|
|
100
|
+
stop(): void;
|
|
101
|
+
registerEntity(entityId: EntityId, ownerId: string): NetworkIdentity;
|
|
102
|
+
getIdentity(netId: number): NetworkIdentity | undefined;
|
|
103
|
+
getEntityIdentity(entityId: EntityId): NetworkIdentity | undefined;
|
|
104
|
+
registerRPC(name: string, handler: (senderId: string, args: unknown[]) => void): void;
|
|
105
|
+
callRPC(name: string, args: unknown[], target?: 'server' | 'all' | string): void;
|
|
106
|
+
registerSyncVar(def: SyncVarDef): void;
|
|
107
|
+
update(dt: number): void;
|
|
108
|
+
networkSpawn(entityId: EntityId, prefabName: string, position: Vec2): void;
|
|
109
|
+
networkDestroy(netId: number): void;
|
|
110
|
+
private handleMessage;
|
|
111
|
+
}
|
|
112
|
+
export interface Snapshot {
|
|
113
|
+
tick: number;
|
|
114
|
+
timestamp: number;
|
|
115
|
+
states: Map<number, EntityState>;
|
|
116
|
+
}
|
|
117
|
+
export interface EntityState {
|
|
118
|
+
netId: number;
|
|
119
|
+
position: Vec2;
|
|
120
|
+
rotation: number;
|
|
121
|
+
velocity: Vec2;
|
|
122
|
+
custom: Record<string, unknown>;
|
|
123
|
+
}
|
|
124
|
+
/** Snapshot buffer for interpolation / reconciliation. */
|
|
125
|
+
export declare class SnapshotBuffer {
|
|
126
|
+
private buffer;
|
|
127
|
+
readonly maxSize: number;
|
|
128
|
+
constructor(maxSize?: number);
|
|
129
|
+
push(snapshot: Snapshot): void;
|
|
130
|
+
/** Get two snapshots bracketing the given server time for interpolation. */
|
|
131
|
+
getInterpolationPair(serverTime: number): [Snapshot, Snapshot] | null;
|
|
132
|
+
getLatest(): Snapshot | null;
|
|
133
|
+
getAtTick(tick: number): Snapshot | undefined;
|
|
134
|
+
clear(): void;
|
|
135
|
+
}
|
|
136
|
+
/** Linear interpolation between two entity states. */
|
|
137
|
+
export declare function interpolateState(a: EntityState, b: EntityState, t: number): EntityState;
|
|
138
|
+
/** Client-side prediction: store inputs for reconciliation. */
|
|
139
|
+
export interface PredictionInput {
|
|
140
|
+
tick: number;
|
|
141
|
+
inputActions: Record<string, boolean | number>;
|
|
142
|
+
resultPosition: Vec2;
|
|
143
|
+
}
|
|
144
|
+
export declare class ClientPrediction {
|
|
145
|
+
private pendingInputs;
|
|
146
|
+
addInput(input: PredictionInput): void;
|
|
147
|
+
/** Clear inputs confirmed by server (tick <= serverTick). */
|
|
148
|
+
acknowledge(serverTick: number): void;
|
|
149
|
+
/** Re-apply unconfirmed inputs after server correction. */
|
|
150
|
+
getPendingInputs(): PredictionInput[];
|
|
151
|
+
clear(): void;
|
|
152
|
+
}
|
|
153
|
+
export interface LobbyRoom {
|
|
154
|
+
id: string;
|
|
155
|
+
name: string;
|
|
156
|
+
hostId: string;
|
|
157
|
+
maxPlayers: number;
|
|
158
|
+
currentPlayers: number;
|
|
159
|
+
isPublic: boolean;
|
|
160
|
+
hasPassword: boolean;
|
|
161
|
+
gameMode: string;
|
|
162
|
+
metadata: Record<string, unknown>;
|
|
163
|
+
}
|
|
164
|
+
export interface LobbyPlayer {
|
|
165
|
+
peerId: string;
|
|
166
|
+
displayName: string;
|
|
167
|
+
ready: boolean;
|
|
168
|
+
team: number;
|
|
169
|
+
slot: number;
|
|
170
|
+
}
|
|
171
|
+
export declare class LobbyManager {
|
|
172
|
+
readonly events: EventBus;
|
|
173
|
+
private _room;
|
|
174
|
+
private _players;
|
|
175
|
+
private _localPeerId;
|
|
176
|
+
constructor(localPeerId: string);
|
|
177
|
+
get room(): LobbyRoom | null;
|
|
178
|
+
get players(): LobbyPlayer[];
|
|
179
|
+
get isHost(): boolean;
|
|
180
|
+
get allReady(): boolean;
|
|
181
|
+
/** Create a new room (as host). */
|
|
182
|
+
createRoom(name: string, maxPlayers: number, gameMode: string, isPublic?: boolean): LobbyRoom;
|
|
183
|
+
joinRoom(room: LobbyRoom, displayName: string): void;
|
|
184
|
+
leaveRoom(): void;
|
|
185
|
+
addPlayer(peerId: string, displayName: string): void;
|
|
186
|
+
removePlayer(peerId: string): void;
|
|
187
|
+
setReady(peerId: string, ready: boolean): void;
|
|
188
|
+
setTeam(peerId: string, team: number): void;
|
|
189
|
+
/** Serialize lobby state for broadcasting. */
|
|
190
|
+
toJSON(): {
|
|
191
|
+
room: LobbyRoom;
|
|
192
|
+
players: LobbyPlayer[];
|
|
193
|
+
};
|
|
194
|
+
/** Apply state from host. */
|
|
195
|
+
fromJSON(data: {
|
|
196
|
+
room: LobbyRoom;
|
|
197
|
+
players: LobbyPlayer[];
|
|
198
|
+
}): void;
|
|
199
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Vec2 } from '../core/types';
|
|
2
|
+
export interface PathGrid {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
/** Return true if (x,y) is walkable. */
|
|
6
|
+
isWalkable(x: number, y: number): boolean;
|
|
7
|
+
/** Movement cost to enter (x,y). Default = 1. */
|
|
8
|
+
cost?(x: number, y: number): number;
|
|
9
|
+
}
|
|
10
|
+
export interface PathfinderOptions {
|
|
11
|
+
/** Allow diagonal movement (default true). */
|
|
12
|
+
allowDiagonals?: boolean;
|
|
13
|
+
/** Maximum iterations before giving up (default 2000). */
|
|
14
|
+
maxIterations?: number;
|
|
15
|
+
/** Heuristic weight – higher = faster but less optimal (default 1). */
|
|
16
|
+
heuristicWeight?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function findPath(grid: PathGrid, startX: number, startY: number, endX: number, endY: number, options?: PathfinderOptions): Vec2[] | null;
|
|
19
|
+
export declare function smoothPath(path: Vec2[], grid: PathGrid): Vec2[];
|
|
20
|
+
export declare class FlowField {
|
|
21
|
+
readonly width: number;
|
|
22
|
+
readonly height: number;
|
|
23
|
+
/** Direction vectors for each cell. */
|
|
24
|
+
readonly directions: Vec2[];
|
|
25
|
+
/** Dijkstra cost for each cell (Infinity = unreachable). */
|
|
26
|
+
readonly costs: Float32Array;
|
|
27
|
+
constructor(width: number, height: number);
|
|
28
|
+
/** Generate flow field towards target (tileX, tileY). */
|
|
29
|
+
generate(grid: PathGrid, targetX: number, targetY: number): void;
|
|
30
|
+
getDirection(tileX: number, tileY: number): Vec2;
|
|
31
|
+
getCost(tileX: number, tileY: number): number;
|
|
32
|
+
}
|
|
33
|
+
export interface NavPolygon {
|
|
34
|
+
id: number;
|
|
35
|
+
vertices: Vec2[];
|
|
36
|
+
neighbors: number[];
|
|
37
|
+
}
|
|
38
|
+
export interface NavMesh {
|
|
39
|
+
polygons: NavPolygon[];
|
|
40
|
+
}
|
|
41
|
+
/** Find which polygon contains a point (simple point-in-polygon test). */
|
|
42
|
+
export declare function findContainingPolygon(mesh: NavMesh, point: Vec2): NavPolygon | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Pathfinding';
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
export type AssetType = 'texture' | 'audio' | 'mesh' | 'animation' | 'font' | 'data';
|
|
2
|
+
export interface CompressionStats {
|
|
3
|
+
originalSize: number;
|
|
4
|
+
compressedSize: number;
|
|
5
|
+
ratio: number;
|
|
6
|
+
duration: number;
|
|
7
|
+
format: string;
|
|
8
|
+
}
|
|
9
|
+
export interface TextureCompressionConfig {
|
|
10
|
+
format: 'webp' | 'avif' | 'basis' | 'ktx2' | 'png';
|
|
11
|
+
quality: number;
|
|
12
|
+
maxWidth: number;
|
|
13
|
+
maxHeight: number;
|
|
14
|
+
generateMipmaps: boolean;
|
|
15
|
+
premultiplyAlpha: boolean;
|
|
16
|
+
powerOfTwo: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface AudioCompressionConfig {
|
|
19
|
+
format: 'opus' | 'aac' | 'mp3' | 'ogg';
|
|
20
|
+
bitrate: number;
|
|
21
|
+
sampleRate: number;
|
|
22
|
+
channels: 1 | 2;
|
|
23
|
+
normalize: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface MeshCompressionConfig {
|
|
26
|
+
quantizationBits: number;
|
|
27
|
+
mergeVertices: boolean;
|
|
28
|
+
stripNormals: boolean;
|
|
29
|
+
stripUVs: boolean;
|
|
30
|
+
draco: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface AssetManifest {
|
|
33
|
+
version: number;
|
|
34
|
+
assets: AssetEntry[];
|
|
35
|
+
totalOriginalSize: number;
|
|
36
|
+
totalCompressedSize: number;
|
|
37
|
+
compressionRatio: number;
|
|
38
|
+
}
|
|
39
|
+
export interface AssetEntry {
|
|
40
|
+
id: string;
|
|
41
|
+
type: AssetType;
|
|
42
|
+
originalPath: string;
|
|
43
|
+
compressedPath: string;
|
|
44
|
+
originalSize: number;
|
|
45
|
+
compressedSize: number;
|
|
46
|
+
format: string;
|
|
47
|
+
hash: string;
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
export interface StreamingConfig {
|
|
51
|
+
chunkSize: number;
|
|
52
|
+
concurrency: number;
|
|
53
|
+
priorityLevels: number;
|
|
54
|
+
preloadDistance: number;
|
|
55
|
+
}
|
|
56
|
+
export declare class TextureCompressor {
|
|
57
|
+
private config;
|
|
58
|
+
constructor(config?: Partial<TextureCompressionConfig>);
|
|
59
|
+
compress(imageData: ImageData | HTMLCanvasElement): Promise<{
|
|
60
|
+
blob: Blob;
|
|
61
|
+
stats: CompressionStats;
|
|
62
|
+
}>;
|
|
63
|
+
generateMipmaps(canvas: HTMLCanvasElement): Promise<HTMLCanvasElement[]>;
|
|
64
|
+
private resizeCanvas;
|
|
65
|
+
private ensurePowerOfTwo;
|
|
66
|
+
private getMimeType;
|
|
67
|
+
}
|
|
68
|
+
export declare class AudioCompressor {
|
|
69
|
+
private config;
|
|
70
|
+
constructor(config?: Partial<AudioCompressionConfig>);
|
|
71
|
+
compress(audioBuffer: AudioBuffer): Promise<{
|
|
72
|
+
blob: Blob;
|
|
73
|
+
stats: CompressionStats;
|
|
74
|
+
}>;
|
|
75
|
+
private resample;
|
|
76
|
+
private normalizeAudio;
|
|
77
|
+
private encodeWAV;
|
|
78
|
+
private writeString;
|
|
79
|
+
}
|
|
80
|
+
export declare class MeshCompressor {
|
|
81
|
+
private config;
|
|
82
|
+
constructor(config?: Partial<MeshCompressionConfig>);
|
|
83
|
+
compress(vertices: Float32Array, indices: Uint32Array, normals?: Float32Array, uvs?: Float32Array): {
|
|
84
|
+
vertices: Float32Array | Int16Array;
|
|
85
|
+
indices: Uint32Array | Uint16Array;
|
|
86
|
+
normals?: Float32Array | Int8Array;
|
|
87
|
+
uvs?: Float32Array | Uint16Array;
|
|
88
|
+
stats: CompressionStats;
|
|
89
|
+
};
|
|
90
|
+
private quantizeVertices;
|
|
91
|
+
private quantizeNormals;
|
|
92
|
+
private quantizeUVs;
|
|
93
|
+
private mergeVertices;
|
|
94
|
+
}
|
|
95
|
+
export declare class AssetStreamer {
|
|
96
|
+
private config;
|
|
97
|
+
private activeDownloads;
|
|
98
|
+
private queue;
|
|
99
|
+
private cache;
|
|
100
|
+
constructor(config?: Partial<StreamingConfig>);
|
|
101
|
+
load(url: string, priority?: number): Promise<ArrayBuffer>;
|
|
102
|
+
private processQueue;
|
|
103
|
+
preload(urls: string[], priority?: number): Promise<void[]>;
|
|
104
|
+
evict(url: string): boolean;
|
|
105
|
+
clearCache(): void;
|
|
106
|
+
get cacheSize(): number;
|
|
107
|
+
get pendingDownloads(): number;
|
|
108
|
+
}
|
|
109
|
+
export declare class AssetPipeline {
|
|
110
|
+
private textureCompressor;
|
|
111
|
+
private audioCompressor;
|
|
112
|
+
private meshCompressor;
|
|
113
|
+
private streamer;
|
|
114
|
+
private manifest;
|
|
115
|
+
constructor(config?: {
|
|
116
|
+
texture?: Partial<TextureCompressionConfig>;
|
|
117
|
+
audio?: Partial<AudioCompressionConfig>;
|
|
118
|
+
mesh?: Partial<MeshCompressionConfig>;
|
|
119
|
+
streaming?: Partial<StreamingConfig>;
|
|
120
|
+
});
|
|
121
|
+
getTextureCompressor(): TextureCompressor;
|
|
122
|
+
getAudioCompressor(): AudioCompressor;
|
|
123
|
+
getMeshCompressor(): MeshCompressor;
|
|
124
|
+
getStreamer(): AssetStreamer;
|
|
125
|
+
getManifest(): Readonly<AssetManifest>;
|
|
126
|
+
addToManifest(entry: AssetEntry): void;
|
|
127
|
+
exportManifest(): string;
|
|
128
|
+
getCompressionSummary(): {
|
|
129
|
+
totalAssets: number;
|
|
130
|
+
byType: Record<string, {
|
|
131
|
+
count: number;
|
|
132
|
+
savedBytes: number;
|
|
133
|
+
}>;
|
|
134
|
+
totalSavedBytes: number;
|
|
135
|
+
overallRatio: number;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
export interface BenchmarkScenario {
|
|
2
|
+
/** Unique scenario ID. */
|
|
3
|
+
id: string;
|
|
4
|
+
/** Human-readable name. */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Category for grouping. */
|
|
7
|
+
category: 'ecs' | 'rendering' | 'physics' | 'scene' | 'general';
|
|
8
|
+
/** Setup — called once before the benchmark runs. Returns cleanup fn if needed. */
|
|
9
|
+
setup?: () => void | (() => void);
|
|
10
|
+
/** The function to benchmark. Called repeatedly. */
|
|
11
|
+
run: () => void;
|
|
12
|
+
/** Teardown — called after the benchmark finishes. */
|
|
13
|
+
teardown?: () => void;
|
|
14
|
+
/** How many warm-up iterations before measuring. Default: 10 */
|
|
15
|
+
warmup?: number;
|
|
16
|
+
/** How many measured iterations. Default: 100 */
|
|
17
|
+
iterations?: number;
|
|
18
|
+
/** Expected max ms per iteration (for regression checks). */
|
|
19
|
+
budgetMs?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface BenchmarkTimings {
|
|
22
|
+
min: number;
|
|
23
|
+
max: number;
|
|
24
|
+
mean: number;
|
|
25
|
+
median: number;
|
|
26
|
+
p95: number;
|
|
27
|
+
p99: number;
|
|
28
|
+
stdDev: number;
|
|
29
|
+
totalMs: number;
|
|
30
|
+
iterations: number;
|
|
31
|
+
}
|
|
32
|
+
export interface BenchmarkMemory {
|
|
33
|
+
heapUsedBefore: number;
|
|
34
|
+
heapUsedAfter: number;
|
|
35
|
+
heapDelta: number;
|
|
36
|
+
}
|
|
37
|
+
export interface BenchmarkResult {
|
|
38
|
+
scenarioId: string;
|
|
39
|
+
scenarioName: string;
|
|
40
|
+
category: string;
|
|
41
|
+
timings: BenchmarkTimings;
|
|
42
|
+
memory: BenchmarkMemory | null;
|
|
43
|
+
budgetMs: number | null;
|
|
44
|
+
withinBudget: boolean | null;
|
|
45
|
+
timestamp: number;
|
|
46
|
+
}
|
|
47
|
+
export interface BenchmarkReport {
|
|
48
|
+
/** Engine version or label. */
|
|
49
|
+
label: string;
|
|
50
|
+
/** ISO timestamp. */
|
|
51
|
+
date: string;
|
|
52
|
+
/** Platform info. */
|
|
53
|
+
platform: string;
|
|
54
|
+
/** All results. */
|
|
55
|
+
results: BenchmarkResult[];
|
|
56
|
+
/** Summary. */
|
|
57
|
+
summary: {
|
|
58
|
+
totalScenarios: number;
|
|
59
|
+
passed: number;
|
|
60
|
+
failed: number;
|
|
61
|
+
skipped: number;
|
|
62
|
+
totalTimeMs: number;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface RegressionResult {
|
|
66
|
+
scenarioId: string;
|
|
67
|
+
scenarioName: string;
|
|
68
|
+
/** Positive = slower (regression), negative = faster (improvement). */
|
|
69
|
+
meanDeltaPercent: number;
|
|
70
|
+
p95DeltaPercent: number;
|
|
71
|
+
/** Whether it exceeds the threshold. */
|
|
72
|
+
regressed: boolean;
|
|
73
|
+
improved: boolean;
|
|
74
|
+
}
|
|
75
|
+
export declare class BenchmarkRunner {
|
|
76
|
+
private scenarios;
|
|
77
|
+
private results;
|
|
78
|
+
/** Register a benchmark scenario. */
|
|
79
|
+
register(scenario: BenchmarkScenario): void;
|
|
80
|
+
/** Register multiple scenarios. */
|
|
81
|
+
registerAll(scenarios: BenchmarkScenario[]): void;
|
|
82
|
+
/** Run a single scenario. */
|
|
83
|
+
runScenario(id: string): BenchmarkResult | null;
|
|
84
|
+
/** Run all registered scenarios. */
|
|
85
|
+
runAll(): BenchmarkReport;
|
|
86
|
+
/** Run scenarios in a specific category. */
|
|
87
|
+
runCategory(category: BenchmarkScenario['category']): BenchmarkReport;
|
|
88
|
+
/** Generate a full report from collected results. */
|
|
89
|
+
generateReport(label?: string): BenchmarkReport;
|
|
90
|
+
/** Compare two reports for regressions. */
|
|
91
|
+
static compareReports(baseline: BenchmarkReport, current: BenchmarkReport, regressionThresholdPercent?: number): RegressionResult[];
|
|
92
|
+
/** Get last results. */
|
|
93
|
+
getResults(): BenchmarkResult[];
|
|
94
|
+
/** Clear all scenarios and results. */
|
|
95
|
+
clear(): void;
|
|
96
|
+
private calculateTimings;
|
|
97
|
+
private getHeapUsed;
|
|
98
|
+
}
|
|
99
|
+
export declare const BUILTIN_BENCHMARKS: BenchmarkScenario[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export interface Poolable {
|
|
2
|
+
/** Reset the object state for reuse. */
|
|
3
|
+
reset(): void;
|
|
4
|
+
}
|
|
5
|
+
export declare class ObjectPool<T extends Poolable> {
|
|
6
|
+
private pool;
|
|
7
|
+
private active;
|
|
8
|
+
private factory;
|
|
9
|
+
private maxSize;
|
|
10
|
+
constructor(factory: () => T, prewarm?: number, maxSize?: number);
|
|
11
|
+
acquire(): T;
|
|
12
|
+
release(obj: T): void;
|
|
13
|
+
releaseAll(): void;
|
|
14
|
+
activeCount(): number;
|
|
15
|
+
pooledCount(): number;
|
|
16
|
+
totalCount(): number;
|
|
17
|
+
}
|
|
18
|
+
export type AssetPriority = 'critical' | 'high' | 'normal' | 'low';
|
|
19
|
+
export interface StreamRequest {
|
|
20
|
+
id: string;
|
|
21
|
+
url: string;
|
|
22
|
+
priority: AssetPriority;
|
|
23
|
+
loaded: boolean;
|
|
24
|
+
progress: number;
|
|
25
|
+
data: unknown;
|
|
26
|
+
error: string | null;
|
|
27
|
+
}
|
|
28
|
+
export declare class AssetStreamer {
|
|
29
|
+
private queue;
|
|
30
|
+
private loading;
|
|
31
|
+
private loaded;
|
|
32
|
+
private maxConcurrent;
|
|
33
|
+
constructor(maxConcurrent?: number);
|
|
34
|
+
enqueue(id: string, url: string, priority?: AssetPriority): StreamRequest;
|
|
35
|
+
isLoaded(id: string): boolean;
|
|
36
|
+
get(id: string): unknown;
|
|
37
|
+
private processQueue;
|
|
38
|
+
private loadAsset;
|
|
39
|
+
getPendingCount(): number;
|
|
40
|
+
getLoadedCount(): number;
|
|
41
|
+
clear(): void;
|
|
42
|
+
}
|
|
43
|
+
export interface LODLevel {
|
|
44
|
+
/** Max distance for this LOD. */
|
|
45
|
+
distance: number;
|
|
46
|
+
/** Asset or mesh ID. */
|
|
47
|
+
assetId: string;
|
|
48
|
+
/** Vertex reduction factor (1 = full, 0.5 = half polys). */
|
|
49
|
+
quality: number;
|
|
50
|
+
}
|
|
51
|
+
export interface LODGroup {
|
|
52
|
+
entityId: number;
|
|
53
|
+
levels: LODLevel[];
|
|
54
|
+
currentLevel: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function selectLODLevel(group: LODGroup, distance: number): number;
|
|
57
|
+
export declare function updateLODGroups(groups: LODGroup[], cameraPos: {
|
|
58
|
+
x: number;
|
|
59
|
+
y: number;
|
|
60
|
+
z: number;
|
|
61
|
+
}, positions: Map<number, {
|
|
62
|
+
x: number;
|
|
63
|
+
y: number;
|
|
64
|
+
z: number;
|
|
65
|
+
}>): void;
|
|
66
|
+
export interface AABB {
|
|
67
|
+
minX: number;
|
|
68
|
+
minY: number;
|
|
69
|
+
minZ: number;
|
|
70
|
+
maxX: number;
|
|
71
|
+
maxY: number;
|
|
72
|
+
maxZ: number;
|
|
73
|
+
}
|
|
74
|
+
export interface FrustumPlane {
|
|
75
|
+
nx: number;
|
|
76
|
+
ny: number;
|
|
77
|
+
nz: number;
|
|
78
|
+
d: number;
|
|
79
|
+
}
|
|
80
|
+
export declare function aabbInFrustum(aabb: AABB, planes: FrustumPlane[]): boolean;
|
|
81
|
+
/** Simple 2D frustum check for 2D camera views. */
|
|
82
|
+
export declare function rectInView(rx: number, ry: number, rw: number, rh: number, viewX: number, viewY: number, viewW: number, viewH: number): boolean;
|
|
83
|
+
export declare function measureMemory(): {
|
|
84
|
+
heapUsed: number;
|
|
85
|
+
heapTotal: number;
|
|
86
|
+
} | null;
|
|
87
|
+
export declare function formatBytes(bytes: number): string;
|