@nice2dev/game-engine 0.1.0 → 1.0.3
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 +193 -1
- package/dist/cjs/ai/BehaviorTree.js +1215 -0
- package/dist/cjs/ai/BehaviorTree.js.map +1 -0
- package/dist/cjs/ai/StateMachine.js +783 -0
- package/dist/cjs/ai/StateMachine.js.map +1 -0
- package/dist/cjs/audio/AudioBridge.js +454 -0
- package/dist/cjs/audio/AudioBridge.js.map +1 -0
- package/dist/cjs/devtools/GameplayAnalytics.js +651 -0
- package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -0
- package/dist/cjs/dialogue/DialogueSystem.js +1023 -0
- package/dist/cjs/dialogue/DialogueSystem.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +569 -71
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
- package/dist/cjs/editor/ShaderGraph.js +1616 -0
- package/dist/cjs/editor/ShaderGraph.js.map +1 -0
- package/dist/cjs/editor/TimelineEditor.js +819 -0
- package/dist/cjs/editor/TimelineEditor.js.map +1 -0
- package/dist/cjs/engine/SaveSystemV2.js +494 -0
- package/dist/cjs/engine/SaveSystemV2.js.map +1 -0
- package/dist/cjs/export/GodotExporter.js +1102 -0
- package/dist/cjs/export/GodotExporter.js.map +1 -0
- package/dist/cjs/export/PlatformExporter.js +236 -0
- package/dist/cjs/export/PlatformExporter.js.map +1 -0
- package/dist/cjs/export/ThreeJSExporter.js +1116 -0
- package/dist/cjs/export/ThreeJSExporter.js.map +1 -0
- package/dist/cjs/export/UnityExporter.js +1193 -0
- package/dist/cjs/export/UnityExporter.js.map +1 -0
- package/dist/cjs/export/WebExporter.js +1036 -0
- package/dist/cjs/export/WebExporter.js.map +1 -0
- package/dist/cjs/export/index.js +58 -0
- package/dist/cjs/export/index.js.map +1 -0
- package/dist/cjs/i18n/useTranslation.js +11 -11
- package/dist/cjs/import/AsepriteImporter.js +761 -0
- package/dist/cjs/import/AsepriteImporter.js.map +1 -0
- package/dist/cjs/import/DragonBonesImporter.js +499 -0
- package/dist/cjs/import/DragonBonesImporter.js.map +1 -0
- package/dist/cjs/import/GameMakerImporter.js +559 -0
- package/dist/cjs/import/GameMakerImporter.js.map +1 -0
- package/dist/cjs/import/GodotSceneImporter.js +824 -0
- package/dist/cjs/import/GodotSceneImporter.js.map +1 -0
- package/dist/cjs/import/LDtkImporter.js +481 -0
- package/dist/cjs/import/LDtkImporter.js.map +1 -0
- package/dist/cjs/import/Live2DImporter.js +553 -0
- package/dist/cjs/import/Live2DImporter.js.map +1 -0
- package/dist/cjs/import/NdgFormat.js +499 -0
- package/dist/cjs/import/NdgFormat.js.map +1 -0
- package/dist/cjs/import/OgmoImporter.js +529 -0
- package/dist/cjs/import/OgmoImporter.js.map +1 -0
- package/dist/cjs/import/RPGMakerImporter.js +520 -0
- package/dist/cjs/import/RPGMakerImporter.js.map +1 -0
- package/dist/cjs/import/SceneImporter.js +449 -0
- package/dist/cjs/import/SceneImporter.js.map +1 -0
- package/dist/cjs/import/SpineImporter.js +583 -0
- package/dist/cjs/import/SpineImporter.js.map +1 -0
- package/dist/cjs/import/SpriterImporter.js +652 -0
- package/dist/cjs/import/SpriterImporter.js.map +1 -0
- package/dist/cjs/import/TiledMapImporter.js +859 -0
- package/dist/cjs/import/TiledMapImporter.js.map +1 -0
- package/dist/cjs/import/UnitySceneImporter.js +732 -0
- package/dist/cjs/import/UnitySceneImporter.js.map +1 -0
- package/dist/cjs/import/index.js +305 -0
- package/dist/cjs/import/index.js.map +1 -0
- package/dist/cjs/index.js +291 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/input/GamepadNavigation.js +21 -21
- package/dist/cjs/input/useGamepads.js +6 -6
- package/dist/cjs/integration/IconSprite.js +281 -0
- package/dist/cjs/integration/IconSprite.js.map +1 -0
- package/dist/cjs/inventory/InventorySystem.js +930 -0
- package/dist/cjs/inventory/InventorySystem.js.map +1 -0
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
- package/dist/cjs/quest/QuestSystem.js +924 -0
- package/dist/cjs/quest/QuestSystem.js.map +1 -0
- package/dist/cjs/rendering/WebGPURenderPipeline.js +658 -0
- package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -0
- package/dist/cjs/scripting/GraphToAST.js +567 -0
- package/dist/cjs/scripting/GraphToAST.js.map +1 -0
- package/dist/cjs/scripting/LanguageExporter.js +321 -0
- package/dist/cjs/scripting/LanguageExporter.js.map +1 -0
- package/dist/cjs/scripting/ScriptAST.js +67 -0
- package/dist/cjs/scripting/ScriptAST.js.map +1 -0
- package/dist/cjs/scripting/VisualScripting2.js +1140 -0
- package/dist/cjs/scripting/VisualScripting2.js.map +1 -0
- package/dist/cjs/scripting/exporters/CSharpExporter.js +503 -0
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/GDScriptExporter.js +452 -0
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/LuaExporter.js +457 -0
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/PythonExporter.js +565 -0
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/RustExporter.js +525 -0
- package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js +570 -0
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -0
- package/dist/cjs/systems/ParticleSystem2.js +1478 -0
- package/dist/cjs/systems/ParticleSystem2.js.map +1 -0
- package/dist/cjs/xr/ARVR.js.map +1 -1
- package/dist/esm/ai/BehaviorTree.js +1186 -0
- package/dist/esm/ai/BehaviorTree.js.map +1 -0
- package/dist/esm/ai/StateMachine.js +767 -0
- package/dist/esm/ai/StateMachine.js.map +1 -0
- package/dist/esm/audio/AudioBridge.js +446 -0
- package/dist/esm/audio/AudioBridge.js.map +1 -0
- package/dist/esm/devtools/GameplayAnalytics.js +639 -0
- package/dist/esm/devtools/GameplayAnalytics.js.map +1 -0
- package/dist/esm/dialogue/DialogueSystem.js +1008 -0
- package/dist/esm/dialogue/DialogueSystem.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +556 -58
- package/dist/esm/editor/NiceGameEditor.js.map +1 -1
- package/dist/esm/editor/ShaderGraph.js +1606 -0
- package/dist/esm/editor/ShaderGraph.js.map +1 -0
- package/dist/esm/editor/TimelineEditor.js +800 -0
- package/dist/esm/editor/TimelineEditor.js.map +1 -0
- package/dist/esm/engine/SaveSystemV2.js +487 -0
- package/dist/esm/engine/SaveSystemV2.js.map +1 -0
- package/dist/esm/export/GodotExporter.js +1100 -0
- package/dist/esm/export/GodotExporter.js.map +1 -0
- package/dist/esm/export/PlatformExporter.js +230 -0
- package/dist/esm/export/PlatformExporter.js.map +1 -0
- package/dist/esm/export/ThreeJSExporter.js +1114 -0
- package/dist/esm/export/ThreeJSExporter.js.map +1 -0
- package/dist/esm/export/UnityExporter.js +1191 -0
- package/dist/esm/export/UnityExporter.js.map +1 -0
- package/dist/esm/export/WebExporter.js +1033 -0
- package/dist/esm/export/WebExporter.js.map +1 -0
- package/dist/esm/export/index.js +44 -0
- package/dist/esm/export/index.js.map +1 -0
- package/dist/esm/import/AsepriteImporter.js +759 -0
- package/dist/esm/import/AsepriteImporter.js.map +1 -0
- package/dist/esm/import/DragonBonesImporter.js +496 -0
- package/dist/esm/import/DragonBonesImporter.js.map +1 -0
- package/dist/esm/import/GameMakerImporter.js +556 -0
- package/dist/esm/import/GameMakerImporter.js.map +1 -0
- package/dist/esm/import/GodotSceneImporter.js +822 -0
- package/dist/esm/import/GodotSceneImporter.js.map +1 -0
- package/dist/esm/import/LDtkImporter.js +479 -0
- package/dist/esm/import/LDtkImporter.js.map +1 -0
- package/dist/esm/import/Live2DImporter.js +550 -0
- package/dist/esm/import/Live2DImporter.js.map +1 -0
- package/dist/esm/import/NdgFormat.js +490 -0
- package/dist/esm/import/NdgFormat.js.map +1 -0
- package/dist/esm/import/OgmoImporter.js +526 -0
- package/dist/esm/import/OgmoImporter.js.map +1 -0
- package/dist/esm/import/RPGMakerImporter.js +517 -0
- package/dist/esm/import/RPGMakerImporter.js.map +1 -0
- package/dist/esm/import/SceneImporter.js +441 -0
- package/dist/esm/import/SceneImporter.js.map +1 -0
- package/dist/esm/import/SpineImporter.js +580 -0
- package/dist/esm/import/SpineImporter.js.map +1 -0
- package/dist/esm/import/SpriterImporter.js +649 -0
- package/dist/esm/import/SpriterImporter.js.map +1 -0
- package/dist/esm/import/TiledMapImporter.js +857 -0
- package/dist/esm/import/TiledMapImporter.js.map +1 -0
- package/dist/esm/import/UnitySceneImporter.js +730 -0
- package/dist/esm/import/UnitySceneImporter.js.map +1 -0
- package/dist/esm/import/index.js +279 -0
- package/dist/esm/import/index.js.map +1 -0
- package/dist/esm/index.js +47 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integration/IconSprite.js +266 -0
- package/dist/esm/integration/IconSprite.js.map +1 -0
- package/dist/esm/inventory/InventorySystem.js +924 -0
- package/dist/esm/inventory/InventorySystem.js.map +1 -0
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
- package/dist/esm/quest/QuestSystem.js +916 -0
- package/dist/esm/quest/QuestSystem.js.map +1 -0
- package/dist/esm/rendering/WebGPURenderPipeline.js +642 -0
- package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -0
- package/dist/esm/scripting/GraphToAST.js +564 -0
- package/dist/esm/scripting/GraphToAST.js.map +1 -0
- package/dist/esm/scripting/LanguageExporter.js +311 -0
- package/dist/esm/scripting/LanguageExporter.js.map +1 -0
- package/dist/esm/scripting/ScriptAST.js +52 -0
- package/dist/esm/scripting/ScriptAST.js.map +1 -0
- package/dist/esm/scripting/VisualScripting2.js +1130 -0
- package/dist/esm/scripting/VisualScripting2.js.map +1 -0
- package/dist/esm/scripting/exporters/CSharpExporter.js +501 -0
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/GDScriptExporter.js +450 -0
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/LuaExporter.js +455 -0
- package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/PythonExporter.js +563 -0
- package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/RustExporter.js +523 -0
- package/dist/esm/scripting/exporters/RustExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/TypeScriptExporter.js +568 -0
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -0
- package/dist/esm/systems/ParticleSystem2.js +1471 -0
- package/dist/esm/systems/ParticleSystem2.js.map +1 -0
- package/dist/esm/xr/ARVR.js.map +1 -1
- package/dist/types/__tests__/setup.d.ts +1 -1
- package/dist/types/ai/BehaviorTree.d.ts +375 -0
- package/dist/types/ai/StateMachine.d.ts +296 -0
- package/dist/types/audio/AudioBridge.d.ts +199 -0
- package/dist/types/devtools/GameplayAnalytics.d.ts +279 -0
- package/dist/types/dialogue/DialogueSystem.d.ts +326 -0
- package/dist/types/dialogue/index.d.ts +2 -0
- package/dist/types/editor/NiceGameEditor.d.ts +12 -1
- package/dist/types/editor/ShaderGraph.d.ts +207 -0
- package/dist/types/editor/TimelineEditor.d.ts +393 -0
- package/dist/types/engine/SaveSystemV2.d.ts +155 -0
- package/dist/types/export/GodotExporter.d.ts +56 -0
- package/dist/types/export/PlatformExporter.d.ts +201 -0
- package/dist/types/export/ThreeJSExporter.d.ts +40 -0
- package/dist/types/export/UnityExporter.d.ts +69 -0
- package/dist/types/export/WebExporter.d.ts +58 -0
- package/dist/types/export/index.d.ts +19 -0
- package/dist/types/import/AsepriteImporter.d.ts +46 -0
- package/dist/types/import/DragonBonesImporter.d.ts +331 -0
- package/dist/types/import/GameMakerImporter.d.ts +375 -0
- package/dist/types/import/GodotSceneImporter.d.ts +34 -0
- package/dist/types/import/LDtkImporter.d.ts +177 -0
- package/dist/types/import/Live2DImporter.d.ts +237 -0
- package/dist/types/import/NdgFormat.d.ts +387 -0
- package/dist/types/import/OgmoImporter.d.ts +237 -0
- package/dist/types/import/RPGMakerImporter.d.ts +186 -0
- package/dist/types/import/SceneImporter.d.ts +276 -0
- package/dist/types/import/SpineImporter.d.ts +372 -0
- package/dist/types/import/SpriterImporter.d.ts +230 -0
- package/dist/types/import/TiledMapImporter.d.ts +57 -0
- package/dist/types/import/UnitySceneImporter.d.ts +87 -0
- package/dist/types/import/index.d.ts +59 -0
- package/dist/types/index.d.ts +46 -18
- package/dist/types/integration/IconSprite.d.ts +196 -0
- package/dist/types/inventory/InventorySystem.d.ts +336 -0
- package/dist/types/performance/WebGPUCompute.d.ts +0 -10
- package/dist/types/quest/QuestSystem.d.ts +287 -0
- package/dist/types/rendering/WebGPURenderPipeline.d.ts +255 -0
- package/dist/types/scripting/GraphToAST.d.ts +55 -0
- package/dist/types/scripting/LanguageExporter.d.ts +136 -0
- package/dist/types/scripting/ScriptAST.d.ts +312 -0
- package/dist/types/scripting/VisualScripting2.d.ts +353 -0
- package/dist/types/scripting/exporters/CSharpExporter.d.ts +44 -0
- package/dist/types/scripting/exporters/GDScriptExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/LuaExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/PythonExporter.d.ts +49 -0
- package/dist/types/scripting/exporters/RustExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/TypeScriptExporter.d.ts +48 -0
- package/dist/types/scripting/exporters/index.d.ts +8 -0
- package/dist/types/scripting/index.d.ts +11 -0
- package/dist/types/systems/ParticleSystem2.d.ts +646 -0
- package/package.json +7 -1
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file StateMachine.ts
|
|
3
|
+
* @description Finite State Machine System with Graphical Editor Support
|
|
4
|
+
* PRO-1.4: Professional Editor Features
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Hierarchical state machines (HSM)
|
|
8
|
+
* - Transitions with conditions and actions
|
|
9
|
+
* - Entry/Exit/Update callbacks
|
|
10
|
+
* - Transition triggers and events
|
|
11
|
+
* - Visual editor integration
|
|
12
|
+
* - Debugging and history
|
|
13
|
+
* - Parallel states
|
|
14
|
+
* - Animation state machine support
|
|
15
|
+
*/
|
|
16
|
+
import type { EntityId, Vec2 } from '../core/types';
|
|
17
|
+
export type SMStateType = 'normal' | 'entry' | 'exit' | 'any' | 'parallel' | 'submachine';
|
|
18
|
+
export interface SMParameter {
|
|
19
|
+
name: string;
|
|
20
|
+
type: 'bool' | 'int' | 'float' | 'trigger';
|
|
21
|
+
value: boolean | number;
|
|
22
|
+
}
|
|
23
|
+
export type SMConditionOperator = 'equals' | 'notEquals' | 'greater' | 'less' | 'greaterEqual' | 'lessEqual';
|
|
24
|
+
export interface SMCondition {
|
|
25
|
+
id: string;
|
|
26
|
+
parameter: string;
|
|
27
|
+
operator: SMConditionOperator;
|
|
28
|
+
value: boolean | number;
|
|
29
|
+
}
|
|
30
|
+
export interface SMConditionGroup {
|
|
31
|
+
id: string;
|
|
32
|
+
/** AND = all must pass, OR = any must pass */
|
|
33
|
+
mode: 'and' | 'or';
|
|
34
|
+
conditions: SMCondition[];
|
|
35
|
+
}
|
|
36
|
+
export interface SMTransition {
|
|
37
|
+
id: string;
|
|
38
|
+
name?: string;
|
|
39
|
+
/** Source state ID (or 'any' for any-state transitions) */
|
|
40
|
+
from: string;
|
|
41
|
+
/** Target state ID */
|
|
42
|
+
to: string;
|
|
43
|
+
/** Conditions that must be met */
|
|
44
|
+
conditions: SMConditionGroup[];
|
|
45
|
+
/** Transition duration (for blending) */
|
|
46
|
+
duration: number;
|
|
47
|
+
/** Priority (lower = higher priority) */
|
|
48
|
+
priority: number;
|
|
49
|
+
/** Can interrupt current state */
|
|
50
|
+
canInterrupt: boolean;
|
|
51
|
+
/** Trigger name (consumed on use) */
|
|
52
|
+
trigger?: string;
|
|
53
|
+
/** Offset into target state (0-1) for animation */
|
|
54
|
+
targetOffset?: number;
|
|
55
|
+
/** Custom transition curve */
|
|
56
|
+
curve?: 'linear' | 'easeIn' | 'easeOut' | 'easeInOut';
|
|
57
|
+
/** Editor: control points for curved transition line */
|
|
58
|
+
controlPoints?: Vec2[];
|
|
59
|
+
/** Is this transition muted (disabled) */
|
|
60
|
+
muted?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface SMState {
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
type: SMStateType;
|
|
66
|
+
/** Position in editor */
|
|
67
|
+
position: Vec2;
|
|
68
|
+
/** Size in editor (for comments) */
|
|
69
|
+
size?: Vec2;
|
|
70
|
+
/** Custom color */
|
|
71
|
+
color?: string;
|
|
72
|
+
/** State speed multiplier (for animation) */
|
|
73
|
+
speed: number;
|
|
74
|
+
/** Motion/animation clip reference */
|
|
75
|
+
motion?: string;
|
|
76
|
+
/** Is this the default state? */
|
|
77
|
+
isDefault?: boolean;
|
|
78
|
+
/** Sub-state machine ID (for submachine states) */
|
|
79
|
+
submachineId?: string;
|
|
80
|
+
/** Child states (for parallel/hierarchical) */
|
|
81
|
+
children?: string[];
|
|
82
|
+
/** Tags for grouping */
|
|
83
|
+
tags?: string[];
|
|
84
|
+
/** Custom data */
|
|
85
|
+
customData?: Record<string, unknown>;
|
|
86
|
+
/** Behaviors attached to this state */
|
|
87
|
+
behaviors?: SMStateBehavior[];
|
|
88
|
+
}
|
|
89
|
+
export interface SMStateBehavior {
|
|
90
|
+
id: string;
|
|
91
|
+
type: string;
|
|
92
|
+
enabled: boolean;
|
|
93
|
+
properties: Record<string, unknown>;
|
|
94
|
+
}
|
|
95
|
+
export interface SMLayer {
|
|
96
|
+
id: string;
|
|
97
|
+
name: string;
|
|
98
|
+
/** Layer weight (for animation blending) */
|
|
99
|
+
weight: number;
|
|
100
|
+
/** Blending mode */
|
|
101
|
+
blendMode: 'override' | 'additive';
|
|
102
|
+
/** Sync with another layer */
|
|
103
|
+
syncedLayer?: string;
|
|
104
|
+
/** Is this layer active? */
|
|
105
|
+
active: boolean;
|
|
106
|
+
/** States in this layer */
|
|
107
|
+
states: SMState[];
|
|
108
|
+
/** Transitions in this layer */
|
|
109
|
+
transitions: SMTransition[];
|
|
110
|
+
/** Default state ID */
|
|
111
|
+
defaultState?: string;
|
|
112
|
+
/** Any-state transitions */
|
|
113
|
+
anyStateTransitions: SMTransition[];
|
|
114
|
+
}
|
|
115
|
+
export interface SMDefinition {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
description?: string;
|
|
119
|
+
/** Parameters */
|
|
120
|
+
parameters: SMParameter[];
|
|
121
|
+
/** Layers */
|
|
122
|
+
layers: SMLayer[];
|
|
123
|
+
/** Metadata */
|
|
124
|
+
metadata?: {
|
|
125
|
+
author?: string;
|
|
126
|
+
version?: string;
|
|
127
|
+
created?: number;
|
|
128
|
+
modified?: number;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export interface SMContext {
|
|
132
|
+
entityId: EntityId;
|
|
133
|
+
dt: number;
|
|
134
|
+
time: number;
|
|
135
|
+
world: unknown;
|
|
136
|
+
/** Custom services */
|
|
137
|
+
services: Map<string, unknown>;
|
|
138
|
+
}
|
|
139
|
+
export interface SMStateInstance {
|
|
140
|
+
stateId: string;
|
|
141
|
+
layerId: string;
|
|
142
|
+
enterTime: number;
|
|
143
|
+
elapsedTime: number;
|
|
144
|
+
normalizedTime: number;
|
|
145
|
+
isTransitioning: boolean;
|
|
146
|
+
}
|
|
147
|
+
export interface SMTransitionInstance {
|
|
148
|
+
transitionId: string;
|
|
149
|
+
fromState: string;
|
|
150
|
+
toState: string;
|
|
151
|
+
startTime: number;
|
|
152
|
+
duration: number;
|
|
153
|
+
progress: number;
|
|
154
|
+
}
|
|
155
|
+
export type SMEventType = 'state-enter' | 'state-exit' | 'state-update' | 'transition-start' | 'transition-complete' | 'parameter-changed';
|
|
156
|
+
export interface SMEvent {
|
|
157
|
+
type: SMEventType;
|
|
158
|
+
timestamp: number;
|
|
159
|
+
layerId: string;
|
|
160
|
+
data: unknown;
|
|
161
|
+
}
|
|
162
|
+
export type SMCallback = (context: SMContext, state: SMState) => void;
|
|
163
|
+
export type SMTransitionCallback = (context: SMContext, transition: SMTransition) => void;
|
|
164
|
+
export declare class StateMachine {
|
|
165
|
+
private definition;
|
|
166
|
+
private layerStates;
|
|
167
|
+
private activeTransitions;
|
|
168
|
+
private parameters;
|
|
169
|
+
private triggers;
|
|
170
|
+
/** Callbacks */
|
|
171
|
+
private onEnter;
|
|
172
|
+
private onExit;
|
|
173
|
+
private onUpdate;
|
|
174
|
+
private onTransitionStart;
|
|
175
|
+
private onTransitionComplete;
|
|
176
|
+
/** Event listeners */
|
|
177
|
+
private eventListeners;
|
|
178
|
+
/** Debugging */
|
|
179
|
+
private history;
|
|
180
|
+
private historyLimit;
|
|
181
|
+
debugMode: boolean;
|
|
182
|
+
constructor(definition: SMDefinition);
|
|
183
|
+
private initializeParameters;
|
|
184
|
+
private initializeLayers;
|
|
185
|
+
setParameter(name: string, value: boolean | number): void;
|
|
186
|
+
getParameter(name: string): boolean | number | undefined;
|
|
187
|
+
setBool(name: string, value: boolean): void;
|
|
188
|
+
getBool(name: string): boolean;
|
|
189
|
+
setFloat(name: string, value: number): void;
|
|
190
|
+
getFloat(name: string): number;
|
|
191
|
+
setInteger(name: string, value: number): void;
|
|
192
|
+
getInteger(name: string): number;
|
|
193
|
+
setTrigger(name: string): void;
|
|
194
|
+
resetTrigger(name: string): void;
|
|
195
|
+
update(context: SMContext): void;
|
|
196
|
+
private updateLayer;
|
|
197
|
+
private findValidTransition;
|
|
198
|
+
private evaluateConditions;
|
|
199
|
+
private evaluateConditionGroup;
|
|
200
|
+
private evaluateCondition;
|
|
201
|
+
private startTransition;
|
|
202
|
+
private completeTransition;
|
|
203
|
+
private callOnEnter;
|
|
204
|
+
private callOnExit;
|
|
205
|
+
private callOnUpdate;
|
|
206
|
+
registerOnEnter(stateId: string, callback: SMCallback): void;
|
|
207
|
+
registerOnExit(stateId: string, callback: SMCallback): void;
|
|
208
|
+
registerOnUpdate(stateId: string, callback: SMCallback): void;
|
|
209
|
+
registerOnTransitionStart(callback: SMTransitionCallback): void;
|
|
210
|
+
registerOnTransitionComplete(callback: SMTransitionCallback): void;
|
|
211
|
+
on(event: SMEventType, listener: (event: SMEvent) => void): void;
|
|
212
|
+
off(event: SMEventType, listener: (event: SMEvent) => void): void;
|
|
213
|
+
private emit;
|
|
214
|
+
getCurrentState(layerId?: string): SMState | null;
|
|
215
|
+
getCurrentStateId(layerId?: string): string | null;
|
|
216
|
+
isInState(stateId: string, layerId?: string): boolean;
|
|
217
|
+
isTransitioning(layerId?: string): boolean;
|
|
218
|
+
getTransitionProgress(layerId?: string): number;
|
|
219
|
+
getStateTime(layerId?: string): number;
|
|
220
|
+
forceState(stateId: string, layerId?: string): void;
|
|
221
|
+
reset(): void;
|
|
222
|
+
getHistory(): SMEvent[];
|
|
223
|
+
clearHistory(): void;
|
|
224
|
+
getDebugInfo(): {
|
|
225
|
+
layers: Array<{
|
|
226
|
+
id: string;
|
|
227
|
+
name: string;
|
|
228
|
+
currentState: string | null;
|
|
229
|
+
isTransitioning: boolean;
|
|
230
|
+
transitionProgress: number;
|
|
231
|
+
}>;
|
|
232
|
+
parameters: Record<string, boolean | number>;
|
|
233
|
+
};
|
|
234
|
+
getDefinition(): SMDefinition;
|
|
235
|
+
clone(): StateMachine;
|
|
236
|
+
}
|
|
237
|
+
/** Extended state machine for animation control */
|
|
238
|
+
export declare class AnimatorController extends StateMachine {
|
|
239
|
+
private motionValues;
|
|
240
|
+
private blendTrees;
|
|
241
|
+
constructor(definition: SMDefinition);
|
|
242
|
+
/** Get blended motion value for animation sampling */
|
|
243
|
+
getMotionValue(layerId: string): number;
|
|
244
|
+
/** Get current motion/clip name */
|
|
245
|
+
getMotionClip(layerId?: string): string | null;
|
|
246
|
+
/** Register a blend tree for a state */
|
|
247
|
+
registerBlendTree(stateId: string, blendTree: BlendTree): void;
|
|
248
|
+
/** Sample blend tree for current parameters */
|
|
249
|
+
sampleBlendTree(stateId: string): BlendTreeSample | null;
|
|
250
|
+
private getParameterMap;
|
|
251
|
+
}
|
|
252
|
+
export type BlendTreeType = '1d' | '2d-simple' | '2d-freeform' | 'direct';
|
|
253
|
+
export interface BlendTreeMotion {
|
|
254
|
+
clip: string;
|
|
255
|
+
position: number | Vec2;
|
|
256
|
+
speed?: number;
|
|
257
|
+
mirror?: boolean;
|
|
258
|
+
threshold?: number;
|
|
259
|
+
}
|
|
260
|
+
export interface BlendTreeSample {
|
|
261
|
+
clips: Array<{
|
|
262
|
+
clip: string;
|
|
263
|
+
weight: number;
|
|
264
|
+
speed: number;
|
|
265
|
+
mirror: boolean;
|
|
266
|
+
}>;
|
|
267
|
+
}
|
|
268
|
+
export declare class BlendTree {
|
|
269
|
+
type: BlendTreeType;
|
|
270
|
+
parameterX: string;
|
|
271
|
+
parameterY?: string;
|
|
272
|
+
motions: BlendTreeMotion[];
|
|
273
|
+
constructor(type: BlendTreeType, parameterX: string, parameterY?: string);
|
|
274
|
+
addMotion(motion: BlendTreeMotion): void;
|
|
275
|
+
sample(parameters: Record<string, number>): BlendTreeSample;
|
|
276
|
+
private sample1D;
|
|
277
|
+
private sample2D;
|
|
278
|
+
private sampleDirect;
|
|
279
|
+
}
|
|
280
|
+
export declare function createStateMachine(definition: SMDefinition): StateMachine;
|
|
281
|
+
export declare function createAnimatorController(definition: SMDefinition): AnimatorController;
|
|
282
|
+
export declare function createBlendTree1D(parameter: string): BlendTree;
|
|
283
|
+
export declare function createBlendTree2D(parameterX: string, parameterY: string, type?: '2d-simple' | '2d-freeform'): BlendTree;
|
|
284
|
+
export declare function createSMDefinition(name: string): SMDefinition;
|
|
285
|
+
export declare function createSMLayer(name: string): SMLayer;
|
|
286
|
+
export declare function createSMState(name: string, type?: SMStateType): SMState;
|
|
287
|
+
export declare function createSMTransition(from: string, to: string): SMTransition;
|
|
288
|
+
export declare function createSMParameter(name: string, type: SMParameter['type'], value?: boolean | number): SMParameter;
|
|
289
|
+
export declare function createSMCondition(parameter: string, operator: SMConditionOperator, value: boolean | number): SMCondition;
|
|
290
|
+
export declare function createSMConditionGroup(mode?: 'and' | 'or'): SMConditionGroup;
|
|
291
|
+
export declare function createSMContext(params: {
|
|
292
|
+
entityId: EntityId;
|
|
293
|
+
dt: number;
|
|
294
|
+
time: number;
|
|
295
|
+
world: unknown;
|
|
296
|
+
}): SMContext;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { EventBus } from '../core/EventBus';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export type AudioBusType = 'master' | 'music' | 'sfx' | 'voice' | 'ambient' | 'ui';
|
|
4
|
+
export type SpatialModel = 'none' | '2d-panning' | '3d-hrtf' | '3d-equal-power';
|
|
5
|
+
export type AudioPoolStrategy = 'round-robin' | 'steal-oldest' | 'steal-quietest' | 'reject';
|
|
6
|
+
export interface AudioBusConfig {
|
|
7
|
+
type: AudioBusType;
|
|
8
|
+
volume: number;
|
|
9
|
+
muted: boolean;
|
|
10
|
+
effects: AudioEffectNode[];
|
|
11
|
+
}
|
|
12
|
+
export interface AudioEffectNode {
|
|
13
|
+
type: 'reverb' | 'delay' | 'distortion' | 'compressor' | 'eq' | 'lowpass' | 'highpass';
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
params: Record<string, number>;
|
|
16
|
+
}
|
|
17
|
+
export interface SpatialAudioConfig {
|
|
18
|
+
model: SpatialModel;
|
|
19
|
+
maxDistance: number;
|
|
20
|
+
refDistance: number;
|
|
21
|
+
rolloffFactor: number;
|
|
22
|
+
coneInnerAngle: number;
|
|
23
|
+
coneOuterAngle: number;
|
|
24
|
+
coneOuterGain: number;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_SPATIAL: SpatialAudioConfig;
|
|
27
|
+
export interface AudioPoolConfig {
|
|
28
|
+
id: string;
|
|
29
|
+
src: string;
|
|
30
|
+
maxInstances: number;
|
|
31
|
+
strategy: AudioPoolStrategy;
|
|
32
|
+
bus: AudioBusType;
|
|
33
|
+
spatial?: SpatialAudioConfig;
|
|
34
|
+
cooldownMs?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface GameAudioEvent {
|
|
37
|
+
type: 'play' | 'stop' | 'pause' | 'resume' | 'fade' | 'crossfade' | 'set-bus-volume';
|
|
38
|
+
sourceId?: string;
|
|
39
|
+
bus?: AudioBusType;
|
|
40
|
+
volume?: number;
|
|
41
|
+
fadeDuration?: number;
|
|
42
|
+
position?: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
z?: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface MusicTrack {
|
|
49
|
+
id: string;
|
|
50
|
+
src: string;
|
|
51
|
+
bpm?: number;
|
|
52
|
+
loopStart?: number;
|
|
53
|
+
loopEnd?: number;
|
|
54
|
+
tags: string[];
|
|
55
|
+
}
|
|
56
|
+
export interface MusicCrossfadeConfig {
|
|
57
|
+
fromTrackId: string | null;
|
|
58
|
+
toTrackId: string;
|
|
59
|
+
duration: number;
|
|
60
|
+
curve: 'linear' | 'equal-power' | 'ease-in' | 'ease-out';
|
|
61
|
+
}
|
|
62
|
+
export interface AdaptiveAudioRule {
|
|
63
|
+
id: string;
|
|
64
|
+
/** Game event that triggers this rule */
|
|
65
|
+
triggerEvent: string;
|
|
66
|
+
/** Action to take */
|
|
67
|
+
action: 'switch-track' | 'add-layer' | 'remove-layer' | 'set-intensity' | 'play-stinger';
|
|
68
|
+
targetTrackId?: string;
|
|
69
|
+
layerId?: string;
|
|
70
|
+
intensity?: number;
|
|
71
|
+
fadeDuration?: number;
|
|
72
|
+
stingerSrc?: string;
|
|
73
|
+
priority: number;
|
|
74
|
+
}
|
|
75
|
+
export interface AudioSnapshot {
|
|
76
|
+
timestamp: number;
|
|
77
|
+
busVolumes: Record<AudioBusType, number>;
|
|
78
|
+
activeSounds: {
|
|
79
|
+
id: string;
|
|
80
|
+
src: string;
|
|
81
|
+
bus: AudioBusType;
|
|
82
|
+
volume: number;
|
|
83
|
+
playing: boolean;
|
|
84
|
+
}[];
|
|
85
|
+
currentMusicTrack: string | null;
|
|
86
|
+
musicPosition: number;
|
|
87
|
+
}
|
|
88
|
+
export declare class AudioBusMixer {
|
|
89
|
+
private buses;
|
|
90
|
+
private eventBus;
|
|
91
|
+
constructor(eventBus: EventBus);
|
|
92
|
+
getBus(type: AudioBusType): AudioBusConfig | undefined;
|
|
93
|
+
setVolume(type: AudioBusType, volume: number): void;
|
|
94
|
+
setMuted(type: AudioBusType, muted: boolean): void;
|
|
95
|
+
/** Get effective volume considering master and mute */
|
|
96
|
+
getEffectiveVolume(type: AudioBusType): number;
|
|
97
|
+
addEffect(type: AudioBusType, effect: AudioEffectNode): void;
|
|
98
|
+
removeEffect(type: AudioBusType, effectType: AudioEffectNode['type']): void;
|
|
99
|
+
getAllBuses(): ReadonlyMap<AudioBusType, AudioBusConfig>;
|
|
100
|
+
snapshot(): Record<AudioBusType, number>;
|
|
101
|
+
}
|
|
102
|
+
export declare class SFXPool {
|
|
103
|
+
private config;
|
|
104
|
+
private sounds;
|
|
105
|
+
private nextId;
|
|
106
|
+
private lastPlayedAt;
|
|
107
|
+
constructor(config: AudioPoolConfig);
|
|
108
|
+
play(volume?: number, position?: {
|
|
109
|
+
x: number;
|
|
110
|
+
y: number;
|
|
111
|
+
z?: number;
|
|
112
|
+
}): number | null;
|
|
113
|
+
stop(id: number): void;
|
|
114
|
+
stopAll(): void;
|
|
115
|
+
getActiveCount(): number;
|
|
116
|
+
getConfig(): Readonly<AudioPoolConfig>;
|
|
117
|
+
}
|
|
118
|
+
export declare class MusicManager {
|
|
119
|
+
private tracks;
|
|
120
|
+
private currentTrackId;
|
|
121
|
+
private adaptiveRules;
|
|
122
|
+
private eventBus;
|
|
123
|
+
private intensity;
|
|
124
|
+
constructor(eventBus: EventBus);
|
|
125
|
+
registerTrack(track: MusicTrack): void;
|
|
126
|
+
unregisterTrack(id: string): void;
|
|
127
|
+
getTrack(id: string): MusicTrack | undefined;
|
|
128
|
+
getCurrentTrackId(): string | null;
|
|
129
|
+
/** Start playing or crossfade to a new track */
|
|
130
|
+
play(trackId: string, crossfadeDuration?: number): MusicCrossfadeConfig | null;
|
|
131
|
+
stop(fadeOutMs?: number): void;
|
|
132
|
+
/** Adaptive audio rules — respond to game events */
|
|
133
|
+
addRule(rule: AdaptiveAudioRule): void;
|
|
134
|
+
removeRule(id: string): void;
|
|
135
|
+
/** Process a game event and apply matching adaptive rules */
|
|
136
|
+
processGameEvent(eventName: string): AdaptiveAudioRule | null;
|
|
137
|
+
getIntensity(): number;
|
|
138
|
+
setIntensity(value: number): void;
|
|
139
|
+
getRules(): readonly AdaptiveAudioRule[];
|
|
140
|
+
getAllTracks(): MusicTrack[];
|
|
141
|
+
/** Find tracks matching tags */
|
|
142
|
+
findByTags(tags: string[]): MusicTrack[];
|
|
143
|
+
}
|
|
144
|
+
/** Main bridge class connecting @nice2dev/ui-audio features to the game engine */
|
|
145
|
+
export declare class GameAudioBridge {
|
|
146
|
+
readonly mixer: AudioBusMixer;
|
|
147
|
+
readonly music: MusicManager;
|
|
148
|
+
private pools;
|
|
149
|
+
private eventBus;
|
|
150
|
+
private paused;
|
|
151
|
+
private snapshot;
|
|
152
|
+
constructor(eventBus: EventBus);
|
|
153
|
+
private setupGameStateHandlers;
|
|
154
|
+
/** Register an SFX pool for frequent sounds */
|
|
155
|
+
registerPool(config: AudioPoolConfig): void;
|
|
156
|
+
/** Play a pooled SFX */
|
|
157
|
+
playSFX(poolId: string, volume?: number, position?: {
|
|
158
|
+
x: number;
|
|
159
|
+
y: number;
|
|
160
|
+
z?: number;
|
|
161
|
+
}): number | null;
|
|
162
|
+
/** Stop a pooled SFX instance */
|
|
163
|
+
stopSFX(poolId: string, instanceId: number): void;
|
|
164
|
+
/** Pause all audio (game menu, alt-tab, etc.) */
|
|
165
|
+
pauseAll(): void;
|
|
166
|
+
/** Resume all audio */
|
|
167
|
+
resumeAll(): void;
|
|
168
|
+
isPaused(): boolean;
|
|
169
|
+
/** Create a snapshot of current audio state for save/restore */
|
|
170
|
+
createSnapshot(): AudioSnapshot;
|
|
171
|
+
/** Restore audio from a snapshot */
|
|
172
|
+
restoreSnapshot(snap: AudioSnapshot): void;
|
|
173
|
+
/** Process a game audio event */
|
|
174
|
+
processEvent(event: GameAudioEvent): void;
|
|
175
|
+
getPool(id: string): SFXPool | undefined;
|
|
176
|
+
getAllPools(): Map<string, SFXPool>;
|
|
177
|
+
destroy(): void;
|
|
178
|
+
}
|
|
179
|
+
export declare function useGameAudio(eventBus: EventBus): {
|
|
180
|
+
bridge: GameAudioBridge;
|
|
181
|
+
playSFX: (poolId: string, volume?: number, position?: {
|
|
182
|
+
x: number;
|
|
183
|
+
y: number;
|
|
184
|
+
z?: number;
|
|
185
|
+
}) => number | null;
|
|
186
|
+
playMusic: (trackId: string, crossfadeDuration?: number) => MusicCrossfadeConfig | null;
|
|
187
|
+
stopMusic: (fadeOutMs?: number) => void;
|
|
188
|
+
setVolume: (bus: AudioBusType, volume: number) => void;
|
|
189
|
+
pauseAll: () => void;
|
|
190
|
+
resumeAll: () => void;
|
|
191
|
+
registerPool: (config: AudioPoolConfig) => void;
|
|
192
|
+
registerTrack: (track: MusicTrack) => void;
|
|
193
|
+
};
|
|
194
|
+
export interface GameAudioSettingsProps {
|
|
195
|
+
bridge: GameAudioBridge;
|
|
196
|
+
className?: string;
|
|
197
|
+
style?: React.CSSProperties;
|
|
198
|
+
}
|
|
199
|
+
export declare const GameAudioSettings: React.FC<GameAudioSettingsProps>;
|