@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
|
@@ -45,15 +45,14 @@ class InventoryManager {
|
|
|
45
45
|
this.eventBus = bus;
|
|
46
46
|
}
|
|
47
47
|
emit(event) {
|
|
48
|
-
|
|
49
|
-
(_a = this.eventBus) === null || _a === void 0 ? void 0 : _a.emit(`inventory:${event.type}`, event);
|
|
48
|
+
this.eventBus?.emit(`inventory:${event.type}`, event);
|
|
50
49
|
}
|
|
51
50
|
/* ── Item Definitions ───────────────────────────────────────── */
|
|
52
51
|
registerItem(definition) {
|
|
53
52
|
this.itemDefinitions.set(definition.id, definition);
|
|
54
53
|
}
|
|
55
54
|
registerItems(definitions) {
|
|
56
|
-
definitions.forEach(def => this.registerItem(def));
|
|
55
|
+
definitions.forEach((def) => this.registerItem(def));
|
|
57
56
|
}
|
|
58
57
|
getItemDefinition(itemId) {
|
|
59
58
|
return this.itemDefinitions.get(itemId);
|
|
@@ -63,18 +62,17 @@ class InventoryManager {
|
|
|
63
62
|
}
|
|
64
63
|
/* ── Container Management ───────────────────────────────────── */
|
|
65
64
|
createContainer(type, ownerId, options = {}) {
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
const maxSlots = (_b = options.maxSlots) !== null && _b !== void 0 ? _b : this.config.defaultSlots;
|
|
65
|
+
const id = options.id ?? `container_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
66
|
+
const maxSlots = options.maxSlots ?? this.config.defaultSlots;
|
|
69
67
|
const container = {
|
|
70
68
|
id,
|
|
71
69
|
type,
|
|
72
|
-
name:
|
|
70
|
+
name: options.name ?? `${type} container`,
|
|
73
71
|
ownerId,
|
|
74
72
|
maxSlots,
|
|
75
73
|
maxWeight: options.maxWeight,
|
|
76
74
|
slots: Array.from({ length: maxSlots }, (_, i) => ({ index: i, item: null })),
|
|
77
|
-
currency:
|
|
75
|
+
currency: options.currency ?? new Map(),
|
|
78
76
|
allowedCategories: options.allowedCategories,
|
|
79
77
|
disallowedCategories: options.disallowedCategories,
|
|
80
78
|
};
|
|
@@ -86,26 +84,32 @@ class InventoryManager {
|
|
|
86
84
|
return this.containers.get(containerId);
|
|
87
85
|
}
|
|
88
86
|
getContainersByOwner(ownerId) {
|
|
89
|
-
return Array.from(this.containers.values()).filter(c => c.ownerId === ownerId);
|
|
87
|
+
return Array.from(this.containers.values()).filter((c) => c.ownerId === ownerId);
|
|
90
88
|
}
|
|
91
89
|
destroyContainer(containerId) {
|
|
92
90
|
const container = this.containers.get(containerId);
|
|
93
|
-
if (!container)
|
|
91
|
+
if (!container) {
|
|
94
92
|
return false;
|
|
93
|
+
}
|
|
95
94
|
this.containers.delete(containerId);
|
|
96
|
-
this.emit({
|
|
95
|
+
this.emit({
|
|
96
|
+
type: 'container:destroyed',
|
|
97
|
+
containerId,
|
|
98
|
+
ownerId: container.ownerId,
|
|
99
|
+
timestamp: Date.now(),
|
|
100
|
+
});
|
|
97
101
|
return true;
|
|
98
102
|
}
|
|
99
103
|
/* ── Item Instance Creation ─────────────────────────────────── */
|
|
100
104
|
createItemInstance(itemId, count = 1, options = {}) {
|
|
101
|
-
var _a;
|
|
102
105
|
const def = this.itemDefinitions.get(itemId);
|
|
103
|
-
if (!def)
|
|
106
|
+
if (!def) {
|
|
104
107
|
return null;
|
|
108
|
+
}
|
|
105
109
|
// Extract count from options to prevent override
|
|
106
110
|
const { count: _ignoredCount, ...restOptions } = options;
|
|
107
111
|
const instance = {
|
|
108
|
-
instanceId:
|
|
112
|
+
instanceId: restOptions.instanceId ?? `item_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`,
|
|
109
113
|
itemId,
|
|
110
114
|
count: Math.min(count, def.maxStack),
|
|
111
115
|
durability: def.maxDurability,
|
|
@@ -116,24 +120,25 @@ class InventoryManager {
|
|
|
116
120
|
}
|
|
117
121
|
/* ── Basic Operations ───────────────────────────────────────── */
|
|
118
122
|
addItem(containerId, itemId, count = 1, options = {}) {
|
|
119
|
-
var _a, _b, _c;
|
|
120
123
|
const container = this.containers.get(containerId);
|
|
121
|
-
if (!container)
|
|
124
|
+
if (!container) {
|
|
122
125
|
return null;
|
|
126
|
+
}
|
|
123
127
|
const def = this.itemDefinitions.get(itemId);
|
|
124
|
-
if (!def)
|
|
128
|
+
if (!def) {
|
|
125
129
|
return null;
|
|
130
|
+
}
|
|
126
131
|
// Check category restrictions
|
|
127
132
|
if (container.allowedCategories && !container.allowedCategories.includes(def.category)) {
|
|
128
133
|
return null;
|
|
129
134
|
}
|
|
130
|
-
if (
|
|
135
|
+
if (container.disallowedCategories?.includes(def.category)) {
|
|
131
136
|
return null;
|
|
132
137
|
}
|
|
133
138
|
// Check weight
|
|
134
139
|
if (this.config.enableWeight && container.maxWeight !== undefined) {
|
|
135
140
|
const currentWeight = this.getContainerWeight(containerId);
|
|
136
|
-
if (currentWeight +
|
|
141
|
+
if (currentWeight + def.weight * count > container.maxWeight) {
|
|
137
142
|
return null;
|
|
138
143
|
}
|
|
139
144
|
}
|
|
@@ -154,20 +159,23 @@ class InventoryManager {
|
|
|
154
159
|
count: toAdd,
|
|
155
160
|
timestamp: Date.now(),
|
|
156
161
|
});
|
|
157
|
-
if (count <= 0)
|
|
162
|
+
if (count <= 0) {
|
|
158
163
|
return slot.item;
|
|
164
|
+
}
|
|
159
165
|
}
|
|
160
166
|
}
|
|
161
167
|
}
|
|
162
168
|
// Find empty slot for remaining
|
|
163
169
|
while (count > 0) {
|
|
164
|
-
const emptySlot = container.slots.find(s => !s.item && !s.locked);
|
|
165
|
-
if (!emptySlot)
|
|
166
|
-
return null;
|
|
170
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
171
|
+
if (!emptySlot) {
|
|
172
|
+
return null;
|
|
173
|
+
} // No space
|
|
167
174
|
const stackCount = Math.min(count, def.maxStack);
|
|
168
175
|
const instance = this.createItemInstance(itemId, stackCount, options);
|
|
169
|
-
if (!instance)
|
|
176
|
+
if (!instance) {
|
|
170
177
|
return null;
|
|
178
|
+
}
|
|
171
179
|
emptySlot.item = instance;
|
|
172
180
|
count -= stackCount;
|
|
173
181
|
this.emit({
|
|
@@ -180,15 +188,17 @@ class InventoryManager {
|
|
|
180
188
|
timestamp: Date.now(),
|
|
181
189
|
});
|
|
182
190
|
}
|
|
183
|
-
return
|
|
191
|
+
return container.slots.find((s) => s.item?.itemId === itemId)?.item ?? null;
|
|
184
192
|
}
|
|
185
193
|
removeItem(containerId, slotIndex, count = 1) {
|
|
186
194
|
const container = this.containers.get(containerId);
|
|
187
|
-
if (!container)
|
|
195
|
+
if (!container) {
|
|
188
196
|
return null;
|
|
197
|
+
}
|
|
189
198
|
const slot = container.slots[slotIndex];
|
|
190
|
-
if (!
|
|
199
|
+
if (!slot?.item) {
|
|
191
200
|
return null;
|
|
201
|
+
}
|
|
192
202
|
const removed = { ...slot.item };
|
|
193
203
|
if (slot.item.count <= count) {
|
|
194
204
|
slot.item = null;
|
|
@@ -212,15 +222,18 @@ class InventoryManager {
|
|
|
212
222
|
moveItem(fromContainerId, fromSlot, toContainerId, toSlot) {
|
|
213
223
|
const fromContainer = this.containers.get(fromContainerId);
|
|
214
224
|
const toContainer = this.containers.get(toContainerId);
|
|
215
|
-
if (!fromContainer || !toContainer)
|
|
225
|
+
if (!fromContainer || !toContainer) {
|
|
216
226
|
return false;
|
|
227
|
+
}
|
|
217
228
|
const sourceSlot = fromContainer.slots[fromSlot];
|
|
218
229
|
const targetSlot = toContainer.slots[toSlot];
|
|
219
|
-
if (!
|
|
230
|
+
if (!sourceSlot?.item || !targetSlot) {
|
|
220
231
|
return false;
|
|
232
|
+
}
|
|
221
233
|
const def = this.itemDefinitions.get(sourceSlot.item.itemId);
|
|
222
|
-
if (!def)
|
|
234
|
+
if (!def) {
|
|
223
235
|
return false;
|
|
236
|
+
}
|
|
224
237
|
// Check target container restrictions
|
|
225
238
|
if (toContainer.allowedCategories && !toContainer.allowedCategories.includes(def.category)) {
|
|
226
239
|
return false;
|
|
@@ -234,8 +247,9 @@ class InventoryManager {
|
|
|
234
247
|
const toMove = Math.min(sourceSlot.item.count, space);
|
|
235
248
|
targetSlot.item.count += toMove;
|
|
236
249
|
sourceSlot.item.count -= toMove;
|
|
237
|
-
if (sourceSlot.item.count <= 0)
|
|
250
|
+
if (sourceSlot.item.count <= 0) {
|
|
238
251
|
sourceSlot.item = null;
|
|
252
|
+
}
|
|
239
253
|
}
|
|
240
254
|
else {
|
|
241
255
|
// Swap
|
|
@@ -261,17 +275,24 @@ class InventoryManager {
|
|
|
261
275
|
}
|
|
262
276
|
splitStack(containerId, slotIndex, splitCount) {
|
|
263
277
|
const container = this.containers.get(containerId);
|
|
264
|
-
if (!container)
|
|
278
|
+
if (!container) {
|
|
265
279
|
return false;
|
|
280
|
+
}
|
|
266
281
|
const slot = container.slots[slotIndex];
|
|
267
|
-
if (!
|
|
282
|
+
if (!slot?.item || slot.item.count <= splitCount) {
|
|
268
283
|
return false;
|
|
269
|
-
|
|
270
|
-
|
|
284
|
+
}
|
|
285
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
286
|
+
if (!emptySlot) {
|
|
271
287
|
return false;
|
|
272
|
-
|
|
273
|
-
|
|
288
|
+
}
|
|
289
|
+
const newInstance = this.createItemInstance(slot.item.itemId, splitCount, {
|
|
290
|
+
...slot.item,
|
|
291
|
+
instanceId: undefined,
|
|
292
|
+
});
|
|
293
|
+
if (!newInstance) {
|
|
274
294
|
return false;
|
|
295
|
+
}
|
|
275
296
|
slot.item.count -= splitCount;
|
|
276
297
|
emptySlot.item = newInstance;
|
|
277
298
|
this.emit({
|
|
@@ -289,23 +310,26 @@ class InventoryManager {
|
|
|
289
310
|
/* ── Weight & Capacity ──────────────────────────────────────── */
|
|
290
311
|
getContainerWeight(containerId) {
|
|
291
312
|
const container = this.containers.get(containerId);
|
|
292
|
-
if (!container)
|
|
313
|
+
if (!container) {
|
|
293
314
|
return 0;
|
|
315
|
+
}
|
|
294
316
|
let weight = 0;
|
|
295
317
|
for (const slot of container.slots) {
|
|
296
318
|
if (slot.item) {
|
|
297
319
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
298
|
-
if (def)
|
|
320
|
+
if (def) {
|
|
299
321
|
weight += def.weight * slot.item.count;
|
|
322
|
+
}
|
|
300
323
|
}
|
|
301
324
|
}
|
|
302
325
|
return weight;
|
|
303
326
|
}
|
|
304
327
|
getContainerFreeSlots(containerId) {
|
|
305
328
|
const container = this.containers.get(containerId);
|
|
306
|
-
if (!container)
|
|
329
|
+
if (!container) {
|
|
307
330
|
return 0;
|
|
308
|
-
|
|
331
|
+
}
|
|
332
|
+
return container.slots.filter((s) => !s.item && !s.locked).length;
|
|
309
333
|
}
|
|
310
334
|
/* ── Equipment System ───────────────────────────────────────── */
|
|
311
335
|
initializeEquipment(ownerId) {
|
|
@@ -316,10 +340,23 @@ class InventoryManager {
|
|
|
316
340
|
};
|
|
317
341
|
// Initialize all slots as empty
|
|
318
342
|
const allSlots = [
|
|
319
|
-
'head',
|
|
320
|
-
'
|
|
343
|
+
'head',
|
|
344
|
+
'chest',
|
|
345
|
+
'legs',
|
|
346
|
+
'feet',
|
|
347
|
+
'hands',
|
|
348
|
+
'shoulders',
|
|
349
|
+
'back',
|
|
350
|
+
'waist',
|
|
351
|
+
'mainHand',
|
|
352
|
+
'offHand',
|
|
353
|
+
'ring1',
|
|
354
|
+
'ring2',
|
|
355
|
+
'neck',
|
|
356
|
+
'trinket1',
|
|
357
|
+
'trinket2',
|
|
321
358
|
];
|
|
322
|
-
allSlots.forEach(slot => state.slots.set(slot, null));
|
|
359
|
+
allSlots.forEach((slot) => state.slots.set(slot, null));
|
|
323
360
|
this.equipment.set(ownerId, state);
|
|
324
361
|
return state;
|
|
325
362
|
}
|
|
@@ -332,14 +369,17 @@ class InventoryManager {
|
|
|
332
369
|
equipState = this.initializeEquipment(ownerId);
|
|
333
370
|
}
|
|
334
371
|
const container = this.containers.get(containerId);
|
|
335
|
-
if (!container)
|
|
372
|
+
if (!container) {
|
|
336
373
|
return false;
|
|
374
|
+
}
|
|
337
375
|
const invSlot = container.slots[slotIndex];
|
|
338
|
-
if (!
|
|
376
|
+
if (!invSlot?.item) {
|
|
339
377
|
return false;
|
|
378
|
+
}
|
|
340
379
|
const def = this.itemDefinitions.get(invSlot.item.itemId);
|
|
341
|
-
if (!
|
|
380
|
+
if (!def?.equipSlot) {
|
|
342
381
|
return false;
|
|
382
|
+
}
|
|
343
383
|
// Check requirements
|
|
344
384
|
// (In real implementation, would check level, class, stats)
|
|
345
385
|
// Handle two-hand weapons
|
|
@@ -348,10 +388,12 @@ class InventoryManager {
|
|
|
348
388
|
// Unequip both hands
|
|
349
389
|
const mainHand = equipState.slots.get('mainHand');
|
|
350
390
|
const offHand = equipState.slots.get('offHand');
|
|
351
|
-
if (mainHand)
|
|
391
|
+
if (mainHand) {
|
|
352
392
|
this.unequipToContainer(ownerId, 'mainHand', containerId);
|
|
353
|
-
|
|
393
|
+
}
|
|
394
|
+
if (offHand) {
|
|
354
395
|
this.unequipToContainer(ownerId, 'offHand', containerId);
|
|
396
|
+
}
|
|
355
397
|
targetSlot = 'mainHand';
|
|
356
398
|
}
|
|
357
399
|
// Clone the item to equip BEFORE modifying the slot
|
|
@@ -386,18 +428,22 @@ class InventoryManager {
|
|
|
386
428
|
}
|
|
387
429
|
unequipToContainer(ownerId, equipSlot, containerId) {
|
|
388
430
|
const equipState = this.equipment.get(ownerId);
|
|
389
|
-
if (!equipState)
|
|
431
|
+
if (!equipState) {
|
|
390
432
|
return false;
|
|
433
|
+
}
|
|
391
434
|
const equippedItem = equipState.slots.get(equipSlot);
|
|
392
|
-
if (!equippedItem)
|
|
435
|
+
if (!equippedItem) {
|
|
393
436
|
return false;
|
|
437
|
+
}
|
|
394
438
|
const container = this.containers.get(containerId);
|
|
395
|
-
if (!container)
|
|
439
|
+
if (!container) {
|
|
396
440
|
return false;
|
|
441
|
+
}
|
|
397
442
|
// Find empty slot in container
|
|
398
|
-
const emptySlot = container.slots.find(s => !s.item && !s.locked);
|
|
399
|
-
if (!emptySlot)
|
|
400
|
-
return false;
|
|
443
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
444
|
+
if (!emptySlot) {
|
|
445
|
+
return false;
|
|
446
|
+
} // Inventory full
|
|
401
447
|
emptySlot.item = equippedItem;
|
|
402
448
|
equipState.slots.set(equipSlot, null);
|
|
403
449
|
this.recalculateEquipmentStats(ownerId);
|
|
@@ -411,30 +457,34 @@ class InventoryManager {
|
|
|
411
457
|
return true;
|
|
412
458
|
}
|
|
413
459
|
recalculateEquipmentStats(ownerId) {
|
|
414
|
-
var _a, _b;
|
|
415
460
|
const equipState = this.equipment.get(ownerId);
|
|
416
|
-
if (!equipState)
|
|
461
|
+
if (!equipState) {
|
|
417
462
|
return;
|
|
463
|
+
}
|
|
418
464
|
equipState.totalStats.clear();
|
|
419
465
|
for (const [, item] of equipState.slots) {
|
|
420
|
-
if (!item)
|
|
466
|
+
if (!item) {
|
|
421
467
|
continue;
|
|
468
|
+
}
|
|
422
469
|
const def = this.itemDefinitions.get(item.itemId);
|
|
423
|
-
if (!
|
|
470
|
+
if (!def?.stats) {
|
|
424
471
|
continue;
|
|
472
|
+
}
|
|
425
473
|
for (const mod of def.stats) {
|
|
426
|
-
const current =
|
|
427
|
-
equipState.totalStats.set(mod.stat, current + (
|
|
474
|
+
const current = equipState.totalStats.get(mod.stat) ?? 0;
|
|
475
|
+
equipState.totalStats.set(mod.stat, current + (mod.flat ?? 0));
|
|
428
476
|
// Percent modifiers would need separate handling
|
|
429
477
|
}
|
|
430
478
|
}
|
|
431
479
|
}
|
|
432
480
|
/* ── Durability & Repair ────────────────────────────────────── */
|
|
433
481
|
damageDurability(instance, damage) {
|
|
434
|
-
if (!this.config.enableDurability)
|
|
482
|
+
if (!this.config.enableDurability) {
|
|
435
483
|
return false;
|
|
436
|
-
|
|
484
|
+
}
|
|
485
|
+
if (instance.durability === undefined) {
|
|
437
486
|
return false;
|
|
487
|
+
}
|
|
438
488
|
instance.durability = Math.max(0, instance.durability - damage);
|
|
439
489
|
if (instance.durability <= 0) {
|
|
440
490
|
this.emit({
|
|
@@ -448,8 +498,9 @@ class InventoryManager {
|
|
|
448
498
|
}
|
|
449
499
|
repairItem(instance, amount) {
|
|
450
500
|
const def = this.itemDefinitions.get(instance.itemId);
|
|
451
|
-
if (!
|
|
501
|
+
if (!def?.maxDurability || instance.durability === undefined) {
|
|
452
502
|
return false;
|
|
503
|
+
}
|
|
453
504
|
instance.durability = Math.min(def.maxDurability, amount !== undefined ? instance.durability + amount : def.maxDurability);
|
|
454
505
|
this.emit({
|
|
455
506
|
type: 'item:repaired',
|
|
@@ -460,19 +511,21 @@ class InventoryManager {
|
|
|
460
511
|
}
|
|
461
512
|
/* ── Consumables ────────────────────────────────────────────── */
|
|
462
513
|
useItem(containerId, slotIndex, targetEntityId) {
|
|
463
|
-
var _a;
|
|
464
514
|
const container = this.containers.get(containerId);
|
|
465
|
-
if (!container)
|
|
515
|
+
if (!container) {
|
|
466
516
|
return false;
|
|
517
|
+
}
|
|
467
518
|
const slot = container.slots[slotIndex];
|
|
468
|
-
if (!
|
|
519
|
+
if (!slot?.item) {
|
|
469
520
|
return false;
|
|
521
|
+
}
|
|
470
522
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
471
|
-
if (!def)
|
|
523
|
+
if (!def) {
|
|
472
524
|
return false;
|
|
525
|
+
}
|
|
473
526
|
// Check cooldown
|
|
474
527
|
if (def.cooldown) {
|
|
475
|
-
const lastUsed =
|
|
528
|
+
const lastUsed = this.cooldowns.get(slot.item.instanceId) ?? 0;
|
|
476
529
|
if (Date.now() - lastUsed < def.cooldown) {
|
|
477
530
|
return false; // On cooldown
|
|
478
531
|
}
|
|
@@ -505,8 +558,9 @@ class InventoryManager {
|
|
|
505
558
|
}
|
|
506
559
|
learnRecipe(entityId, recipeId) {
|
|
507
560
|
const recipe = this.recipes.get(recipeId);
|
|
508
|
-
if (!recipe || !recipe.requiresLearning)
|
|
561
|
+
if (!recipe || !recipe.requiresLearning) {
|
|
509
562
|
return false;
|
|
563
|
+
}
|
|
510
564
|
let learned = this.learnedRecipes.get(entityId);
|
|
511
565
|
if (!learned) {
|
|
512
566
|
learned = new Set();
|
|
@@ -517,28 +571,33 @@ class InventoryManager {
|
|
|
517
571
|
}
|
|
518
572
|
canCraft(entityId, recipeId, containerId) {
|
|
519
573
|
const recipe = this.recipes.get(recipeId);
|
|
520
|
-
if (!recipe)
|
|
574
|
+
if (!recipe) {
|
|
521
575
|
return false;
|
|
576
|
+
}
|
|
522
577
|
// Check if recipe is learned
|
|
523
578
|
if (recipe.requiresLearning) {
|
|
524
579
|
const learned = this.learnedRecipes.get(entityId);
|
|
525
|
-
if (!
|
|
580
|
+
if (!learned?.has(recipeId)) {
|
|
526
581
|
return false;
|
|
582
|
+
}
|
|
527
583
|
}
|
|
528
584
|
// Check ingredients
|
|
529
585
|
const container = this.containers.get(containerId);
|
|
530
|
-
if (!container)
|
|
586
|
+
if (!container) {
|
|
531
587
|
return false;
|
|
588
|
+
}
|
|
532
589
|
for (const ingredient of recipe.ingredients) {
|
|
533
590
|
const available = this.countItemsInContainer(containerId, ingredient.itemId);
|
|
534
|
-
if (available < ingredient.count)
|
|
591
|
+
if (available < ingredient.count) {
|
|
535
592
|
return false;
|
|
593
|
+
}
|
|
536
594
|
}
|
|
537
595
|
return true;
|
|
538
596
|
}
|
|
539
597
|
craft(entityId, recipeId, containerId) {
|
|
540
|
-
if (!this.canCraft(entityId, recipeId, containerId))
|
|
598
|
+
if (!this.canCraft(entityId, recipeId, containerId)) {
|
|
541
599
|
return null;
|
|
600
|
+
}
|
|
542
601
|
const recipe = this.recipes.get(recipeId);
|
|
543
602
|
this.containers.get(containerId);
|
|
544
603
|
// Check success
|
|
@@ -571,7 +630,7 @@ class InventoryManager {
|
|
|
571
630
|
ownerId: entityId,
|
|
572
631
|
recipeId,
|
|
573
632
|
containerId,
|
|
574
|
-
item: output
|
|
633
|
+
item: output ?? undefined,
|
|
575
634
|
timestamp: Date.now(),
|
|
576
635
|
});
|
|
577
636
|
return output;
|
|
@@ -581,26 +640,32 @@ class InventoryManager {
|
|
|
581
640
|
this.lootTables.set(table.id, table);
|
|
582
641
|
}
|
|
583
642
|
generateLoot(tableId, modifiers = {}) {
|
|
584
|
-
var _a;
|
|
585
643
|
const table = this.lootTables.get(tableId);
|
|
586
|
-
if (!table)
|
|
644
|
+
if (!table) {
|
|
587
645
|
return [];
|
|
646
|
+
}
|
|
588
647
|
const loot = [];
|
|
589
648
|
// Guaranteed drops
|
|
590
649
|
if (table.guaranteedDrops) {
|
|
591
650
|
for (const drop of table.guaranteedDrops) {
|
|
592
651
|
const instance = this.createItemInstance(drop.itemId, drop.count);
|
|
593
|
-
if (instance)
|
|
652
|
+
if (instance) {
|
|
594
653
|
loot.push(instance);
|
|
654
|
+
}
|
|
595
655
|
}
|
|
596
656
|
}
|
|
597
657
|
// Roll on table
|
|
598
|
-
const validEntries = table.entries.filter(e => {
|
|
599
|
-
|
|
600
|
-
|
|
658
|
+
const validEntries = table.entries.filter((e) => {
|
|
659
|
+
if (e.conditions?.minLevel &&
|
|
660
|
+
modifiers.levelContext &&
|
|
661
|
+
modifiers.levelContext < e.conditions.minLevel) {
|
|
601
662
|
return false;
|
|
602
|
-
|
|
663
|
+
}
|
|
664
|
+
if (e.conditions?.maxLevel &&
|
|
665
|
+
modifiers.levelContext &&
|
|
666
|
+
modifiers.levelContext > e.conditions.maxLevel) {
|
|
603
667
|
return false;
|
|
668
|
+
}
|
|
604
669
|
return true;
|
|
605
670
|
});
|
|
606
671
|
const totalWeight = validEntries.reduce((sum, e) => sum + e.weight, 0);
|
|
@@ -610,12 +675,13 @@ class InventoryManager {
|
|
|
610
675
|
random -= entry.weight;
|
|
611
676
|
if (random <= 0) {
|
|
612
677
|
// Apply drop chance with luck modifier
|
|
613
|
-
const effectiveChance = Math.min(1, entry.dropChance + (
|
|
678
|
+
const effectiveChance = Math.min(1, entry.dropChance + (modifiers.luckBonus ?? 0));
|
|
614
679
|
if (Math.random() <= effectiveChance) {
|
|
615
680
|
const count = Math.floor(entry.minCount + Math.random() * (entry.maxCount - entry.minCount + 1));
|
|
616
681
|
const instance = this.createItemInstance(entry.itemId, count);
|
|
617
|
-
if (instance)
|
|
682
|
+
if (instance) {
|
|
618
683
|
loot.push(instance);
|
|
684
|
+
}
|
|
619
685
|
}
|
|
620
686
|
break;
|
|
621
687
|
}
|
|
@@ -636,27 +702,31 @@ class InventoryManager {
|
|
|
636
702
|
return this.shops.get(shopId);
|
|
637
703
|
}
|
|
638
704
|
buyFromShop(shopId, listingIndex, quantity, buyerContainerId) {
|
|
639
|
-
var _a, _b, _c;
|
|
640
705
|
const shop = this.shops.get(shopId);
|
|
641
706
|
const container = this.containers.get(buyerContainerId);
|
|
642
|
-
if (!shop || !container)
|
|
707
|
+
if (!shop || !container) {
|
|
643
708
|
return false;
|
|
709
|
+
}
|
|
644
710
|
const listing = shop.listings[listingIndex];
|
|
645
|
-
if (!listing)
|
|
711
|
+
if (!listing) {
|
|
646
712
|
return false;
|
|
713
|
+
}
|
|
647
714
|
// Check stock
|
|
648
|
-
if (listing.stock !== -1 && listing.stock < quantity)
|
|
715
|
+
if (listing.stock !== -1 && listing.stock < quantity) {
|
|
649
716
|
return false;
|
|
717
|
+
}
|
|
650
718
|
// Calculate price
|
|
651
719
|
const def = this.itemDefinitions.get(listing.itemId);
|
|
652
|
-
if (!def)
|
|
720
|
+
if (!def) {
|
|
653
721
|
return false;
|
|
654
|
-
|
|
722
|
+
}
|
|
723
|
+
const unitPrice = listing.price ?? Math.ceil(def.value * shop.sellRate);
|
|
655
724
|
const totalPrice = unitPrice * quantity;
|
|
656
725
|
// Check buyer currency
|
|
657
|
-
const buyerCurrency =
|
|
658
|
-
if (buyerCurrency < totalPrice)
|
|
726
|
+
const buyerCurrency = container.currency?.get(listing.currencyId) ?? 0;
|
|
727
|
+
if (buyerCurrency < totalPrice) {
|
|
659
728
|
return false;
|
|
729
|
+
}
|
|
660
730
|
// Execute transaction
|
|
661
731
|
container.currency.set(listing.currencyId, buyerCurrency - totalPrice);
|
|
662
732
|
const purchased = this.addItem(buyerContainerId, listing.itemId, quantity);
|
|
@@ -683,28 +753,31 @@ class InventoryManager {
|
|
|
683
753
|
return true;
|
|
684
754
|
}
|
|
685
755
|
sellToShop(shopId, sellerContainerId, slotIndex, quantity) {
|
|
686
|
-
var _a, _b;
|
|
687
756
|
const shop = this.shops.get(shopId);
|
|
688
757
|
const container = this.containers.get(sellerContainerId);
|
|
689
|
-
if (!shop || !container)
|
|
758
|
+
if (!shop || !container) {
|
|
690
759
|
return false;
|
|
760
|
+
}
|
|
691
761
|
const slot = container.slots[slotIndex];
|
|
692
|
-
if (!
|
|
762
|
+
if (!slot?.item || slot.item.count < quantity) {
|
|
693
763
|
return false;
|
|
764
|
+
}
|
|
694
765
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
695
|
-
if (!def || !def.sellable)
|
|
766
|
+
if (!def || !def.sellable) {
|
|
696
767
|
return false;
|
|
768
|
+
}
|
|
697
769
|
// Calculate sell price
|
|
698
770
|
const unitPrice = Math.floor(def.value * shop.buyRate);
|
|
699
771
|
const totalPrice = unitPrice * quantity;
|
|
700
772
|
// Use first accepted currency
|
|
701
773
|
const currencyId = shop.acceptedCurrencies[0];
|
|
702
|
-
if (!currencyId)
|
|
774
|
+
if (!currencyId) {
|
|
703
775
|
return false;
|
|
776
|
+
}
|
|
704
777
|
// Remove items
|
|
705
778
|
this.removeItem(sellerContainerId, slotIndex, quantity);
|
|
706
779
|
// Add currency
|
|
707
|
-
const currentCurrency =
|
|
780
|
+
const currentCurrency = container.currency?.get(currencyId) ?? 0;
|
|
708
781
|
container.currency.set(currencyId, currentCurrency + totalPrice);
|
|
709
782
|
this.emit({
|
|
710
783
|
type: 'shop:sold',
|
|
@@ -721,13 +794,14 @@ class InventoryManager {
|
|
|
721
794
|
}
|
|
722
795
|
/* ── Currency ───────────────────────────────────────────────── */
|
|
723
796
|
addCurrency(containerId, currencyId, amount) {
|
|
724
|
-
var _a;
|
|
725
797
|
const container = this.containers.get(containerId);
|
|
726
|
-
if (!container)
|
|
798
|
+
if (!container) {
|
|
727
799
|
return false;
|
|
728
|
-
|
|
800
|
+
}
|
|
801
|
+
if (!container.currency) {
|
|
729
802
|
container.currency = new Map();
|
|
730
|
-
|
|
803
|
+
}
|
|
804
|
+
const current = container.currency.get(currencyId) ?? 0;
|
|
731
805
|
container.currency.set(currencyId, current + amount);
|
|
732
806
|
this.emit({
|
|
733
807
|
type: 'currency:changed',
|
|
@@ -740,13 +814,14 @@ class InventoryManager {
|
|
|
740
814
|
return true;
|
|
741
815
|
}
|
|
742
816
|
removeCurrency(containerId, currencyId, amount) {
|
|
743
|
-
var _a;
|
|
744
817
|
const container = this.containers.get(containerId);
|
|
745
|
-
if (!
|
|
818
|
+
if (!container?.currency) {
|
|
746
819
|
return false;
|
|
747
|
-
|
|
748
|
-
|
|
820
|
+
}
|
|
821
|
+
const current = container.currency.get(currencyId) ?? 0;
|
|
822
|
+
if (current < amount) {
|
|
749
823
|
return false;
|
|
824
|
+
}
|
|
750
825
|
container.currency.set(currencyId, current - amount);
|
|
751
826
|
this.emit({
|
|
752
827
|
type: 'currency:changed',
|
|
@@ -759,27 +834,36 @@ class InventoryManager {
|
|
|
759
834
|
return true;
|
|
760
835
|
}
|
|
761
836
|
getCurrency(containerId, currencyId) {
|
|
762
|
-
|
|
763
|
-
return (_c = (_b = (_a = this.containers.get(containerId)) === null || _a === void 0 ? void 0 : _a.currency) === null || _b === void 0 ? void 0 : _b.get(currencyId)) !== null && _c !== void 0 ? _c : 0;
|
|
837
|
+
return this.containers.get(containerId)?.currency?.get(currencyId) ?? 0;
|
|
764
838
|
}
|
|
765
839
|
/* ── Sorting ────────────────────────────────────────────────── */
|
|
766
840
|
sortContainer(containerId, criteria = 'category') {
|
|
767
841
|
const container = this.containers.get(containerId);
|
|
768
|
-
if (!container)
|
|
842
|
+
if (!container) {
|
|
769
843
|
return;
|
|
844
|
+
}
|
|
770
845
|
const items = container.slots
|
|
771
|
-
.filter(s => s.item && !s.locked)
|
|
772
|
-
.map(s => s.item)
|
|
846
|
+
.filter((s) => s.item && !s.locked)
|
|
847
|
+
.map((s) => s.item)
|
|
773
848
|
.sort((a, b) => {
|
|
774
849
|
const defA = this.itemDefinitions.get(a.itemId);
|
|
775
850
|
const defB = this.itemDefinitions.get(b.itemId);
|
|
776
|
-
if (!defA || !defB)
|
|
851
|
+
if (!defA || !defB) {
|
|
777
852
|
return 0;
|
|
853
|
+
}
|
|
778
854
|
switch (criteria) {
|
|
779
855
|
case 'category':
|
|
780
856
|
return defA.category.localeCompare(defB.category) || defA.name.localeCompare(defB.name);
|
|
781
857
|
case 'rarity': {
|
|
782
|
-
const rarityOrder = [
|
|
858
|
+
const rarityOrder = [
|
|
859
|
+
'common',
|
|
860
|
+
'uncommon',
|
|
861
|
+
'rare',
|
|
862
|
+
'epic',
|
|
863
|
+
'legendary',
|
|
864
|
+
'mythic',
|
|
865
|
+
'unique',
|
|
866
|
+
];
|
|
783
867
|
return rarityOrder.indexOf(defB.rarity) - rarityOrder.indexOf(defA.rarity);
|
|
784
868
|
}
|
|
785
869
|
case 'name':
|
|
@@ -791,9 +875,10 @@ class InventoryManager {
|
|
|
791
875
|
}
|
|
792
876
|
});
|
|
793
877
|
// Clear unlocked slots
|
|
794
|
-
container.slots.forEach(s => {
|
|
795
|
-
if (!s.locked)
|
|
878
|
+
container.slots.forEach((s) => {
|
|
879
|
+
if (!s.locked) {
|
|
796
880
|
s.item = null;
|
|
881
|
+
}
|
|
797
882
|
});
|
|
798
883
|
// Fill with sorted items
|
|
799
884
|
let itemIndex = 0;
|
|
@@ -813,40 +898,45 @@ class InventoryManager {
|
|
|
813
898
|
/* ── Utility Methods ────────────────────────────────────────── */
|
|
814
899
|
countItemsInContainer(containerId, itemId) {
|
|
815
900
|
const container = this.containers.get(containerId);
|
|
816
|
-
if (!container)
|
|
901
|
+
if (!container) {
|
|
817
902
|
return 0;
|
|
903
|
+
}
|
|
818
904
|
return container.slots.reduce((sum, slot) => {
|
|
819
|
-
|
|
820
|
-
if (((_a = slot.item) === null || _a === void 0 ? void 0 : _a.itemId) === itemId)
|
|
905
|
+
if (slot.item?.itemId === itemId) {
|
|
821
906
|
return sum + slot.item.count;
|
|
907
|
+
}
|
|
822
908
|
return sum;
|
|
823
909
|
}, 0);
|
|
824
910
|
}
|
|
825
911
|
removeItemsByIdFromContainer(containerId, itemId, count) {
|
|
826
912
|
const container = this.containers.get(containerId);
|
|
827
|
-
if (!container)
|
|
913
|
+
if (!container) {
|
|
828
914
|
return 0;
|
|
915
|
+
}
|
|
829
916
|
let removed = 0;
|
|
830
917
|
for (const slot of container.slots) {
|
|
831
|
-
if (!slot.item || slot.item.itemId !== itemId)
|
|
918
|
+
if (!slot.item || slot.item.itemId !== itemId) {
|
|
832
919
|
continue;
|
|
920
|
+
}
|
|
833
921
|
const toRemove = Math.min(count - removed, slot.item.count);
|
|
834
922
|
slot.item.count -= toRemove;
|
|
835
923
|
removed += toRemove;
|
|
836
|
-
if (slot.item.count <= 0)
|
|
924
|
+
if (slot.item.count <= 0) {
|
|
837
925
|
slot.item = null;
|
|
838
|
-
|
|
926
|
+
}
|
|
927
|
+
if (removed >= count) {
|
|
839
928
|
break;
|
|
929
|
+
}
|
|
840
930
|
}
|
|
841
931
|
return removed;
|
|
842
932
|
}
|
|
843
933
|
findItem(containerId, itemId) {
|
|
844
|
-
var _a;
|
|
845
934
|
const container = this.containers.get(containerId);
|
|
846
|
-
if (!container)
|
|
935
|
+
if (!container) {
|
|
847
936
|
return null;
|
|
937
|
+
}
|
|
848
938
|
for (const slot of container.slots) {
|
|
849
|
-
if (
|
|
939
|
+
if (slot.item?.itemId === itemId) {
|
|
850
940
|
return { slot, instance: slot.item };
|
|
851
941
|
}
|
|
852
942
|
}
|
|
@@ -901,8 +991,9 @@ const InventoryProvider = ({ manager, children }) => {
|
|
|
901
991
|
};
|
|
902
992
|
function useInventoryManager() {
|
|
903
993
|
const ctx = React.useContext(InventoryContext);
|
|
904
|
-
if (!ctx)
|
|
994
|
+
if (!ctx) {
|
|
905
995
|
throw new Error('useInventoryManager must be used within InventoryProvider');
|
|
996
|
+
}
|
|
906
997
|
return ctx;
|
|
907
998
|
}
|
|
908
999
|
function useContainer(containerId) {
|