@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 @@
|
|
|
1
|
+
{"version":3,"file":"XhrHttpClient.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js"],"sourcesContent":["// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map"],"names":["HttpClient","AbortError","isArrayBuffer","HttpResponse","HttpError","LogLevel","TimeoutError"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Errors = require('./Errors.js');
|
|
4
|
+
var HttpClient = require('./HttpClient.js');
|
|
5
|
+
var DefaultHttpClient = require('./DefaultHttpClient.js');
|
|
6
|
+
var HubConnection = require('./HubConnection.js');
|
|
7
|
+
var HubConnectionBuilder = require('./HubConnectionBuilder.js');
|
|
8
|
+
var IHubProtocol = require('./IHubProtocol.js');
|
|
9
|
+
var ILogger = require('./ILogger.js');
|
|
10
|
+
var ITransport = require('./ITransport.js');
|
|
11
|
+
var Loggers = require('./Loggers.js');
|
|
12
|
+
var JsonHubProtocol = require('./JsonHubProtocol.js');
|
|
13
|
+
var Subject = require('./Subject.js');
|
|
14
|
+
var pkgVersion = require('./pkg-version.js');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
exports.AbortError = Errors.AbortError;
|
|
19
|
+
exports.HttpError = Errors.HttpError;
|
|
20
|
+
exports.TimeoutError = Errors.TimeoutError;
|
|
21
|
+
exports.HttpClient = HttpClient.HttpClient;
|
|
22
|
+
exports.HttpResponse = HttpClient.HttpResponse;
|
|
23
|
+
exports.DefaultHttpClient = DefaultHttpClient.DefaultHttpClient;
|
|
24
|
+
exports.HubConnection = HubConnection.HubConnection;
|
|
25
|
+
Object.defineProperty(exports, "HubConnectionState", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return HubConnection.HubConnectionState; }
|
|
28
|
+
});
|
|
29
|
+
exports.HubConnectionBuilder = HubConnectionBuilder.HubConnectionBuilder;
|
|
30
|
+
Object.defineProperty(exports, "MessageType", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () { return IHubProtocol.MessageType; }
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(exports, "LogLevel", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () { return ILogger.LogLevel; }
|
|
37
|
+
});
|
|
38
|
+
Object.defineProperty(exports, "HttpTransportType", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function () { return ITransport.HttpTransportType; }
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "TransferFormat", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () { return ITransport.TransferFormat; }
|
|
45
|
+
});
|
|
46
|
+
exports.NullLogger = Loggers.NullLogger;
|
|
47
|
+
exports.JsonHubProtocol = JsonHubProtocol.JsonHubProtocol;
|
|
48
|
+
exports.Subject = Subject.Subject;
|
|
49
|
+
exports.VERSION = pkgVersion.VERSION;
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkg-version.js","sources":["../../../../../../../../node_modules/@microsoft/signalr/dist/esm/pkg-version.js"],"sourcesContent":["export const VERSION = '10.0.0';\r\n//# sourceMappingURL=pkg-version.js.map"],"names":[],"mappings":";;AAAY,MAAC,OAAO,GAAG;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/* ────────────────────────────────────────────────────────────────
|
|
4
|
+
Pathfinding — A*, grid-based navigation, flow fields
|
|
5
|
+
──────────────────────────────────────────────────────────────── */
|
|
6
|
+
const SQRT2 = Math.SQRT2;
|
|
7
|
+
function heuristic(ax, ay, bx, by, diagonal) {
|
|
8
|
+
if (diagonal) {
|
|
9
|
+
// Octile distance
|
|
10
|
+
const dx = Math.abs(ax - bx);
|
|
11
|
+
const dy = Math.abs(ay - by);
|
|
12
|
+
return dx + dy + (SQRT2 - 2) * Math.min(dx, dy);
|
|
13
|
+
}
|
|
14
|
+
return Math.abs(ax - bx) + Math.abs(ay - by);
|
|
15
|
+
}
|
|
16
|
+
function findPath(grid, startX, startY, endX, endY, options) {
|
|
17
|
+
var _a, _b, _c;
|
|
18
|
+
const diag = (_a = options === null || options === void 0 ? void 0 : options.allowDiagonals) !== null && _a !== void 0 ? _a : true;
|
|
19
|
+
const maxIter = (_b = options === null || options === void 0 ? void 0 : options.maxIterations) !== null && _b !== void 0 ? _b : 2000;
|
|
20
|
+
const weight = (_c = options === null || options === void 0 ? void 0 : options.heuristicWeight) !== null && _c !== void 0 ? _c : 1;
|
|
21
|
+
if (!grid.isWalkable(endX, endY))
|
|
22
|
+
return null;
|
|
23
|
+
const key = (x, y) => y * grid.width + x;
|
|
24
|
+
const start = {
|
|
25
|
+
x: startX, y: startY,
|
|
26
|
+
g: 0,
|
|
27
|
+
h: heuristic(startX, startY, endX, endY, diag) * weight,
|
|
28
|
+
f: 0,
|
|
29
|
+
parent: null,
|
|
30
|
+
};
|
|
31
|
+
start.f = start.g + start.h;
|
|
32
|
+
// Simple binary-heap-backed open set
|
|
33
|
+
const open = [start];
|
|
34
|
+
const closed = new Set();
|
|
35
|
+
const gScores = new Map();
|
|
36
|
+
gScores.set(key(startX, startY), 0);
|
|
37
|
+
const neighbors = diag
|
|
38
|
+
? [[-1, 0, 1], [1, 0, 1], [0, -1, 1], [0, 1, 1], [-1, -1, SQRT2], [1, -1, SQRT2], [-1, 1, SQRT2], [1, 1, SQRT2]]
|
|
39
|
+
: [[-1, 0, 1], [1, 0, 1], [0, -1, 1], [0, 1, 1]];
|
|
40
|
+
let iterations = 0;
|
|
41
|
+
while (open.length > 0 && iterations < maxIter) {
|
|
42
|
+
iterations++;
|
|
43
|
+
// Find node with lowest f
|
|
44
|
+
let bestIdx = 0;
|
|
45
|
+
for (let i = 1; i < open.length; i++) {
|
|
46
|
+
if (open[i].f < open[bestIdx].f)
|
|
47
|
+
bestIdx = i;
|
|
48
|
+
}
|
|
49
|
+
const current = open[bestIdx];
|
|
50
|
+
open[bestIdx] = open[open.length - 1];
|
|
51
|
+
open.pop();
|
|
52
|
+
if (current.x === endX && current.y === endY) {
|
|
53
|
+
return reconstructPath(current);
|
|
54
|
+
}
|
|
55
|
+
const currentKey = key(current.x, current.y);
|
|
56
|
+
closed.add(currentKey);
|
|
57
|
+
for (const [dx, dy, baseCost] of neighbors) {
|
|
58
|
+
const nx = current.x + dx;
|
|
59
|
+
const ny = current.y + dy;
|
|
60
|
+
if (nx < 0 || ny < 0 || nx >= grid.width || ny >= grid.height)
|
|
61
|
+
continue;
|
|
62
|
+
if (!grid.isWalkable(nx, ny))
|
|
63
|
+
continue;
|
|
64
|
+
const nKey = key(nx, ny);
|
|
65
|
+
if (closed.has(nKey))
|
|
66
|
+
continue;
|
|
67
|
+
// Diagonal corner-cutting check
|
|
68
|
+
if (dx !== 0 && dy !== 0) {
|
|
69
|
+
if (!grid.isWalkable(current.x + dx, current.y) || !grid.isWalkable(current.x, current.y + dy)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const moveCost = grid.cost ? grid.cost(nx, ny) : 1;
|
|
74
|
+
const tentativeG = current.g + baseCost * moveCost;
|
|
75
|
+
const prevG = gScores.get(nKey);
|
|
76
|
+
if (prevG !== undefined && tentativeG >= prevG)
|
|
77
|
+
continue;
|
|
78
|
+
gScores.set(nKey, tentativeG);
|
|
79
|
+
const node = {
|
|
80
|
+
x: nx, y: ny,
|
|
81
|
+
g: tentativeG,
|
|
82
|
+
h: heuristic(nx, ny, endX, endY, diag) * weight,
|
|
83
|
+
f: 0,
|
|
84
|
+
parent: current,
|
|
85
|
+
};
|
|
86
|
+
node.f = node.g + node.h;
|
|
87
|
+
open.push(node);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null; // No path found
|
|
91
|
+
}
|
|
92
|
+
function reconstructPath(node) {
|
|
93
|
+
const path = [];
|
|
94
|
+
let current = node;
|
|
95
|
+
while (current) {
|
|
96
|
+
path.push({ x: current.x, y: current.y });
|
|
97
|
+
current = current.parent;
|
|
98
|
+
}
|
|
99
|
+
path.reverse();
|
|
100
|
+
return path;
|
|
101
|
+
}
|
|
102
|
+
/* ── Path Smoothing ───────────────────────────────────────────── */
|
|
103
|
+
function smoothPath(path, grid) {
|
|
104
|
+
if (path.length <= 2)
|
|
105
|
+
return path;
|
|
106
|
+
const result = [path[0]];
|
|
107
|
+
let current = 0;
|
|
108
|
+
while (current < path.length - 1) {
|
|
109
|
+
let furthest = current + 1;
|
|
110
|
+
for (let i = path.length - 1; i > current + 1; i--) {
|
|
111
|
+
if (hasLineOfSight(grid, path[current], path[i])) {
|
|
112
|
+
furthest = i;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
result.push(path[furthest]);
|
|
117
|
+
current = furthest;
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
function hasLineOfSight(grid, a, b) {
|
|
122
|
+
// Bresenham
|
|
123
|
+
let x0 = a.x, y0 = a.y;
|
|
124
|
+
const x1 = b.x, y1 = b.y;
|
|
125
|
+
const dx = Math.abs(x1 - x0);
|
|
126
|
+
const dy = Math.abs(y1 - y0);
|
|
127
|
+
const sx = x0 < x1 ? 1 : -1;
|
|
128
|
+
const sy = y0 < y1 ? 1 : -1;
|
|
129
|
+
let err = dx - dy;
|
|
130
|
+
while (true) {
|
|
131
|
+
if (!grid.isWalkable(x0, y0))
|
|
132
|
+
return false;
|
|
133
|
+
if (x0 === x1 && y0 === y1)
|
|
134
|
+
break;
|
|
135
|
+
const e2 = 2 * err;
|
|
136
|
+
if (e2 > -dy) {
|
|
137
|
+
err -= dy;
|
|
138
|
+
x0 += sx;
|
|
139
|
+
}
|
|
140
|
+
if (e2 < dx) {
|
|
141
|
+
err += dx;
|
|
142
|
+
y0 += sy;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
/* ── Flow Field ───────────────────────────────────────────────── */
|
|
148
|
+
class FlowField {
|
|
149
|
+
constructor(width, height) {
|
|
150
|
+
this.width = width;
|
|
151
|
+
this.height = height;
|
|
152
|
+
this.directions = new Array(width * height).fill(null).map(() => ({ x: 0, y: 0 }));
|
|
153
|
+
this.costs = new Float32Array(width * height).fill(Infinity);
|
|
154
|
+
}
|
|
155
|
+
/** Generate flow field towards target (tileX, tileY). */
|
|
156
|
+
generate(grid, targetX, targetY) {
|
|
157
|
+
const w = this.width;
|
|
158
|
+
const idx = (x, y) => y * w + x;
|
|
159
|
+
// Reset
|
|
160
|
+
this.costs.fill(Infinity);
|
|
161
|
+
for (const d of this.directions) {
|
|
162
|
+
d.x = 0;
|
|
163
|
+
d.y = 0;
|
|
164
|
+
}
|
|
165
|
+
// Dijkstra pass
|
|
166
|
+
const targetIdx = idx(targetX, targetY);
|
|
167
|
+
this.costs[targetIdx] = 0;
|
|
168
|
+
const queue = [[targetX, targetY]];
|
|
169
|
+
const neighbors = [[-1, 0], [1, 0], [0, -1], [0, 1]];
|
|
170
|
+
while (queue.length > 0) {
|
|
171
|
+
const [cx, cy] = queue.shift();
|
|
172
|
+
const currentCost = this.costs[idx(cx, cy)];
|
|
173
|
+
for (const [dx, dy] of neighbors) {
|
|
174
|
+
const nx = cx + dx;
|
|
175
|
+
const ny = cy + dy;
|
|
176
|
+
if (nx < 0 || ny < 0 || nx >= w || ny >= this.height)
|
|
177
|
+
continue;
|
|
178
|
+
if (!grid.isWalkable(nx, ny))
|
|
179
|
+
continue;
|
|
180
|
+
const moveCost = grid.cost ? grid.cost(nx, ny) : 1;
|
|
181
|
+
const newCost = currentCost + moveCost;
|
|
182
|
+
const nIdx = idx(nx, ny);
|
|
183
|
+
if (newCost < this.costs[nIdx]) {
|
|
184
|
+
this.costs[nIdx] = newCost;
|
|
185
|
+
queue.push([nx, ny]);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Direction pass — each cell points toward lowest-cost neighbor
|
|
190
|
+
for (let y = 0; y < this.height; y++) {
|
|
191
|
+
for (let x = 0; x < w; x++) {
|
|
192
|
+
const i = idx(x, y);
|
|
193
|
+
if (this.costs[i] === Infinity)
|
|
194
|
+
continue;
|
|
195
|
+
if (x === targetX && y === targetY)
|
|
196
|
+
continue;
|
|
197
|
+
let bestCost = this.costs[i];
|
|
198
|
+
let bx = 0, by = 0;
|
|
199
|
+
for (const [dx, dy] of [[-1, 0], [1, 0], [0, -1], [0, 1], [-1, -1], [1, -1], [-1, 1], [1, 1]]) {
|
|
200
|
+
const nx = x + dx;
|
|
201
|
+
const ny = y + dy;
|
|
202
|
+
if (nx < 0 || ny < 0 || nx >= w || ny >= this.height)
|
|
203
|
+
continue;
|
|
204
|
+
const c = this.costs[idx(nx, ny)];
|
|
205
|
+
if (c < bestCost) {
|
|
206
|
+
bestCost = c;
|
|
207
|
+
bx = dx;
|
|
208
|
+
by = dy;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const len = Math.sqrt(bx * bx + by * by) || 1;
|
|
212
|
+
this.directions[i].x = bx / len;
|
|
213
|
+
this.directions[i].y = by / len;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
getDirection(tileX, tileY) {
|
|
218
|
+
if (tileX < 0 || tileY < 0 || tileX >= this.width || tileY >= this.height) {
|
|
219
|
+
return { x: 0, y: 0 };
|
|
220
|
+
}
|
|
221
|
+
return this.directions[tileY * this.width + tileX];
|
|
222
|
+
}
|
|
223
|
+
getCost(tileX, tileY) {
|
|
224
|
+
if (tileX < 0 || tileY < 0 || tileX >= this.width || tileY >= this.height) {
|
|
225
|
+
return Infinity;
|
|
226
|
+
}
|
|
227
|
+
return this.costs[tileY * this.width + tileX];
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/** Find which polygon contains a point (simple point-in-polygon test). */
|
|
231
|
+
function findContainingPolygon(mesh, point) {
|
|
232
|
+
for (const poly of mesh.polygons) {
|
|
233
|
+
if (isPointInConvexPolygon(point, poly.vertices)) {
|
|
234
|
+
return poly;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
function isPointInConvexPolygon(point, vertices) {
|
|
240
|
+
const n = vertices.length;
|
|
241
|
+
for (let i = 0; i < n; i++) {
|
|
242
|
+
const a = vertices[i];
|
|
243
|
+
const b = vertices[(i + 1) % n];
|
|
244
|
+
const cross = (b.x - a.x) * (point.y - a.y) - (b.y - a.y) * (point.x - a.x);
|
|
245
|
+
if (cross < 0)
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
exports.FlowField = FlowField;
|
|
252
|
+
exports.findContainingPolygon = findContainingPolygon;
|
|
253
|
+
exports.findPath = findPath;
|
|
254
|
+
exports.smoothPath = smoothPath;
|
|
255
|
+
//# sourceMappingURL=Pathfinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pathfinding.js","sources":["../../../src/pathfinding/Pathfinding.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/* ────────────────────────────────────────────────────────────────
|
|
4
|
+
Benchmark Suite — LEGENDARY L11
|
|
5
|
+
|
|
6
|
+
• Standardized benchmark scenarios
|
|
7
|
+
• Frame-time measurement with percentiles
|
|
8
|
+
• Memory usage tracking
|
|
9
|
+
• Regression detection (compare results)
|
|
10
|
+
• JSON-serializable report output
|
|
11
|
+
──────────────────────────────────────────────────────────────── */
|
|
12
|
+
/* ══════════════════════════════════════════════════════════════
|
|
13
|
+
BenchmarkRunner
|
|
14
|
+
══════════════════════════════════════════════════════════════ */
|
|
15
|
+
class BenchmarkRunner {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.scenarios = new Map();
|
|
18
|
+
this.results = [];
|
|
19
|
+
}
|
|
20
|
+
/** Register a benchmark scenario. */
|
|
21
|
+
register(scenario) {
|
|
22
|
+
this.scenarios.set(scenario.id, scenario);
|
|
23
|
+
}
|
|
24
|
+
/** Register multiple scenarios. */
|
|
25
|
+
registerAll(scenarios) {
|
|
26
|
+
for (const s of scenarios) {
|
|
27
|
+
this.register(s);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Run a single scenario. */
|
|
31
|
+
runScenario(id) {
|
|
32
|
+
var _a, _b, _c;
|
|
33
|
+
const scenario = this.scenarios.get(id);
|
|
34
|
+
if (!scenario)
|
|
35
|
+
return null;
|
|
36
|
+
const warmup = (_a = scenario.warmup) !== null && _a !== void 0 ? _a : 10;
|
|
37
|
+
const iterations = (_b = scenario.iterations) !== null && _b !== void 0 ? _b : 100;
|
|
38
|
+
// Setup
|
|
39
|
+
let cleanup;
|
|
40
|
+
if (scenario.setup) {
|
|
41
|
+
cleanup = scenario.setup();
|
|
42
|
+
}
|
|
43
|
+
// Warm-up
|
|
44
|
+
for (let i = 0; i < warmup; i++) {
|
|
45
|
+
scenario.run();
|
|
46
|
+
}
|
|
47
|
+
// Measure memory before
|
|
48
|
+
const memBefore = this.getHeapUsed();
|
|
49
|
+
// Measure iterations
|
|
50
|
+
const samples = [];
|
|
51
|
+
const totalStart = performance.now();
|
|
52
|
+
for (let i = 0; i < iterations; i++) {
|
|
53
|
+
const start = performance.now();
|
|
54
|
+
scenario.run();
|
|
55
|
+
const end = performance.now();
|
|
56
|
+
samples.push(end - start);
|
|
57
|
+
}
|
|
58
|
+
const totalMs = performance.now() - totalStart;
|
|
59
|
+
const memAfter = this.getHeapUsed();
|
|
60
|
+
// Teardown
|
|
61
|
+
if (typeof cleanup === 'function')
|
|
62
|
+
cleanup();
|
|
63
|
+
if (scenario.teardown)
|
|
64
|
+
scenario.teardown();
|
|
65
|
+
// Calculate timings
|
|
66
|
+
const timings = this.calculateTimings(samples, totalMs, iterations);
|
|
67
|
+
// Memory delta
|
|
68
|
+
const memory = (memBefore !== null && memAfter !== null) ? {
|
|
69
|
+
heapUsedBefore: memBefore,
|
|
70
|
+
heapUsedAfter: memAfter,
|
|
71
|
+
heapDelta: memAfter - memBefore,
|
|
72
|
+
} : null;
|
|
73
|
+
const withinBudget = scenario.budgetMs != null ? (timings.mean <= scenario.budgetMs) : null;
|
|
74
|
+
const result = {
|
|
75
|
+
scenarioId: scenario.id,
|
|
76
|
+
scenarioName: scenario.name,
|
|
77
|
+
category: scenario.category,
|
|
78
|
+
timings,
|
|
79
|
+
memory,
|
|
80
|
+
budgetMs: (_c = scenario.budgetMs) !== null && _c !== void 0 ? _c : null,
|
|
81
|
+
withinBudget,
|
|
82
|
+
timestamp: Date.now(),
|
|
83
|
+
};
|
|
84
|
+
this.results.push(result);
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
/** Run all registered scenarios. */
|
|
88
|
+
runAll() {
|
|
89
|
+
this.results = [];
|
|
90
|
+
const ids = Array.from(this.scenarios.keys());
|
|
91
|
+
for (const id of ids) {
|
|
92
|
+
this.runScenario(id);
|
|
93
|
+
}
|
|
94
|
+
return this.generateReport();
|
|
95
|
+
}
|
|
96
|
+
/** Run scenarios in a specific category. */
|
|
97
|
+
runCategory(category) {
|
|
98
|
+
this.results = [];
|
|
99
|
+
for (const [id, scenario] of this.scenarios) {
|
|
100
|
+
if (scenario.category === category) {
|
|
101
|
+
this.runScenario(id);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return this.generateReport();
|
|
105
|
+
}
|
|
106
|
+
/** Generate a full report from collected results. */
|
|
107
|
+
generateReport(label) {
|
|
108
|
+
let passed = 0;
|
|
109
|
+
let failed = 0;
|
|
110
|
+
let totalTimeMs = 0;
|
|
111
|
+
for (const r of this.results) {
|
|
112
|
+
totalTimeMs += r.timings.totalMs;
|
|
113
|
+
if (r.withinBudget === true)
|
|
114
|
+
passed++;
|
|
115
|
+
else if (r.withinBudget === false)
|
|
116
|
+
failed++;
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
label: label !== null && label !== void 0 ? label : 'benchmark',
|
|
120
|
+
date: new Date().toISOString(),
|
|
121
|
+
platform: typeof navigator !== 'undefined' ? navigator.userAgent : 'node',
|
|
122
|
+
results: [...this.results],
|
|
123
|
+
summary: {
|
|
124
|
+
totalScenarios: this.results.length,
|
|
125
|
+
passed,
|
|
126
|
+
failed,
|
|
127
|
+
skipped: this.results.length - passed - failed,
|
|
128
|
+
totalTimeMs,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/** Compare two reports for regressions. */
|
|
133
|
+
static compareReports(baseline, current, regressionThresholdPercent = 10) {
|
|
134
|
+
const baseMap = new Map();
|
|
135
|
+
for (const r of baseline.results)
|
|
136
|
+
baseMap.set(r.scenarioId, r);
|
|
137
|
+
const regressions = [];
|
|
138
|
+
for (const cur of current.results) {
|
|
139
|
+
const base = baseMap.get(cur.scenarioId);
|
|
140
|
+
if (!base)
|
|
141
|
+
continue;
|
|
142
|
+
const meanDelta = ((cur.timings.mean - base.timings.mean) / base.timings.mean) * 100;
|
|
143
|
+
const p95Delta = ((cur.timings.p95 - base.timings.p95) / base.timings.p95) * 100;
|
|
144
|
+
regressions.push({
|
|
145
|
+
scenarioId: cur.scenarioId,
|
|
146
|
+
scenarioName: cur.scenarioName,
|
|
147
|
+
meanDeltaPercent: Math.round(meanDelta * 100) / 100,
|
|
148
|
+
p95DeltaPercent: Math.round(p95Delta * 100) / 100,
|
|
149
|
+
regressed: meanDelta > regressionThresholdPercent,
|
|
150
|
+
improved: meanDelta < -regressionThresholdPercent,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return regressions;
|
|
154
|
+
}
|
|
155
|
+
/** Get last results. */
|
|
156
|
+
getResults() {
|
|
157
|
+
return [...this.results];
|
|
158
|
+
}
|
|
159
|
+
/** Clear all scenarios and results. */
|
|
160
|
+
clear() {
|
|
161
|
+
this.scenarios.clear();
|
|
162
|
+
this.results = [];
|
|
163
|
+
}
|
|
164
|
+
/* ── Internals ──────────────────────────────────────────────── */
|
|
165
|
+
calculateTimings(samples, totalMs, iterations) {
|
|
166
|
+
const sorted = [...samples].sort((a, b) => a - b);
|
|
167
|
+
const mean = samples.reduce((s, v) => s + v, 0) / samples.length;
|
|
168
|
+
const variance = samples.reduce((s, v) => s + (v - mean) ** 2, 0) / samples.length;
|
|
169
|
+
return {
|
|
170
|
+
min: sorted[0],
|
|
171
|
+
max: sorted[sorted.length - 1],
|
|
172
|
+
mean,
|
|
173
|
+
median: sorted[Math.floor(sorted.length / 2)],
|
|
174
|
+
p95: sorted[Math.floor(sorted.length * 0.95)],
|
|
175
|
+
p99: sorted[Math.floor(sorted.length * 0.99)],
|
|
176
|
+
stdDev: Math.sqrt(variance),
|
|
177
|
+
totalMs,
|
|
178
|
+
iterations,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
getHeapUsed() {
|
|
182
|
+
if (typeof performance !== 'undefined' && performance.memory) {
|
|
183
|
+
return performance.memory.usedJSHeapSize;
|
|
184
|
+
}
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/* ══════════════════════════════════════════════════════════════
|
|
189
|
+
Built-in Benchmark Scenarios
|
|
190
|
+
══════════════════════════════════════════════════════════════ */
|
|
191
|
+
const BUILTIN_BENCHMARKS = [
|
|
192
|
+
{
|
|
193
|
+
id: 'ecs-create-entities',
|
|
194
|
+
name: 'ECS: Create 1000 entities',
|
|
195
|
+
category: 'ecs',
|
|
196
|
+
iterations: 200,
|
|
197
|
+
budgetMs: 2,
|
|
198
|
+
run: () => {
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: 'ecs-iterate-10k',
|
|
203
|
+
name: 'ECS: Iterate 10k components',
|
|
204
|
+
category: 'ecs',
|
|
205
|
+
iterations: 200,
|
|
206
|
+
budgetMs: 1,
|
|
207
|
+
run: () => {
|
|
208
|
+
const arr = new Float64Array(10000);
|
|
209
|
+
for (let i = 0; i < 10000; i++) {
|
|
210
|
+
arr[i] = i * 0.01;
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 'physics-aabb-1k',
|
|
216
|
+
name: 'Physics: 1k AABB overlap checks',
|
|
217
|
+
category: 'physics',
|
|
218
|
+
iterations: 200,
|
|
219
|
+
budgetMs: 1,
|
|
220
|
+
run: () => {
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: 'rendering-transform-10k',
|
|
225
|
+
name: 'Rendering: 10k transform multiplications',
|
|
226
|
+
category: 'rendering',
|
|
227
|
+
iterations: 200,
|
|
228
|
+
budgetMs: 2,
|
|
229
|
+
run: () => {
|
|
230
|
+
const m = new Float64Array(9);
|
|
231
|
+
for (let i = 0; i < 10000; i++) {
|
|
232
|
+
m[0] = Math.cos(i);
|
|
233
|
+
m[1] = -Math.sin(i);
|
|
234
|
+
m[2] = i;
|
|
235
|
+
m[3] = Math.sin(i);
|
|
236
|
+
m[4] = Math.cos(i);
|
|
237
|
+
m[5] = i;
|
|
238
|
+
m[6] = 0;
|
|
239
|
+
m[7] = 0;
|
|
240
|
+
m[8] = 1;
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
id: 'scene-graph-traverse',
|
|
246
|
+
name: 'Scene: Traverse 1000-node tree',
|
|
247
|
+
category: 'scene',
|
|
248
|
+
iterations: 200,
|
|
249
|
+
budgetMs: 1,
|
|
250
|
+
setup: () => {
|
|
251
|
+
// Build a tree in setup
|
|
252
|
+
const nodes = [];
|
|
253
|
+
for (let i = 0; i < 1000; i++) {
|
|
254
|
+
nodes.push({ id: i, children: [] });
|
|
255
|
+
}
|
|
256
|
+
for (let i = 1; i < 1000; i++) {
|
|
257
|
+
const parentIdx = Math.floor(Math.random() * i);
|
|
258
|
+
nodes[parentIdx].children.push(i);
|
|
259
|
+
}
|
|
260
|
+
globalThis.__benchNodes = nodes;
|
|
261
|
+
return () => { delete globalThis.__benchNodes; };
|
|
262
|
+
},
|
|
263
|
+
run: () => {
|
|
264
|
+
const nodes = globalThis.__benchNodes;
|
|
265
|
+
if (!nodes)
|
|
266
|
+
return;
|
|
267
|
+
const stack = [0];
|
|
268
|
+
while (stack.length > 0) {
|
|
269
|
+
const idx = stack.pop();
|
|
270
|
+
const node = nodes[idx];
|
|
271
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
272
|
+
stack.push(node.children[i]);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 'general-event-dispatch',
|
|
279
|
+
name: 'General: 10k event dispatches',
|
|
280
|
+
category: 'general',
|
|
281
|
+
iterations: 200,
|
|
282
|
+
budgetMs: 2,
|
|
283
|
+
run: () => {
|
|
284
|
+
const handlers = [];
|
|
285
|
+
for (let i = 0; i < 10; i++) {
|
|
286
|
+
handlers.push(() => { });
|
|
287
|
+
}
|
|
288
|
+
for (let i = 0; i < 10000; i++) {
|
|
289
|
+
for (const h of handlers)
|
|
290
|
+
h();
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
id: 'general-object-pool',
|
|
296
|
+
name: 'General: Object pool acquire/release 10k',
|
|
297
|
+
category: 'general',
|
|
298
|
+
iterations: 200,
|
|
299
|
+
budgetMs: 1,
|
|
300
|
+
run: () => {
|
|
301
|
+
var _a;
|
|
302
|
+
const pool = [];
|
|
303
|
+
for (let i = 0; i < 100; i++) {
|
|
304
|
+
pool.push({ x: 0, y: 0 });
|
|
305
|
+
}
|
|
306
|
+
for (let i = 0; i < 10000; i++) {
|
|
307
|
+
const obj = (_a = pool.pop()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
308
|
+
obj.x = i;
|
|
309
|
+
obj.y = i;
|
|
310
|
+
pool.push(obj);
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
];
|
|
315
|
+
|
|
316
|
+
exports.BUILTIN_BENCHMARKS = BUILTIN_BENCHMARKS;
|
|
317
|
+
exports.BenchmarkRunner = BenchmarkRunner;
|
|
318
|
+
//# sourceMappingURL=BenchmarkSuite.js.map
|