@nice2dev/game-engine 1.0.5 → 1.0.11
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 +7 -6
|
@@ -12,38 +12,46 @@ function GamepadNavigationProvider({ children }) {
|
|
|
12
12
|
const activeIdRef = React.useRef(null);
|
|
13
13
|
const focusTrapStackRef = React.useRef([]);
|
|
14
14
|
const gameModeLockRef = React.useRef(0);
|
|
15
|
-
const enterGameMode = React.useCallback(() => {
|
|
16
|
-
|
|
15
|
+
const enterGameMode = React.useCallback(() => {
|
|
16
|
+
gameModeLockRef.current += 1;
|
|
17
|
+
}, []);
|
|
18
|
+
const exitGameMode = React.useCallback(() => {
|
|
19
|
+
gameModeLockRef.current = Math.max(0, gameModeLockRef.current - 1);
|
|
20
|
+
}, []);
|
|
17
21
|
const pushFocusTrap = React.useCallback((prefix, onDismiss) => {
|
|
18
22
|
focusTrapStackRef.current = [...focusTrapStackRef.current, { prefix, onDismiss }];
|
|
19
23
|
}, []);
|
|
20
24
|
const popFocusTrap = React.useCallback(() => {
|
|
21
|
-
var _a;
|
|
22
25
|
const stack = focusTrapStackRef.current;
|
|
23
|
-
if (stack.length === 0)
|
|
26
|
+
if (stack.length === 0) {
|
|
24
27
|
return;
|
|
28
|
+
}
|
|
25
29
|
const top = stack[stack.length - 1];
|
|
26
30
|
focusTrapStackRef.current = stack.slice(0, -1);
|
|
27
|
-
|
|
31
|
+
top.onDismiss?.();
|
|
28
32
|
}, []);
|
|
29
|
-
React.useEffect(() => {
|
|
30
|
-
|
|
33
|
+
React.useEffect(() => {
|
|
34
|
+
focusablesRef.current = focusables;
|
|
35
|
+
}, [focusables]);
|
|
36
|
+
React.useEffect(() => {
|
|
37
|
+
activeIdRef.current = activeId;
|
|
38
|
+
}, [activeId]);
|
|
31
39
|
const register = React.useCallback((meta) => {
|
|
32
|
-
setFocusables(prev => {
|
|
33
|
-
if (prev.some(f => f.id === meta.id))
|
|
40
|
+
setFocusables((prev) => {
|
|
41
|
+
if (prev.some((f) => f.id === meta.id)) {
|
|
34
42
|
return prev;
|
|
43
|
+
}
|
|
35
44
|
return [...prev, meta];
|
|
36
45
|
});
|
|
37
46
|
}, []);
|
|
38
47
|
const unregister = React.useCallback((id) => {
|
|
39
|
-
setFocusables(prev => {
|
|
40
|
-
|
|
41
|
-
const filtered = prev.filter(f => f.id !== id);
|
|
48
|
+
setFocusables((prev) => {
|
|
49
|
+
const filtered = prev.filter((f) => f.id !== id);
|
|
42
50
|
if (activeIdRef.current === id && filtered.length > 0) {
|
|
43
51
|
const fallbackId = filtered[0].id;
|
|
44
52
|
setActiveId(fallbackId);
|
|
45
53
|
activeIdRef.current = fallbackId;
|
|
46
|
-
|
|
54
|
+
filtered.find((f) => f.id === fallbackId)?.ref.current?.focus();
|
|
47
55
|
}
|
|
48
56
|
else if (activeIdRef.current === id) {
|
|
49
57
|
setActiveId(null);
|
|
@@ -53,48 +61,53 @@ function GamepadNavigationProvider({ children }) {
|
|
|
53
61
|
});
|
|
54
62
|
}, []);
|
|
55
63
|
const moveFocus = React.useCallback((dx, dy) => {
|
|
56
|
-
|
|
57
|
-
if (gameModeLockRef.current > 0)
|
|
64
|
+
if (gameModeLockRef.current > 0) {
|
|
58
65
|
return;
|
|
66
|
+
}
|
|
59
67
|
const list = focusablesRef.current;
|
|
60
68
|
const currentId = activeIdRef.current;
|
|
61
69
|
if (!currentId && list.length > 0) {
|
|
62
70
|
setActiveId(list[0].id);
|
|
63
71
|
activeIdRef.current = list[0].id;
|
|
64
|
-
|
|
72
|
+
list[0].ref.current?.focus();
|
|
65
73
|
return;
|
|
66
74
|
}
|
|
67
|
-
if (!currentId || list.length === 0)
|
|
75
|
+
if (!currentId || list.length === 0) {
|
|
68
76
|
return;
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
}
|
|
78
|
+
const current = list.find((f) => f.id === currentId);
|
|
79
|
+
if (!current) {
|
|
71
80
|
return;
|
|
81
|
+
}
|
|
72
82
|
const trapStack = focusTrapStackRef.current;
|
|
73
83
|
const trapPrefix = trapStack.length > 0 ? trapStack[trapStack.length - 1].prefix : null;
|
|
74
84
|
const candidates = trapPrefix
|
|
75
|
-
? list.filter(f => f.id !== currentId && f.id.startsWith(trapPrefix))
|
|
76
|
-
: list.filter(f => f.id !== currentId);
|
|
77
|
-
if (candidates.length === 0)
|
|
85
|
+
? list.filter((f) => f.id !== currentId && f.id.startsWith(trapPrefix))
|
|
86
|
+
: list.filter((f) => f.id !== currentId);
|
|
87
|
+
if (candidates.length === 0) {
|
|
78
88
|
return;
|
|
89
|
+
}
|
|
79
90
|
let best = null;
|
|
80
91
|
let bestScore = Infinity;
|
|
81
92
|
for (const c of candidates) {
|
|
82
93
|
const cdx = c.x - current.x;
|
|
83
94
|
const cdy = c.y - current.y;
|
|
84
95
|
const dot = dx * cdx + dy * cdy;
|
|
85
|
-
if (dot <= 0)
|
|
96
|
+
if (dot <= 0) {
|
|
86
97
|
continue;
|
|
98
|
+
}
|
|
87
99
|
const dist = Math.sqrt(cdx * cdx + cdy * cdy);
|
|
88
100
|
if (dist < bestScore) {
|
|
89
101
|
bestScore = dist;
|
|
90
102
|
best = c;
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
|
-
if (!best)
|
|
105
|
+
if (!best) {
|
|
94
106
|
return;
|
|
107
|
+
}
|
|
95
108
|
setActiveId(best.id);
|
|
96
109
|
activeIdRef.current = best.id;
|
|
97
|
-
|
|
110
|
+
best.ref.current?.focus();
|
|
98
111
|
}, []);
|
|
99
112
|
const setActiveById = React.useCallback((id) => {
|
|
100
113
|
setActiveId(id);
|
|
@@ -103,58 +116,72 @@ function GamepadNavigationProvider({ children }) {
|
|
|
103
116
|
// Keyboard navigation (Arrow keys)
|
|
104
117
|
React.useEffect(() => {
|
|
105
118
|
const handler = (e) => {
|
|
106
|
-
if (gameModeLockRef.current > 0)
|
|
119
|
+
if (gameModeLockRef.current > 0) {
|
|
107
120
|
return;
|
|
121
|
+
}
|
|
108
122
|
switch (e.key) {
|
|
109
|
-
case
|
|
123
|
+
case 'ArrowUp':
|
|
110
124
|
moveFocus(0, -1);
|
|
111
125
|
e.preventDefault();
|
|
112
126
|
break;
|
|
113
|
-
case
|
|
127
|
+
case 'ArrowDown':
|
|
114
128
|
moveFocus(0, 1);
|
|
115
129
|
e.preventDefault();
|
|
116
130
|
break;
|
|
117
|
-
case
|
|
131
|
+
case 'ArrowLeft':
|
|
118
132
|
moveFocus(-1, 0);
|
|
119
133
|
e.preventDefault();
|
|
120
134
|
break;
|
|
121
|
-
case
|
|
135
|
+
case 'ArrowRight':
|
|
122
136
|
moveFocus(1, 0);
|
|
123
137
|
e.preventDefault();
|
|
124
138
|
break;
|
|
125
|
-
case
|
|
139
|
+
case 'Escape':
|
|
126
140
|
popFocusTrap();
|
|
127
141
|
break;
|
|
128
142
|
}
|
|
129
143
|
};
|
|
130
|
-
window.addEventListener(
|
|
131
|
-
return () => window.removeEventListener(
|
|
144
|
+
window.addEventListener('keydown', handler);
|
|
145
|
+
return () => window.removeEventListener('keydown', handler);
|
|
132
146
|
}, [moveFocus, popFocusTrap]);
|
|
133
147
|
// Gamepad polling
|
|
134
148
|
React.useEffect(() => {
|
|
135
149
|
let raf = 0;
|
|
136
150
|
let prevDx = 0, prevDy = 0;
|
|
137
151
|
const poll = () => {
|
|
138
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
139
152
|
if (gameModeLockRef.current > 0) {
|
|
140
153
|
raf = requestAnimationFrame(poll);
|
|
141
154
|
return;
|
|
142
155
|
}
|
|
143
|
-
const gps =
|
|
156
|
+
const gps = navigator.getGamepads?.() ?? [];
|
|
144
157
|
for (const gp of gps) {
|
|
145
|
-
if (!gp)
|
|
158
|
+
if (!gp) {
|
|
146
159
|
continue;
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
const
|
|
160
|
+
}
|
|
161
|
+
const lx = gp.axes[0] ?? 0;
|
|
162
|
+
const ly = gp.axes[1] ?? 0;
|
|
163
|
+
const dx = Math.abs(lx) > 0.5
|
|
164
|
+
? Math.sign(lx)
|
|
165
|
+
: gp.buttons[14]?.pressed
|
|
166
|
+
? -1
|
|
167
|
+
: gp.buttons[15]?.pressed
|
|
168
|
+
? 1
|
|
169
|
+
: 0;
|
|
170
|
+
const dy = Math.abs(ly) > 0.5
|
|
171
|
+
? Math.sign(ly)
|
|
172
|
+
: gp.buttons[12]?.pressed
|
|
173
|
+
? -1
|
|
174
|
+
: gp.buttons[13]?.pressed
|
|
175
|
+
? 1
|
|
176
|
+
: 0;
|
|
151
177
|
if ((dx !== 0 || dy !== 0) && (dx !== prevDx || dy !== prevDy)) {
|
|
152
178
|
moveFocus(dx, dy);
|
|
153
179
|
}
|
|
154
180
|
prevDx = dx;
|
|
155
181
|
prevDy = dy;
|
|
156
|
-
if (
|
|
157
|
-
popFocusTrap();
|
|
182
|
+
if (gp.buttons[1]?.pressed) {
|
|
183
|
+
popFocusTrap();
|
|
184
|
+
} // B = back
|
|
158
185
|
break; // only first pad navigates UI
|
|
159
186
|
}
|
|
160
187
|
raf = requestAnimationFrame(poll);
|
|
@@ -163,16 +190,24 @@ function GamepadNavigationProvider({ children }) {
|
|
|
163
190
|
return () => cancelAnimationFrame(raf);
|
|
164
191
|
}, [moveFocus, popFocusTrap]);
|
|
165
192
|
const value = {
|
|
166
|
-
register,
|
|
167
|
-
|
|
168
|
-
|
|
193
|
+
register,
|
|
194
|
+
unregister,
|
|
195
|
+
moveFocus,
|
|
196
|
+
setActive: setActiveById,
|
|
197
|
+
activeId,
|
|
198
|
+
focusables,
|
|
199
|
+
pushFocusTrap,
|
|
200
|
+
popFocusTrap,
|
|
201
|
+
enterGameMode,
|
|
202
|
+
exitGameMode,
|
|
169
203
|
};
|
|
170
204
|
return jsxRuntime.jsx(Ctx.Provider, { value: value, children: children });
|
|
171
205
|
}
|
|
172
206
|
function useGamepadNavigation() {
|
|
173
207
|
const ctx = React.useContext(Ctx);
|
|
174
|
-
if (!ctx)
|
|
175
|
-
throw new Error(
|
|
208
|
+
if (!ctx) {
|
|
209
|
+
throw new Error('useGamepadNavigation must be inside GamepadNavigationProvider');
|
|
210
|
+
}
|
|
176
211
|
return ctx;
|
|
177
212
|
}
|
|
178
213
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GamepadNavigation.js","sources":["../../../src/input/GamepadNavigation.tsx"],"sourcesContent":[null],"names":["createContext","useState","useRef","useCallback","useEffect","_jsx","useContext"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"GamepadNavigation.js","sources":["../../../src/input/GamepadNavigation.tsx"],"sourcesContent":[null],"names":["createContext","useState","useRef","useCallback","useEffect","_jsx","useContext"],"mappings":";;;;;AA4CA,MAAM,GAAG,GAAGA,mBAAa,CAA2C,SAAS,CAAC;AAE9E;AAEM,SAAU,yBAAyB,CAAC,EAAE,QAAQ,EAA2B,EAAA;IAC7E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGC,cAAQ,CAAkB,EAAE,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAgB,IAAI,CAAC;AAE7D,IAAA,MAAM,aAAa,GAAGC,YAAM,CAAkB,EAAE,CAAC;AACjD,IAAA,MAAM,WAAW,GAAGA,YAAM,CAAgB,IAAI,CAAC;AAC/C,IAAA,MAAM,iBAAiB,GAAGA,YAAM,CAA+C,EAAE,CAAC;AAClF,IAAA,MAAM,eAAe,GAAGA,YAAM,CAAC,CAAC,CAAC;AAEjC,IAAA,MAAM,aAAa,GAAGC,iBAAW,CAAC,MAAK;AACrC,QAAA,eAAe,CAAC,OAAO,IAAI,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC;AACN,IAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,MAAK;AACpC,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,aAAa,GAAGA,iBAAW,CAAC,CAAC,MAAc,EAAE,SAAsB,KAAI;AAC3E,QAAA,iBAAiB,CAAC,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnF,CAAC,EAAE,EAAE,CAAC;AACN,IAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,MAAK;AACpC,QAAA,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO;AACvC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB;QACF;QACA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,QAAA,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9C,QAAA,GAAG,CAAC,SAAS,IAAI;IACnB,CAAC,EAAE,EAAE,CAAC;IAENC,eAAS,CAAC,MAAK;AACb,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU;AACpC,IAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAChBA,eAAS,CAAC,MAAK;AACb,QAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;AAChC,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,QAAQ,GAAGD,iBAAW,CAAC,CAAC,IAAmB,KAAI;AACnD,QAAA,aAAa,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;AACtC,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;AACxB,QAAA,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,CAAC,EAAU,KAAI;AAC5C,QAAA,aAAa,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAChD,YAAA,IAAI,WAAW,CAAC,OAAO,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjC,WAAW,CAAC,UAAU,CAAC;AACvB,gBAAA,WAAW,CAAC,OAAO,GAAG,UAAU;gBAChC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;YACjE;AAAO,iBAAA,IAAI,WAAW,CAAC,OAAO,KAAK,EAAE,EAAE;gBACrC,WAAW,CAAC,IAAI,CAAC;AACjB,gBAAA,WAAW,CAAC,OAAO,GAAG,IAAI;YAC5B;AACA,YAAA,OAAO,QAAQ;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,SAAS,GAAGA,iBAAW,CAAC,CAAC,EAAU,EAAE,EAAU,KAAI;AACvD,QAAA,IAAI,eAAe,CAAC,OAAO,GAAG,CAAC,EAAE;YAC/B;QACF;AACA,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO;AAClC,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO;QAErC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;YAC5B;QACF;QACA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC;QACF;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;AAEA,QAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO;QAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI;QACvF,MAAM,UAAU,GAAG;cACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;AACtE,cAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;AAE1C,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B;QACF;QAEA,IAAI,IAAI,GAAyB,IAAI;QACrC,IAAI,SAAS,GAAG,QAAQ;AACxB,QAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC/B,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ;YACF;AACA,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7C,YAAA,IAAI,IAAI,GAAG,SAAS,EAAE;gBACpB,SAAS,GAAG,IAAI;gBAChB,IAAI,GAAG,CAAC;YACV;QACF;QACA,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AAEA,QAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AACpB,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;IAC3B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,aAAa,GAAGA,iBAAW,CAAC,CAAC,EAAU,KAAI;QAC/C,WAAW,CAAC,EAAE,CAAC;AACf,QAAA,WAAW,CAAC,OAAO,GAAG,EAAE;IAC1B,CAAC,EAAE,EAAE,CAAC;;IAGNC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,CAAgB,KAAI;AACnC,YAAA,IAAI,eAAe,CAAC,OAAO,GAAG,CAAC,EAAE;gBAC/B;YACF;AACA,YAAA,QAAQ,CAAC,CAAC,GAAG;AACX,gBAAA,KAAK,SAAS;AACZ,oBAAA,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;oBAChB,CAAC,CAAC,cAAc,EAAE;oBAClB;AACF,gBAAA,KAAK,WAAW;AACd,oBAAA,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,CAAC,cAAc,EAAE;oBAClB;AACF,gBAAA,KAAK,WAAW;AACd,oBAAA,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChB,CAAC,CAAC,cAAc,EAAE;oBAClB;AACF,gBAAA,KAAK,YAAY;AACf,oBAAA,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,CAAC,cAAc,EAAE;oBAClB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,YAAY,EAAE;oBACd;;AAEN,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;QAC3C,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;AAC7D,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;;IAG7BA,eAAS,CAAC,MAAK;QACb,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC;QACZ,MAAM,IAAI,GAAG,MAAK;AAChB,YAAA,IAAI,eAAe,CAAC,OAAO,GAAG,CAAC,EAAE;AAC/B,gBAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;gBACjC;YACF;YACA,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,IAAI,IAAI,EAAE;AAC3C,YAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;gBACpB,IAAI,CAAC,EAAE,EAAE;oBACP;gBACF;gBACA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GACN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AACb,sBAAE,IAAI,CAAC,IAAI,CAAC,EAAE;sBACZ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;0BACd;0BACA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAChB,8BAAE;8BACA,CAAC;gBACX,MAAM,EAAE,GACN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AACb,sBAAE,IAAI,CAAC,IAAI,CAAC,EAAE;sBACZ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;0BACd;0BACA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAChB,8BAAE;8BACA,CAAC;gBACX,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE;AAC9D,oBAAA,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;gBACnB;gBACA,MAAM,GAAG,EAAE;gBACX,MAAM,GAAG,EAAE;gBACX,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;AAC1B,oBAAA,YAAY,EAAE;AAChB,gBAAA,CAAC;AACD,gBAAA,MAAM;YACR;AACA,YAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACnC,QAAA,CAAC;AACD,QAAA,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACjC,QAAA,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC;AACxC,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAE7B,IAAA,MAAM,KAAK,GAAiC;QAC1C,QAAQ;QACR,UAAU;QACV,SAAS;AACT,QAAA,SAAS,EAAE,aAAa;QACxB,QAAQ;QACR,UAAU;QACV,aAAa;QACb,YAAY;QACZ,aAAa;QACb,YAAY;KACb;IAED,OAAOC,cAAA,CAAC,GAAG,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAgB;AAC9D;SAEgB,oBAAoB,GAAA;AAClC,IAAA,MAAM,GAAG,GAAGC,gBAAU,CAAC,GAAG,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;IAClF;AACA,IAAA,OAAO,GAAG;AACZ;;;;;"}
|
|
@@ -7,14 +7,29 @@ var EventBus = require('../core/EventBus.js');
|
|
|
7
7
|
──────────────────────────────────────────────────────────────── */
|
|
8
8
|
/* ── Constants ────────────────────────────────────────────────── */
|
|
9
9
|
const BUTTON_MAP = {
|
|
10
|
-
0: 'A',
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
0: 'A',
|
|
11
|
+
1: 'B',
|
|
12
|
+
2: 'X',
|
|
13
|
+
3: 'Y',
|
|
14
|
+
4: 'LB',
|
|
15
|
+
5: 'RB',
|
|
16
|
+
6: 'LT',
|
|
17
|
+
7: 'RT',
|
|
18
|
+
8: 'Back',
|
|
19
|
+
9: 'Start',
|
|
20
|
+
10: 'LS',
|
|
21
|
+
11: 'RS',
|
|
22
|
+
12: 'DpadUp',
|
|
23
|
+
13: 'DpadDown',
|
|
24
|
+
14: 'DpadLeft',
|
|
25
|
+
15: 'DpadRight',
|
|
14
26
|
16: 'Home',
|
|
15
27
|
};
|
|
16
28
|
const AXIS_MAP = {
|
|
17
|
-
0: 'LeftX',
|
|
29
|
+
0: 'LeftX',
|
|
30
|
+
1: 'LeftY',
|
|
31
|
+
2: 'RightX',
|
|
32
|
+
3: 'RightY',
|
|
18
33
|
};
|
|
19
34
|
/* ── InputManager ─────────────────────────────────────────────── */
|
|
20
35
|
class InputManager {
|
|
@@ -48,8 +63,9 @@ class InputManager {
|
|
|
48
63
|
*/
|
|
49
64
|
attach(target = window) {
|
|
50
65
|
const onKeyDown = (e) => {
|
|
51
|
-
if (!(e instanceof KeyboardEvent))
|
|
66
|
+
if (!(e instanceof KeyboardEvent)) {
|
|
52
67
|
return;
|
|
68
|
+
}
|
|
53
69
|
if (!this._keys.has(e.code)) {
|
|
54
70
|
this._keysJustPressed.add(e.code);
|
|
55
71
|
}
|
|
@@ -57,67 +73,77 @@ class InputManager {
|
|
|
57
73
|
this.events.emit('keydown', e.code);
|
|
58
74
|
};
|
|
59
75
|
const onKeyUp = (e) => {
|
|
60
|
-
if (!(e instanceof KeyboardEvent))
|
|
76
|
+
if (!(e instanceof KeyboardEvent)) {
|
|
61
77
|
return;
|
|
78
|
+
}
|
|
62
79
|
this._keys.delete(e.code);
|
|
63
80
|
this._keysJustReleased.add(e.code);
|
|
64
81
|
this.events.emit('keyup', e.code);
|
|
65
82
|
};
|
|
66
83
|
const onMouseMove = (e) => {
|
|
67
|
-
if (!(e instanceof MouseEvent))
|
|
84
|
+
if (!(e instanceof MouseEvent)) {
|
|
68
85
|
return;
|
|
86
|
+
}
|
|
69
87
|
this._mousePos = { x: e.clientX, y: e.clientY };
|
|
70
88
|
};
|
|
71
89
|
const onMouseDown = (e) => {
|
|
72
|
-
if (!(e instanceof MouseEvent))
|
|
90
|
+
if (!(e instanceof MouseEvent)) {
|
|
73
91
|
return;
|
|
92
|
+
}
|
|
74
93
|
if (!this._mouseButtons.has(e.button)) {
|
|
75
94
|
this._mouseButtonsJustPressed.add(e.button);
|
|
76
95
|
}
|
|
77
96
|
this._mouseButtons.add(e.button);
|
|
78
97
|
};
|
|
79
98
|
const onMouseUp = (e) => {
|
|
80
|
-
if (!(e instanceof MouseEvent))
|
|
99
|
+
if (!(e instanceof MouseEvent)) {
|
|
81
100
|
return;
|
|
101
|
+
}
|
|
82
102
|
this._mouseButtons.delete(e.button);
|
|
83
103
|
this._mouseButtonsJustReleased.add(e.button);
|
|
84
104
|
};
|
|
85
105
|
const onWheel = (e) => {
|
|
86
|
-
if (!(e instanceof WheelEvent))
|
|
106
|
+
if (!(e instanceof WheelEvent)) {
|
|
87
107
|
return;
|
|
108
|
+
}
|
|
88
109
|
this._mouseWheel += e.deltaY;
|
|
89
110
|
};
|
|
90
111
|
const onTouchStart = (e) => {
|
|
91
|
-
if (!(e instanceof TouchEvent))
|
|
112
|
+
if (!(e instanceof TouchEvent)) {
|
|
92
113
|
return;
|
|
114
|
+
}
|
|
93
115
|
for (let i = 0; i < e.changedTouches.length; i++) {
|
|
94
116
|
const t = e.changedTouches[i];
|
|
95
117
|
this._touches.set(t.identifier, { x: t.clientX, y: t.clientY });
|
|
96
118
|
}
|
|
97
119
|
};
|
|
98
120
|
const onTouchMove = (e) => {
|
|
99
|
-
if (!(e instanceof TouchEvent))
|
|
121
|
+
if (!(e instanceof TouchEvent)) {
|
|
100
122
|
return;
|
|
123
|
+
}
|
|
101
124
|
for (let i = 0; i < e.changedTouches.length; i++) {
|
|
102
125
|
const t = e.changedTouches[i];
|
|
103
126
|
this._touches.set(t.identifier, { x: t.clientX, y: t.clientY });
|
|
104
127
|
}
|
|
105
128
|
};
|
|
106
129
|
const onTouchEnd = (e) => {
|
|
107
|
-
if (!(e instanceof TouchEvent))
|
|
130
|
+
if (!(e instanceof TouchEvent)) {
|
|
108
131
|
return;
|
|
132
|
+
}
|
|
109
133
|
for (let i = 0; i < e.changedTouches.length; i++) {
|
|
110
134
|
this._touches.delete(e.changedTouches[i].identifier);
|
|
111
135
|
}
|
|
112
136
|
};
|
|
113
137
|
const onGamepadConnected = (e) => {
|
|
114
|
-
if (!(e instanceof GamepadEvent))
|
|
138
|
+
if (!(e instanceof GamepadEvent)) {
|
|
115
139
|
return;
|
|
140
|
+
}
|
|
116
141
|
this.events.emit('gamepad:connected', e.gamepad.index);
|
|
117
142
|
};
|
|
118
143
|
const onGamepadDisconnected = (e) => {
|
|
119
|
-
if (!(e instanceof GamepadEvent))
|
|
144
|
+
if (!(e instanceof GamepadEvent)) {
|
|
120
145
|
return;
|
|
146
|
+
}
|
|
121
147
|
this._gamepads[e.gamepad.index] = null;
|
|
122
148
|
this.events.emit('gamepad:disconnected', e.gamepad.index);
|
|
123
149
|
};
|
|
@@ -149,8 +175,7 @@ class InputManager {
|
|
|
149
175
|
};
|
|
150
176
|
}
|
|
151
177
|
detach() {
|
|
152
|
-
|
|
153
|
-
(_a = this._cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
178
|
+
this._cleanup?.();
|
|
154
179
|
this._cleanup = null;
|
|
155
180
|
}
|
|
156
181
|
/* ── Actions ────────────────────────────────────────────────── */
|
|
@@ -170,7 +195,6 @@ class InputManager {
|
|
|
170
195
|
}
|
|
171
196
|
/** Query an action state for a specific player. */
|
|
172
197
|
getAction(name, playerIndex = 0) {
|
|
173
|
-
var _a;
|
|
174
198
|
const binding = this._actions.get(name);
|
|
175
199
|
if (!binding) {
|
|
176
200
|
return { pressed: false, justPressed: false, justReleased: false, value: 0 };
|
|
@@ -186,10 +210,12 @@ class InputManager {
|
|
|
186
210
|
pressed = true;
|
|
187
211
|
value = 1;
|
|
188
212
|
}
|
|
189
|
-
if (this._keysJustPressed.has(key))
|
|
213
|
+
if (this._keysJustPressed.has(key)) {
|
|
190
214
|
justPressed = true;
|
|
191
|
-
|
|
215
|
+
}
|
|
216
|
+
if (this._keysJustReleased.has(key)) {
|
|
192
217
|
justReleased = true;
|
|
218
|
+
}
|
|
193
219
|
}
|
|
194
220
|
}
|
|
195
221
|
// Mouse (player 0 only)
|
|
@@ -199,10 +225,12 @@ class InputManager {
|
|
|
199
225
|
pressed = true;
|
|
200
226
|
value = 1;
|
|
201
227
|
}
|
|
202
|
-
if (this._mouseButtonsJustPressed.has(btn))
|
|
228
|
+
if (this._mouseButtonsJustPressed.has(btn)) {
|
|
203
229
|
justPressed = true;
|
|
204
|
-
|
|
230
|
+
}
|
|
231
|
+
if (this._mouseButtonsJustReleased.has(btn)) {
|
|
205
232
|
justReleased = true;
|
|
233
|
+
}
|
|
206
234
|
}
|
|
207
235
|
}
|
|
208
236
|
// Gamepad
|
|
@@ -214,14 +242,16 @@ class InputManager {
|
|
|
214
242
|
pressed = true;
|
|
215
243
|
value = 1;
|
|
216
244
|
}
|
|
217
|
-
if (gp.buttonsJustPressed.has(btn))
|
|
245
|
+
if (gp.buttonsJustPressed.has(btn)) {
|
|
218
246
|
justPressed = true;
|
|
219
|
-
|
|
247
|
+
}
|
|
248
|
+
if (gp.buttonsJustReleased.has(btn)) {
|
|
220
249
|
justReleased = true;
|
|
250
|
+
}
|
|
221
251
|
}
|
|
222
252
|
}
|
|
223
253
|
if (binding.gamepadAxis) {
|
|
224
|
-
const axisVal =
|
|
254
|
+
const axisVal = gp.axes[binding.gamepadAxis.axis] ?? 0;
|
|
225
255
|
const dir = binding.gamepadAxis.direction;
|
|
226
256
|
if ((dir === 'positive' && axisVal > this._deadzone) ||
|
|
227
257
|
(dir === 'negative' && axisVal < -this._deadzone)) {
|
|
@@ -249,29 +279,30 @@ class InputManager {
|
|
|
249
279
|
return this._mouseButtons.has(button);
|
|
250
280
|
}
|
|
251
281
|
getGamepadAxis(playerIndex, axis) {
|
|
252
|
-
|
|
253
|
-
return (_b = (_a = this._gamepads[playerIndex]) === null || _a === void 0 ? void 0 : _a.axes[axis]) !== null && _b !== void 0 ? _b : 0;
|
|
282
|
+
return this._gamepads[playerIndex]?.axes[axis] ?? 0;
|
|
254
283
|
}
|
|
255
284
|
getGamepadButton(playerIndex, button) {
|
|
256
|
-
|
|
257
|
-
return (_b = (_a = this._gamepads[playerIndex]) === null || _a === void 0 ? void 0 : _a.buttons[button]) !== null && _b !== void 0 ? _b : false;
|
|
285
|
+
return this._gamepads[playerIndex]?.buttons[button] ?? false;
|
|
258
286
|
}
|
|
259
287
|
isGamepadConnected(index) {
|
|
260
288
|
return this._gamepads[index] != null;
|
|
261
289
|
}
|
|
262
290
|
get connectedGamepads() {
|
|
263
|
-
return this._gamepads.filter(g => g != null).length;
|
|
291
|
+
return this._gamepads.filter((g) => g != null).length;
|
|
264
292
|
}
|
|
265
293
|
/** Vibrate a gamepad. */
|
|
266
294
|
vibrate(playerIndex, duration, weak = 0.5, strong = 0.5) {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
295
|
+
const gpRaw = navigator.getGamepads?.()[playerIndex];
|
|
296
|
+
if (gpRaw?.vibrationActuator) {
|
|
297
|
+
gpRaw.vibrationActuator
|
|
298
|
+
.playEffect('dual-rumble', {
|
|
271
299
|
duration,
|
|
272
300
|
weakMagnitude: weak,
|
|
273
301
|
strongMagnitude: strong,
|
|
274
|
-
})
|
|
302
|
+
})
|
|
303
|
+
.catch(() => {
|
|
304
|
+
/* ignore if unsupported */
|
|
305
|
+
});
|
|
275
306
|
}
|
|
276
307
|
}
|
|
277
308
|
/* ── Update (call once per frame BEFORE game logic) ─────────── */
|
|
@@ -295,10 +326,10 @@ class InputManager {
|
|
|
295
326
|
}
|
|
296
327
|
}
|
|
297
328
|
pollGamepads() {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (!rawPads)
|
|
329
|
+
const rawPads = navigator.getGamepads?.();
|
|
330
|
+
if (!rawPads) {
|
|
301
331
|
return;
|
|
332
|
+
}
|
|
302
333
|
for (let i = 0; i < 4; i++) {
|
|
303
334
|
const raw = rawPads[i];
|
|
304
335
|
if (!raw) {
|
|
@@ -306,28 +337,33 @@ class InputManager {
|
|
|
306
337
|
continue;
|
|
307
338
|
}
|
|
308
339
|
const prev = this._gamepads[i];
|
|
309
|
-
const state = prev
|
|
340
|
+
const state = prev ?? createGamepadState();
|
|
310
341
|
// Buttons
|
|
311
342
|
for (let b = 0; b < raw.buttons.length; b++) {
|
|
312
343
|
const btn = BUTTON_MAP[b];
|
|
313
|
-
if (!btn)
|
|
344
|
+
if (!btn) {
|
|
314
345
|
continue;
|
|
346
|
+
}
|
|
315
347
|
const wasPressed = state.buttons[btn];
|
|
316
348
|
const isPressed = raw.buttons[b].pressed || raw.buttons[b].value > 0.5;
|
|
317
349
|
state.buttons[btn] = isPressed;
|
|
318
|
-
if (isPressed && !wasPressed)
|
|
350
|
+
if (isPressed && !wasPressed) {
|
|
319
351
|
state.buttonsJustPressed.add(btn);
|
|
320
|
-
|
|
352
|
+
}
|
|
353
|
+
if (!isPressed && wasPressed) {
|
|
321
354
|
state.buttonsJustReleased.add(btn);
|
|
355
|
+
}
|
|
322
356
|
}
|
|
323
357
|
// Axes (with deadzone)
|
|
324
358
|
for (let a = 0; a < raw.axes.length; a++) {
|
|
325
359
|
const axis = AXIS_MAP[a];
|
|
326
|
-
if (!axis)
|
|
360
|
+
if (!axis) {
|
|
327
361
|
continue;
|
|
362
|
+
}
|
|
328
363
|
let val = raw.axes[a];
|
|
329
|
-
if (Math.abs(val) < this._deadzone)
|
|
364
|
+
if (Math.abs(val) < this._deadzone) {
|
|
330
365
|
val = 0;
|
|
366
|
+
}
|
|
331
367
|
state.axes[axis] = val;
|
|
332
368
|
}
|
|
333
369
|
state.connected = true;
|
|
@@ -338,11 +374,13 @@ class InputManager {
|
|
|
338
374
|
}
|
|
339
375
|
function createGamepadState() {
|
|
340
376
|
const buttons = {};
|
|
341
|
-
for (const btn of Object.values(BUTTON_MAP))
|
|
377
|
+
for (const btn of Object.values(BUTTON_MAP)) {
|
|
342
378
|
buttons[btn] = false;
|
|
379
|
+
}
|
|
343
380
|
const axes = {};
|
|
344
|
-
for (const ax of Object.values(AXIS_MAP))
|
|
381
|
+
for (const ax of Object.values(AXIS_MAP)) {
|
|
345
382
|
axes[ax] = 0;
|
|
383
|
+
}
|
|
346
384
|
return {
|
|
347
385
|
connected: false,
|
|
348
386
|
id: '',
|
|
@@ -356,8 +394,16 @@ function createGamepadState() {
|
|
|
356
394
|
const PRESET_PLATFORMER = {
|
|
357
395
|
name: 'Platformer',
|
|
358
396
|
actions: {
|
|
359
|
-
moveLeft: {
|
|
360
|
-
|
|
397
|
+
moveLeft: {
|
|
398
|
+
keys: ['ArrowLeft', 'KeyA'],
|
|
399
|
+
gamepadButtons: ['DpadLeft'],
|
|
400
|
+
gamepadAxis: { axis: 'LeftX', direction: 'negative' },
|
|
401
|
+
},
|
|
402
|
+
moveRight: {
|
|
403
|
+
keys: ['ArrowRight', 'KeyD'],
|
|
404
|
+
gamepadButtons: ['DpadRight'],
|
|
405
|
+
gamepadAxis: { axis: 'LeftX', direction: 'positive' },
|
|
406
|
+
},
|
|
361
407
|
jump: { keys: ['Space', 'ArrowUp', 'KeyW'], gamepadButtons: ['A'] },
|
|
362
408
|
attack: { keys: ['KeyZ', 'KeyJ'], gamepadButtons: ['X'] },
|
|
363
409
|
special: { keys: ['KeyX', 'KeyK'], gamepadButtons: ['Y'] },
|
|
@@ -368,10 +414,19 @@ const PRESET_PLATFORMER = {
|
|
|
368
414
|
const PRESET_TOPDOWN = {
|
|
369
415
|
name: 'Top-Down',
|
|
370
416
|
actions: {
|
|
371
|
-
moveLeft: {
|
|
372
|
-
|
|
417
|
+
moveLeft: {
|
|
418
|
+
keys: ['ArrowLeft', 'KeyA'],
|
|
419
|
+
gamepadAxis: { axis: 'LeftX', direction: 'negative' },
|
|
420
|
+
},
|
|
421
|
+
moveRight: {
|
|
422
|
+
keys: ['ArrowRight', 'KeyD'],
|
|
423
|
+
gamepadAxis: { axis: 'LeftX', direction: 'positive' },
|
|
424
|
+
},
|
|
373
425
|
moveUp: { keys: ['ArrowUp', 'KeyW'], gamepadAxis: { axis: 'LeftY', direction: 'negative' } },
|
|
374
|
-
moveDown: {
|
|
426
|
+
moveDown: {
|
|
427
|
+
keys: ['ArrowDown', 'KeyS'],
|
|
428
|
+
gamepadAxis: { axis: 'LeftY', direction: 'positive' },
|
|
429
|
+
},
|
|
375
430
|
aimX: { gamepadAxis: { axis: 'RightX', direction: 'positive' } },
|
|
376
431
|
aimY: { gamepadAxis: { axis: 'RightY', direction: 'positive' } },
|
|
377
432
|
shoot: { keys: ['Space', 'KeyZ'], gamepadButtons: ['RT'], mouseButtons: [0] },
|