@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,134 @@
|
|
|
1
|
+
import { EventBus } from '../core/EventBus';
|
|
2
|
+
export type PluginState = 'installed' | 'active' | 'inactive' | 'error';
|
|
3
|
+
export type PluginType = 'component' | 'system' | 'node' | 'editor-panel' | 'renderer' | 'template';
|
|
4
|
+
export interface PluginManifest {
|
|
5
|
+
/** Unique plugin ID (reverse domain: com.author.plugin-name). */
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
description: string;
|
|
10
|
+
author: string;
|
|
11
|
+
license?: string;
|
|
12
|
+
homepage?: string;
|
|
13
|
+
repository?: string;
|
|
14
|
+
/** Plugin types this plugin provides. */
|
|
15
|
+
types: PluginType[];
|
|
16
|
+
/** engine version compatibility (semver range). */
|
|
17
|
+
engineVersion: string;
|
|
18
|
+
/** Dependencies (other plugin IDs → semver ranges). */
|
|
19
|
+
dependencies?: Record<string, string>;
|
|
20
|
+
/** Keywords for marketplace search. */
|
|
21
|
+
keywords?: string[];
|
|
22
|
+
/** Icon (data URL or relative path). */
|
|
23
|
+
icon?: string;
|
|
24
|
+
/** Entry point filename (relative). */
|
|
25
|
+
main?: string;
|
|
26
|
+
}
|
|
27
|
+
/** The context passed to plugins on activation. */
|
|
28
|
+
export interface PluginContext {
|
|
29
|
+
/** Plugin's own manifest. */
|
|
30
|
+
manifest: PluginManifest;
|
|
31
|
+
/** Engine event bus for communication. */
|
|
32
|
+
events: EventBus;
|
|
33
|
+
/** Register an extension point entry. */
|
|
34
|
+
registerExtension: <T>(point: ExtensionPoint, entry: T) => void;
|
|
35
|
+
/** Unregister an extension point entry. */
|
|
36
|
+
unregisterExtension: <T>(point: ExtensionPoint, entry: T) => void;
|
|
37
|
+
/** Plugin-scoped storage (persisted). */
|
|
38
|
+
storage: PluginStorage;
|
|
39
|
+
/** Log a message under the plugin's namespace. */
|
|
40
|
+
log: (message: string) => void;
|
|
41
|
+
/** Log a warning under the plugin's namespace. */
|
|
42
|
+
warn: (message: string) => void;
|
|
43
|
+
}
|
|
44
|
+
/** Interface a plugin must implement. */
|
|
45
|
+
export interface PluginDefinition {
|
|
46
|
+
/** Plugin manifest (metadata). */
|
|
47
|
+
manifest: PluginManifest;
|
|
48
|
+
/** Called when the plugin is activated. */
|
|
49
|
+
activate(ctx: PluginContext): void | Promise<void>;
|
|
50
|
+
/** Called when the plugin is deactivated. */
|
|
51
|
+
deactivate?(ctx: PluginContext): void | Promise<void>;
|
|
52
|
+
/** Called when the plugin is uninstalled (cleanup permanent data). */
|
|
53
|
+
uninstall?(ctx: PluginContext): void | Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
export type ExtensionPoint = 'component-type' | 'system-type' | 'node-type' | 'editor-panel' | 'renderer-pass' | 'asset-importer' | 'game-template' | 'menu-item';
|
|
56
|
+
export interface PluginStorage {
|
|
57
|
+
get<T>(key: string): T | undefined;
|
|
58
|
+
set<T>(key: string, value: T): void;
|
|
59
|
+
remove(key: string): void;
|
|
60
|
+
clear(): void;
|
|
61
|
+
keys(): string[];
|
|
62
|
+
}
|
|
63
|
+
/** Plugin instance (managed by PluginManager). */
|
|
64
|
+
export interface PluginInstance {
|
|
65
|
+
definition: PluginDefinition;
|
|
66
|
+
state: PluginState;
|
|
67
|
+
activatedAt: number | null;
|
|
68
|
+
error: string | null;
|
|
69
|
+
extensions: Map<ExtensionPoint, unknown[]>;
|
|
70
|
+
}
|
|
71
|
+
export declare class PluginManager {
|
|
72
|
+
readonly events: EventBus;
|
|
73
|
+
private plugins;
|
|
74
|
+
private extensions;
|
|
75
|
+
install(definition: PluginDefinition): void;
|
|
76
|
+
activate(id: string): Promise<void>;
|
|
77
|
+
deactivate(id: string): Promise<void>;
|
|
78
|
+
uninstall(id: string): Promise<void>;
|
|
79
|
+
getPlugin(id: string): PluginInstance | undefined;
|
|
80
|
+
get allPlugins(): PluginInstance[];
|
|
81
|
+
get activePlugins(): PluginInstance[];
|
|
82
|
+
getExtensions<T>(point: ExtensionPoint): T[];
|
|
83
|
+
/** Search plugins by keyword. */
|
|
84
|
+
search(query: string): PluginInstance[];
|
|
85
|
+
private createContext;
|
|
86
|
+
/** Deactivate and remove all plugins. */
|
|
87
|
+
dispose(): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
export interface PluginTemplate {
|
|
90
|
+
type: PluginType;
|
|
91
|
+
name: string;
|
|
92
|
+
description: string;
|
|
93
|
+
/** Template code (TypeScript source). */
|
|
94
|
+
code: string;
|
|
95
|
+
}
|
|
96
|
+
export declare const PLUGIN_TEMPLATES: PluginTemplate[];
|
|
97
|
+
export interface MarketplaceEntry {
|
|
98
|
+
id: string;
|
|
99
|
+
name: string;
|
|
100
|
+
description: string;
|
|
101
|
+
author: string;
|
|
102
|
+
version: string;
|
|
103
|
+
downloads: number;
|
|
104
|
+
rating: number;
|
|
105
|
+
types: PluginType[];
|
|
106
|
+
keywords: string[];
|
|
107
|
+
icon?: string;
|
|
108
|
+
free: boolean;
|
|
109
|
+
price?: number;
|
|
110
|
+
updated: string;
|
|
111
|
+
}
|
|
112
|
+
export interface MarketplaceSearchResult {
|
|
113
|
+
entries: MarketplaceEntry[];
|
|
114
|
+
total: number;
|
|
115
|
+
page: number;
|
|
116
|
+
pageSize: number;
|
|
117
|
+
}
|
|
118
|
+
/** Offline-capable marketplace API (can be backed by REST later). */
|
|
119
|
+
export declare class PluginMarketplace {
|
|
120
|
+
private catalog;
|
|
121
|
+
/** Register entries in the catalog (for offline/bundled). */
|
|
122
|
+
addEntries(entries: MarketplaceEntry[]): void;
|
|
123
|
+
/** Search the marketplace. */
|
|
124
|
+
search(query: string, options?: {
|
|
125
|
+
type?: PluginType;
|
|
126
|
+
free?: boolean;
|
|
127
|
+
page?: number;
|
|
128
|
+
pageSize?: number;
|
|
129
|
+
}): MarketplaceSearchResult;
|
|
130
|
+
/** Get a single entry by ID. */
|
|
131
|
+
getEntry(id: string): MarketplaceEntry | undefined;
|
|
132
|
+
/** Featured / top-rated plugins. */
|
|
133
|
+
getFeatured(count?: number): MarketplaceEntry[];
|
|
134
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { EventBus } from '../core/EventBus';
|
|
2
|
+
import type { PluginDefinition, PluginContext, PluginManifest, ExtensionPoint, PluginStorage } from './PluginSDK';
|
|
3
|
+
export type TestStatus = 'passed' | 'failed' | 'skipped';
|
|
4
|
+
export interface TestResult {
|
|
5
|
+
name: string;
|
|
6
|
+
status: TestStatus;
|
|
7
|
+
duration: number;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface TestSuiteResult {
|
|
11
|
+
pluginId: string;
|
|
12
|
+
suiteName: string;
|
|
13
|
+
results: TestResult[];
|
|
14
|
+
passed: number;
|
|
15
|
+
failed: number;
|
|
16
|
+
skipped: number;
|
|
17
|
+
totalDuration: number;
|
|
18
|
+
}
|
|
19
|
+
export interface PluginTestCase {
|
|
20
|
+
name: string;
|
|
21
|
+
skip?: boolean;
|
|
22
|
+
fn: (ctx: TestPluginContext) => void | Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare class TestPluginStorage implements PluginStorage {
|
|
25
|
+
private data;
|
|
26
|
+
get<T>(key: string): T | undefined;
|
|
27
|
+
set<T>(key: string, value: T): void;
|
|
28
|
+
remove(key: string): void;
|
|
29
|
+
clear(): void;
|
|
30
|
+
keys(): string[];
|
|
31
|
+
/** Snapshot current storage state for assertions. */
|
|
32
|
+
snapshot(): Record<string, unknown>;
|
|
33
|
+
get size(): number;
|
|
34
|
+
}
|
|
35
|
+
export declare class TestPluginContext implements PluginContext {
|
|
36
|
+
readonly manifest: PluginManifest;
|
|
37
|
+
readonly events: EventBus;
|
|
38
|
+
readonly storage: TestPluginStorage;
|
|
39
|
+
readonly logs: string[];
|
|
40
|
+
readonly warnings: string[];
|
|
41
|
+
readonly registeredExtensions: Map<ExtensionPoint, unknown[]>;
|
|
42
|
+
constructor(manifest: PluginManifest);
|
|
43
|
+
log: (message: string) => void;
|
|
44
|
+
warn: (message: string) => void;
|
|
45
|
+
registerExtension: <T>(point: ExtensionPoint, entry: T) => void;
|
|
46
|
+
unregisterExtension: <T>(point: ExtensionPoint, entry: T) => void;
|
|
47
|
+
/** Get all extensions registered for a given point. */
|
|
48
|
+
getExtensions<T>(point: ExtensionPoint): T[];
|
|
49
|
+
/** Count extensions for a given point. */
|
|
50
|
+
extensionCount(point: ExtensionPoint): number;
|
|
51
|
+
/** Check if any extension was registered for a given point. */
|
|
52
|
+
hasExtension(point: ExtensionPoint): boolean;
|
|
53
|
+
/** Get storage snapshot for assertion/comparison. */
|
|
54
|
+
storageSnapshot(): Record<string, unknown>;
|
|
55
|
+
/** Reset context to fresh state (between tests). */
|
|
56
|
+
reset(): void;
|
|
57
|
+
}
|
|
58
|
+
export declare class PluginAssertionError extends Error {
|
|
59
|
+
constructor(message: string);
|
|
60
|
+
}
|
|
61
|
+
export declare const pluginAssert: {
|
|
62
|
+
/** Assert value is truthy. */
|
|
63
|
+
ok(value: unknown, message?: string): void;
|
|
64
|
+
/** Assert strict equality. */
|
|
65
|
+
equal<T>(actual: T, expected: T, message?: string): void;
|
|
66
|
+
/** Assert not equal. */
|
|
67
|
+
notEqual<T>(actual: T, notExpected: T, message?: string): void;
|
|
68
|
+
/** Assert deep equality (JSON comparison). */
|
|
69
|
+
deepEqual(actual: unknown, expected: unknown, message?: string): void;
|
|
70
|
+
/** Assert that a function throws. */
|
|
71
|
+
throws(fn: () => unknown, message?: string): void;
|
|
72
|
+
/** Assert async function throws. */
|
|
73
|
+
throwsAsync(fn: () => Promise<unknown>, message?: string): Promise<void>;
|
|
74
|
+
/** Assert array contains element. */
|
|
75
|
+
contains<T>(arr: readonly T[], item: T, message?: string): void;
|
|
76
|
+
/** Assert string includes substring. */
|
|
77
|
+
includes(str: string, substr: string, message?: string): void;
|
|
78
|
+
/** Assert extension was registered. */
|
|
79
|
+
hasExtension(ctx: TestPluginContext, point: ExtensionPoint, message?: string): void;
|
|
80
|
+
/** Assert extension count. */
|
|
81
|
+
extensionCount(ctx: TestPluginContext, point: ExtensionPoint, expected: number, message?: string): void;
|
|
82
|
+
/** Assert log message was emitted. */
|
|
83
|
+
logged(ctx: TestPluginContext, substr: string, message?: string): void;
|
|
84
|
+
/** Assert warning was emitted. */
|
|
85
|
+
warned(ctx: TestPluginContext, substr: string, message?: string): void;
|
|
86
|
+
};
|
|
87
|
+
export declare class PluginTestRunner {
|
|
88
|
+
private tests;
|
|
89
|
+
private _beforeEach;
|
|
90
|
+
private _afterEach;
|
|
91
|
+
/** Add a test case. */
|
|
92
|
+
test(name: string, fn: (ctx: TestPluginContext) => void | Promise<void>): this;
|
|
93
|
+
/** Add a skipped test case. */
|
|
94
|
+
skip(name: string, fn: (ctx: TestPluginContext) => void | Promise<void>): this;
|
|
95
|
+
/** Run something before each test. */
|
|
96
|
+
beforeEach(fn: (ctx: TestPluginContext) => void | Promise<void>): this;
|
|
97
|
+
/** Run something after each test. */
|
|
98
|
+
afterEach(fn: (ctx: TestPluginContext) => void | Promise<void>): this;
|
|
99
|
+
/** Run all tests against a plugin. */
|
|
100
|
+
run(plugin: PluginDefinition, suiteName?: string): Promise<TestSuiteResult>;
|
|
101
|
+
}
|
|
102
|
+
/** Create a default manifest for testing. */
|
|
103
|
+
export declare function createTestManifest(overrides?: Partial<PluginManifest>): PluginManifest;
|
|
104
|
+
/** Quick lifecycle test — activate, verify, deactivate. */
|
|
105
|
+
export declare function testPluginLifecycle(plugin: PluginDefinition): Promise<TestSuiteResult>;
|
|
106
|
+
/** Format test results as a readable string. */
|
|
107
|
+
export declare function formatTestResults(suite: TestSuiteResult): string;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Vec2, Color } from '../core/types';
|
|
2
|
+
export declare class SeededRandom {
|
|
3
|
+
private s;
|
|
4
|
+
constructor(seed?: number);
|
|
5
|
+
/** Returns [0, 1). */
|
|
6
|
+
next(): number;
|
|
7
|
+
/** Returns integer in [min, max] (inclusive). */
|
|
8
|
+
int(min: number, max: number): number;
|
|
9
|
+
/** Returns float in [min, max). */
|
|
10
|
+
float(min: number, max: number): number;
|
|
11
|
+
/** Returns true with given probability (0-1). */
|
|
12
|
+
chance(probability: number): boolean;
|
|
13
|
+
/** Pick a random element from an array. */
|
|
14
|
+
pick<T>(arr: readonly T[]): T;
|
|
15
|
+
/** Shuffle array in-place (Fisher-Yates). */
|
|
16
|
+
shuffle<T>(arr: T[]): T[];
|
|
17
|
+
/** Weighted random pick. Returns index. */
|
|
18
|
+
weighted(weights: number[]): number;
|
|
19
|
+
/** Random color. */
|
|
20
|
+
color(alpha?: number): Color;
|
|
21
|
+
/** Random unit vector. */
|
|
22
|
+
unitVec2(): Vec2;
|
|
23
|
+
/** Random point inside a circle. */
|
|
24
|
+
insideCircle(radius: number): Vec2;
|
|
25
|
+
}
|
|
26
|
+
export declare class PerlinNoise {
|
|
27
|
+
private perm;
|
|
28
|
+
constructor(seed?: number);
|
|
29
|
+
/** Get noise value at (x, y) → [-1, 1]. */
|
|
30
|
+
noise2D(x: number, y: number): number;
|
|
31
|
+
/** Fractal Brownian Motion (layered noise). */
|
|
32
|
+
fbm(x: number, y: number, octaves?: number, lacunarity?: number, gain?: number): number;
|
|
33
|
+
}
|
|
34
|
+
export interface WaveEntry {
|
|
35
|
+
type: string;
|
|
36
|
+
count: number;
|
|
37
|
+
delay: number;
|
|
38
|
+
spawnInterval: number;
|
|
39
|
+
}
|
|
40
|
+
export interface WaveConfig {
|
|
41
|
+
baseEnemyCount: number;
|
|
42
|
+
countGrowth: number;
|
|
43
|
+
typeProbabilities: {
|
|
44
|
+
type: string;
|
|
45
|
+
weight: number;
|
|
46
|
+
minWave: number;
|
|
47
|
+
}[];
|
|
48
|
+
groupSize: [number, number];
|
|
49
|
+
groupDelay: [number, number];
|
|
50
|
+
spawnInterval: [number, number];
|
|
51
|
+
}
|
|
52
|
+
export declare class WaveGenerator {
|
|
53
|
+
private rng;
|
|
54
|
+
constructor(seed?: number);
|
|
55
|
+
generateWave(waveNumber: number, config: WaveConfig): WaveEntry[];
|
|
56
|
+
}
|
|
57
|
+
export interface LootDrop {
|
|
58
|
+
id: string;
|
|
59
|
+
weight: number;
|
|
60
|
+
/** Drop quantity range. */
|
|
61
|
+
quantity: [number, number];
|
|
62
|
+
/** Minimum level to be eligible. */
|
|
63
|
+
minLevel?: number;
|
|
64
|
+
/** Maximum number of times this can drop per roll session. */
|
|
65
|
+
maxPerRoll?: number;
|
|
66
|
+
}
|
|
67
|
+
export declare class LootTable {
|
|
68
|
+
private rng;
|
|
69
|
+
private drops;
|
|
70
|
+
constructor(drops: LootDrop[], seed?: number);
|
|
71
|
+
/** Roll N items from the table. */
|
|
72
|
+
roll(count: number, level?: number): {
|
|
73
|
+
id: string;
|
|
74
|
+
quantity: number;
|
|
75
|
+
}[];
|
|
76
|
+
/** Simple yes/no chance to drop each item independently. */
|
|
77
|
+
rollEach(level?: number): {
|
|
78
|
+
id: string;
|
|
79
|
+
quantity: number;
|
|
80
|
+
}[];
|
|
81
|
+
}
|
|
82
|
+
export declare class ProceduralSprite {
|
|
83
|
+
private rng;
|
|
84
|
+
constructor(seed?: number);
|
|
85
|
+
/**
|
|
86
|
+
* Generate a symmetrical pixel art sprite as ImageData.
|
|
87
|
+
* Good for enemies, ships, items.
|
|
88
|
+
*/
|
|
89
|
+
generate(width: number, height: number, palette: Color[], symmetry?: 'none' | 'horizontal' | 'vertical' | 'both'): ImageData;
|
|
90
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import type { Vec2 } from '../core/types';
|
|
2
|
+
export interface WorldStreamingConfig {
|
|
3
|
+
chunkSize: number;
|
|
4
|
+
loadRadius: number;
|
|
5
|
+
unloadRadius: number;
|
|
6
|
+
preloadRadius: number;
|
|
7
|
+
maxLoadedChunks: number;
|
|
8
|
+
loadPriority: 'distance' | 'direction' | 'combined';
|
|
9
|
+
transitionBlend: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const DEFAULT_STREAMING: WorldStreamingConfig;
|
|
12
|
+
export interface WorldChunk {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
state: 'unloaded' | 'loading' | 'loaded' | 'active' | 'unloading';
|
|
16
|
+
entities: string[];
|
|
17
|
+
terrain?: ChunkTerrain;
|
|
18
|
+
lastAccess: number;
|
|
19
|
+
priority: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ChunkTerrain {
|
|
22
|
+
heightmap: Float32Array;
|
|
23
|
+
biome: string;
|
|
24
|
+
decorations: TerrainDecoration[];
|
|
25
|
+
}
|
|
26
|
+
export interface TerrainDecoration {
|
|
27
|
+
type: string;
|
|
28
|
+
position: Vec2;
|
|
29
|
+
scale: number;
|
|
30
|
+
rotation: number;
|
|
31
|
+
variant: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function getChunkCoord(worldPos: Vec2, chunkSize: number): {
|
|
34
|
+
cx: number;
|
|
35
|
+
cy: number;
|
|
36
|
+
};
|
|
37
|
+
export declare function getChunksInRadius(centerChunk: {
|
|
38
|
+
cx: number;
|
|
39
|
+
cy: number;
|
|
40
|
+
}, radius: number): Array<{
|
|
41
|
+
cx: number;
|
|
42
|
+
cy: number;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function chunkKey(cx: number, cy: number): string;
|
|
45
|
+
export interface TerrainGenConfig {
|
|
46
|
+
seed: number;
|
|
47
|
+
octaves: number;
|
|
48
|
+
frequency: number;
|
|
49
|
+
amplitude: number;
|
|
50
|
+
lacunarity: number;
|
|
51
|
+
persistence: number;
|
|
52
|
+
heightScale: number;
|
|
53
|
+
erosionPasses: number;
|
|
54
|
+
biomes: BiomeDef[];
|
|
55
|
+
waterLevel: number;
|
|
56
|
+
}
|
|
57
|
+
export interface BiomeDef {
|
|
58
|
+
name: string;
|
|
59
|
+
minHeight: number;
|
|
60
|
+
maxHeight: number;
|
|
61
|
+
minMoisture: number;
|
|
62
|
+
maxMoisture: number;
|
|
63
|
+
color: string;
|
|
64
|
+
vegetation: VegetationRule[];
|
|
65
|
+
tileType: string;
|
|
66
|
+
}
|
|
67
|
+
export interface VegetationRule {
|
|
68
|
+
type: string;
|
|
69
|
+
density: number;
|
|
70
|
+
minScale: number;
|
|
71
|
+
maxScale: number;
|
|
72
|
+
clusterSize: number;
|
|
73
|
+
avoidRadius: number;
|
|
74
|
+
}
|
|
75
|
+
/** Simple value noise. */
|
|
76
|
+
export declare function valueNoise2D(x: number, y: number, seed: number): number;
|
|
77
|
+
/** Fractal Brownian Motion. */
|
|
78
|
+
export declare function fbm(x: number, y: number, config: TerrainGenConfig): number;
|
|
79
|
+
export declare function selectBiome(height: number, moisture: number, biomes: BiomeDef[]): BiomeDef | null;
|
|
80
|
+
export declare const DEFAULT_BIOMES: BiomeDef[];
|
|
81
|
+
export type WeatherType = 'clear' | 'cloudy' | 'rain' | 'heavy-rain' | 'storm' | 'snow' | 'blizzard' | 'fog' | 'sandstorm';
|
|
82
|
+
export interface WeatherConfig {
|
|
83
|
+
type: WeatherType;
|
|
84
|
+
intensity: number;
|
|
85
|
+
windDirection: number;
|
|
86
|
+
windSpeed: number;
|
|
87
|
+
temperature: number;
|
|
88
|
+
humidity: number;
|
|
89
|
+
visibility: number;
|
|
90
|
+
lightingMultiplier: number;
|
|
91
|
+
particleDensity: number;
|
|
92
|
+
soundId?: string;
|
|
93
|
+
transitionDuration: number;
|
|
94
|
+
}
|
|
95
|
+
export interface WeatherSchedule {
|
|
96
|
+
entries: WeatherScheduleEntry[];
|
|
97
|
+
transitionDuration: number;
|
|
98
|
+
randomVariation: number;
|
|
99
|
+
}
|
|
100
|
+
export interface WeatherScheduleEntry {
|
|
101
|
+
startHour: number;
|
|
102
|
+
duration: number;
|
|
103
|
+
weather: WeatherType;
|
|
104
|
+
probability: number;
|
|
105
|
+
minIntensity: number;
|
|
106
|
+
maxIntensity: number;
|
|
107
|
+
}
|
|
108
|
+
export declare const WEATHER_PRESETS: Record<WeatherType, Partial<WeatherConfig>>;
|
|
109
|
+
export declare function lerpWeather(a: WeatherConfig, b: WeatherConfig, t: number): WeatherConfig;
|
|
110
|
+
export interface DayNightConfig {
|
|
111
|
+
dayLengthSeconds: number;
|
|
112
|
+
startHour: number;
|
|
113
|
+
sunriseHour: number;
|
|
114
|
+
sunsetHour: number;
|
|
115
|
+
ambientDay: string;
|
|
116
|
+
ambientNight: string;
|
|
117
|
+
ambientSunrise: string;
|
|
118
|
+
ambientSunset: string;
|
|
119
|
+
sunIntensityDay: number;
|
|
120
|
+
sunIntensityNight: number;
|
|
121
|
+
moonPhase: boolean;
|
|
122
|
+
starsAtNight: boolean;
|
|
123
|
+
}
|
|
124
|
+
export declare const DEFAULT_DAY_NIGHT: DayNightConfig;
|
|
125
|
+
export type TimeOfDay = 'night' | 'dawn' | 'morning' | 'noon' | 'afternoon' | 'dusk';
|
|
126
|
+
export declare function getTimeOfDay(hour: number): TimeOfDay;
|
|
127
|
+
export declare function getGameHour(realElapsedSeconds: number, config: DayNightConfig): number;
|
|
128
|
+
export declare function getSunAngle(hour: number, config: DayNightConfig): number;
|
|
129
|
+
export interface NPCSchedule {
|
|
130
|
+
npcId: string;
|
|
131
|
+
entries: ScheduleEntry[];
|
|
132
|
+
defaultActivity: string;
|
|
133
|
+
defaultLocation: string;
|
|
134
|
+
}
|
|
135
|
+
export interface ScheduleEntry {
|
|
136
|
+
startHour: number;
|
|
137
|
+
endHour: number;
|
|
138
|
+
activity: string;
|
|
139
|
+
location: string;
|
|
140
|
+
waypoints?: Vec2[];
|
|
141
|
+
priority: number;
|
|
142
|
+
daysOfWeek?: number[];
|
|
143
|
+
conditions?: string[];
|
|
144
|
+
}
|
|
145
|
+
export declare function getCurrentScheduleEntry(schedule: NPCSchedule, hour: number, dayOfWeek: number): ScheduleEntry | null;
|
|
146
|
+
export type QuestState = 'unavailable' | 'available' | 'active' | 'completed' | 'failed' | 'turned-in';
|
|
147
|
+
export type ObjectiveType = 'kill' | 'collect' | 'deliver' | 'talk' | 'escort' | 'explore' | 'interact' | 'survive' | 'custom';
|
|
148
|
+
export interface QuestDef {
|
|
149
|
+
id: string;
|
|
150
|
+
title: string;
|
|
151
|
+
description: string;
|
|
152
|
+
category: 'main' | 'side' | 'daily' | 'repeatable' | 'hidden';
|
|
153
|
+
level: number;
|
|
154
|
+
prerequisites: string[];
|
|
155
|
+
objectives: QuestObjective[];
|
|
156
|
+
rewards: QuestReward[];
|
|
157
|
+
timeLimit?: number;
|
|
158
|
+
failConditions?: string[];
|
|
159
|
+
dialogStart?: string;
|
|
160
|
+
dialogComplete?: string;
|
|
161
|
+
chain?: string;
|
|
162
|
+
repeatable: boolean;
|
|
163
|
+
autoComplete: boolean;
|
|
164
|
+
}
|
|
165
|
+
export interface QuestObjective {
|
|
166
|
+
id: string;
|
|
167
|
+
type: ObjectiveType;
|
|
168
|
+
description: string;
|
|
169
|
+
targetId?: string;
|
|
170
|
+
targetCount: number;
|
|
171
|
+
currentCount: number;
|
|
172
|
+
optional: boolean;
|
|
173
|
+
hidden: boolean;
|
|
174
|
+
location?: Vec2;
|
|
175
|
+
radius?: number;
|
|
176
|
+
}
|
|
177
|
+
export interface QuestReward {
|
|
178
|
+
type: 'xp' | 'gold' | 'item' | 'reputation' | 'unlock' | 'skill-point';
|
|
179
|
+
amount: number;
|
|
180
|
+
itemId?: string;
|
|
181
|
+
factionId?: string;
|
|
182
|
+
}
|
|
183
|
+
export interface QuestJournal {
|
|
184
|
+
activeQuests: QuestInstance[];
|
|
185
|
+
completedQuests: string[];
|
|
186
|
+
failedQuests: string[];
|
|
187
|
+
trackedQuestId?: string;
|
|
188
|
+
}
|
|
189
|
+
export interface QuestInstance {
|
|
190
|
+
questId: string;
|
|
191
|
+
state: QuestState;
|
|
192
|
+
objectives: QuestObjective[];
|
|
193
|
+
startTime: number;
|
|
194
|
+
completedTime?: number;
|
|
195
|
+
}
|
|
196
|
+
export declare function canStartQuest(questDef: QuestDef, journal: QuestJournal): boolean;
|
|
197
|
+
export declare function startQuest(questDef: QuestDef, journal: QuestJournal): QuestInstance;
|
|
198
|
+
export declare function updateObjective(instance: QuestInstance, objectiveId: string, incrementBy?: number): boolean;
|
|
199
|
+
export declare function isQuestComplete(instance: QuestInstance): boolean;
|
|
200
|
+
export declare function completeQuest(instance: QuestInstance, journal: QuestJournal): void;
|