@nice2dev/game-engine 1.0.4 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/accessibility/Accessibility.js +55 -20
- package/dist/cjs/accessibility/Accessibility.js.map +1 -1
- package/dist/cjs/ai/AI.js +74 -40
- package/dist/cjs/ai/AI.js.map +1 -1
- package/dist/cjs/ai/BehaviorTree.js +39 -47
- package/dist/cjs/ai/BehaviorTree.js.map +1 -1
- package/dist/cjs/ai/StateMachine.js +64 -100
- package/dist/cjs/ai/StateMachine.js.map +1 -1
- package/dist/cjs/animation/Animation.js +58 -34
- package/dist/cjs/animation/Animation.js.map +1 -1
- package/dist/cjs/audio/AudioAdvanced.js +71 -37
- package/dist/cjs/audio/AudioAdvanced.js.map +1 -1
- package/dist/cjs/audio/AudioBridge.js +61 -49
- package/dist/cjs/audio/AudioBridge.js.map +1 -1
- package/dist/cjs/audio/AudioManager.js +45 -29
- package/dist/cjs/audio/AudioManager.js.map +1 -1
- package/dist/cjs/build-cloud/BuildOrchestration.js +1142 -0
- package/dist/cjs/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js +722 -0
- package/dist/cjs/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js +652 -0
- package/dist/cjs/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js +674 -0
- package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/cjs/core/EventBus.js +2 -1
- package/dist/cjs/core/EventBus.js.map +1 -1
- package/dist/cjs/core/GameConfig.js +1 -1
- package/dist/cjs/core/GameConfig.js.map +1 -1
- package/dist/cjs/core/GameLoop.js +6 -3
- package/dist/cjs/core/GameLoop.js.map +1 -1
- package/dist/cjs/core/ServiceLocator.js +1 -2
- package/dist/cjs/core/ServiceLocator.js.map +1 -1
- package/dist/cjs/devtools/DevTools.js +73 -43
- package/dist/cjs/devtools/DevTools.js.map +1 -1
- package/dist/cjs/devtools/DeveloperExperience.js +84 -42
- package/dist/cjs/devtools/DeveloperExperience.js.map +1 -1
- package/dist/cjs/devtools/GameplayAnalytics.js +71 -43
- package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/cjs/dialogue/DialogueSystem.js +153 -129
- package/dist/cjs/dialogue/DialogueSystem.js.map +1 -1
- package/dist/cjs/docs/DocGenerator.js +70 -28
- package/dist/cjs/docs/DocGenerator.js.map +1 -1
- package/dist/cjs/ecs/World.js +159 -33
- package/dist/cjs/ecs/World.js.map +1 -1
- package/dist/cjs/editor/AchievementEditor.js +650 -0
- package/dist/cjs/editor/AchievementEditor.js.map +1 -0
- package/dist/cjs/editor/AdvancedEditor.js +95 -23
- package/dist/cjs/editor/AdvancedEditor.js.map +1 -1
- package/dist/cjs/editor/AnimationRetargeting.js +742 -0
- package/dist/cjs/editor/AnimationRetargeting.js.map +1 -0
- package/dist/cjs/editor/AssetBrowser.js +1191 -0
- package/dist/cjs/editor/AssetBrowser.js.map +1 -0
- package/dist/cjs/editor/AssetManager.js +22 -14
- package/dist/cjs/editor/AssetManager.js.map +1 -1
- package/dist/cjs/editor/ConsolePro.js +1092 -0
- package/dist/cjs/editor/ConsolePro.js.map +1 -0
- package/dist/cjs/editor/CraftingEditor.js +749 -0
- package/dist/cjs/editor/CraftingEditor.js.map +1 -0
- package/dist/cjs/editor/DebugTools.js +46 -23
- package/dist/cjs/editor/DebugTools.js.map +1 -1
- package/dist/cjs/editor/DialogueSystem.js +924 -0
- package/dist/cjs/editor/DialogueSystem.js.map +1 -0
- package/dist/cjs/editor/LeaderboardSystem.js +496 -0
- package/dist/cjs/editor/LeaderboardSystem.js.map +1 -0
- package/dist/cjs/editor/NiceGameEditor.js +532 -142
- package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
- package/dist/cjs/editor/PrefabSystem.js +864 -0
- package/dist/cjs/editor/PrefabSystem.js.map +1 -0
- package/dist/cjs/editor/ProfilerPanel.js +716 -0
- package/dist/cjs/editor/ProfilerPanel.js.map +1 -0
- package/dist/cjs/editor/QuestEditor.js +850 -0
- package/dist/cjs/editor/QuestEditor.js.map +1 -0
- package/dist/cjs/editor/ReplaySystem.js +655 -0
- package/dist/cjs/editor/ReplaySystem.js.map +1 -0
- package/dist/cjs/editor/SceneEditor.js +33 -13
- package/dist/cjs/editor/SceneEditor.js.map +1 -1
- package/dist/cjs/editor/ScreenshotMode.js +710 -0
- package/dist/cjs/editor/ScreenshotMode.js.map +1 -0
- package/dist/cjs/editor/ShaderGraph.js +7 -6
- package/dist/cjs/editor/ShaderGraph.js.map +1 -1
- package/dist/cjs/editor/TimelineEditor.js +36 -30
- package/dist/cjs/editor/TimelineEditor.js.map +1 -1
- package/dist/cjs/editor/UndoRedoPro.js +920 -0
- package/dist/cjs/editor/UndoRedoPro.js.map +1 -0
- package/dist/cjs/editor/VRARMode.js +658 -0
- package/dist/cjs/editor/VRARMode.js.map +1 -0
- package/dist/cjs/engine/NiceGameEngine.js +12 -10
- package/dist/cjs/engine/NiceGameEngine.js.map +1 -1
- package/dist/cjs/engine/SaveSystemV2.js +73 -37
- package/dist/cjs/engine/SaveSystemV2.js.map +1 -1
- package/dist/cjs/enterprise/Enterprise.js +92 -44
- package/dist/cjs/enterprise/Enterprise.js.map +1 -1
- package/dist/cjs/export/BevyExporter.js +998 -0
- package/dist/cjs/export/BevyExporter.js.map +1 -0
- package/dist/cjs/export/CocosExporter.js +706 -0
- package/dist/cjs/export/CocosExporter.js.map +1 -0
- package/dist/cjs/export/Construct3Exporter.js +832 -0
- package/dist/cjs/export/Construct3Exporter.js.map +1 -0
- package/dist/cjs/export/DefoldExporter.js +1106 -0
- package/dist/cjs/export/DefoldExporter.js.map +1 -0
- package/dist/cjs/export/GDevelopExporter.js +748 -0
- package/dist/cjs/export/GDevelopExporter.js.map +1 -0
- package/dist/cjs/export/GameMakerExporter.js +846 -0
- package/dist/cjs/export/GameMakerExporter.js.map +1 -0
- package/dist/cjs/export/GodotExporter.js +45 -50
- package/dist/cjs/export/GodotExporter.js.map +1 -1
- package/dist/cjs/export/MinecraftBedrockExporter.js +606 -0
- package/dist/cjs/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/cjs/export/MonoGameExporter.js +1334 -0
- package/dist/cjs/export/MonoGameExporter.js.map +1 -0
- package/dist/cjs/export/Pico8Exporter.js +846 -0
- package/dist/cjs/export/Pico8Exporter.js.map +1 -0
- package/dist/cjs/export/PlatformExporter.js +4 -5
- package/dist/cjs/export/PlatformExporter.js.map +1 -1
- package/dist/cjs/export/RPGMakerExporter.js +906 -0
- package/dist/cjs/export/RPGMakerExporter.js.map +1 -0
- package/dist/cjs/export/RobloxExporter.js +943 -0
- package/dist/cjs/export/RobloxExporter.js.map +1 -0
- package/dist/cjs/export/Solar2DExporter.js +1283 -0
- package/dist/cjs/export/Solar2DExporter.js.map +1 -0
- package/dist/cjs/export/ThreeJSExporter.js +52 -55
- package/dist/cjs/export/ThreeJSExporter.js.map +1 -1
- package/dist/cjs/export/Tic80Exporter.js +1315 -0
- package/dist/cjs/export/Tic80Exporter.js.map +1 -0
- package/dist/cjs/export/UnityExporter.js +41 -56
- package/dist/cjs/export/UnityExporter.js.map +1 -1
- package/dist/cjs/export/UnrealExporter.js +962 -0
- package/dist/cjs/export/UnrealExporter.js.map +1 -0
- package/dist/cjs/export/WebExporter.js +42 -50
- package/dist/cjs/export/WebExporter.js.map +1 -1
- package/dist/cjs/export/index.js +50 -2
- package/dist/cjs/export/index.js.map +1 -1
- package/dist/cjs/godot-integration/GodotAssetLibrary.js +716 -0
- package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/cjs/godot-integration/GodotImport.js +1069 -0
- package/dist/cjs/godot-integration/GodotImport.js.map +1 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js +962 -0
- package/dist/cjs/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +668 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/cjs/i18n/I18n.js +56 -30
- package/dist/cjs/i18n/I18n.js.map +1 -1
- package/dist/cjs/i18n/useTranslation.js +4 -4
- package/dist/cjs/i18n/useTranslation.js.map +1 -1
- package/dist/cjs/import/AsepriteImporter.js +15 -19
- package/dist/cjs/import/AsepriteImporter.js.map +1 -1
- package/dist/cjs/import/DragonBonesImporter.js +36 -40
- package/dist/cjs/import/DragonBonesImporter.js.map +1 -1
- package/dist/cjs/import/GameMakerImporter.js +11 -17
- package/dist/cjs/import/GameMakerImporter.js.map +1 -1
- package/dist/cjs/import/GodotSceneImporter.js +43 -29
- package/dist/cjs/import/GodotSceneImporter.js.map +1 -1
- package/dist/cjs/import/LDtkImporter.js +16 -17
- package/dist/cjs/import/LDtkImporter.js.map +1 -1
- package/dist/cjs/import/Live2DImporter.js +16 -19
- package/dist/cjs/import/Live2DImporter.js.map +1 -1
- package/dist/cjs/import/NdgFormat.js +28 -35
- package/dist/cjs/import/NdgFormat.js.map +1 -1
- package/dist/cjs/import/OgmoImporter.js +16 -18
- package/dist/cjs/import/OgmoImporter.js.map +1 -1
- package/dist/cjs/import/RPGMakerImporter.js +5 -6
- package/dist/cjs/import/RPGMakerImporter.js.map +1 -1
- package/dist/cjs/import/SceneImporter.js +23 -13
- package/dist/cjs/import/SceneImporter.js.map +1 -1
- package/dist/cjs/import/SpineImporter.js +20 -20
- package/dist/cjs/import/SpineImporter.js.map +1 -1
- package/dist/cjs/import/SpriterImporter.js +38 -46
- package/dist/cjs/import/SpriterImporter.js.map +1 -1
- package/dist/cjs/import/TiledMapImporter.js +20 -24
- package/dist/cjs/import/TiledMapImporter.js.map +1 -1
- package/dist/cjs/import/UnitySceneImporter.js +15 -15
- package/dist/cjs/import/UnitySceneImporter.js.map +1 -1
- package/dist/cjs/index.js +516 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/input/GamepadNavigation.js +82 -47
- package/dist/cjs/input/GamepadNavigation.js.map +1 -1
- package/dist/cjs/input/InputManager.js +107 -52
- package/dist/cjs/input/InputManager.js.map +1 -1
- package/dist/cjs/input/useGamepads.js +35 -29
- package/dist/cjs/input/useGamepads.js.map +1 -1
- package/dist/cjs/integration/IconSprite.js +39 -21
- package/dist/cjs/integration/IconSprite.js.map +1 -1
- package/dist/cjs/inventory/InventorySystem.js +218 -127
- package/dist/cjs/inventory/InventorySystem.js.map +1 -1
- package/dist/cjs/kids/KidMode.js +491 -78
- package/dist/cjs/kids/KidMode.js.map +1 -1
- package/dist/cjs/kids/KidTools.js +154 -48
- package/dist/cjs/kids/KidTools.js.map +1 -1
- package/dist/cjs/monetization/Monetization.js +47 -35
- package/dist/cjs/monetization/Monetization.js.map +1 -1
- package/dist/cjs/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/cjs/multiplayer/MiniGameTypes.js +23 -10
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/cjs/native-engine/AssetPipeline.js +540 -0
- package/dist/cjs/native-engine/AssetPipeline.js.map +1 -0
- package/dist/cjs/native-engine/AudioEngine.js +825 -0
- package/dist/cjs/native-engine/AudioEngine.js.map +1 -0
- package/dist/cjs/native-engine/InputSystem.js +1175 -0
- package/dist/cjs/native-engine/InputSystem.js.map +1 -0
- package/dist/cjs/native-engine/NetworkingSystem.js +825 -0
- package/dist/cjs/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/cjs/native-engine/PhysicsEngine.js +622 -0
- package/dist/cjs/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/cjs/native-engine/RenderingEngine.js +371 -0
- package/dist/cjs/native-engine/RenderingEngine.js.map +1 -0
- package/dist/cjs/native-engine/SceneGraph.js +862 -0
- package/dist/cjs/native-engine/SceneGraph.js.map +1 -0
- package/dist/cjs/network/MultiplayerTransport.js +63 -33
- package/dist/cjs/network/MultiplayerTransport.js.map +1 -1
- package/dist/cjs/network/Networking.js +87 -62
- package/dist/cjs/network/Networking.js.map +1 -1
- package/dist/cjs/pathfinding/Pathfinding.js +71 -26
- package/dist/cjs/pathfinding/Pathfinding.js.map +1 -1
- package/dist/cjs/performance/AssetStreaming.js +656 -0
- package/dist/cjs/performance/AssetStreaming.js.map +1 -0
- package/dist/cjs/performance/BenchmarkSuite.js +37 -24
- package/dist/cjs/performance/BenchmarkSuite.js.map +1 -1
- package/dist/cjs/performance/DeltaCompression.js +566 -0
- package/dist/cjs/performance/DeltaCompression.js.map +1 -0
- package/dist/cjs/performance/DeterministicPhysics.js +603 -0
- package/dist/cjs/performance/DeterministicPhysics.js.map +1 -0
- package/dist/cjs/performance/ECSOptimization.js +726 -0
- package/dist/cjs/performance/ECSOptimization.js.map +1 -0
- package/dist/cjs/performance/HotReload.js +525 -0
- package/dist/cjs/performance/HotReload.js.map +1 -0
- package/dist/cjs/performance/InputRecording.js +590 -0
- package/dist/cjs/performance/InputRecording.js.map +1 -0
- package/dist/cjs/performance/InterestManagement.js +532 -0
- package/dist/cjs/performance/InterestManagement.js.map +1 -0
- package/dist/cjs/performance/LocalizationRuntime.js +472 -0
- package/dist/cjs/performance/LocalizationRuntime.js.map +1 -0
- package/dist/cjs/performance/MemoryManagement.js +487 -0
- package/dist/cjs/performance/MemoryManagement.js.map +1 -0
- package/dist/cjs/performance/ModSupport.js +531 -0
- package/dist/cjs/performance/ModSupport.js.map +1 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js +500 -0
- package/dist/cjs/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/cjs/performance/NetworkPrediction.js +521 -0
- package/dist/cjs/performance/NetworkPrediction.js.map +1 -0
- package/dist/cjs/performance/ObjectPooling.js +653 -0
- package/dist/cjs/performance/ObjectPooling.js.map +1 -0
- package/dist/cjs/performance/Performance.js +64 -25
- package/dist/cjs/performance/Performance.js.map +1 -1
- package/dist/cjs/performance/PerformanceAdvanced.js +83 -49
- package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/cjs/performance/SaveSystem.js +574 -0
- package/dist/cjs/performance/SaveSystem.js.map +1 -0
- package/dist/cjs/performance/WebGPURenderer.js +702 -0
- package/dist/cjs/performance/WebGPURenderer.js.map +1 -0
- package/dist/cjs/physics/PhysicsAdvanced.js +32 -20
- package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/cjs/physics/PhysicsEngine2D.js +63 -36
- package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/cjs/plugins/PluginSDK.js +46 -34
- package/dist/cjs/plugins/PluginSDK.js.map +1 -1
- package/dist/cjs/plugins/PluginTestKit.js +28 -29
- package/dist/cjs/plugins/PluginTestKit.js.map +1 -1
- package/dist/cjs/procedural/Procedural.js +24 -17
- package/dist/cjs/procedural/Procedural.js.map +1 -1
- package/dist/cjs/procedural/WorldBuilding.js +187 -55
- package/dist/cjs/procedural/WorldBuilding.js.map +1 -1
- package/dist/cjs/quest/QuestSystem.js +145 -111
- package/dist/cjs/quest/QuestSystem.js.map +1 -1
- package/dist/cjs/release/Release.js +142 -31
- package/dist/cjs/release/Release.js.map +1 -1
- package/dist/cjs/rendering/Camera2D.js +12 -7
- package/dist/cjs/rendering/Camera2D.js.map +1 -1
- package/dist/cjs/rendering/Renderer2D.js +62 -26
- package/dist/cjs/rendering/Renderer2D.js.map +1 -1
- package/dist/cjs/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/cjs/runtime3d/Runtime3D.js +80 -55
- package/dist/cjs/runtime3d/Runtime3D.js.map +1 -1
- package/dist/cjs/runtime3d/SceneEditor3D.js +20 -11
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/cjs/scene/SceneManager.js +26 -12
- package/dist/cjs/scene/SceneManager.js.map +1 -1
- package/dist/cjs/scripting/GraphToAST.js +36 -24
- package/dist/cjs/scripting/GraphToAST.js.map +1 -1
- package/dist/cjs/scripting/LanguageExporter.js +2 -3
- package/dist/cjs/scripting/LanguageExporter.js.map +1 -1
- package/dist/cjs/scripting/NodeGraph.js +49 -32
- package/dist/cjs/scripting/NodeGraph.js.map +1 -1
- package/dist/cjs/scripting/ScriptAST.js +19 -6
- package/dist/cjs/scripting/ScriptAST.js.map +1 -1
- package/dist/cjs/scripting/VisualScripting2.js +13 -12
- package/dist/cjs/scripting/VisualScripting2.js.map +1 -1
- package/dist/cjs/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/LuaExporter.js +5 -9
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/PythonExporter.js +7 -13
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/RustExporter.js +7 -14
- package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/cjs/social/Social.js +27 -20
- package/dist/cjs/social/Social.js.map +1 -1
- package/dist/cjs/systems/LightingSystem.js +980 -0
- package/dist/cjs/systems/LightingSystem.js.map +1 -0
- package/dist/cjs/systems/ParticleSystem2.js +34 -17
- package/dist/cjs/systems/ParticleSystem2.js.map +1 -1
- package/dist/cjs/systems/PhysicsDebugSystem.js +1228 -0
- package/dist/cjs/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/cjs/systems/TerrainSystem.js +1137 -0
- package/dist/cjs/systems/TerrainSystem.js.map +1 -0
- package/dist/cjs/templates/ActionTemplates.js +144 -24
- package/dist/cjs/templates/ActionTemplates.js.map +1 -1
- package/dist/cjs/templates/FightingTemplate.js +536 -0
- package/dist/cjs/templates/FightingTemplate.js.map +1 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js +523 -0
- package/dist/cjs/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/cjs/templates/PartyTemplates.js +60 -28
- package/dist/cjs/templates/PartyTemplates.js.map +1 -1
- package/dist/cjs/templates/PuzzleTemplates.js +63 -22
- package/dist/cjs/templates/PuzzleTemplates.js.map +1 -1
- package/dist/cjs/templates/RPGTemplates.js +29 -15
- package/dist/cjs/templates/RPGTemplates.js.map +1 -1
- package/dist/cjs/templates/SportsTemplates.js +41 -17
- package/dist/cjs/templates/SportsTemplates.js.map +1 -1
- package/dist/cjs/templates/StrategyTemplates.js +45 -18
- package/dist/cjs/templates/StrategyTemplates.js.map +1 -1
- package/dist/cjs/templates/SurvivalTemplate.js +479 -0
- package/dist/cjs/templates/SurvivalTemplate.js.map +1 -0
- package/dist/cjs/templates/WaveDefense.js +139 -52
- package/dist/cjs/templates/WaveDefense.js.map +1 -1
- package/dist/cjs/tilemap/Tilemap.js +48 -32
- package/dist/cjs/tilemap/Tilemap.js.map +1 -1
- package/dist/cjs/tutorials/TutorialBranching.js +111 -42
- package/dist/cjs/tutorials/TutorialBranching.js.map +1 -1
- package/dist/cjs/tutorials/TutorialEngine.js +152 -80
- package/dist/cjs/tutorials/TutorialEngine.js.map +1 -1
- package/dist/cjs/tutorials/TutorialOverlay.js +117 -40
- package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/cjs/ui/GameUI.js +69 -42
- package/dist/cjs/ui/GameUI.js.map +1 -1
- package/dist/cjs/unity-integration/UnityAssetStore.js +754 -0
- package/dist/cjs/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/cjs/unity-integration/UnityImport.js +1252 -0
- package/dist/cjs/unity-integration/UnityImport.js.map +1 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js +1022 -0
- package/dist/cjs/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +796 -0
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +833 -0
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealImport.js +442 -0
- package/dist/cjs/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js +1186 -0
- package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js +497 -0
- package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +835 -0
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/cjs/xr/ARVR.js +32 -9
- package/dist/cjs/xr/ARVR.js.map +1 -1
- package/dist/esm/accessibility/Accessibility.js +55 -20
- package/dist/esm/accessibility/Accessibility.js.map +1 -1
- package/dist/esm/ai/AI.js +74 -40
- package/dist/esm/ai/AI.js.map +1 -1
- package/dist/esm/ai/BehaviorTree.js +39 -47
- package/dist/esm/ai/BehaviorTree.js.map +1 -1
- package/dist/esm/ai/StateMachine.js +65 -99
- package/dist/esm/ai/StateMachine.js.map +1 -1
- package/dist/esm/animation/Animation.js +58 -34
- package/dist/esm/animation/Animation.js.map +1 -1
- package/dist/esm/audio/AudioAdvanced.js +71 -37
- package/dist/esm/audio/AudioAdvanced.js.map +1 -1
- package/dist/esm/audio/AudioBridge.js +61 -49
- package/dist/esm/audio/AudioBridge.js.map +1 -1
- package/dist/esm/audio/AudioManager.js +45 -29
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/build-cloud/BuildOrchestration.js +1129 -0
- package/dist/esm/build-cloud/BuildOrchestration.js.map +1 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js +715 -0
- package/dist/esm/build-cloud/GodotBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js +643 -0
- package/dist/esm/build-cloud/UnityBuildCloud.js.map +1 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js +668 -0
- package/dist/esm/build-cloud/UnrealBuildCloud.js.map +1 -0
- package/dist/esm/core/EventBus.js +2 -1
- package/dist/esm/core/EventBus.js.map +1 -1
- package/dist/esm/core/GameConfig.js +1 -1
- package/dist/esm/core/GameConfig.js.map +1 -1
- package/dist/esm/core/GameLoop.js +6 -3
- package/dist/esm/core/GameLoop.js.map +1 -1
- package/dist/esm/core/ServiceLocator.js +1 -2
- package/dist/esm/core/ServiceLocator.js.map +1 -1
- package/dist/esm/devtools/DevTools.js +73 -43
- package/dist/esm/devtools/DevTools.js.map +1 -1
- package/dist/esm/devtools/DeveloperExperience.js +84 -42
- package/dist/esm/devtools/DeveloperExperience.js.map +1 -1
- package/dist/esm/devtools/GameplayAnalytics.js +71 -43
- package/dist/esm/devtools/GameplayAnalytics.js.map +1 -1
- package/dist/esm/dialogue/DialogueSystem.js +153 -129
- package/dist/esm/dialogue/DialogueSystem.js.map +1 -1
- package/dist/esm/docs/DocGenerator.js +70 -28
- package/dist/esm/docs/DocGenerator.js.map +1 -1
- package/dist/esm/ecs/World.js +159 -33
- package/dist/esm/ecs/World.js.map +1 -1
- package/dist/esm/editor/AchievementEditor.js +645 -0
- package/dist/esm/editor/AchievementEditor.js.map +1 -0
- package/dist/esm/editor/AdvancedEditor.js +95 -23
- package/dist/esm/editor/AdvancedEditor.js.map +1 -1
- package/dist/esm/editor/AnimationRetargeting.js +738 -0
- package/dist/esm/editor/AnimationRetargeting.js.map +1 -0
- package/dist/esm/editor/AssetBrowser.js +1184 -0
- package/dist/esm/editor/AssetBrowser.js.map +1 -0
- package/dist/esm/editor/AssetManager.js +22 -14
- package/dist/esm/editor/AssetManager.js.map +1 -1
- package/dist/esm/editor/ConsolePro.js +1085 -0
- package/dist/esm/editor/ConsolePro.js.map +1 -0
- package/dist/esm/editor/CraftingEditor.js +744 -0
- package/dist/esm/editor/CraftingEditor.js.map +1 -0
- package/dist/esm/editor/DebugTools.js +46 -23
- package/dist/esm/editor/DebugTools.js.map +1 -1
- package/dist/esm/editor/DialogueSystem.js +918 -0
- package/dist/esm/editor/DialogueSystem.js.map +1 -0
- package/dist/esm/editor/LeaderboardSystem.js +491 -0
- package/dist/esm/editor/LeaderboardSystem.js.map +1 -0
- package/dist/esm/editor/NiceGameEditor.js +532 -142
- package/dist/esm/editor/NiceGameEditor.js.map +1 -1
- package/dist/esm/editor/PrefabSystem.js +858 -0
- package/dist/esm/editor/PrefabSystem.js.map +1 -0
- package/dist/esm/editor/ProfilerPanel.js +710 -0
- package/dist/esm/editor/ProfilerPanel.js.map +1 -0
- package/dist/esm/editor/QuestEditor.js +846 -0
- package/dist/esm/editor/QuestEditor.js.map +1 -0
- package/dist/esm/editor/ReplaySystem.js +648 -0
- package/dist/esm/editor/ReplaySystem.js.map +1 -0
- package/dist/esm/editor/SceneEditor.js +33 -13
- package/dist/esm/editor/SceneEditor.js.map +1 -1
- package/dist/esm/editor/ScreenshotMode.js +702 -0
- package/dist/esm/editor/ScreenshotMode.js.map +1 -0
- package/dist/esm/editor/ShaderGraph.js +7 -6
- package/dist/esm/editor/ShaderGraph.js.map +1 -1
- package/dist/esm/editor/TimelineEditor.js +37 -30
- package/dist/esm/editor/TimelineEditor.js.map +1 -1
- package/dist/esm/editor/UndoRedoPro.js +914 -0
- package/dist/esm/editor/UndoRedoPro.js.map +1 -0
- package/dist/esm/editor/VRARMode.js +653 -0
- package/dist/esm/editor/VRARMode.js.map +1 -0
- package/dist/esm/engine/NiceGameEngine.js +12 -10
- package/dist/esm/engine/NiceGameEngine.js.map +1 -1
- package/dist/esm/engine/SaveSystemV2.js +73 -37
- package/dist/esm/engine/SaveSystemV2.js.map +1 -1
- package/dist/esm/enterprise/Enterprise.js +92 -44
- package/dist/esm/enterprise/Enterprise.js.map +1 -1
- package/dist/esm/export/BevyExporter.js +995 -0
- package/dist/esm/export/BevyExporter.js.map +1 -0
- package/dist/esm/export/CocosExporter.js +703 -0
- package/dist/esm/export/CocosExporter.js.map +1 -0
- package/dist/esm/export/Construct3Exporter.js +829 -0
- package/dist/esm/export/Construct3Exporter.js.map +1 -0
- package/dist/esm/export/DefoldExporter.js +1103 -0
- package/dist/esm/export/DefoldExporter.js.map +1 -0
- package/dist/esm/export/GDevelopExporter.js +745 -0
- package/dist/esm/export/GDevelopExporter.js.map +1 -0
- package/dist/esm/export/GameMakerExporter.js +843 -0
- package/dist/esm/export/GameMakerExporter.js.map +1 -0
- package/dist/esm/export/GodotExporter.js +45 -50
- package/dist/esm/export/GodotExporter.js.map +1 -1
- package/dist/esm/export/MinecraftBedrockExporter.js +603 -0
- package/dist/esm/export/MinecraftBedrockExporter.js.map +1 -0
- package/dist/esm/export/MonoGameExporter.js +1331 -0
- package/dist/esm/export/MonoGameExporter.js.map +1 -0
- package/dist/esm/export/Pico8Exporter.js +843 -0
- package/dist/esm/export/Pico8Exporter.js.map +1 -0
- package/dist/esm/export/PlatformExporter.js +4 -5
- package/dist/esm/export/PlatformExporter.js.map +1 -1
- package/dist/esm/export/RPGMakerExporter.js +903 -0
- package/dist/esm/export/RPGMakerExporter.js.map +1 -0
- package/dist/esm/export/RobloxExporter.js +940 -0
- package/dist/esm/export/RobloxExporter.js.map +1 -0
- package/dist/esm/export/Solar2DExporter.js +1280 -0
- package/dist/esm/export/Solar2DExporter.js.map +1 -0
- package/dist/esm/export/ThreeJSExporter.js +52 -55
- package/dist/esm/export/ThreeJSExporter.js.map +1 -1
- package/dist/esm/export/Tic80Exporter.js +1312 -0
- package/dist/esm/export/Tic80Exporter.js.map +1 -0
- package/dist/esm/export/UnityExporter.js +41 -56
- package/dist/esm/export/UnityExporter.js.map +1 -1
- package/dist/esm/export/UnrealExporter.js +959 -0
- package/dist/esm/export/UnrealExporter.js.map +1 -0
- package/dist/esm/export/WebExporter.js +42 -50
- package/dist/esm/export/WebExporter.js.map +1 -1
- package/dist/esm/export/index.js +38 -2
- package/dist/esm/export/index.js.map +1 -1
- package/dist/esm/godot-integration/GodotAssetLibrary.js +711 -0
- package/dist/esm/godot-integration/GodotAssetLibrary.js.map +1 -0
- package/dist/esm/godot-integration/GodotImport.js +1062 -0
- package/dist/esm/godot-integration/GodotImport.js.map +1 -0
- package/dist/esm/godot-integration/GodotLiveLink.js +958 -0
- package/dist/esm/godot-integration/GodotLiveLink.js.map +1 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js +666 -0
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +1 -0
- package/dist/esm/i18n/I18n.js +56 -30
- package/dist/esm/i18n/I18n.js.map +1 -1
- package/dist/esm/i18n/useTranslation.js +4 -4
- package/dist/esm/i18n/useTranslation.js.map +1 -1
- package/dist/esm/import/AsepriteImporter.js +15 -19
- package/dist/esm/import/AsepriteImporter.js.map +1 -1
- package/dist/esm/import/DragonBonesImporter.js +36 -40
- package/dist/esm/import/DragonBonesImporter.js.map +1 -1
- package/dist/esm/import/GameMakerImporter.js +11 -17
- package/dist/esm/import/GameMakerImporter.js.map +1 -1
- package/dist/esm/import/GodotSceneImporter.js +43 -29
- package/dist/esm/import/GodotSceneImporter.js.map +1 -1
- package/dist/esm/import/LDtkImporter.js +16 -17
- package/dist/esm/import/LDtkImporter.js.map +1 -1
- package/dist/esm/import/Live2DImporter.js +16 -19
- package/dist/esm/import/Live2DImporter.js.map +1 -1
- package/dist/esm/import/NdgFormat.js +28 -35
- package/dist/esm/import/NdgFormat.js.map +1 -1
- package/dist/esm/import/OgmoImporter.js +16 -18
- package/dist/esm/import/OgmoImporter.js.map +1 -1
- package/dist/esm/import/RPGMakerImporter.js +5 -6
- package/dist/esm/import/RPGMakerImporter.js.map +1 -1
- package/dist/esm/import/SceneImporter.js +23 -13
- package/dist/esm/import/SceneImporter.js.map +1 -1
- package/dist/esm/import/SpineImporter.js +20 -20
- package/dist/esm/import/SpineImporter.js.map +1 -1
- package/dist/esm/import/SpriterImporter.js +38 -46
- package/dist/esm/import/SpriterImporter.js.map +1 -1
- package/dist/esm/import/TiledMapImporter.js +20 -24
- package/dist/esm/import/TiledMapImporter.js.map +1 -1
- package/dist/esm/import/UnitySceneImporter.js +15 -15
- package/dist/esm/import/UnitySceneImporter.js.map +1 -1
- package/dist/esm/index.js +76 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/GamepadNavigation.js +82 -47
- package/dist/esm/input/GamepadNavigation.js.map +1 -1
- package/dist/esm/input/InputManager.js +107 -52
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/useGamepads.js +35 -29
- package/dist/esm/input/useGamepads.js.map +1 -1
- package/dist/esm/integration/IconSprite.js +39 -21
- package/dist/esm/integration/IconSprite.js.map +1 -1
- package/dist/esm/inventory/InventorySystem.js +218 -127
- package/dist/esm/inventory/InventorySystem.js.map +1 -1
- package/dist/esm/kids/KidMode.js +491 -78
- package/dist/esm/kids/KidMode.js.map +1 -1
- package/dist/esm/kids/KidTools.js +154 -48
- package/dist/esm/kids/KidTools.js.map +1 -1
- package/dist/esm/monetization/Monetization.js +47 -35
- package/dist/esm/monetization/Monetization.js.map +1 -1
- package/dist/esm/multiplayer/LocalMultiplayer.js +48 -26
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -1
- package/dist/esm/multiplayer/MiniGameTypes.js +23 -10
- package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -1
- package/dist/esm/native-engine/AssetPipeline.js +537 -0
- package/dist/esm/native-engine/AssetPipeline.js.map +1 -0
- package/dist/esm/native-engine/AudioEngine.js +822 -0
- package/dist/esm/native-engine/AudioEngine.js.map +1 -0
- package/dist/esm/native-engine/InputSystem.js +1170 -0
- package/dist/esm/native-engine/InputSystem.js.map +1 -0
- package/dist/esm/native-engine/NetworkingSystem.js +817 -0
- package/dist/esm/native-engine/NetworkingSystem.js.map +1 -0
- package/dist/esm/native-engine/PhysicsEngine.js +619 -0
- package/dist/esm/native-engine/PhysicsEngine.js.map +1 -0
- package/dist/esm/native-engine/RenderingEngine.js +368 -0
- package/dist/esm/native-engine/RenderingEngine.js.map +1 -0
- package/dist/esm/native-engine/SceneGraph.js +857 -0
- package/dist/esm/native-engine/SceneGraph.js.map +1 -0
- package/dist/esm/network/MultiplayerTransport.js +63 -33
- package/dist/esm/network/MultiplayerTransport.js.map +1 -1
- package/dist/esm/network/Networking.js +87 -62
- package/dist/esm/network/Networking.js.map +1 -1
- package/dist/esm/pathfinding/Pathfinding.js +71 -26
- package/dist/esm/pathfinding/Pathfinding.js.map +1 -1
- package/dist/esm/performance/AssetStreaming.js +649 -0
- package/dist/esm/performance/AssetStreaming.js.map +1 -0
- package/dist/esm/performance/BenchmarkSuite.js +37 -24
- package/dist/esm/performance/BenchmarkSuite.js.map +1 -1
- package/dist/esm/performance/DeltaCompression.js +554 -0
- package/dist/esm/performance/DeltaCompression.js.map +1 -0
- package/dist/esm/performance/DeterministicPhysics.js +573 -0
- package/dist/esm/performance/DeterministicPhysics.js.map +1 -0
- package/dist/esm/performance/ECSOptimization.js +716 -0
- package/dist/esm/performance/ECSOptimization.js.map +1 -0
- package/dist/esm/performance/HotReload.js +517 -0
- package/dist/esm/performance/HotReload.js.map +1 -0
- package/dist/esm/performance/InputRecording.js +580 -0
- package/dist/esm/performance/InputRecording.js.map +1 -0
- package/dist/esm/performance/InterestManagement.js +524 -0
- package/dist/esm/performance/InterestManagement.js.map +1 -0
- package/dist/esm/performance/LocalizationRuntime.js +465 -0
- package/dist/esm/performance/LocalizationRuntime.js.map +1 -0
- package/dist/esm/performance/MemoryManagement.js +481 -0
- package/dist/esm/performance/MemoryManagement.js.map +1 -0
- package/dist/esm/performance/ModSupport.js +520 -0
- package/dist/esm/performance/ModSupport.js.map +1 -0
- package/dist/esm/performance/MultiThreadedPhysics.js +491 -0
- package/dist/esm/performance/MultiThreadedPhysics.js.map +1 -0
- package/dist/esm/performance/NetworkPrediction.js +508 -0
- package/dist/esm/performance/NetworkPrediction.js.map +1 -0
- package/dist/esm/performance/ObjectPooling.js +639 -0
- package/dist/esm/performance/ObjectPooling.js.map +1 -0
- package/dist/esm/performance/Performance.js +64 -25
- package/dist/esm/performance/Performance.js.map +1 -1
- package/dist/esm/performance/PerformanceAdvanced.js +83 -49
- package/dist/esm/performance/PerformanceAdvanced.js.map +1 -1
- package/dist/esm/performance/SaveSystem.js +567 -0
- package/dist/esm/performance/SaveSystem.js.map +1 -0
- package/dist/esm/performance/WebGPURenderer.js +697 -0
- package/dist/esm/performance/WebGPURenderer.js.map +1 -0
- package/dist/esm/physics/PhysicsAdvanced.js +32 -20
- package/dist/esm/physics/PhysicsAdvanced.js.map +1 -1
- package/dist/esm/physics/PhysicsEngine2D.js +63 -36
- package/dist/esm/physics/PhysicsEngine2D.js.map +1 -1
- package/dist/esm/plugins/PluginSDK.js +46 -34
- package/dist/esm/plugins/PluginSDK.js.map +1 -1
- package/dist/esm/plugins/PluginTestKit.js +28 -29
- package/dist/esm/plugins/PluginTestKit.js.map +1 -1
- package/dist/esm/procedural/Procedural.js +24 -17
- package/dist/esm/procedural/Procedural.js.map +1 -1
- package/dist/esm/procedural/WorldBuilding.js +188 -55
- package/dist/esm/procedural/WorldBuilding.js.map +1 -1
- package/dist/esm/quest/QuestSystem.js +145 -111
- package/dist/esm/quest/QuestSystem.js.map +1 -1
- package/dist/esm/release/Release.js +142 -31
- package/dist/esm/release/Release.js.map +1 -1
- package/dist/esm/rendering/Camera2D.js +12 -7
- package/dist/esm/rendering/Camera2D.js.map +1 -1
- package/dist/esm/rendering/Renderer2D.js +62 -26
- package/dist/esm/rendering/Renderer2D.js.map +1 -1
- package/dist/esm/rendering/WebGPURenderPipeline.js +60 -31
- package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -1
- package/dist/esm/runtime3d/Runtime3D.js +80 -55
- package/dist/esm/runtime3d/Runtime3D.js.map +1 -1
- package/dist/esm/runtime3d/SceneEditor3D.js +20 -11
- package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -1
- package/dist/esm/scene/SceneManager.js +26 -12
- package/dist/esm/scene/SceneManager.js.map +1 -1
- package/dist/esm/scripting/GraphToAST.js +36 -24
- package/dist/esm/scripting/GraphToAST.js.map +1 -1
- package/dist/esm/scripting/LanguageExporter.js +2 -3
- package/dist/esm/scripting/LanguageExporter.js.map +1 -1
- package/dist/esm/scripting/NodeGraph.js +49 -32
- package/dist/esm/scripting/NodeGraph.js.map +1 -1
- package/dist/esm/scripting/ScriptAST.js +19 -6
- package/dist/esm/scripting/ScriptAST.js.map +1 -1
- package/dist/esm/scripting/VisualScripting2.js +13 -12
- package/dist/esm/scripting/VisualScripting2.js.map +1 -1
- package/dist/esm/scripting/exporters/CSharpExporter.js +16 -16
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/GDScriptExporter.js +3 -6
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/LuaExporter.js +5 -9
- package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/PythonExporter.js +7 -13
- package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/RustExporter.js +7 -14
- package/dist/esm/scripting/exporters/RustExporter.js.map +1 -1
- package/dist/esm/scripting/exporters/TypeScriptExporter.js +28 -29
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -1
- package/dist/esm/social/Social.js +27 -20
- package/dist/esm/social/Social.js.map +1 -1
- package/dist/esm/systems/LightingSystem.js +968 -0
- package/dist/esm/systems/LightingSystem.js.map +1 -0
- package/dist/esm/systems/ParticleSystem2.js +34 -17
- package/dist/esm/systems/ParticleSystem2.js.map +1 -1
- package/dist/esm/systems/PhysicsDebugSystem.js +1219 -0
- package/dist/esm/systems/PhysicsDebugSystem.js.map +1 -0
- package/dist/esm/systems/TerrainSystem.js +1125 -0
- package/dist/esm/systems/TerrainSystem.js.map +1 -0
- package/dist/esm/templates/ActionTemplates.js +144 -24
- package/dist/esm/templates/ActionTemplates.js.map +1 -1
- package/dist/esm/templates/FightingTemplate.js +513 -0
- package/dist/esm/templates/FightingTemplate.js.map +1 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js +484 -0
- package/dist/esm/templates/MetroidvaniaTemplate.js.map +1 -0
- package/dist/esm/templates/PartyTemplates.js +60 -28
- package/dist/esm/templates/PartyTemplates.js.map +1 -1
- package/dist/esm/templates/PuzzleTemplates.js +63 -22
- package/dist/esm/templates/PuzzleTemplates.js.map +1 -1
- package/dist/esm/templates/RPGTemplates.js +29 -15
- package/dist/esm/templates/RPGTemplates.js.map +1 -1
- package/dist/esm/templates/SportsTemplates.js +41 -17
- package/dist/esm/templates/SportsTemplates.js.map +1 -1
- package/dist/esm/templates/StrategyTemplates.js +45 -18
- package/dist/esm/templates/StrategyTemplates.js.map +1 -1
- package/dist/esm/templates/SurvivalTemplate.js +447 -0
- package/dist/esm/templates/SurvivalTemplate.js.map +1 -0
- package/dist/esm/templates/WaveDefense.js +139 -52
- package/dist/esm/templates/WaveDefense.js.map +1 -1
- package/dist/esm/tilemap/Tilemap.js +48 -32
- package/dist/esm/tilemap/Tilemap.js.map +1 -1
- package/dist/esm/tutorials/TutorialBranching.js +111 -42
- package/dist/esm/tutorials/TutorialBranching.js.map +1 -1
- package/dist/esm/tutorials/TutorialEngine.js +152 -80
- package/dist/esm/tutorials/TutorialEngine.js.map +1 -1
- package/dist/esm/tutorials/TutorialOverlay.js +117 -40
- package/dist/esm/tutorials/TutorialOverlay.js.map +1 -1
- package/dist/esm/ui/GameUI.js +69 -42
- package/dist/esm/ui/GameUI.js.map +1 -1
- package/dist/esm/unity-integration/UnityAssetStore.js +749 -0
- package/dist/esm/unity-integration/UnityAssetStore.js.map +1 -0
- package/dist/esm/unity-integration/UnityImport.js +1246 -0
- package/dist/esm/unity-integration/UnityImport.js.map +1 -0
- package/dist/esm/unity-integration/UnityLiveLink.js +1017 -0
- package/dist/esm/unity-integration/UnityLiveLink.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +794 -0
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js +831 -0
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealImport.js +437 -0
- package/dist/esm/unreal-integration/UnrealImport.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js +1182 -0
- package/dist/esm/unreal-integration/UnrealLiveLink.js.map +1 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js +490 -0
- package/dist/esm/unreal-integration/UnrealMarketplace.js.map +1 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +833 -0
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
- package/dist/esm/xr/ARVR.js +32 -9
- package/dist/esm/xr/ARVR.js.map +1 -1
- package/package.json +6 -5
|
@@ -43,15 +43,14 @@ class InventoryManager {
|
|
|
43
43
|
this.eventBus = bus;
|
|
44
44
|
}
|
|
45
45
|
emit(event) {
|
|
46
|
-
|
|
47
|
-
(_a = this.eventBus) === null || _a === void 0 ? void 0 : _a.emit(`inventory:${event.type}`, event);
|
|
46
|
+
this.eventBus?.emit(`inventory:${event.type}`, event);
|
|
48
47
|
}
|
|
49
48
|
/* ── Item Definitions ───────────────────────────────────────── */
|
|
50
49
|
registerItem(definition) {
|
|
51
50
|
this.itemDefinitions.set(definition.id, definition);
|
|
52
51
|
}
|
|
53
52
|
registerItems(definitions) {
|
|
54
|
-
definitions.forEach(def => this.registerItem(def));
|
|
53
|
+
definitions.forEach((def) => this.registerItem(def));
|
|
55
54
|
}
|
|
56
55
|
getItemDefinition(itemId) {
|
|
57
56
|
return this.itemDefinitions.get(itemId);
|
|
@@ -61,18 +60,17 @@ class InventoryManager {
|
|
|
61
60
|
}
|
|
62
61
|
/* ── Container Management ───────────────────────────────────── */
|
|
63
62
|
createContainer(type, ownerId, options = {}) {
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
const maxSlots = (_b = options.maxSlots) !== null && _b !== void 0 ? _b : this.config.defaultSlots;
|
|
63
|
+
const id = options.id ?? `container_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
64
|
+
const maxSlots = options.maxSlots ?? this.config.defaultSlots;
|
|
67
65
|
const container = {
|
|
68
66
|
id,
|
|
69
67
|
type,
|
|
70
|
-
name:
|
|
68
|
+
name: options.name ?? `${type} container`,
|
|
71
69
|
ownerId,
|
|
72
70
|
maxSlots,
|
|
73
71
|
maxWeight: options.maxWeight,
|
|
74
72
|
slots: Array.from({ length: maxSlots }, (_, i) => ({ index: i, item: null })),
|
|
75
|
-
currency:
|
|
73
|
+
currency: options.currency ?? new Map(),
|
|
76
74
|
allowedCategories: options.allowedCategories,
|
|
77
75
|
disallowedCategories: options.disallowedCategories,
|
|
78
76
|
};
|
|
@@ -84,26 +82,32 @@ class InventoryManager {
|
|
|
84
82
|
return this.containers.get(containerId);
|
|
85
83
|
}
|
|
86
84
|
getContainersByOwner(ownerId) {
|
|
87
|
-
return Array.from(this.containers.values()).filter(c => c.ownerId === ownerId);
|
|
85
|
+
return Array.from(this.containers.values()).filter((c) => c.ownerId === ownerId);
|
|
88
86
|
}
|
|
89
87
|
destroyContainer(containerId) {
|
|
90
88
|
const container = this.containers.get(containerId);
|
|
91
|
-
if (!container)
|
|
89
|
+
if (!container) {
|
|
92
90
|
return false;
|
|
91
|
+
}
|
|
93
92
|
this.containers.delete(containerId);
|
|
94
|
-
this.emit({
|
|
93
|
+
this.emit({
|
|
94
|
+
type: 'container:destroyed',
|
|
95
|
+
containerId,
|
|
96
|
+
ownerId: container.ownerId,
|
|
97
|
+
timestamp: Date.now(),
|
|
98
|
+
});
|
|
95
99
|
return true;
|
|
96
100
|
}
|
|
97
101
|
/* ── Item Instance Creation ─────────────────────────────────── */
|
|
98
102
|
createItemInstance(itemId, count = 1, options = {}) {
|
|
99
|
-
var _a;
|
|
100
103
|
const def = this.itemDefinitions.get(itemId);
|
|
101
|
-
if (!def)
|
|
104
|
+
if (!def) {
|
|
102
105
|
return null;
|
|
106
|
+
}
|
|
103
107
|
// Extract count from options to prevent override
|
|
104
108
|
const { count: _ignoredCount, ...restOptions } = options;
|
|
105
109
|
const instance = {
|
|
106
|
-
instanceId:
|
|
110
|
+
instanceId: restOptions.instanceId ?? `item_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`,
|
|
107
111
|
itemId,
|
|
108
112
|
count: Math.min(count, def.maxStack),
|
|
109
113
|
durability: def.maxDurability,
|
|
@@ -114,24 +118,25 @@ class InventoryManager {
|
|
|
114
118
|
}
|
|
115
119
|
/* ── Basic Operations ───────────────────────────────────────── */
|
|
116
120
|
addItem(containerId, itemId, count = 1, options = {}) {
|
|
117
|
-
var _a, _b, _c;
|
|
118
121
|
const container = this.containers.get(containerId);
|
|
119
|
-
if (!container)
|
|
122
|
+
if (!container) {
|
|
120
123
|
return null;
|
|
124
|
+
}
|
|
121
125
|
const def = this.itemDefinitions.get(itemId);
|
|
122
|
-
if (!def)
|
|
126
|
+
if (!def) {
|
|
123
127
|
return null;
|
|
128
|
+
}
|
|
124
129
|
// Check category restrictions
|
|
125
130
|
if (container.allowedCategories && !container.allowedCategories.includes(def.category)) {
|
|
126
131
|
return null;
|
|
127
132
|
}
|
|
128
|
-
if (
|
|
133
|
+
if (container.disallowedCategories?.includes(def.category)) {
|
|
129
134
|
return null;
|
|
130
135
|
}
|
|
131
136
|
// Check weight
|
|
132
137
|
if (this.config.enableWeight && container.maxWeight !== undefined) {
|
|
133
138
|
const currentWeight = this.getContainerWeight(containerId);
|
|
134
|
-
if (currentWeight +
|
|
139
|
+
if (currentWeight + def.weight * count > container.maxWeight) {
|
|
135
140
|
return null;
|
|
136
141
|
}
|
|
137
142
|
}
|
|
@@ -152,20 +157,23 @@ class InventoryManager {
|
|
|
152
157
|
count: toAdd,
|
|
153
158
|
timestamp: Date.now(),
|
|
154
159
|
});
|
|
155
|
-
if (count <= 0)
|
|
160
|
+
if (count <= 0) {
|
|
156
161
|
return slot.item;
|
|
162
|
+
}
|
|
157
163
|
}
|
|
158
164
|
}
|
|
159
165
|
}
|
|
160
166
|
// Find empty slot for remaining
|
|
161
167
|
while (count > 0) {
|
|
162
|
-
const emptySlot = container.slots.find(s => !s.item && !s.locked);
|
|
163
|
-
if (!emptySlot)
|
|
164
|
-
return null;
|
|
168
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
169
|
+
if (!emptySlot) {
|
|
170
|
+
return null;
|
|
171
|
+
} // No space
|
|
165
172
|
const stackCount = Math.min(count, def.maxStack);
|
|
166
173
|
const instance = this.createItemInstance(itemId, stackCount, options);
|
|
167
|
-
if (!instance)
|
|
174
|
+
if (!instance) {
|
|
168
175
|
return null;
|
|
176
|
+
}
|
|
169
177
|
emptySlot.item = instance;
|
|
170
178
|
count -= stackCount;
|
|
171
179
|
this.emit({
|
|
@@ -178,15 +186,17 @@ class InventoryManager {
|
|
|
178
186
|
timestamp: Date.now(),
|
|
179
187
|
});
|
|
180
188
|
}
|
|
181
|
-
return
|
|
189
|
+
return container.slots.find((s) => s.item?.itemId === itemId)?.item ?? null;
|
|
182
190
|
}
|
|
183
191
|
removeItem(containerId, slotIndex, count = 1) {
|
|
184
192
|
const container = this.containers.get(containerId);
|
|
185
|
-
if (!container)
|
|
193
|
+
if (!container) {
|
|
186
194
|
return null;
|
|
195
|
+
}
|
|
187
196
|
const slot = container.slots[slotIndex];
|
|
188
|
-
if (!
|
|
197
|
+
if (!slot?.item) {
|
|
189
198
|
return null;
|
|
199
|
+
}
|
|
190
200
|
const removed = { ...slot.item };
|
|
191
201
|
if (slot.item.count <= count) {
|
|
192
202
|
slot.item = null;
|
|
@@ -210,15 +220,18 @@ class InventoryManager {
|
|
|
210
220
|
moveItem(fromContainerId, fromSlot, toContainerId, toSlot) {
|
|
211
221
|
const fromContainer = this.containers.get(fromContainerId);
|
|
212
222
|
const toContainer = this.containers.get(toContainerId);
|
|
213
|
-
if (!fromContainer || !toContainer)
|
|
223
|
+
if (!fromContainer || !toContainer) {
|
|
214
224
|
return false;
|
|
225
|
+
}
|
|
215
226
|
const sourceSlot = fromContainer.slots[fromSlot];
|
|
216
227
|
const targetSlot = toContainer.slots[toSlot];
|
|
217
|
-
if (!
|
|
228
|
+
if (!sourceSlot?.item || !targetSlot) {
|
|
218
229
|
return false;
|
|
230
|
+
}
|
|
219
231
|
const def = this.itemDefinitions.get(sourceSlot.item.itemId);
|
|
220
|
-
if (!def)
|
|
232
|
+
if (!def) {
|
|
221
233
|
return false;
|
|
234
|
+
}
|
|
222
235
|
// Check target container restrictions
|
|
223
236
|
if (toContainer.allowedCategories && !toContainer.allowedCategories.includes(def.category)) {
|
|
224
237
|
return false;
|
|
@@ -232,8 +245,9 @@ class InventoryManager {
|
|
|
232
245
|
const toMove = Math.min(sourceSlot.item.count, space);
|
|
233
246
|
targetSlot.item.count += toMove;
|
|
234
247
|
sourceSlot.item.count -= toMove;
|
|
235
|
-
if (sourceSlot.item.count <= 0)
|
|
248
|
+
if (sourceSlot.item.count <= 0) {
|
|
236
249
|
sourceSlot.item = null;
|
|
250
|
+
}
|
|
237
251
|
}
|
|
238
252
|
else {
|
|
239
253
|
// Swap
|
|
@@ -259,17 +273,24 @@ class InventoryManager {
|
|
|
259
273
|
}
|
|
260
274
|
splitStack(containerId, slotIndex, splitCount) {
|
|
261
275
|
const container = this.containers.get(containerId);
|
|
262
|
-
if (!container)
|
|
276
|
+
if (!container) {
|
|
263
277
|
return false;
|
|
278
|
+
}
|
|
264
279
|
const slot = container.slots[slotIndex];
|
|
265
|
-
if (!
|
|
280
|
+
if (!slot?.item || slot.item.count <= splitCount) {
|
|
266
281
|
return false;
|
|
267
|
-
|
|
268
|
-
|
|
282
|
+
}
|
|
283
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
284
|
+
if (!emptySlot) {
|
|
269
285
|
return false;
|
|
270
|
-
|
|
271
|
-
|
|
286
|
+
}
|
|
287
|
+
const newInstance = this.createItemInstance(slot.item.itemId, splitCount, {
|
|
288
|
+
...slot.item,
|
|
289
|
+
instanceId: undefined,
|
|
290
|
+
});
|
|
291
|
+
if (!newInstance) {
|
|
272
292
|
return false;
|
|
293
|
+
}
|
|
273
294
|
slot.item.count -= splitCount;
|
|
274
295
|
emptySlot.item = newInstance;
|
|
275
296
|
this.emit({
|
|
@@ -287,23 +308,26 @@ class InventoryManager {
|
|
|
287
308
|
/* ── Weight & Capacity ──────────────────────────────────────── */
|
|
288
309
|
getContainerWeight(containerId) {
|
|
289
310
|
const container = this.containers.get(containerId);
|
|
290
|
-
if (!container)
|
|
311
|
+
if (!container) {
|
|
291
312
|
return 0;
|
|
313
|
+
}
|
|
292
314
|
let weight = 0;
|
|
293
315
|
for (const slot of container.slots) {
|
|
294
316
|
if (slot.item) {
|
|
295
317
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
296
|
-
if (def)
|
|
318
|
+
if (def) {
|
|
297
319
|
weight += def.weight * slot.item.count;
|
|
320
|
+
}
|
|
298
321
|
}
|
|
299
322
|
}
|
|
300
323
|
return weight;
|
|
301
324
|
}
|
|
302
325
|
getContainerFreeSlots(containerId) {
|
|
303
326
|
const container = this.containers.get(containerId);
|
|
304
|
-
if (!container)
|
|
327
|
+
if (!container) {
|
|
305
328
|
return 0;
|
|
306
|
-
|
|
329
|
+
}
|
|
330
|
+
return container.slots.filter((s) => !s.item && !s.locked).length;
|
|
307
331
|
}
|
|
308
332
|
/* ── Equipment System ───────────────────────────────────────── */
|
|
309
333
|
initializeEquipment(ownerId) {
|
|
@@ -314,10 +338,23 @@ class InventoryManager {
|
|
|
314
338
|
};
|
|
315
339
|
// Initialize all slots as empty
|
|
316
340
|
const allSlots = [
|
|
317
|
-
'head',
|
|
318
|
-
'
|
|
341
|
+
'head',
|
|
342
|
+
'chest',
|
|
343
|
+
'legs',
|
|
344
|
+
'feet',
|
|
345
|
+
'hands',
|
|
346
|
+
'shoulders',
|
|
347
|
+
'back',
|
|
348
|
+
'waist',
|
|
349
|
+
'mainHand',
|
|
350
|
+
'offHand',
|
|
351
|
+
'ring1',
|
|
352
|
+
'ring2',
|
|
353
|
+
'neck',
|
|
354
|
+
'trinket1',
|
|
355
|
+
'trinket2',
|
|
319
356
|
];
|
|
320
|
-
allSlots.forEach(slot => state.slots.set(slot, null));
|
|
357
|
+
allSlots.forEach((slot) => state.slots.set(slot, null));
|
|
321
358
|
this.equipment.set(ownerId, state);
|
|
322
359
|
return state;
|
|
323
360
|
}
|
|
@@ -330,14 +367,17 @@ class InventoryManager {
|
|
|
330
367
|
equipState = this.initializeEquipment(ownerId);
|
|
331
368
|
}
|
|
332
369
|
const container = this.containers.get(containerId);
|
|
333
|
-
if (!container)
|
|
370
|
+
if (!container) {
|
|
334
371
|
return false;
|
|
372
|
+
}
|
|
335
373
|
const invSlot = container.slots[slotIndex];
|
|
336
|
-
if (!
|
|
374
|
+
if (!invSlot?.item) {
|
|
337
375
|
return false;
|
|
376
|
+
}
|
|
338
377
|
const def = this.itemDefinitions.get(invSlot.item.itemId);
|
|
339
|
-
if (!
|
|
378
|
+
if (!def?.equipSlot) {
|
|
340
379
|
return false;
|
|
380
|
+
}
|
|
341
381
|
// Check requirements
|
|
342
382
|
// (In real implementation, would check level, class, stats)
|
|
343
383
|
// Handle two-hand weapons
|
|
@@ -346,10 +386,12 @@ class InventoryManager {
|
|
|
346
386
|
// Unequip both hands
|
|
347
387
|
const mainHand = equipState.slots.get('mainHand');
|
|
348
388
|
const offHand = equipState.slots.get('offHand');
|
|
349
|
-
if (mainHand)
|
|
389
|
+
if (mainHand) {
|
|
350
390
|
this.unequipToContainer(ownerId, 'mainHand', containerId);
|
|
351
|
-
|
|
391
|
+
}
|
|
392
|
+
if (offHand) {
|
|
352
393
|
this.unequipToContainer(ownerId, 'offHand', containerId);
|
|
394
|
+
}
|
|
353
395
|
targetSlot = 'mainHand';
|
|
354
396
|
}
|
|
355
397
|
// Clone the item to equip BEFORE modifying the slot
|
|
@@ -384,18 +426,22 @@ class InventoryManager {
|
|
|
384
426
|
}
|
|
385
427
|
unequipToContainer(ownerId, equipSlot, containerId) {
|
|
386
428
|
const equipState = this.equipment.get(ownerId);
|
|
387
|
-
if (!equipState)
|
|
429
|
+
if (!equipState) {
|
|
388
430
|
return false;
|
|
431
|
+
}
|
|
389
432
|
const equippedItem = equipState.slots.get(equipSlot);
|
|
390
|
-
if (!equippedItem)
|
|
433
|
+
if (!equippedItem) {
|
|
391
434
|
return false;
|
|
435
|
+
}
|
|
392
436
|
const container = this.containers.get(containerId);
|
|
393
|
-
if (!container)
|
|
437
|
+
if (!container) {
|
|
394
438
|
return false;
|
|
439
|
+
}
|
|
395
440
|
// Find empty slot in container
|
|
396
|
-
const emptySlot = container.slots.find(s => !s.item && !s.locked);
|
|
397
|
-
if (!emptySlot)
|
|
398
|
-
return false;
|
|
441
|
+
const emptySlot = container.slots.find((s) => !s.item && !s.locked);
|
|
442
|
+
if (!emptySlot) {
|
|
443
|
+
return false;
|
|
444
|
+
} // Inventory full
|
|
399
445
|
emptySlot.item = equippedItem;
|
|
400
446
|
equipState.slots.set(equipSlot, null);
|
|
401
447
|
this.recalculateEquipmentStats(ownerId);
|
|
@@ -409,30 +455,34 @@ class InventoryManager {
|
|
|
409
455
|
return true;
|
|
410
456
|
}
|
|
411
457
|
recalculateEquipmentStats(ownerId) {
|
|
412
|
-
var _a, _b;
|
|
413
458
|
const equipState = this.equipment.get(ownerId);
|
|
414
|
-
if (!equipState)
|
|
459
|
+
if (!equipState) {
|
|
415
460
|
return;
|
|
461
|
+
}
|
|
416
462
|
equipState.totalStats.clear();
|
|
417
463
|
for (const [, item] of equipState.slots) {
|
|
418
|
-
if (!item)
|
|
464
|
+
if (!item) {
|
|
419
465
|
continue;
|
|
466
|
+
}
|
|
420
467
|
const def = this.itemDefinitions.get(item.itemId);
|
|
421
|
-
if (!
|
|
468
|
+
if (!def?.stats) {
|
|
422
469
|
continue;
|
|
470
|
+
}
|
|
423
471
|
for (const mod of def.stats) {
|
|
424
|
-
const current =
|
|
425
|
-
equipState.totalStats.set(mod.stat, current + (
|
|
472
|
+
const current = equipState.totalStats.get(mod.stat) ?? 0;
|
|
473
|
+
equipState.totalStats.set(mod.stat, current + (mod.flat ?? 0));
|
|
426
474
|
// Percent modifiers would need separate handling
|
|
427
475
|
}
|
|
428
476
|
}
|
|
429
477
|
}
|
|
430
478
|
/* ── Durability & Repair ────────────────────────────────────── */
|
|
431
479
|
damageDurability(instance, damage) {
|
|
432
|
-
if (!this.config.enableDurability)
|
|
480
|
+
if (!this.config.enableDurability) {
|
|
433
481
|
return false;
|
|
434
|
-
|
|
482
|
+
}
|
|
483
|
+
if (instance.durability === undefined) {
|
|
435
484
|
return false;
|
|
485
|
+
}
|
|
436
486
|
instance.durability = Math.max(0, instance.durability - damage);
|
|
437
487
|
if (instance.durability <= 0) {
|
|
438
488
|
this.emit({
|
|
@@ -446,8 +496,9 @@ class InventoryManager {
|
|
|
446
496
|
}
|
|
447
497
|
repairItem(instance, amount) {
|
|
448
498
|
const def = this.itemDefinitions.get(instance.itemId);
|
|
449
|
-
if (!
|
|
499
|
+
if (!def?.maxDurability || instance.durability === undefined) {
|
|
450
500
|
return false;
|
|
501
|
+
}
|
|
451
502
|
instance.durability = Math.min(def.maxDurability, amount !== undefined ? instance.durability + amount : def.maxDurability);
|
|
452
503
|
this.emit({
|
|
453
504
|
type: 'item:repaired',
|
|
@@ -458,19 +509,21 @@ class InventoryManager {
|
|
|
458
509
|
}
|
|
459
510
|
/* ── Consumables ────────────────────────────────────────────── */
|
|
460
511
|
useItem(containerId, slotIndex, targetEntityId) {
|
|
461
|
-
var _a;
|
|
462
512
|
const container = this.containers.get(containerId);
|
|
463
|
-
if (!container)
|
|
513
|
+
if (!container) {
|
|
464
514
|
return false;
|
|
515
|
+
}
|
|
465
516
|
const slot = container.slots[slotIndex];
|
|
466
|
-
if (!
|
|
517
|
+
if (!slot?.item) {
|
|
467
518
|
return false;
|
|
519
|
+
}
|
|
468
520
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
469
|
-
if (!def)
|
|
521
|
+
if (!def) {
|
|
470
522
|
return false;
|
|
523
|
+
}
|
|
471
524
|
// Check cooldown
|
|
472
525
|
if (def.cooldown) {
|
|
473
|
-
const lastUsed =
|
|
526
|
+
const lastUsed = this.cooldowns.get(slot.item.instanceId) ?? 0;
|
|
474
527
|
if (Date.now() - lastUsed < def.cooldown) {
|
|
475
528
|
return false; // On cooldown
|
|
476
529
|
}
|
|
@@ -503,8 +556,9 @@ class InventoryManager {
|
|
|
503
556
|
}
|
|
504
557
|
learnRecipe(entityId, recipeId) {
|
|
505
558
|
const recipe = this.recipes.get(recipeId);
|
|
506
|
-
if (!recipe || !recipe.requiresLearning)
|
|
559
|
+
if (!recipe || !recipe.requiresLearning) {
|
|
507
560
|
return false;
|
|
561
|
+
}
|
|
508
562
|
let learned = this.learnedRecipes.get(entityId);
|
|
509
563
|
if (!learned) {
|
|
510
564
|
learned = new Set();
|
|
@@ -515,28 +569,33 @@ class InventoryManager {
|
|
|
515
569
|
}
|
|
516
570
|
canCraft(entityId, recipeId, containerId) {
|
|
517
571
|
const recipe = this.recipes.get(recipeId);
|
|
518
|
-
if (!recipe)
|
|
572
|
+
if (!recipe) {
|
|
519
573
|
return false;
|
|
574
|
+
}
|
|
520
575
|
// Check if recipe is learned
|
|
521
576
|
if (recipe.requiresLearning) {
|
|
522
577
|
const learned = this.learnedRecipes.get(entityId);
|
|
523
|
-
if (!
|
|
578
|
+
if (!learned?.has(recipeId)) {
|
|
524
579
|
return false;
|
|
580
|
+
}
|
|
525
581
|
}
|
|
526
582
|
// Check ingredients
|
|
527
583
|
const container = this.containers.get(containerId);
|
|
528
|
-
if (!container)
|
|
584
|
+
if (!container) {
|
|
529
585
|
return false;
|
|
586
|
+
}
|
|
530
587
|
for (const ingredient of recipe.ingredients) {
|
|
531
588
|
const available = this.countItemsInContainer(containerId, ingredient.itemId);
|
|
532
|
-
if (available < ingredient.count)
|
|
589
|
+
if (available < ingredient.count) {
|
|
533
590
|
return false;
|
|
591
|
+
}
|
|
534
592
|
}
|
|
535
593
|
return true;
|
|
536
594
|
}
|
|
537
595
|
craft(entityId, recipeId, containerId) {
|
|
538
|
-
if (!this.canCraft(entityId, recipeId, containerId))
|
|
596
|
+
if (!this.canCraft(entityId, recipeId, containerId)) {
|
|
539
597
|
return null;
|
|
598
|
+
}
|
|
540
599
|
const recipe = this.recipes.get(recipeId);
|
|
541
600
|
this.containers.get(containerId);
|
|
542
601
|
// Check success
|
|
@@ -569,7 +628,7 @@ class InventoryManager {
|
|
|
569
628
|
ownerId: entityId,
|
|
570
629
|
recipeId,
|
|
571
630
|
containerId,
|
|
572
|
-
item: output
|
|
631
|
+
item: output ?? undefined,
|
|
573
632
|
timestamp: Date.now(),
|
|
574
633
|
});
|
|
575
634
|
return output;
|
|
@@ -579,26 +638,32 @@ class InventoryManager {
|
|
|
579
638
|
this.lootTables.set(table.id, table);
|
|
580
639
|
}
|
|
581
640
|
generateLoot(tableId, modifiers = {}) {
|
|
582
|
-
var _a;
|
|
583
641
|
const table = this.lootTables.get(tableId);
|
|
584
|
-
if (!table)
|
|
642
|
+
if (!table) {
|
|
585
643
|
return [];
|
|
644
|
+
}
|
|
586
645
|
const loot = [];
|
|
587
646
|
// Guaranteed drops
|
|
588
647
|
if (table.guaranteedDrops) {
|
|
589
648
|
for (const drop of table.guaranteedDrops) {
|
|
590
649
|
const instance = this.createItemInstance(drop.itemId, drop.count);
|
|
591
|
-
if (instance)
|
|
650
|
+
if (instance) {
|
|
592
651
|
loot.push(instance);
|
|
652
|
+
}
|
|
593
653
|
}
|
|
594
654
|
}
|
|
595
655
|
// Roll on table
|
|
596
|
-
const validEntries = table.entries.filter(e => {
|
|
597
|
-
|
|
598
|
-
|
|
656
|
+
const validEntries = table.entries.filter((e) => {
|
|
657
|
+
if (e.conditions?.minLevel &&
|
|
658
|
+
modifiers.levelContext &&
|
|
659
|
+
modifiers.levelContext < e.conditions.minLevel) {
|
|
599
660
|
return false;
|
|
600
|
-
|
|
661
|
+
}
|
|
662
|
+
if (e.conditions?.maxLevel &&
|
|
663
|
+
modifiers.levelContext &&
|
|
664
|
+
modifiers.levelContext > e.conditions.maxLevel) {
|
|
601
665
|
return false;
|
|
666
|
+
}
|
|
602
667
|
return true;
|
|
603
668
|
});
|
|
604
669
|
const totalWeight = validEntries.reduce((sum, e) => sum + e.weight, 0);
|
|
@@ -608,12 +673,13 @@ class InventoryManager {
|
|
|
608
673
|
random -= entry.weight;
|
|
609
674
|
if (random <= 0) {
|
|
610
675
|
// Apply drop chance with luck modifier
|
|
611
|
-
const effectiveChance = Math.min(1, entry.dropChance + (
|
|
676
|
+
const effectiveChance = Math.min(1, entry.dropChance + (modifiers.luckBonus ?? 0));
|
|
612
677
|
if (Math.random() <= effectiveChance) {
|
|
613
678
|
const count = Math.floor(entry.minCount + Math.random() * (entry.maxCount - entry.minCount + 1));
|
|
614
679
|
const instance = this.createItemInstance(entry.itemId, count);
|
|
615
|
-
if (instance)
|
|
680
|
+
if (instance) {
|
|
616
681
|
loot.push(instance);
|
|
682
|
+
}
|
|
617
683
|
}
|
|
618
684
|
break;
|
|
619
685
|
}
|
|
@@ -634,27 +700,31 @@ class InventoryManager {
|
|
|
634
700
|
return this.shops.get(shopId);
|
|
635
701
|
}
|
|
636
702
|
buyFromShop(shopId, listingIndex, quantity, buyerContainerId) {
|
|
637
|
-
var _a, _b, _c;
|
|
638
703
|
const shop = this.shops.get(shopId);
|
|
639
704
|
const container = this.containers.get(buyerContainerId);
|
|
640
|
-
if (!shop || !container)
|
|
705
|
+
if (!shop || !container) {
|
|
641
706
|
return false;
|
|
707
|
+
}
|
|
642
708
|
const listing = shop.listings[listingIndex];
|
|
643
|
-
if (!listing)
|
|
709
|
+
if (!listing) {
|
|
644
710
|
return false;
|
|
711
|
+
}
|
|
645
712
|
// Check stock
|
|
646
|
-
if (listing.stock !== -1 && listing.stock < quantity)
|
|
713
|
+
if (listing.stock !== -1 && listing.stock < quantity) {
|
|
647
714
|
return false;
|
|
715
|
+
}
|
|
648
716
|
// Calculate price
|
|
649
717
|
const def = this.itemDefinitions.get(listing.itemId);
|
|
650
|
-
if (!def)
|
|
718
|
+
if (!def) {
|
|
651
719
|
return false;
|
|
652
|
-
|
|
720
|
+
}
|
|
721
|
+
const unitPrice = listing.price ?? Math.ceil(def.value * shop.sellRate);
|
|
653
722
|
const totalPrice = unitPrice * quantity;
|
|
654
723
|
// Check buyer currency
|
|
655
|
-
const buyerCurrency =
|
|
656
|
-
if (buyerCurrency < totalPrice)
|
|
724
|
+
const buyerCurrency = container.currency?.get(listing.currencyId) ?? 0;
|
|
725
|
+
if (buyerCurrency < totalPrice) {
|
|
657
726
|
return false;
|
|
727
|
+
}
|
|
658
728
|
// Execute transaction
|
|
659
729
|
container.currency.set(listing.currencyId, buyerCurrency - totalPrice);
|
|
660
730
|
const purchased = this.addItem(buyerContainerId, listing.itemId, quantity);
|
|
@@ -681,28 +751,31 @@ class InventoryManager {
|
|
|
681
751
|
return true;
|
|
682
752
|
}
|
|
683
753
|
sellToShop(shopId, sellerContainerId, slotIndex, quantity) {
|
|
684
|
-
var _a, _b;
|
|
685
754
|
const shop = this.shops.get(shopId);
|
|
686
755
|
const container = this.containers.get(sellerContainerId);
|
|
687
|
-
if (!shop || !container)
|
|
756
|
+
if (!shop || !container) {
|
|
688
757
|
return false;
|
|
758
|
+
}
|
|
689
759
|
const slot = container.slots[slotIndex];
|
|
690
|
-
if (!
|
|
760
|
+
if (!slot?.item || slot.item.count < quantity) {
|
|
691
761
|
return false;
|
|
762
|
+
}
|
|
692
763
|
const def = this.itemDefinitions.get(slot.item.itemId);
|
|
693
|
-
if (!def || !def.sellable)
|
|
764
|
+
if (!def || !def.sellable) {
|
|
694
765
|
return false;
|
|
766
|
+
}
|
|
695
767
|
// Calculate sell price
|
|
696
768
|
const unitPrice = Math.floor(def.value * shop.buyRate);
|
|
697
769
|
const totalPrice = unitPrice * quantity;
|
|
698
770
|
// Use first accepted currency
|
|
699
771
|
const currencyId = shop.acceptedCurrencies[0];
|
|
700
|
-
if (!currencyId)
|
|
772
|
+
if (!currencyId) {
|
|
701
773
|
return false;
|
|
774
|
+
}
|
|
702
775
|
// Remove items
|
|
703
776
|
this.removeItem(sellerContainerId, slotIndex, quantity);
|
|
704
777
|
// Add currency
|
|
705
|
-
const currentCurrency =
|
|
778
|
+
const currentCurrency = container.currency?.get(currencyId) ?? 0;
|
|
706
779
|
container.currency.set(currencyId, currentCurrency + totalPrice);
|
|
707
780
|
this.emit({
|
|
708
781
|
type: 'shop:sold',
|
|
@@ -719,13 +792,14 @@ class InventoryManager {
|
|
|
719
792
|
}
|
|
720
793
|
/* ── Currency ───────────────────────────────────────────────── */
|
|
721
794
|
addCurrency(containerId, currencyId, amount) {
|
|
722
|
-
var _a;
|
|
723
795
|
const container = this.containers.get(containerId);
|
|
724
|
-
if (!container)
|
|
796
|
+
if (!container) {
|
|
725
797
|
return false;
|
|
726
|
-
|
|
798
|
+
}
|
|
799
|
+
if (!container.currency) {
|
|
727
800
|
container.currency = new Map();
|
|
728
|
-
|
|
801
|
+
}
|
|
802
|
+
const current = container.currency.get(currencyId) ?? 0;
|
|
729
803
|
container.currency.set(currencyId, current + amount);
|
|
730
804
|
this.emit({
|
|
731
805
|
type: 'currency:changed',
|
|
@@ -738,13 +812,14 @@ class InventoryManager {
|
|
|
738
812
|
return true;
|
|
739
813
|
}
|
|
740
814
|
removeCurrency(containerId, currencyId, amount) {
|
|
741
|
-
var _a;
|
|
742
815
|
const container = this.containers.get(containerId);
|
|
743
|
-
if (!
|
|
816
|
+
if (!container?.currency) {
|
|
744
817
|
return false;
|
|
745
|
-
|
|
746
|
-
|
|
818
|
+
}
|
|
819
|
+
const current = container.currency.get(currencyId) ?? 0;
|
|
820
|
+
if (current < amount) {
|
|
747
821
|
return false;
|
|
822
|
+
}
|
|
748
823
|
container.currency.set(currencyId, current - amount);
|
|
749
824
|
this.emit({
|
|
750
825
|
type: 'currency:changed',
|
|
@@ -757,27 +832,36 @@ class InventoryManager {
|
|
|
757
832
|
return true;
|
|
758
833
|
}
|
|
759
834
|
getCurrency(containerId, currencyId) {
|
|
760
|
-
|
|
761
|
-
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;
|
|
835
|
+
return this.containers.get(containerId)?.currency?.get(currencyId) ?? 0;
|
|
762
836
|
}
|
|
763
837
|
/* ── Sorting ────────────────────────────────────────────────── */
|
|
764
838
|
sortContainer(containerId, criteria = 'category') {
|
|
765
839
|
const container = this.containers.get(containerId);
|
|
766
|
-
if (!container)
|
|
840
|
+
if (!container) {
|
|
767
841
|
return;
|
|
842
|
+
}
|
|
768
843
|
const items = container.slots
|
|
769
|
-
.filter(s => s.item && !s.locked)
|
|
770
|
-
.map(s => s.item)
|
|
844
|
+
.filter((s) => s.item && !s.locked)
|
|
845
|
+
.map((s) => s.item)
|
|
771
846
|
.sort((a, b) => {
|
|
772
847
|
const defA = this.itemDefinitions.get(a.itemId);
|
|
773
848
|
const defB = this.itemDefinitions.get(b.itemId);
|
|
774
|
-
if (!defA || !defB)
|
|
849
|
+
if (!defA || !defB) {
|
|
775
850
|
return 0;
|
|
851
|
+
}
|
|
776
852
|
switch (criteria) {
|
|
777
853
|
case 'category':
|
|
778
854
|
return defA.category.localeCompare(defB.category) || defA.name.localeCompare(defB.name);
|
|
779
855
|
case 'rarity': {
|
|
780
|
-
const rarityOrder = [
|
|
856
|
+
const rarityOrder = [
|
|
857
|
+
'common',
|
|
858
|
+
'uncommon',
|
|
859
|
+
'rare',
|
|
860
|
+
'epic',
|
|
861
|
+
'legendary',
|
|
862
|
+
'mythic',
|
|
863
|
+
'unique',
|
|
864
|
+
];
|
|
781
865
|
return rarityOrder.indexOf(defB.rarity) - rarityOrder.indexOf(defA.rarity);
|
|
782
866
|
}
|
|
783
867
|
case 'name':
|
|
@@ -789,9 +873,10 @@ class InventoryManager {
|
|
|
789
873
|
}
|
|
790
874
|
});
|
|
791
875
|
// Clear unlocked slots
|
|
792
|
-
container.slots.forEach(s => {
|
|
793
|
-
if (!s.locked)
|
|
876
|
+
container.slots.forEach((s) => {
|
|
877
|
+
if (!s.locked) {
|
|
794
878
|
s.item = null;
|
|
879
|
+
}
|
|
795
880
|
});
|
|
796
881
|
// Fill with sorted items
|
|
797
882
|
let itemIndex = 0;
|
|
@@ -811,40 +896,45 @@ class InventoryManager {
|
|
|
811
896
|
/* ── Utility Methods ────────────────────────────────────────── */
|
|
812
897
|
countItemsInContainer(containerId, itemId) {
|
|
813
898
|
const container = this.containers.get(containerId);
|
|
814
|
-
if (!container)
|
|
899
|
+
if (!container) {
|
|
815
900
|
return 0;
|
|
901
|
+
}
|
|
816
902
|
return container.slots.reduce((sum, slot) => {
|
|
817
|
-
|
|
818
|
-
if (((_a = slot.item) === null || _a === void 0 ? void 0 : _a.itemId) === itemId)
|
|
903
|
+
if (slot.item?.itemId === itemId) {
|
|
819
904
|
return sum + slot.item.count;
|
|
905
|
+
}
|
|
820
906
|
return sum;
|
|
821
907
|
}, 0);
|
|
822
908
|
}
|
|
823
909
|
removeItemsByIdFromContainer(containerId, itemId, count) {
|
|
824
910
|
const container = this.containers.get(containerId);
|
|
825
|
-
if (!container)
|
|
911
|
+
if (!container) {
|
|
826
912
|
return 0;
|
|
913
|
+
}
|
|
827
914
|
let removed = 0;
|
|
828
915
|
for (const slot of container.slots) {
|
|
829
|
-
if (!slot.item || slot.item.itemId !== itemId)
|
|
916
|
+
if (!slot.item || slot.item.itemId !== itemId) {
|
|
830
917
|
continue;
|
|
918
|
+
}
|
|
831
919
|
const toRemove = Math.min(count - removed, slot.item.count);
|
|
832
920
|
slot.item.count -= toRemove;
|
|
833
921
|
removed += toRemove;
|
|
834
|
-
if (slot.item.count <= 0)
|
|
922
|
+
if (slot.item.count <= 0) {
|
|
835
923
|
slot.item = null;
|
|
836
|
-
|
|
924
|
+
}
|
|
925
|
+
if (removed >= count) {
|
|
837
926
|
break;
|
|
927
|
+
}
|
|
838
928
|
}
|
|
839
929
|
return removed;
|
|
840
930
|
}
|
|
841
931
|
findItem(containerId, itemId) {
|
|
842
|
-
var _a;
|
|
843
932
|
const container = this.containers.get(containerId);
|
|
844
|
-
if (!container)
|
|
933
|
+
if (!container) {
|
|
845
934
|
return null;
|
|
935
|
+
}
|
|
846
936
|
for (const slot of container.slots) {
|
|
847
|
-
if (
|
|
937
|
+
if (slot.item?.itemId === itemId) {
|
|
848
938
|
return { slot, instance: slot.item };
|
|
849
939
|
}
|
|
850
940
|
}
|
|
@@ -899,8 +989,9 @@ const InventoryProvider = ({ manager, children }) => {
|
|
|
899
989
|
};
|
|
900
990
|
function useInventoryManager() {
|
|
901
991
|
const ctx = React.useContext(InventoryContext);
|
|
902
|
-
if (!ctx)
|
|
992
|
+
if (!ctx) {
|
|
903
993
|
throw new Error('useInventoryManager must be used within InventoryProvider');
|
|
994
|
+
}
|
|
904
995
|
return ctx;
|
|
905
996
|
}
|
|
906
997
|
function useContainer(containerId) {
|