@nice2dev/game-engine 1.0.5 → 1.0.10
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/dist/cjs/accessibility/Accessibility.js +55 -20
- package/dist/cjs/accessibility/Accessibility.js.map +1 -1
- package/dist/cjs/ai/AI.js +74 -40
- package/dist/cjs/ai/AI.js.map +1 -1
- package/dist/cjs/ai/BehaviorTree.js +39 -47
- package/dist/cjs/ai/BehaviorTree.js.map +1 -1
- package/dist/cjs/ai/StateMachine.js +64 -100
- package/dist/cjs/ai/StateMachine.js.map +1 -1
- package/dist/cjs/animation/Animation.js +58 -34
- package/dist/cjs/animation/Animation.js.map +1 -1
- package/dist/cjs/audio/AudioAdvanced.js +71 -37
- package/dist/cjs/audio/AudioAdvanced.js.map +1 -1
- package/dist/cjs/audio/AudioBridge.js +61 -49
- package/dist/cjs/audio/AudioBridge.js.map +1 -1
- package/dist/cjs/audio/AudioManager.js +45 -29
- package/dist/cjs/audio/AudioManager.js.map +1 -1
- package/dist/cjs/build-cloud/BuildOrchestration.js +1142 -0
- package/dist/cjs/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js +722 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js +652 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js +674 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/cjs/core/EventBus.js +2 -1
- package/dist/cjs/core/EventBus.js.map +1 -1
- package/dist/cjs/core/GameConfig.js +1 -1
- package/dist/cjs/core/GameConfig.js.map +1 -1
- package/dist/cjs/core/GameLoop.js +6 -3
- package/dist/cjs/core/GameLoop.js.map +1 -1
- package/dist/cjs/core/ServiceLocator.js +1 -2
- package/dist/cjs/core/ServiceLocator.js.map +1 -1
- package/dist/cjs/devtools/DevTools.js +73 -43
- package/dist/cjs/devtools/DevTools.js.map +1 -1
- package/dist/cjs/devtools/DeveloperExperience.js +84 -42
- package/dist/cjs/devtools/DeveloperExperience.js.map +1 -1
- package/dist/cjs/devtools/GameplayAnalytics.js +71 -43
- package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/cjs/dialogue/DialogueSystem.js +153 -129
- package/dist/cjs/dialogue/DialogueSystem.js.map +1 -1
- package/dist/cjs/docs/DocGenerator.js +70 -28
- package/dist/cjs/docs/DocGenerator.js.map +1 -1
- package/dist/cjs/ecs/World.js +159 -33
- package/dist/cjs/ecs/World.js.map +1 -1
- package/dist/cjs/editor/AchievementEditor.js +650 -0
- package/dist/cjs/editor/AchievementEditor.js.map +1 -0
- package/dist/cjs/editor/AdvancedEditor.js +95 -23
- package/dist/cjs/editor/AdvancedEditor.js.map +1 -1
- package/dist/cjs/editor/AnimationRetargeting.js +742 -0
- package/dist/cjs/editor/AnimationRetargeting.js.map +1 -0
- package/dist/cjs/editor/AssetBrowser.js +1191 -0
- package/dist/cjs/editor/AssetBrowser.js.map +1 -0
- package/dist/cjs/editor/AssetManager.js +22 -14
- package/dist/cjs/editor/AssetManager.js.map +1 -1
- package/dist/cjs/editor/ConsolePro.js +1092 -0
- package/dist/cjs/editor/ConsolePro.js.map +1 -0
- package/dist/cjs/editor/CraftingEditor.js +749 -0
- package/dist/cjs/editor/CraftingEditor.js.map +1 -0
- package/dist/cjs/editor/DebugTools.js +46 -23
- package/dist/cjs/editor/DebugTools.js.map +1 -1
- package/dist/cjs/editor/DialogueSystem.js +924 -0
- package/dist/cjs/editor/DialogueSystem.js.map +1 -0
- package/dist/cjs/editor/LeaderboardSystem.js +496 -0
- package/dist/cjs/editor/LeaderboardSystem.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +532 -142
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
- package/dist/cjs/editor/PrefabSystem.js +864 -0
- package/dist/cjs/editor/PrefabSystem.js.map +1 -0
- package/dist/cjs/editor/ProfilerPanel.js +716 -0
- package/dist/cjs/editor/ProfilerPanel.js.map +1 -0
- package/dist/cjs/editor/QuestEditor.js +850 -0
- package/dist/cjs/editor/QuestEditor.js.map +1 -0
- package/dist/cjs/editor/ReplaySystem.js +655 -0
- package/dist/cjs/editor/ReplaySystem.js.map +1 -0
- package/dist/cjs/editor/SceneEditor.js +33 -13
- package/dist/cjs/editor/SceneEditor.js.map +1 -1
- package/dist/cjs/editor/ScreenshotMode.js +710 -0
- package/dist/cjs/editor/ScreenshotMode.js.map +1 -0
- package/dist/cjs/editor/ShaderGraph.js +7 -6
- package/dist/cjs/editor/ShaderGraph.js.map +1 -1
- package/dist/cjs/editor/TimelineEditor.js +36 -30
- package/dist/cjs/editor/TimelineEditor.js.map +1 -1
- package/dist/cjs/editor/UndoRedoPro.js +920 -0
- package/dist/cjs/editor/UndoRedoPro.js.map +1 -0
- package/dist/cjs/editor/VRARMode.js +658 -0
- package/dist/cjs/editor/VRARMode.js.map +1 -0
- package/dist/cjs/engine/NiceGameEngine.js +12 -10
- package/dist/cjs/engine/NiceGameEngine.js.map +1 -1
- package/dist/cjs/engine/SaveSystemV2.js +73 -37
- package/dist/cjs/engine/SaveSystemV2.js.map +1 -1
- package/dist/cjs/enterprise/Enterprise.js +92 -44
- package/dist/cjs/enterprise/Enterprise.js.map +1 -1
- package/dist/cjs/export/BevyExporter.js +998 -0
- package/dist/cjs/export/BevyExporter.js.map +1 -0
- package/dist/cjs/export/CocosExporter.js +706 -0
- package/dist/cjs/export/CocosExporter.js.map +1 -0
- package/dist/cjs/export/Construct3Exporter.js +832 -0
- package/dist/cjs/export/Construct3Exporter.js.map +1 -0
- package/dist/cjs/export/DefoldExporter.js +1106 -0
- package/dist/cjs/export/DefoldExporter.js.map +1 -0
- package/dist/cjs/export/GDevelopExporter.js +748 -0
- package/dist/cjs/export/GDevelopExporter.js.map +1 -0
- package/dist/cjs/export/GameMakerExporter.js +846 -0
- package/dist/cjs/export/GameMakerExporter.js.map +1 -0
- package/dist/cjs/export/GodotExporter.js +45 -50
- package/dist/cjs/export/GodotExporter.js.map +1 -1
- package/dist/cjs/export/MinecraftBedrockExporter.js +606 -0
- package/dist/cjs/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/cjs/export/MonoGameExporter.js +1334 -0
- package/dist/cjs/export/MonoGameExporter.js.map +1 -0
- package/dist/cjs/export/Pico8Exporter.js +846 -0
- package/dist/cjs/export/Pico8Exporter.js.map +1 -0
- package/dist/cjs/export/PlatformExporter.js +4 -5
- package/dist/cjs/export/PlatformExporter.js.map +1 -1
- package/dist/cjs/export/RPGMakerExporter.js +906 -0
- package/dist/cjs/export/RPGMakerExporter.js.map +1 -0
- package/dist/cjs/export/RobloxExporter.js +943 -0
- package/dist/cjs/export/RobloxExporter.js.map +1 -0
- package/dist/cjs/export/Solar2DExporter.js +1283 -0
- package/dist/cjs/export/Solar2DExporter.js.map +1 -0
- package/dist/cjs/export/ThreeJSExporter.js +52 -55
- package/dist/cjs/export/ThreeJSExporter.js.map +1 -1
- package/dist/cjs/export/Tic80Exporter.js +1315 -0
- package/dist/cjs/export/Tic80Exporter.js.map +1 -0
- package/dist/cjs/export/UnityExporter.js +41 -56
- package/dist/cjs/export/UnityExporter.js.map +1 -1
- package/dist/cjs/export/UnrealExporter.js +962 -0
- package/dist/cjs/export/UnrealExporter.js.map +1 -0
- package/dist/cjs/export/WebExporter.js +42 -50
- package/dist/cjs/export/WebExporter.js.map +1 -1
- package/dist/cjs/export/index.js +50 -2
- package/dist/cjs/export/index.js.map +1 -1
- package/dist/cjs/godot-integration/GodotAssetLibrary.js +716 -0
- package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/cjs/godot-integration/GodotImport.js +1069 -0
- package/dist/cjs/godot-integration/GodotImport.js.map +1 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js +962 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +668 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/cjs/i18n/I18n.js +56 -30
- package/dist/cjs/i18n/I18n.js.map +1 -1
- package/dist/cjs/i18n/useTranslation.js +4 -4
- package/dist/cjs/i18n/useTranslation.js.map +1 -1
- package/dist/cjs/import/AsepriteImporter.js +15 -19
- package/dist/cjs/import/AsepriteImporter.js.map +1 -1
- package/dist/cjs/import/DragonBonesImporter.js +36 -40
- package/dist/cjs/import/DragonBonesImporter.js.map +1 -1
- package/dist/cjs/import/GameMakerImporter.js +11 -17
- package/dist/cjs/import/GameMakerImporter.js.map +1 -1
- package/dist/cjs/import/GodotSceneImporter.js +43 -29
- package/dist/cjs/import/GodotSceneImporter.js.map +1 -1
- package/dist/cjs/import/LDtkImporter.js +16 -17
- package/dist/cjs/import/LDtkImporter.js.map +1 -1
- package/dist/cjs/import/Live2DImporter.js +16 -19
- package/dist/cjs/import/Live2DImporter.js.map +1 -1
- package/dist/cjs/import/NdgFormat.js +28 -35
- package/dist/cjs/import/NdgFormat.js.map +1 -1
- package/dist/cjs/import/OgmoImporter.js +16 -18
- package/dist/cjs/import/OgmoImporter.js.map +1 -1
- package/dist/cjs/import/RPGMakerImporter.js +5 -6
- package/dist/cjs/import/RPGMakerImporter.js.map +1 -1
- package/dist/cjs/import/SceneImporter.js +23 -13
- package/dist/cjs/import/SceneImporter.js.map +1 -1
- package/dist/cjs/import/SpineImporter.js +20 -20
- package/dist/cjs/import/SpineImporter.js.map +1 -1
- package/dist/cjs/import/SpriterImporter.js +38 -46
- package/dist/cjs/import/SpriterImporter.js.map +1 -1
- package/dist/cjs/import/TiledMapImporter.js +20 -24
- package/dist/cjs/import/TiledMapImporter.js.map +1 -1
- package/dist/cjs/import/UnitySceneImporter.js +15 -15
- package/dist/cjs/import/UnitySceneImporter.js.map +1 -1
- package/dist/cjs/index.js +516 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/input/GamepadNavigation.js +82 -47
- package/dist/cjs/input/GamepadNavigation.js.map +1 -1
- package/dist/cjs/input/InputManager.js +107 -52
- package/dist/cjs/input/InputManager.js.map +1 -1
- package/dist/cjs/input/useGamepads.js +35 -29
- package/dist/cjs/input/useGamepads.js.map +1 -1
- package/dist/cjs/integration/IconSprite.js +39 -21
- package/dist/cjs/integration/IconSprite.js.map +1 -1
- package/dist/cjs/inventory/InventorySystem.js +218 -127
- package/dist/cjs/inventory/InventorySystem.js.map +1 -1
- package/dist/cjs/kids/KidMode.js +491 -78
- package/dist/cjs/kids/KidMode.js.map +1 -1
- package/dist/cjs/kids/KidTools.js +154 -48
- package/dist/cjs/kids/KidTools.js.map +1 -1
- package/dist/cjs/monetization/Monetization.js +47 -35
- package/dist/cjs/monetization/Monetization.js.map +1 -1
- package/dist/cjs/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/cjs/multiplayer/MiniGameTypes.js +23 -10
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/cjs/native-engine/AssetPipeline.js +540 -0
- package/dist/cjs/native-engine/AssetPipeline.js.map +1 -0
- package/dist/cjs/native-engine/AudioEngine.js +825 -0
- package/dist/cjs/native-engine/AudioEngine.js.map +1 -0
- package/dist/cjs/native-engine/InputSystem.js +1175 -0
- package/dist/cjs/native-engine/InputSystem.js.map +1 -0
- package/dist/cjs/native-engine/NetworkingSystem.js +825 -0
- package/dist/cjs/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/cjs/native-engine/PhysicsEngine.js +622 -0
- package/dist/cjs/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/cjs/native-engine/RenderingEngine.js +371 -0
- package/dist/cjs/native-engine/RenderingEngine.js.map +1 -0
- package/dist/cjs/native-engine/SceneGraph.js +862 -0
- package/dist/cjs/native-engine/SceneGraph.js.map +1 -0
- package/dist/cjs/network/MultiplayerTransport.js +63 -33
- package/dist/cjs/network/MultiplayerTransport.js.map +1 -1
- package/dist/cjs/network/Networking.js +87 -62
- package/dist/cjs/network/Networking.js.map +1 -1
- package/dist/cjs/pathfinding/Pathfinding.js +71 -26
- package/dist/cjs/pathfinding/Pathfinding.js.map +1 -1
- package/dist/cjs/performance/AssetStreaming.js +656 -0
- package/dist/cjs/performance/AssetStreaming.js.map +1 -0
- package/dist/cjs/performance/BenchmarkSuite.js +37 -24
- package/dist/cjs/performance/BenchmarkSuite.js.map +1 -1
- package/dist/cjs/performance/DeltaCompression.js +566 -0
- package/dist/cjs/performance/DeltaCompression.js.map +1 -0
- package/dist/cjs/performance/DeterministicPhysics.js +603 -0
- package/dist/cjs/performance/DeterministicPhysics.js.map +1 -0
- package/dist/cjs/performance/ECSOptimization.js +726 -0
- package/dist/cjs/performance/ECSOptimization.js.map +1 -0
- package/dist/cjs/performance/HotReload.js +525 -0
- package/dist/cjs/performance/HotReload.js.map +1 -0
- package/dist/cjs/performance/InputRecording.js +590 -0
- package/dist/cjs/performance/InputRecording.js.map +1 -0
- package/dist/cjs/performance/InterestManagement.js +532 -0
- package/dist/cjs/performance/InterestManagement.js.map +1 -0
- package/dist/cjs/performance/LocalizationRuntime.js +472 -0
- package/dist/cjs/performance/LocalizationRuntime.js.map +1 -0
- package/dist/cjs/performance/MemoryManagement.js +487 -0
- package/dist/cjs/performance/MemoryManagement.js.map +1 -0
- package/dist/cjs/performance/ModSupport.js +531 -0
- package/dist/cjs/performance/ModSupport.js.map +1 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js +500 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/cjs/performance/NetworkPrediction.js +521 -0
- package/dist/cjs/performance/NetworkPrediction.js.map +1 -0
- package/dist/cjs/performance/ObjectPooling.js +653 -0
- package/dist/cjs/performance/ObjectPooling.js.map +1 -0
- package/dist/cjs/performance/Performance.js +64 -25
- package/dist/cjs/performance/Performance.js.map +1 -1
- package/dist/cjs/performance/PerformanceAdvanced.js +83 -49
- package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/cjs/performance/SaveSystem.js +574 -0
- package/dist/cjs/performance/SaveSystem.js.map +1 -0
- package/dist/cjs/performance/WebGPURenderer.js +702 -0
- package/dist/cjs/performance/WebGPURenderer.js.map +1 -0
- package/dist/cjs/physics/PhysicsAdvanced.js +32 -20
- package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/cjs/physics/PhysicsEngine2D.js +63 -36
- package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/cjs/plugins/PluginSDK.js +46 -34
- package/dist/cjs/plugins/PluginSDK.js.map +1 -1
- package/dist/cjs/plugins/PluginTestKit.js +28 -29
- package/dist/cjs/plugins/PluginTestKit.js.map +1 -1
- package/dist/cjs/procedural/Procedural.js +24 -17
- package/dist/cjs/procedural/Procedural.js.map +1 -1
- package/dist/cjs/procedural/WorldBuilding.js +187 -55
- package/dist/cjs/procedural/WorldBuilding.js.map +1 -1
- package/dist/cjs/quest/QuestSystem.js +145 -111
- package/dist/cjs/quest/QuestSystem.js.map +1 -1
- package/dist/cjs/release/Release.js +142 -31
- package/dist/cjs/release/Release.js.map +1 -1
- package/dist/cjs/rendering/Camera2D.js +12 -7
- package/dist/cjs/rendering/Camera2D.js.map +1 -1
- package/dist/cjs/rendering/Renderer2D.js +62 -26
- package/dist/cjs/rendering/Renderer2D.js.map +1 -1
- package/dist/cjs/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/cjs/runtime3d/Runtime3D.js +80 -55
- package/dist/cjs/runtime3d/Runtime3D.js.map +1 -1
- package/dist/cjs/runtime3d/SceneEditor3D.js +20 -11
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/cjs/scene/SceneManager.js +26 -12
- package/dist/cjs/scene/SceneManager.js.map +1 -1
- package/dist/cjs/scripting/GraphToAST.js +36 -24
- package/dist/cjs/scripting/GraphToAST.js.map +1 -1
- package/dist/cjs/scripting/LanguageExporter.js +2 -3
- package/dist/cjs/scripting/LanguageExporter.js.map +1 -1
- package/dist/cjs/scripting/NodeGraph.js +49 -32
- package/dist/cjs/scripting/NodeGraph.js.map +1 -1
- package/dist/cjs/scripting/ScriptAST.js +19 -6
- package/dist/cjs/scripting/ScriptAST.js.map +1 -1
- package/dist/cjs/scripting/VisualScripting2.js +13 -12
- package/dist/cjs/scripting/VisualScripting2.js.map +1 -1
- package/dist/cjs/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/LuaExporter.js +5 -9
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/PythonExporter.js +7 -13
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/RustExporter.js +7 -14
- package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/cjs/social/Social.js +27 -20
- package/dist/cjs/social/Social.js.map +1 -1
- package/dist/cjs/systems/LightingSystem.js +980 -0
- package/dist/cjs/systems/LightingSystem.js.map +1 -0
- package/dist/cjs/systems/ParticleSystem2.js +34 -17
- package/dist/cjs/systems/ParticleSystem2.js.map +1 -1
- package/dist/cjs/systems/PhysicsDebugSystem.js +1228 -0
- package/dist/cjs/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/cjs/systems/TerrainSystem.js +1137 -0
- package/dist/cjs/systems/TerrainSystem.js.map +1 -0
- package/dist/cjs/templates/ActionTemplates.js +144 -24
- package/dist/cjs/templates/ActionTemplates.js.map +1 -1
- package/dist/cjs/templates/FightingTemplate.js +536 -0
- package/dist/cjs/templates/FightingTemplate.js.map +1 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js +523 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/cjs/templates/PartyTemplates.js +60 -28
- package/dist/cjs/templates/PartyTemplates.js.map +1 -1
- package/dist/cjs/templates/PuzzleTemplates.js +63 -22
- package/dist/cjs/templates/PuzzleTemplates.js.map +1 -1
- package/dist/cjs/templates/RPGTemplates.js +29 -15
- package/dist/cjs/templates/RPGTemplates.js.map +1 -1
- package/dist/cjs/templates/SportsTemplates.js +41 -17
- package/dist/cjs/templates/SportsTemplates.js.map +1 -1
- package/dist/cjs/templates/StrategyTemplates.js +45 -18
- package/dist/cjs/templates/StrategyTemplates.js.map +1 -1
- package/dist/cjs/templates/SurvivalTemplate.js +479 -0
- package/dist/cjs/templates/SurvivalTemplate.js.map +1 -0
- package/dist/cjs/templates/WaveDefense.js +139 -52
- package/dist/cjs/templates/WaveDefense.js.map +1 -1
- package/dist/cjs/tilemap/Tilemap.js +48 -32
- package/dist/cjs/tilemap/Tilemap.js.map +1 -1
- package/dist/cjs/tutorials/TutorialBranching.js +111 -42
- package/dist/cjs/tutorials/TutorialBranching.js.map +1 -1
- package/dist/cjs/tutorials/TutorialEngine.js +152 -80
- package/dist/cjs/tutorials/TutorialEngine.js.map +1 -1
- package/dist/cjs/tutorials/TutorialOverlay.js +117 -40
- package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/cjs/ui/GameUI.js +69 -42
- package/dist/cjs/ui/GameUI.js.map +1 -1
- package/dist/cjs/unity-integration/UnityAssetStore.js +754 -0
- package/dist/cjs/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/cjs/unity-integration/UnityImport.js +1252 -0
- package/dist/cjs/unity-integration/UnityImport.js.map +1 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js +1022 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +796 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +833 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealImport.js +442 -0
- package/dist/cjs/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js +1186 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js +497 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +835 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/cjs/xr/ARVR.js +32 -9
- package/dist/cjs/xr/ARVR.js.map +1 -1
- package/dist/esm/accessibility/Accessibility.js +55 -20
- package/dist/esm/accessibility/Accessibility.js.map +1 -1
- package/dist/esm/ai/AI.js +74 -40
- package/dist/esm/ai/AI.js.map +1 -1
- package/dist/esm/ai/BehaviorTree.js +39 -47
- package/dist/esm/ai/BehaviorTree.js.map +1 -1
- package/dist/esm/ai/StateMachine.js +65 -99
- package/dist/esm/ai/StateMachine.js.map +1 -1
- package/dist/esm/animation/Animation.js +58 -34
- package/dist/esm/animation/Animation.js.map +1 -1
- package/dist/esm/audio/AudioAdvanced.js +71 -37
- package/dist/esm/audio/AudioAdvanced.js.map +1 -1
- package/dist/esm/audio/AudioBridge.js +61 -49
- package/dist/esm/audio/AudioBridge.js.map +1 -1
- package/dist/esm/audio/AudioManager.js +45 -29
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/build-cloud/BuildOrchestration.js +1129 -0
- package/dist/esm/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js +715 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js +643 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js +668 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/esm/core/EventBus.js +2 -1
- package/dist/esm/core/EventBus.js.map +1 -1
- package/dist/esm/core/GameConfig.js +1 -1
- package/dist/esm/core/GameConfig.js.map +1 -1
- package/dist/esm/core/GameLoop.js +6 -3
- package/dist/esm/core/GameLoop.js.map +1 -1
- package/dist/esm/core/ServiceLocator.js +1 -2
- package/dist/esm/core/ServiceLocator.js.map +1 -1
- package/dist/esm/devtools/DevTools.js +73 -43
- package/dist/esm/devtools/DevTools.js.map +1 -1
- package/dist/esm/devtools/DeveloperExperience.js +84 -42
- package/dist/esm/devtools/DeveloperExperience.js.map +1 -1
- package/dist/esm/devtools/GameplayAnalytics.js +71 -43
- package/dist/esm/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/esm/dialogue/DialogueSystem.js +153 -129
- package/dist/esm/dialogue/DialogueSystem.js.map +1 -1
- package/dist/esm/docs/DocGenerator.js +70 -28
- package/dist/esm/docs/DocGenerator.js.map +1 -1
- package/dist/esm/ecs/World.js +159 -33
- package/dist/esm/ecs/World.js.map +1 -1
- package/dist/esm/editor/AchievementEditor.js +645 -0
- package/dist/esm/editor/AchievementEditor.js.map +1 -0
- package/dist/esm/editor/AdvancedEditor.js +95 -23
- package/dist/esm/editor/AdvancedEditor.js.map +1 -1
- package/dist/esm/editor/AnimationRetargeting.js +738 -0
- package/dist/esm/editor/AnimationRetargeting.js.map +1 -0
- package/dist/esm/editor/AssetBrowser.js +1184 -0
- package/dist/esm/editor/AssetBrowser.js.map +1 -0
- package/dist/esm/editor/AssetManager.js +22 -14
- package/dist/esm/editor/AssetManager.js.map +1 -1
- package/dist/esm/editor/ConsolePro.js +1085 -0
- package/dist/esm/editor/ConsolePro.js.map +1 -0
- package/dist/esm/editor/CraftingEditor.js +744 -0
- package/dist/esm/editor/CraftingEditor.js.map +1 -0
- package/dist/esm/editor/DebugTools.js +46 -23
- package/dist/esm/editor/DebugTools.js.map +1 -1
- package/dist/esm/editor/DialogueSystem.js +918 -0
- package/dist/esm/editor/DialogueSystem.js.map +1 -0
- package/dist/esm/editor/LeaderboardSystem.js +491 -0
- package/dist/esm/editor/LeaderboardSystem.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +532 -142
- package/dist/esm/editor/NiceGameEditor.js.map +1 -1
- package/dist/esm/editor/PrefabSystem.js +858 -0
- package/dist/esm/editor/PrefabSystem.js.map +1 -0
- package/dist/esm/editor/ProfilerPanel.js +710 -0
- package/dist/esm/editor/ProfilerPanel.js.map +1 -0
- package/dist/esm/editor/QuestEditor.js +846 -0
- package/dist/esm/editor/QuestEditor.js.map +1 -0
- package/dist/esm/editor/ReplaySystem.js +648 -0
- package/dist/esm/editor/ReplaySystem.js.map +1 -0
- package/dist/esm/editor/SceneEditor.js +33 -13
- package/dist/esm/editor/SceneEditor.js.map +1 -1
- package/dist/esm/editor/ScreenshotMode.js +702 -0
- package/dist/esm/editor/ScreenshotMode.js.map +1 -0
- package/dist/esm/editor/ShaderGraph.js +7 -6
- package/dist/esm/editor/ShaderGraph.js.map +1 -1
- package/dist/esm/editor/TimelineEditor.js +37 -30
- package/dist/esm/editor/TimelineEditor.js.map +1 -1
- package/dist/esm/editor/UndoRedoPro.js +914 -0
- package/dist/esm/editor/UndoRedoPro.js.map +1 -0
- package/dist/esm/editor/VRARMode.js +653 -0
- package/dist/esm/editor/VRARMode.js.map +1 -0
- package/dist/esm/engine/NiceGameEngine.js +12 -10
- package/dist/esm/engine/NiceGameEngine.js.map +1 -1
- package/dist/esm/engine/SaveSystemV2.js +73 -37
- package/dist/esm/engine/SaveSystemV2.js.map +1 -1
- package/dist/esm/enterprise/Enterprise.js +92 -44
- package/dist/esm/enterprise/Enterprise.js.map +1 -1
- package/dist/esm/export/BevyExporter.js +995 -0
- package/dist/esm/export/BevyExporter.js.map +1 -0
- package/dist/esm/export/CocosExporter.js +703 -0
- package/dist/esm/export/CocosExporter.js.map +1 -0
- package/dist/esm/export/Construct3Exporter.js +829 -0
- package/dist/esm/export/Construct3Exporter.js.map +1 -0
- package/dist/esm/export/DefoldExporter.js +1103 -0
- package/dist/esm/export/DefoldExporter.js.map +1 -0
- package/dist/esm/export/GDevelopExporter.js +745 -0
- package/dist/esm/export/GDevelopExporter.js.map +1 -0
- package/dist/esm/export/GameMakerExporter.js +843 -0
- package/dist/esm/export/GameMakerExporter.js.map +1 -0
- package/dist/esm/export/GodotExporter.js +45 -50
- package/dist/esm/export/GodotExporter.js.map +1 -1
- package/dist/esm/export/MinecraftBedrockExporter.js +603 -0
- package/dist/esm/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/esm/export/MonoGameExporter.js +1331 -0
- package/dist/esm/export/MonoGameExporter.js.map +1 -0
- package/dist/esm/export/Pico8Exporter.js +843 -0
- package/dist/esm/export/Pico8Exporter.js.map +1 -0
- package/dist/esm/export/PlatformExporter.js +4 -5
- package/dist/esm/export/PlatformExporter.js.map +1 -1
- package/dist/esm/export/RPGMakerExporter.js +903 -0
- package/dist/esm/export/RPGMakerExporter.js.map +1 -0
- package/dist/esm/export/RobloxExporter.js +940 -0
- package/dist/esm/export/RobloxExporter.js.map +1 -0
- package/dist/esm/export/Solar2DExporter.js +1280 -0
- package/dist/esm/export/Solar2DExporter.js.map +1 -0
- package/dist/esm/export/ThreeJSExporter.js +52 -55
- package/dist/esm/export/ThreeJSExporter.js.map +1 -1
- package/dist/esm/export/Tic80Exporter.js +1312 -0
- package/dist/esm/export/Tic80Exporter.js.map +1 -0
- package/dist/esm/export/UnityExporter.js +41 -56
- package/dist/esm/export/UnityExporter.js.map +1 -1
- package/dist/esm/export/UnrealExporter.js +959 -0
- package/dist/esm/export/UnrealExporter.js.map +1 -0
- package/dist/esm/export/WebExporter.js +42 -50
- package/dist/esm/export/WebExporter.js.map +1 -1
- package/dist/esm/export/index.js +38 -2
- package/dist/esm/export/index.js.map +1 -1
- package/dist/esm/godot-integration/GodotAssetLibrary.js +711 -0
- package/dist/esm/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/esm/godot-integration/GodotImport.js +1062 -0
- package/dist/esm/godot-integration/GodotImport.js.map +1 -0
- package/dist/esm/godot-integration/GodotLiveLink.js +958 -0
- package/dist/esm/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js +666 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/esm/i18n/I18n.js +56 -30
- package/dist/esm/i18n/I18n.js.map +1 -1
- package/dist/esm/i18n/useTranslation.js +4 -4
- package/dist/esm/i18n/useTranslation.js.map +1 -1
- package/dist/esm/import/AsepriteImporter.js +15 -19
- package/dist/esm/import/AsepriteImporter.js.map +1 -1
- package/dist/esm/import/DragonBonesImporter.js +36 -40
- package/dist/esm/import/DragonBonesImporter.js.map +1 -1
- package/dist/esm/import/GameMakerImporter.js +11 -17
- package/dist/esm/import/GameMakerImporter.js.map +1 -1
- package/dist/esm/import/GodotSceneImporter.js +43 -29
- package/dist/esm/import/GodotSceneImporter.js.map +1 -1
- package/dist/esm/import/LDtkImporter.js +16 -17
- package/dist/esm/import/LDtkImporter.js.map +1 -1
- package/dist/esm/import/Live2DImporter.js +16 -19
- package/dist/esm/import/Live2DImporter.js.map +1 -1
- package/dist/esm/import/NdgFormat.js +28 -35
- package/dist/esm/import/NdgFormat.js.map +1 -1
- package/dist/esm/import/OgmoImporter.js +16 -18
- package/dist/esm/import/OgmoImporter.js.map +1 -1
- package/dist/esm/import/RPGMakerImporter.js +5 -6
- package/dist/esm/import/RPGMakerImporter.js.map +1 -1
- package/dist/esm/import/SceneImporter.js +23 -13
- package/dist/esm/import/SceneImporter.js.map +1 -1
- package/dist/esm/import/SpineImporter.js +20 -20
- package/dist/esm/import/SpineImporter.js.map +1 -1
- package/dist/esm/import/SpriterImporter.js +38 -46
- package/dist/esm/import/SpriterImporter.js.map +1 -1
- package/dist/esm/import/TiledMapImporter.js +20 -24
- package/dist/esm/import/TiledMapImporter.js.map +1 -1
- package/dist/esm/import/UnitySceneImporter.js +15 -15
- package/dist/esm/import/UnitySceneImporter.js.map +1 -1
- package/dist/esm/index.js +76 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/GamepadNavigation.js +82 -47
- package/dist/esm/input/GamepadNavigation.js.map +1 -1
- package/dist/esm/input/InputManager.js +107 -52
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/useGamepads.js +35 -29
- package/dist/esm/input/useGamepads.js.map +1 -1
- package/dist/esm/integration/IconSprite.js +39 -21
- package/dist/esm/integration/IconSprite.js.map +1 -1
- package/dist/esm/inventory/InventorySystem.js +218 -127
- package/dist/esm/inventory/InventorySystem.js.map +1 -1
- package/dist/esm/kids/KidMode.js +491 -78
- package/dist/esm/kids/KidMode.js.map +1 -1
- package/dist/esm/kids/KidTools.js +154 -48
- package/dist/esm/kids/KidTools.js.map +1 -1
- package/dist/esm/monetization/Monetization.js +47 -35
- package/dist/esm/monetization/Monetization.js.map +1 -1
- package/dist/esm/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/esm/multiplayer/MiniGameTypes.js +23 -10
- package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/esm/native-engine/AssetPipeline.js +537 -0
- package/dist/esm/native-engine/AssetPipeline.js.map +1 -0
- package/dist/esm/native-engine/AudioEngine.js +822 -0
- package/dist/esm/native-engine/AudioEngine.js.map +1 -0
- package/dist/esm/native-engine/InputSystem.js +1170 -0
- package/dist/esm/native-engine/InputSystem.js.map +1 -0
- package/dist/esm/native-engine/NetworkingSystem.js +817 -0
- package/dist/esm/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/esm/native-engine/PhysicsEngine.js +619 -0
- package/dist/esm/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/esm/native-engine/RenderingEngine.js +368 -0
- package/dist/esm/native-engine/RenderingEngine.js.map +1 -0
- package/dist/esm/native-engine/SceneGraph.js +857 -0
- package/dist/esm/native-engine/SceneGraph.js.map +1 -0
- package/dist/esm/network/MultiplayerTransport.js +63 -33
- package/dist/esm/network/MultiplayerTransport.js.map +1 -1
- package/dist/esm/network/Networking.js +87 -62
- package/dist/esm/network/Networking.js.map +1 -1
- package/dist/esm/pathfinding/Pathfinding.js +71 -26
- package/dist/esm/pathfinding/Pathfinding.js.map +1 -1
- package/dist/esm/performance/AssetStreaming.js +649 -0
- package/dist/esm/performance/AssetStreaming.js.map +1 -0
- package/dist/esm/performance/BenchmarkSuite.js +37 -24
- package/dist/esm/performance/BenchmarkSuite.js.map +1 -1
- package/dist/esm/performance/DeltaCompression.js +554 -0
- package/dist/esm/performance/DeltaCompression.js.map +1 -0
- package/dist/esm/performance/DeterministicPhysics.js +573 -0
- package/dist/esm/performance/DeterministicPhysics.js.map +1 -0
- package/dist/esm/performance/ECSOptimization.js +716 -0
- package/dist/esm/performance/ECSOptimization.js.map +1 -0
- package/dist/esm/performance/HotReload.js +517 -0
- package/dist/esm/performance/HotReload.js.map +1 -0
- package/dist/esm/performance/InputRecording.js +580 -0
- package/dist/esm/performance/InputRecording.js.map +1 -0
- package/dist/esm/performance/InterestManagement.js +524 -0
- package/dist/esm/performance/InterestManagement.js.map +1 -0
- package/dist/esm/performance/LocalizationRuntime.js +465 -0
- package/dist/esm/performance/LocalizationRuntime.js.map +1 -0
- package/dist/esm/performance/MemoryManagement.js +481 -0
- package/dist/esm/performance/MemoryManagement.js.map +1 -0
- package/dist/esm/performance/ModSupport.js +520 -0
- package/dist/esm/performance/ModSupport.js.map +1 -0
- package/dist/esm/performance/MultiThreadedPhysics.js +491 -0
- package/dist/esm/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/esm/performance/NetworkPrediction.js +508 -0
- package/dist/esm/performance/NetworkPrediction.js.map +1 -0
- package/dist/esm/performance/ObjectPooling.js +639 -0
- package/dist/esm/performance/ObjectPooling.js.map +1 -0
- package/dist/esm/performance/Performance.js +64 -25
- package/dist/esm/performance/Performance.js.map +1 -1
- package/dist/esm/performance/PerformanceAdvanced.js +83 -49
- package/dist/esm/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/esm/performance/SaveSystem.js +567 -0
- package/dist/esm/performance/SaveSystem.js.map +1 -0
- package/dist/esm/performance/WebGPURenderer.js +697 -0
- package/dist/esm/performance/WebGPURenderer.js.map +1 -0
- package/dist/esm/physics/PhysicsAdvanced.js +32 -20
- package/dist/esm/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/esm/physics/PhysicsEngine2D.js +63 -36
- package/dist/esm/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/esm/plugins/PluginSDK.js +46 -34
- package/dist/esm/plugins/PluginSDK.js.map +1 -1
- package/dist/esm/plugins/PluginTestKit.js +28 -29
- package/dist/esm/plugins/PluginTestKit.js.map +1 -1
- package/dist/esm/procedural/Procedural.js +24 -17
- package/dist/esm/procedural/Procedural.js.map +1 -1
- package/dist/esm/procedural/WorldBuilding.js +188 -55
- package/dist/esm/procedural/WorldBuilding.js.map +1 -1
- package/dist/esm/quest/QuestSystem.js +145 -111
- package/dist/esm/quest/QuestSystem.js.map +1 -1
- package/dist/esm/release/Release.js +142 -31
- package/dist/esm/release/Release.js.map +1 -1
- package/dist/esm/rendering/Camera2D.js +12 -7
- package/dist/esm/rendering/Camera2D.js.map +1 -1
- package/dist/esm/rendering/Renderer2D.js +62 -26
- package/dist/esm/rendering/Renderer2D.js.map +1 -1
- package/dist/esm/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/esm/runtime3d/Runtime3D.js +80 -55
- package/dist/esm/runtime3d/Runtime3D.js.map +1 -1
- package/dist/esm/runtime3d/SceneEditor3D.js +20 -11
- package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/esm/scene/SceneManager.js +26 -12
- package/dist/esm/scene/SceneManager.js.map +1 -1
- package/dist/esm/scripting/GraphToAST.js +36 -24
- package/dist/esm/scripting/GraphToAST.js.map +1 -1
- package/dist/esm/scripting/LanguageExporter.js +2 -3
- package/dist/esm/scripting/LanguageExporter.js.map +1 -1
- package/dist/esm/scripting/NodeGraph.js +49 -32
- package/dist/esm/scripting/NodeGraph.js.map +1 -1
- package/dist/esm/scripting/ScriptAST.js +19 -6
- package/dist/esm/scripting/ScriptAST.js.map +1 -1
- package/dist/esm/scripting/VisualScripting2.js +13 -12
- package/dist/esm/scripting/VisualScripting2.js.map +1 -1
- package/dist/esm/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/LuaExporter.js +5 -9
- package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/PythonExporter.js +7 -13
- package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/RustExporter.js +7 -14
- package/dist/esm/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/esm/social/Social.js +27 -20
- package/dist/esm/social/Social.js.map +1 -1
- package/dist/esm/systems/LightingSystem.js +968 -0
- package/dist/esm/systems/LightingSystem.js.map +1 -0
- package/dist/esm/systems/ParticleSystem2.js +34 -17
- package/dist/esm/systems/ParticleSystem2.js.map +1 -1
- package/dist/esm/systems/PhysicsDebugSystem.js +1219 -0
- package/dist/esm/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/esm/systems/TerrainSystem.js +1125 -0
- package/dist/esm/systems/TerrainSystem.js.map +1 -0
- package/dist/esm/templates/ActionTemplates.js +144 -24
- package/dist/esm/templates/ActionTemplates.js.map +1 -1
- package/dist/esm/templates/FightingTemplate.js +513 -0
- package/dist/esm/templates/FightingTemplate.js.map +1 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js +484 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/esm/templates/PartyTemplates.js +60 -28
- package/dist/esm/templates/PartyTemplates.js.map +1 -1
- package/dist/esm/templates/PuzzleTemplates.js +63 -22
- package/dist/esm/templates/PuzzleTemplates.js.map +1 -1
- package/dist/esm/templates/RPGTemplates.js +29 -15
- package/dist/esm/templates/RPGTemplates.js.map +1 -1
- package/dist/esm/templates/SportsTemplates.js +41 -17
- package/dist/esm/templates/SportsTemplates.js.map +1 -1
- package/dist/esm/templates/StrategyTemplates.js +45 -18
- package/dist/esm/templates/StrategyTemplates.js.map +1 -1
- package/dist/esm/templates/SurvivalTemplate.js +447 -0
- package/dist/esm/templates/SurvivalTemplate.js.map +1 -0
- package/dist/esm/templates/WaveDefense.js +139 -52
- package/dist/esm/templates/WaveDefense.js.map +1 -1
- package/dist/esm/tilemap/Tilemap.js +48 -32
- package/dist/esm/tilemap/Tilemap.js.map +1 -1
- package/dist/esm/tutorials/TutorialBranching.js +111 -42
- package/dist/esm/tutorials/TutorialBranching.js.map +1 -1
- package/dist/esm/tutorials/TutorialEngine.js +152 -80
- package/dist/esm/tutorials/TutorialEngine.js.map +1 -1
- package/dist/esm/tutorials/TutorialOverlay.js +117 -40
- package/dist/esm/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/esm/ui/GameUI.js +69 -42
- package/dist/esm/ui/GameUI.js.map +1 -1
- package/dist/esm/unity-integration/UnityAssetStore.js +749 -0
- package/dist/esm/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/esm/unity-integration/UnityImport.js +1246 -0
- package/dist/esm/unity-integration/UnityImport.js.map +1 -0
- package/dist/esm/unity-integration/UnityLiveLink.js +1017 -0
- package/dist/esm/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +794 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js +831 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealImport.js +437 -0
- package/dist/esm/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js +1182 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js +490 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +833 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/esm/xr/ARVR.js +32 -9
- package/dist/esm/xr/ARVR.js.map +1 -1
- package/package.json +6 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EventBus } from '../core/EventBus.js';
|
|
2
1
|
import React from 'react';
|
|
2
|
+
import { EventBus } from '../core/EventBus.js';
|
|
3
3
|
|
|
4
4
|
/* ────────────────────────────────────────────────────────────────
|
|
5
5
|
Dialogue System — Visual Dialogue Tree Editor
|
|
@@ -19,7 +19,7 @@ class DialogueEngine {
|
|
|
19
19
|
this.trees = new Map();
|
|
20
20
|
this.globalVariables = new Map();
|
|
21
21
|
this.currentState = null;
|
|
22
|
-
this.events = events
|
|
22
|
+
this.events = events ?? new EventBus();
|
|
23
23
|
}
|
|
24
24
|
/* ── Tree Management ──────────────────────────────────────────── */
|
|
25
25
|
registerTree(tree) {
|
|
@@ -43,10 +43,10 @@ class DialogueEngine {
|
|
|
43
43
|
return this.globalVariables.get(name);
|
|
44
44
|
}
|
|
45
45
|
getVariable(variableId) {
|
|
46
|
-
|
|
47
|
-
if (!this.currentState)
|
|
46
|
+
if (!this.currentState) {
|
|
48
47
|
return this.globalVariables.get(variableId);
|
|
49
|
-
|
|
48
|
+
}
|
|
49
|
+
return this.currentState.variables[variableId] ?? this.globalVariables.get(variableId);
|
|
50
50
|
}
|
|
51
51
|
setVariable(variableId, value, scope) {
|
|
52
52
|
if (scope === 'global') {
|
|
@@ -60,8 +60,9 @@ class DialogueEngine {
|
|
|
60
60
|
/* ── Dialogue Flow ────────────────────────────────────────────── */
|
|
61
61
|
startDialogue(treeId, startLabel) {
|
|
62
62
|
const tree = this.trees.get(treeId);
|
|
63
|
-
if (!tree)
|
|
63
|
+
if (!tree) {
|
|
64
64
|
return false;
|
|
65
|
+
}
|
|
65
66
|
// Find start node
|
|
66
67
|
let startNode;
|
|
67
68
|
if (startLabel) {
|
|
@@ -70,8 +71,9 @@ class DialogueEngine {
|
|
|
70
71
|
if (!startNode) {
|
|
71
72
|
startNode = tree.nodes.find((n) => n.id === tree.startNodeId);
|
|
72
73
|
}
|
|
73
|
-
if (!startNode)
|
|
74
|
+
if (!startNode) {
|
|
74
75
|
return false;
|
|
76
|
+
}
|
|
75
77
|
// Initialize state
|
|
76
78
|
const variables = {};
|
|
77
79
|
for (const v of tree.variables) {
|
|
@@ -97,22 +99,25 @@ class DialogueEngine {
|
|
|
97
99
|
return true;
|
|
98
100
|
}
|
|
99
101
|
endDialogue() {
|
|
100
|
-
if (!this.currentState)
|
|
102
|
+
if (!this.currentState) {
|
|
101
103
|
return;
|
|
104
|
+
}
|
|
102
105
|
const treeId = this.currentState.treeId;
|
|
103
106
|
this.currentState.isActive = false;
|
|
104
107
|
this.emitEvent('dialogue:ended', { treeId, state: { ...this.currentState } });
|
|
105
108
|
this.currentState = null;
|
|
106
109
|
}
|
|
107
110
|
pauseDialogue() {
|
|
108
|
-
if (!this.currentState || !this.currentState.isActive)
|
|
111
|
+
if (!this.currentState || !this.currentState.isActive) {
|
|
109
112
|
return;
|
|
113
|
+
}
|
|
110
114
|
this.currentState.isPaused = true;
|
|
111
115
|
this.emitEvent('dialogue:paused', {});
|
|
112
116
|
}
|
|
113
117
|
resumeDialogue() {
|
|
114
|
-
if (!this.currentState || !this.currentState.isActive)
|
|
118
|
+
if (!this.currentState || !this.currentState.isActive) {
|
|
115
119
|
return;
|
|
120
|
+
}
|
|
116
121
|
this.currentState.isPaused = false;
|
|
117
122
|
this.emitEvent('dialogue:resumed', {});
|
|
118
123
|
}
|
|
@@ -120,19 +125,21 @@ class DialogueEngine {
|
|
|
120
125
|
return this.currentState ? { ...this.currentState } : null;
|
|
121
126
|
}
|
|
122
127
|
isActive() {
|
|
123
|
-
|
|
124
|
-
return (_b = (_a = this.currentState) === null || _a === void 0 ? void 0 : _a.isActive) !== null && _b !== void 0 ? _b : false;
|
|
128
|
+
return this.currentState?.isActive ?? false;
|
|
125
129
|
}
|
|
126
130
|
/* ── Node Navigation ──────────────────────────────────────────── */
|
|
127
131
|
goToNode(nodeId) {
|
|
128
|
-
if (!this.currentState)
|
|
132
|
+
if (!this.currentState) {
|
|
129
133
|
return;
|
|
134
|
+
}
|
|
130
135
|
const tree = this.trees.get(this.currentState.treeId);
|
|
131
|
-
if (!tree)
|
|
136
|
+
if (!tree) {
|
|
132
137
|
return;
|
|
133
|
-
|
|
134
|
-
|
|
138
|
+
}
|
|
139
|
+
const node = tree.nodes.find((n) => n.id === nodeId);
|
|
140
|
+
if (!node) {
|
|
135
141
|
return;
|
|
142
|
+
}
|
|
136
143
|
this.currentState.currentNodeId = nodeId;
|
|
137
144
|
this.currentState.history.push(nodeId);
|
|
138
145
|
this.emitEvent('dialogue:node-entered', { nodeId, nodeType: node.type });
|
|
@@ -141,8 +148,9 @@ class DialogueEngine {
|
|
|
141
148
|
processNode(node, tree) {
|
|
142
149
|
switch (node.type) {
|
|
143
150
|
case 'start':
|
|
144
|
-
if (node.nextNode)
|
|
151
|
+
if (node.nextNode) {
|
|
145
152
|
this.goToNode(node.nextNode);
|
|
153
|
+
}
|
|
146
154
|
break;
|
|
147
155
|
case 'text':
|
|
148
156
|
this.processTextNode(node, tree);
|
|
@@ -169,7 +177,7 @@ class DialogueEngine {
|
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
179
|
processTextNode(node, tree) {
|
|
172
|
-
const character = tree.characters.find(c => c.id === node.characterId);
|
|
180
|
+
const character = tree.characters.find((c) => c.id === node.characterId);
|
|
173
181
|
if (character && this.onTextCallback) {
|
|
174
182
|
this.onTextCallback(node, character);
|
|
175
183
|
}
|
|
@@ -182,12 +190,14 @@ class DialogueEngine {
|
|
|
182
190
|
}
|
|
183
191
|
processChoiceNode(node, tree) {
|
|
184
192
|
// Filter valid options based on conditions
|
|
185
|
-
const validOptions = node.options.filter(opt => {
|
|
186
|
-
if (opt.disabled)
|
|
193
|
+
const validOptions = node.options.filter((opt) => {
|
|
194
|
+
if (opt.disabled) {
|
|
187
195
|
return false;
|
|
188
|
-
|
|
196
|
+
}
|
|
197
|
+
if (!opt.conditions || opt.conditions.length === 0) {
|
|
189
198
|
return true;
|
|
190
|
-
|
|
199
|
+
}
|
|
200
|
+
return opt.conditions.every((c) => this.evaluateCondition(c));
|
|
191
201
|
});
|
|
192
202
|
if (this.onChoiceCallback) {
|
|
193
203
|
this.onChoiceCallback(node, validOptions);
|
|
@@ -196,18 +206,19 @@ class DialogueEngine {
|
|
|
196
206
|
processBranchNode(node) {
|
|
197
207
|
const result = this.evaluateConditions(node.conditions, node.logic);
|
|
198
208
|
const nextNode = result ? node.trueNode : node.falseNode;
|
|
199
|
-
if (nextNode)
|
|
209
|
+
if (nextNode) {
|
|
200
210
|
this.goToNode(nextNode);
|
|
211
|
+
}
|
|
201
212
|
}
|
|
202
213
|
processSetVariableNode(node, tree) {
|
|
203
|
-
|
|
204
|
-
const variable = tree.variables.find(v => v.id === node.variableId);
|
|
214
|
+
const variable = tree.variables.find((v) => v.id === node.variableId);
|
|
205
215
|
if (!variable) {
|
|
206
|
-
if (node.nextNode)
|
|
216
|
+
if (node.nextNode) {
|
|
207
217
|
this.goToNode(node.nextNode);
|
|
218
|
+
}
|
|
208
219
|
return;
|
|
209
220
|
}
|
|
210
|
-
const currentValue =
|
|
221
|
+
const currentValue = this.getVariable(node.variableId) ?? variable.defaultValue;
|
|
211
222
|
let newValue;
|
|
212
223
|
switch (node.operation) {
|
|
213
224
|
case 'set':
|
|
@@ -232,8 +243,9 @@ class DialogueEngine {
|
|
|
232
243
|
newValue = node.value;
|
|
233
244
|
}
|
|
234
245
|
this.setVariable(node.variableId, newValue, variable.scope);
|
|
235
|
-
if (node.nextNode)
|
|
246
|
+
if (node.nextNode) {
|
|
236
247
|
this.goToNode(node.nextNode);
|
|
248
|
+
}
|
|
237
249
|
}
|
|
238
250
|
processEventNode(node) {
|
|
239
251
|
this.events.emit(node.eventType, node.eventData);
|
|
@@ -241,8 +253,9 @@ class DialogueEngine {
|
|
|
241
253
|
eventType: node.eventType,
|
|
242
254
|
eventData: node.eventData,
|
|
243
255
|
});
|
|
244
|
-
if (node.nextNode)
|
|
256
|
+
if (node.nextNode) {
|
|
245
257
|
this.goToNode(node.nextNode);
|
|
258
|
+
}
|
|
246
259
|
}
|
|
247
260
|
processRandomNode(node) {
|
|
248
261
|
const totalWeight = node.outputs.reduce((sum, out) => sum + out.weight, 0);
|
|
@@ -256,8 +269,9 @@ class DialogueEngine {
|
|
|
256
269
|
}
|
|
257
270
|
// Fallback to first output
|
|
258
271
|
const first = node.outputs[0];
|
|
259
|
-
if (first
|
|
272
|
+
if (first?.nextNode) {
|
|
260
273
|
this.goToNode(first.nextNode);
|
|
274
|
+
}
|
|
261
275
|
}
|
|
262
276
|
processEndNode(node) {
|
|
263
277
|
// Apply final variable changes
|
|
@@ -265,7 +279,7 @@ class DialogueEngine {
|
|
|
265
279
|
const tree = this.trees.get(this.currentState.treeId);
|
|
266
280
|
if (tree) {
|
|
267
281
|
for (const sv of node.setVariables) {
|
|
268
|
-
const variable = tree.variables.find(v => v.id === sv.variableId);
|
|
282
|
+
const variable = tree.variables.find((v) => v.id === sv.variableId);
|
|
269
283
|
if (variable) {
|
|
270
284
|
this.setVariable(sv.variableId, sv.value, variable.scope);
|
|
271
285
|
}
|
|
@@ -279,21 +293,25 @@ class DialogueEngine {
|
|
|
279
293
|
}
|
|
280
294
|
/* ── Choice Selection ─────────────────────────────────────────── */
|
|
281
295
|
selectChoice(optionId) {
|
|
282
|
-
if (!this.currentState || !this.currentState.isActive)
|
|
296
|
+
if (!this.currentState || !this.currentState.isActive) {
|
|
283
297
|
return false;
|
|
298
|
+
}
|
|
284
299
|
const tree = this.trees.get(this.currentState.treeId);
|
|
285
|
-
if (!tree)
|
|
300
|
+
if (!tree) {
|
|
286
301
|
return false;
|
|
287
|
-
|
|
288
|
-
|
|
302
|
+
}
|
|
303
|
+
const node = tree.nodes.find((n) => n.id === this.currentState.currentNodeId);
|
|
304
|
+
if (!node || node.type !== 'choice') {
|
|
289
305
|
return false;
|
|
290
|
-
|
|
291
|
-
|
|
306
|
+
}
|
|
307
|
+
const choice = node.options.find((o) => o.id === optionId);
|
|
308
|
+
if (!choice) {
|
|
292
309
|
return false;
|
|
310
|
+
}
|
|
293
311
|
// Apply variables from choice
|
|
294
312
|
if (choice.setVariables) {
|
|
295
313
|
for (const sv of choice.setVariables) {
|
|
296
|
-
const variable = tree.variables.find(v => v.id === sv.variableId);
|
|
314
|
+
const variable = tree.variables.find((v) => v.id === sv.variableId);
|
|
297
315
|
if (variable) {
|
|
298
316
|
this.setVariable(sv.variableId, sv.value, variable.scope);
|
|
299
317
|
}
|
|
@@ -316,14 +334,17 @@ class DialogueEngine {
|
|
|
316
334
|
}
|
|
317
335
|
/** Advance to next node (for text nodes) */
|
|
318
336
|
advance() {
|
|
319
|
-
if (!this.currentState || !this.currentState.isActive)
|
|
337
|
+
if (!this.currentState || !this.currentState.isActive) {
|
|
320
338
|
return false;
|
|
339
|
+
}
|
|
321
340
|
const tree = this.trees.get(this.currentState.treeId);
|
|
322
|
-
if (!tree)
|
|
341
|
+
if (!tree) {
|
|
323
342
|
return false;
|
|
324
|
-
|
|
325
|
-
|
|
343
|
+
}
|
|
344
|
+
const node = tree.nodes.find((n) => n.id === this.currentState.currentNodeId);
|
|
345
|
+
if (!node) {
|
|
326
346
|
return false;
|
|
347
|
+
}
|
|
327
348
|
if (node.type === 'text' && node.nextNode) {
|
|
328
349
|
this.goToNode(node.nextNode);
|
|
329
350
|
return true;
|
|
@@ -332,19 +353,21 @@ class DialogueEngine {
|
|
|
332
353
|
}
|
|
333
354
|
/* ── Condition Evaluation ─────────────────────────────────────── */
|
|
334
355
|
evaluateConditions(conditions, logic) {
|
|
335
|
-
if (conditions.length === 0)
|
|
356
|
+
if (conditions.length === 0) {
|
|
336
357
|
return true;
|
|
358
|
+
}
|
|
337
359
|
if (logic === 'and') {
|
|
338
|
-
return conditions.every(c => this.evaluateCondition(c));
|
|
360
|
+
return conditions.every((c) => this.evaluateCondition(c));
|
|
339
361
|
}
|
|
340
362
|
else {
|
|
341
|
-
return conditions.some(c => this.evaluateCondition(c));
|
|
363
|
+
return conditions.some((c) => this.evaluateCondition(c));
|
|
342
364
|
}
|
|
343
365
|
}
|
|
344
366
|
evaluateCondition(condition) {
|
|
345
367
|
const varValue = this.getVariable(condition.variableId);
|
|
346
|
-
if (varValue === undefined)
|
|
368
|
+
if (varValue === undefined) {
|
|
347
369
|
return false;
|
|
370
|
+
}
|
|
348
371
|
const { operator, value } = condition;
|
|
349
372
|
switch (operator) {
|
|
350
373
|
case 'eq':
|
|
@@ -381,11 +404,10 @@ class DialogueEngine {
|
|
|
381
404
|
}
|
|
382
405
|
/* ── Events ───────────────────────────────────────────────────── */
|
|
383
406
|
emitEvent(type, data) {
|
|
384
|
-
var _a, _b, _c, _d;
|
|
385
407
|
this.events.emit(type, {
|
|
386
408
|
type,
|
|
387
|
-
treeId:
|
|
388
|
-
nodeId:
|
|
409
|
+
treeId: this.currentState?.treeId ?? '',
|
|
410
|
+
nodeId: this.currentState?.currentNodeId ?? undefined,
|
|
389
411
|
data,
|
|
390
412
|
timestamp: Date.now(),
|
|
391
413
|
});
|
|
@@ -459,12 +481,12 @@ class DialogueTreeBuilder {
|
|
|
459
481
|
const id = this.generateId();
|
|
460
482
|
const node = { id, type: 'start', label, nextNode, position };
|
|
461
483
|
this.tree.nodes.push(node);
|
|
462
|
-
if (!this.tree.startNodeId)
|
|
484
|
+
if (!this.tree.startNodeId) {
|
|
463
485
|
this.tree.startNodeId = id;
|
|
486
|
+
}
|
|
464
487
|
return this;
|
|
465
488
|
}
|
|
466
489
|
addText(characterId, text, nextNode = null, options = {}) {
|
|
467
|
-
var _a;
|
|
468
490
|
const id = this.generateId();
|
|
469
491
|
const node = {
|
|
470
492
|
id,
|
|
@@ -472,20 +494,19 @@ class DialogueTreeBuilder {
|
|
|
472
494
|
characterId,
|
|
473
495
|
text,
|
|
474
496
|
nextNode,
|
|
475
|
-
position:
|
|
497
|
+
position: options.position ?? { x: 100, y: 0 },
|
|
476
498
|
...options,
|
|
477
499
|
};
|
|
478
500
|
this.tree.nodes.push(node);
|
|
479
501
|
return this;
|
|
480
502
|
}
|
|
481
503
|
addChoice(options, settings = {}) {
|
|
482
|
-
var _a;
|
|
483
504
|
const id = this.generateId();
|
|
484
505
|
const node = {
|
|
485
506
|
id,
|
|
486
507
|
type: 'choice',
|
|
487
508
|
options,
|
|
488
|
-
position:
|
|
509
|
+
position: settings.position ?? { x: 200, y: 0 },
|
|
489
510
|
...settings,
|
|
490
511
|
};
|
|
491
512
|
this.tree.nodes.push(node);
|
|
@@ -562,9 +583,8 @@ class DialogueTreeBuilder {
|
|
|
562
583
|
}
|
|
563
584
|
/** Get the ID of the last added node */
|
|
564
585
|
lastNodeId() {
|
|
565
|
-
var _a;
|
|
566
586
|
const lastNode = this.tree.nodes[this.tree.nodes.length - 1];
|
|
567
|
-
return
|
|
587
|
+
return lastNode?.id ?? '';
|
|
568
588
|
}
|
|
569
589
|
/** Get node by index (1-based for readability) */
|
|
570
590
|
nodeId(index) {
|
|
@@ -637,35 +657,37 @@ const DialogueBox = ({ text, characterName, portrait, emotion = 'neutral', textE
|
|
|
637
657
|
onClick: handleClick,
|
|
638
658
|
'data-emotion': emotion,
|
|
639
659
|
}, [
|
|
640
|
-
portrait &&
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
660
|
+
portrait &&
|
|
661
|
+
React.createElement('div', {
|
|
662
|
+
key: 'portrait',
|
|
663
|
+
className: 'nice-dialogue-portrait',
|
|
664
|
+
style: {
|
|
665
|
+
width: '80px',
|
|
666
|
+
height: '80px',
|
|
667
|
+
flexShrink: 0,
|
|
668
|
+
borderRadius: '8px',
|
|
669
|
+
overflow: 'hidden',
|
|
670
|
+
},
|
|
671
|
+
}, React.createElement('img', {
|
|
672
|
+
src: portrait,
|
|
673
|
+
alt: characterName ?? 'Character',
|
|
674
|
+
style: { width: '100%', height: '100%', objectFit: 'cover' },
|
|
675
|
+
})),
|
|
655
676
|
React.createElement('div', {
|
|
656
677
|
key: 'content',
|
|
657
678
|
className: 'nice-dialogue-content',
|
|
658
679
|
style: { flex: 1 },
|
|
659
680
|
}, [
|
|
660
|
-
characterName &&
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
681
|
+
characterName &&
|
|
682
|
+
React.createElement('div', {
|
|
683
|
+
key: 'name',
|
|
684
|
+
className: 'nice-dialogue-name',
|
|
685
|
+
style: {
|
|
686
|
+
fontWeight: 'bold',
|
|
687
|
+
marginBottom: '8px',
|
|
688
|
+
color: '#64b5f6',
|
|
689
|
+
},
|
|
690
|
+
}, characterName),
|
|
669
691
|
React.createElement('div', {
|
|
670
692
|
key: 'text',
|
|
671
693
|
className: 'nice-dialogue-text',
|
|
@@ -688,20 +710,22 @@ const DialogueBox = ({ text, characterName, portrait, emotion = 'neutral', textE
|
|
|
688
710
|
* ChoiceList component for displaying dialogue choices
|
|
689
711
|
*/
|
|
690
712
|
const ChoiceList = ({ options, prompt, onSelect, timeout, className = '', style, }) => {
|
|
691
|
-
const [timeLeft, setTimeLeft] = React.useState(timeout
|
|
713
|
+
const [timeLeft, setTimeLeft] = React.useState(timeout ?? 0);
|
|
692
714
|
const [selectedIndex, setSelectedIndex] = React.useState(0);
|
|
693
715
|
// Timeout countdown
|
|
694
716
|
React.useEffect(() => {
|
|
695
|
-
if (!timeout)
|
|
717
|
+
if (!timeout) {
|
|
696
718
|
return;
|
|
719
|
+
}
|
|
697
720
|
setTimeLeft(timeout);
|
|
698
721
|
const interval = setInterval(() => {
|
|
699
|
-
setTimeLeft(prev => {
|
|
722
|
+
setTimeLeft((prev) => {
|
|
700
723
|
if (prev <= 100) {
|
|
701
724
|
// Auto-select first option
|
|
702
|
-
const firstValid = options.find(o => !o.disabled);
|
|
703
|
-
if (firstValid)
|
|
725
|
+
const firstValid = options.find((o) => !o.disabled);
|
|
726
|
+
if (firstValid) {
|
|
704
727
|
onSelect(firstValid.id);
|
|
728
|
+
}
|
|
705
729
|
return 0;
|
|
706
730
|
}
|
|
707
731
|
return prev - 100;
|
|
@@ -712,15 +736,15 @@ const ChoiceList = ({ options, prompt, onSelect, timeout, className = '', style,
|
|
|
712
736
|
// Keyboard navigation
|
|
713
737
|
React.useEffect(() => {
|
|
714
738
|
const handleKeyDown = (e) => {
|
|
715
|
-
const validOptions = options.filter(o => !o.disabled);
|
|
739
|
+
const validOptions = options.filter((o) => !o.disabled);
|
|
716
740
|
switch (e.key) {
|
|
717
741
|
case 'ArrowUp':
|
|
718
742
|
e.preventDefault();
|
|
719
|
-
setSelectedIndex(prev => (prev - 1 + validOptions.length) % validOptions.length);
|
|
743
|
+
setSelectedIndex((prev) => (prev - 1 + validOptions.length) % validOptions.length);
|
|
720
744
|
break;
|
|
721
745
|
case 'ArrowDown':
|
|
722
746
|
e.preventDefault();
|
|
723
|
-
setSelectedIndex(prev => (prev + 1) % validOptions.length);
|
|
747
|
+
setSelectedIndex((prev) => (prev + 1) % validOptions.length);
|
|
724
748
|
break;
|
|
725
749
|
case 'Enter':
|
|
726
750
|
case ' ':
|
|
@@ -734,7 +758,7 @@ const ChoiceList = ({ options, prompt, onSelect, timeout, className = '', style,
|
|
|
734
758
|
window.addEventListener('keydown', handleKeyDown);
|
|
735
759
|
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
736
760
|
}, [options, selectedIndex, onSelect]);
|
|
737
|
-
const validOptions = options.filter(o => !o.disabled);
|
|
761
|
+
const validOptions = options.filter((o) => !o.disabled);
|
|
738
762
|
return React.createElement('div', {
|
|
739
763
|
className: `nice-choice-list ${className}`,
|
|
740
764
|
style: {
|
|
@@ -745,33 +769,36 @@ const ChoiceList = ({ options, prompt, onSelect, timeout, className = '', style,
|
|
|
745
769
|
...style,
|
|
746
770
|
},
|
|
747
771
|
}, [
|
|
748
|
-
prompt &&
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
772
|
+
prompt &&
|
|
773
|
+
React.createElement('div', {
|
|
774
|
+
key: 'prompt',
|
|
775
|
+
className: 'nice-choice-prompt',
|
|
776
|
+
style: {
|
|
777
|
+
marginBottom: '16px',
|
|
778
|
+
fontStyle: 'italic',
|
|
779
|
+
opacity: 0.9,
|
|
780
|
+
},
|
|
781
|
+
}, prompt),
|
|
782
|
+
timeout &&
|
|
783
|
+
timeLeft > 0 &&
|
|
784
|
+
React.createElement('div', {
|
|
785
|
+
key: 'timer',
|
|
786
|
+
className: 'nice-choice-timer',
|
|
787
|
+
style: {
|
|
788
|
+
marginBottom: '8px',
|
|
789
|
+
height: '4px',
|
|
790
|
+
backgroundColor: 'rgba(255, 255, 255, 0.2)',
|
|
791
|
+
borderRadius: '2px',
|
|
792
|
+
overflow: 'hidden',
|
|
793
|
+
},
|
|
794
|
+
}, React.createElement('div', {
|
|
795
|
+
style: {
|
|
796
|
+
width: `${(timeLeft / timeout) * 100}%`,
|
|
797
|
+
height: '100%',
|
|
798
|
+
backgroundColor: timeLeft < 3000 ? '#f44336' : '#4caf50',
|
|
799
|
+
transition: 'width 0.1s linear',
|
|
800
|
+
},
|
|
801
|
+
})),
|
|
775
802
|
React.createElement('div', {
|
|
776
803
|
key: 'options',
|
|
777
804
|
className: 'nice-choice-options',
|
|
@@ -837,7 +864,7 @@ function validateDialogueTree(tree) {
|
|
|
837
864
|
throw new Error('Invalid dialogue tree: missing startNodeId');
|
|
838
865
|
}
|
|
839
866
|
// Validate all node connections
|
|
840
|
-
const nodeIds = new Set(t.nodes.map(n => n.id));
|
|
867
|
+
const nodeIds = new Set(t.nodes.map((n) => n.id));
|
|
841
868
|
for (const node of t.nodes) {
|
|
842
869
|
validateNodeConnections(node, nodeIds);
|
|
843
870
|
}
|
|
@@ -881,12 +908,14 @@ function findUnreachableNodes(tree) {
|
|
|
881
908
|
const toVisit = [tree.startNodeId];
|
|
882
909
|
while (toVisit.length > 0) {
|
|
883
910
|
const nodeId = toVisit.pop();
|
|
884
|
-
if (reachable.has(nodeId))
|
|
911
|
+
if (reachable.has(nodeId)) {
|
|
885
912
|
continue;
|
|
913
|
+
}
|
|
886
914
|
reachable.add(nodeId);
|
|
887
|
-
const node = tree.nodes.find(n => n.id === nodeId);
|
|
888
|
-
if (!node)
|
|
915
|
+
const node = tree.nodes.find((n) => n.id === nodeId);
|
|
916
|
+
if (!node) {
|
|
889
917
|
continue;
|
|
918
|
+
}
|
|
890
919
|
const nextIds = getNextNodeIds(node);
|
|
891
920
|
for (const id of nextIds) {
|
|
892
921
|
if (id && !reachable.has(id)) {
|
|
@@ -894,9 +923,7 @@ function findUnreachableNodes(tree) {
|
|
|
894
923
|
}
|
|
895
924
|
}
|
|
896
925
|
}
|
|
897
|
-
return tree.nodes
|
|
898
|
-
.filter(n => !reachable.has(n.id) && n.type !== 'start')
|
|
899
|
-
.map(n => n.id);
|
|
926
|
+
return tree.nodes.filter((n) => !reachable.has(n.id) && n.type !== 'start').map((n) => n.id);
|
|
900
927
|
}
|
|
901
928
|
function getNextNodeIds(node) {
|
|
902
929
|
switch (node.type) {
|
|
@@ -906,12 +933,12 @@ function getNextNodeIds(node) {
|
|
|
906
933
|
case 'event':
|
|
907
934
|
return [node.nextNode];
|
|
908
935
|
case 'choice':
|
|
909
|
-
return node.options.map(o => o.nextNode);
|
|
936
|
+
return node.options.map((o) => o.nextNode);
|
|
910
937
|
case 'branch':
|
|
911
938
|
case 'check_variable':
|
|
912
939
|
return [node.trueNode, node.falseNode];
|
|
913
940
|
case 'random':
|
|
914
|
-
return node.outputs.map(o => o.nextNode);
|
|
941
|
+
return node.outputs.map((o) => o.nextNode);
|
|
915
942
|
case 'end':
|
|
916
943
|
return [];
|
|
917
944
|
default:
|
|
@@ -998,10 +1025,7 @@ const EMOTION_COLORS = {
|
|
|
998
1025
|
custom: '#ffffff',
|
|
999
1026
|
};
|
|
1000
1027
|
function createEmptyDialogueTree(id, name) {
|
|
1001
|
-
return new DialogueTreeBuilder(id, name)
|
|
1002
|
-
.addStart('main', null)
|
|
1003
|
-
.addEnd('success')
|
|
1004
|
-
.build();
|
|
1028
|
+
return new DialogueTreeBuilder(id, name).addStart('main', null).addEnd('success').build();
|
|
1005
1029
|
}
|
|
1006
1030
|
|
|
1007
1031
|
export { ChoiceList, DEFAULT_TEXT_SPEED, DialogueBox, DialogueEngine, DialogueTreeBuilder, EMOTION_COLORS, applyLocalization, createEmptyDialogueTree, deserializeDialogueTree, extractTranslatableStrings, findUnreachableNodes, serializeDialogueTree, useTypewriter, validateDialogueTree };
|