@nice2dev/game-engine 1.0.5 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/dist/cjs/accessibility/Accessibility.js +55 -20
  2. package/dist/cjs/accessibility/Accessibility.js.map +1 -1
  3. package/dist/cjs/ai/AI.js +74 -40
  4. package/dist/cjs/ai/AI.js.map +1 -1
  5. package/dist/cjs/ai/BehaviorTree.js +39 -47
  6. package/dist/cjs/ai/BehaviorTree.js.map +1 -1
  7. package/dist/cjs/ai/StateMachine.js +64 -100
  8. package/dist/cjs/ai/StateMachine.js.map +1 -1
  9. package/dist/cjs/animation/Animation.js +58 -34
  10. package/dist/cjs/animation/Animation.js.map +1 -1
  11. package/dist/cjs/audio/AudioAdvanced.js +71 -37
  12. package/dist/cjs/audio/AudioAdvanced.js.map +1 -1
  13. package/dist/cjs/audio/AudioBridge.js +61 -49
  14. package/dist/cjs/audio/AudioBridge.js.map +1 -1
  15. package/dist/cjs/audio/AudioManager.js +45 -29
  16. package/dist/cjs/audio/AudioManager.js.map +1 -1
  17. package/dist/cjs/build-cloud/BuildOrchestration.js +1142 -0
  18. package/dist/cjs/build-cloud/BuildOrchestration.js.map +1 -0
  19. package/dist/cjs/build-cloud/GodotBuildCloud.js +722 -0
  20. package/dist/cjs/build-cloud/GodotBuildCloud.js.map +1 -0
  21. package/dist/cjs/build-cloud/UnityBuildCloud.js +652 -0
  22. package/dist/cjs/build-cloud/UnityBuildCloud.js.map +1 -0
  23. package/dist/cjs/build-cloud/UnrealBuildCloud.js +674 -0
  24. package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +1 -0
  25. package/dist/cjs/core/EventBus.js +2 -1
  26. package/dist/cjs/core/EventBus.js.map +1 -1
  27. package/dist/cjs/core/GameConfig.js +1 -1
  28. package/dist/cjs/core/GameConfig.js.map +1 -1
  29. package/dist/cjs/core/GameLoop.js +6 -3
  30. package/dist/cjs/core/GameLoop.js.map +1 -1
  31. package/dist/cjs/core/ServiceLocator.js +1 -2
  32. package/dist/cjs/core/ServiceLocator.js.map +1 -1
  33. package/dist/cjs/devtools/DevTools.js +73 -43
  34. package/dist/cjs/devtools/DevTools.js.map +1 -1
  35. package/dist/cjs/devtools/DeveloperExperience.js +84 -42
  36. package/dist/cjs/devtools/DeveloperExperience.js.map +1 -1
  37. package/dist/cjs/devtools/GameplayAnalytics.js +71 -43
  38. package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -1
  39. package/dist/cjs/dialogue/DialogueSystem.js +153 -129
  40. package/dist/cjs/dialogue/DialogueSystem.js.map +1 -1
  41. package/dist/cjs/docs/DocGenerator.js +70 -28
  42. package/dist/cjs/docs/DocGenerator.js.map +1 -1
  43. package/dist/cjs/ecs/World.js +159 -33
  44. package/dist/cjs/ecs/World.js.map +1 -1
  45. package/dist/cjs/editor/AchievementEditor.js +650 -0
  46. package/dist/cjs/editor/AchievementEditor.js.map +1 -0
  47. package/dist/cjs/editor/AdvancedEditor.js +95 -23
  48. package/dist/cjs/editor/AdvancedEditor.js.map +1 -1
  49. package/dist/cjs/editor/AnimationRetargeting.js +742 -0
  50. package/dist/cjs/editor/AnimationRetargeting.js.map +1 -0
  51. package/dist/cjs/editor/AssetBrowser.js +1191 -0
  52. package/dist/cjs/editor/AssetBrowser.js.map +1 -0
  53. package/dist/cjs/editor/AssetManager.js +22 -14
  54. package/dist/cjs/editor/AssetManager.js.map +1 -1
  55. package/dist/cjs/editor/ConsolePro.js +1092 -0
  56. package/dist/cjs/editor/ConsolePro.js.map +1 -0
  57. package/dist/cjs/editor/CraftingEditor.js +749 -0
  58. package/dist/cjs/editor/CraftingEditor.js.map +1 -0
  59. package/dist/cjs/editor/DebugTools.js +46 -23
  60. package/dist/cjs/editor/DebugTools.js.map +1 -1
  61. package/dist/cjs/editor/DialogueSystem.js +924 -0
  62. package/dist/cjs/editor/DialogueSystem.js.map +1 -0
  63. package/dist/cjs/editor/LeaderboardSystem.js +496 -0
  64. package/dist/cjs/editor/LeaderboardSystem.js.map +1 -0
  65. package/dist/cjs/editor/NiceGameEditor.js +532 -142
  66. package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
  67. package/dist/cjs/editor/PrefabSystem.js +864 -0
  68. package/dist/cjs/editor/PrefabSystem.js.map +1 -0
  69. package/dist/cjs/editor/ProfilerPanel.js +716 -0
  70. package/dist/cjs/editor/ProfilerPanel.js.map +1 -0
  71. package/dist/cjs/editor/QuestEditor.js +850 -0
  72. package/dist/cjs/editor/QuestEditor.js.map +1 -0
  73. package/dist/cjs/editor/ReplaySystem.js +655 -0
  74. package/dist/cjs/editor/ReplaySystem.js.map +1 -0
  75. package/dist/cjs/editor/SceneEditor.js +33 -13
  76. package/dist/cjs/editor/SceneEditor.js.map +1 -1
  77. package/dist/cjs/editor/ScreenshotMode.js +710 -0
  78. package/dist/cjs/editor/ScreenshotMode.js.map +1 -0
  79. package/dist/cjs/editor/ShaderGraph.js +7 -6
  80. package/dist/cjs/editor/ShaderGraph.js.map +1 -1
  81. package/dist/cjs/editor/TimelineEditor.js +36 -30
  82. package/dist/cjs/editor/TimelineEditor.js.map +1 -1
  83. package/dist/cjs/editor/UndoRedoPro.js +920 -0
  84. package/dist/cjs/editor/UndoRedoPro.js.map +1 -0
  85. package/dist/cjs/editor/VRARMode.js +658 -0
  86. package/dist/cjs/editor/VRARMode.js.map +1 -0
  87. package/dist/cjs/engine/NiceGameEngine.js +12 -10
  88. package/dist/cjs/engine/NiceGameEngine.js.map +1 -1
  89. package/dist/cjs/engine/SaveSystemV2.js +73 -37
  90. package/dist/cjs/engine/SaveSystemV2.js.map +1 -1
  91. package/dist/cjs/enterprise/Enterprise.js +92 -44
  92. package/dist/cjs/enterprise/Enterprise.js.map +1 -1
  93. package/dist/cjs/export/BevyExporter.js +998 -0
  94. package/dist/cjs/export/BevyExporter.js.map +1 -0
  95. package/dist/cjs/export/CocosExporter.js +706 -0
  96. package/dist/cjs/export/CocosExporter.js.map +1 -0
  97. package/dist/cjs/export/Construct3Exporter.js +832 -0
  98. package/dist/cjs/export/Construct3Exporter.js.map +1 -0
  99. package/dist/cjs/export/DefoldExporter.js +1106 -0
  100. package/dist/cjs/export/DefoldExporter.js.map +1 -0
  101. package/dist/cjs/export/GDevelopExporter.js +748 -0
  102. package/dist/cjs/export/GDevelopExporter.js.map +1 -0
  103. package/dist/cjs/export/GameMakerExporter.js +846 -0
  104. package/dist/cjs/export/GameMakerExporter.js.map +1 -0
  105. package/dist/cjs/export/GodotExporter.js +45 -50
  106. package/dist/cjs/export/GodotExporter.js.map +1 -1
  107. package/dist/cjs/export/MinecraftBedrockExporter.js +606 -0
  108. package/dist/cjs/export/MinecraftBedrockExporter.js.map +1 -0
  109. package/dist/cjs/export/MonoGameExporter.js +1334 -0
  110. package/dist/cjs/export/MonoGameExporter.js.map +1 -0
  111. package/dist/cjs/export/Pico8Exporter.js +846 -0
  112. package/dist/cjs/export/Pico8Exporter.js.map +1 -0
  113. package/dist/cjs/export/PlatformExporter.js +4 -5
  114. package/dist/cjs/export/PlatformExporter.js.map +1 -1
  115. package/dist/cjs/export/RPGMakerExporter.js +906 -0
  116. package/dist/cjs/export/RPGMakerExporter.js.map +1 -0
  117. package/dist/cjs/export/RobloxExporter.js +943 -0
  118. package/dist/cjs/export/RobloxExporter.js.map +1 -0
  119. package/dist/cjs/export/Solar2DExporter.js +1283 -0
  120. package/dist/cjs/export/Solar2DExporter.js.map +1 -0
  121. package/dist/cjs/export/ThreeJSExporter.js +52 -55
  122. package/dist/cjs/export/ThreeJSExporter.js.map +1 -1
  123. package/dist/cjs/export/Tic80Exporter.js +1315 -0
  124. package/dist/cjs/export/Tic80Exporter.js.map +1 -0
  125. package/dist/cjs/export/UnityExporter.js +41 -56
  126. package/dist/cjs/export/UnityExporter.js.map +1 -1
  127. package/dist/cjs/export/UnrealExporter.js +962 -0
  128. package/dist/cjs/export/UnrealExporter.js.map +1 -0
  129. package/dist/cjs/export/WebExporter.js +42 -50
  130. package/dist/cjs/export/WebExporter.js.map +1 -1
  131. package/dist/cjs/export/index.js +50 -2
  132. package/dist/cjs/export/index.js.map +1 -1
  133. package/dist/cjs/godot-integration/GodotAssetLibrary.js +716 -0
  134. package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +1 -0
  135. package/dist/cjs/godot-integration/GodotImport.js +1069 -0
  136. package/dist/cjs/godot-integration/GodotImport.js.map +1 -0
  137. package/dist/cjs/godot-integration/GodotLiveLink.js +962 -0
  138. package/dist/cjs/godot-integration/GodotLiveLink.js.map +1 -0
  139. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +668 -0
  140. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +1 -0
  141. package/dist/cjs/i18n/I18n.js +56 -30
  142. package/dist/cjs/i18n/I18n.js.map +1 -1
  143. package/dist/cjs/i18n/useTranslation.js +4 -4
  144. package/dist/cjs/i18n/useTranslation.js.map +1 -1
  145. package/dist/cjs/import/AsepriteImporter.js +15 -19
  146. package/dist/cjs/import/AsepriteImporter.js.map +1 -1
  147. package/dist/cjs/import/DragonBonesImporter.js +36 -40
  148. package/dist/cjs/import/DragonBonesImporter.js.map +1 -1
  149. package/dist/cjs/import/GameMakerImporter.js +11 -17
  150. package/dist/cjs/import/GameMakerImporter.js.map +1 -1
  151. package/dist/cjs/import/GodotSceneImporter.js +43 -29
  152. package/dist/cjs/import/GodotSceneImporter.js.map +1 -1
  153. package/dist/cjs/import/LDtkImporter.js +16 -17
  154. package/dist/cjs/import/LDtkImporter.js.map +1 -1
  155. package/dist/cjs/import/Live2DImporter.js +16 -19
  156. package/dist/cjs/import/Live2DImporter.js.map +1 -1
  157. package/dist/cjs/import/NdgFormat.js +28 -35
  158. package/dist/cjs/import/NdgFormat.js.map +1 -1
  159. package/dist/cjs/import/OgmoImporter.js +16 -18
  160. package/dist/cjs/import/OgmoImporter.js.map +1 -1
  161. package/dist/cjs/import/RPGMakerImporter.js +5 -6
  162. package/dist/cjs/import/RPGMakerImporter.js.map +1 -1
  163. package/dist/cjs/import/SceneImporter.js +23 -13
  164. package/dist/cjs/import/SceneImporter.js.map +1 -1
  165. package/dist/cjs/import/SpineImporter.js +20 -20
  166. package/dist/cjs/import/SpineImporter.js.map +1 -1
  167. package/dist/cjs/import/SpriterImporter.js +38 -46
  168. package/dist/cjs/import/SpriterImporter.js.map +1 -1
  169. package/dist/cjs/import/TiledMapImporter.js +20 -24
  170. package/dist/cjs/import/TiledMapImporter.js.map +1 -1
  171. package/dist/cjs/import/UnitySceneImporter.js +15 -15
  172. package/dist/cjs/import/UnitySceneImporter.js.map +1 -1
  173. package/dist/cjs/index.js +516 -4
  174. package/dist/cjs/index.js.map +1 -1
  175. package/dist/cjs/input/GamepadNavigation.js +82 -47
  176. package/dist/cjs/input/GamepadNavigation.js.map +1 -1
  177. package/dist/cjs/input/InputManager.js +107 -52
  178. package/dist/cjs/input/InputManager.js.map +1 -1
  179. package/dist/cjs/input/useGamepads.js +35 -29
  180. package/dist/cjs/input/useGamepads.js.map +1 -1
  181. package/dist/cjs/integration/IconSprite.js +39 -21
  182. package/dist/cjs/integration/IconSprite.js.map +1 -1
  183. package/dist/cjs/inventory/InventorySystem.js +218 -127
  184. package/dist/cjs/inventory/InventorySystem.js.map +1 -1
  185. package/dist/cjs/kids/KidMode.js +491 -78
  186. package/dist/cjs/kids/KidMode.js.map +1 -1
  187. package/dist/cjs/kids/KidTools.js +154 -48
  188. package/dist/cjs/kids/KidTools.js.map +1 -1
  189. package/dist/cjs/monetization/Monetization.js +47 -35
  190. package/dist/cjs/monetization/Monetization.js.map +1 -1
  191. package/dist/cjs/multiplayer/LocalMultiplayer.js +48 -26
  192. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -1
  193. package/dist/cjs/multiplayer/MiniGameTypes.js +23 -10
  194. package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -1
  195. package/dist/cjs/native-engine/AssetPipeline.js +540 -0
  196. package/dist/cjs/native-engine/AssetPipeline.js.map +1 -0
  197. package/dist/cjs/native-engine/AudioEngine.js +825 -0
  198. package/dist/cjs/native-engine/AudioEngine.js.map +1 -0
  199. package/dist/cjs/native-engine/InputSystem.js +1175 -0
  200. package/dist/cjs/native-engine/InputSystem.js.map +1 -0
  201. package/dist/cjs/native-engine/NetworkingSystem.js +825 -0
  202. package/dist/cjs/native-engine/NetworkingSystem.js.map +1 -0
  203. package/dist/cjs/native-engine/PhysicsEngine.js +622 -0
  204. package/dist/cjs/native-engine/PhysicsEngine.js.map +1 -0
  205. package/dist/cjs/native-engine/RenderingEngine.js +371 -0
  206. package/dist/cjs/native-engine/RenderingEngine.js.map +1 -0
  207. package/dist/cjs/native-engine/SceneGraph.js +862 -0
  208. package/dist/cjs/native-engine/SceneGraph.js.map +1 -0
  209. package/dist/cjs/network/MultiplayerTransport.js +63 -33
  210. package/dist/cjs/network/MultiplayerTransport.js.map +1 -1
  211. package/dist/cjs/network/Networking.js +87 -62
  212. package/dist/cjs/network/Networking.js.map +1 -1
  213. package/dist/cjs/pathfinding/Pathfinding.js +71 -26
  214. package/dist/cjs/pathfinding/Pathfinding.js.map +1 -1
  215. package/dist/cjs/performance/AssetStreaming.js +656 -0
  216. package/dist/cjs/performance/AssetStreaming.js.map +1 -0
  217. package/dist/cjs/performance/BenchmarkSuite.js +37 -24
  218. package/dist/cjs/performance/BenchmarkSuite.js.map +1 -1
  219. package/dist/cjs/performance/DeltaCompression.js +566 -0
  220. package/dist/cjs/performance/DeltaCompression.js.map +1 -0
  221. package/dist/cjs/performance/DeterministicPhysics.js +603 -0
  222. package/dist/cjs/performance/DeterministicPhysics.js.map +1 -0
  223. package/dist/cjs/performance/ECSOptimization.js +726 -0
  224. package/dist/cjs/performance/ECSOptimization.js.map +1 -0
  225. package/dist/cjs/performance/HotReload.js +525 -0
  226. package/dist/cjs/performance/HotReload.js.map +1 -0
  227. package/dist/cjs/performance/InputRecording.js +590 -0
  228. package/dist/cjs/performance/InputRecording.js.map +1 -0
  229. package/dist/cjs/performance/InterestManagement.js +532 -0
  230. package/dist/cjs/performance/InterestManagement.js.map +1 -0
  231. package/dist/cjs/performance/LocalizationRuntime.js +472 -0
  232. package/dist/cjs/performance/LocalizationRuntime.js.map +1 -0
  233. package/dist/cjs/performance/MemoryManagement.js +487 -0
  234. package/dist/cjs/performance/MemoryManagement.js.map +1 -0
  235. package/dist/cjs/performance/ModSupport.js +531 -0
  236. package/dist/cjs/performance/ModSupport.js.map +1 -0
  237. package/dist/cjs/performance/MultiThreadedPhysics.js +500 -0
  238. package/dist/cjs/performance/MultiThreadedPhysics.js.map +1 -0
  239. package/dist/cjs/performance/NetworkPrediction.js +521 -0
  240. package/dist/cjs/performance/NetworkPrediction.js.map +1 -0
  241. package/dist/cjs/performance/ObjectPooling.js +653 -0
  242. package/dist/cjs/performance/ObjectPooling.js.map +1 -0
  243. package/dist/cjs/performance/Performance.js +64 -25
  244. package/dist/cjs/performance/Performance.js.map +1 -1
  245. package/dist/cjs/performance/PerformanceAdvanced.js +83 -49
  246. package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -1
  247. package/dist/cjs/performance/SaveSystem.js +574 -0
  248. package/dist/cjs/performance/SaveSystem.js.map +1 -0
  249. package/dist/cjs/performance/WebGPURenderer.js +702 -0
  250. package/dist/cjs/performance/WebGPURenderer.js.map +1 -0
  251. package/dist/cjs/physics/PhysicsAdvanced.js +32 -20
  252. package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -1
  253. package/dist/cjs/physics/PhysicsEngine2D.js +63 -36
  254. package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -1
  255. package/dist/cjs/plugins/PluginSDK.js +46 -34
  256. package/dist/cjs/plugins/PluginSDK.js.map +1 -1
  257. package/dist/cjs/plugins/PluginTestKit.js +28 -29
  258. package/dist/cjs/plugins/PluginTestKit.js.map +1 -1
  259. package/dist/cjs/procedural/Procedural.js +24 -17
  260. package/dist/cjs/procedural/Procedural.js.map +1 -1
  261. package/dist/cjs/procedural/WorldBuilding.js +187 -55
  262. package/dist/cjs/procedural/WorldBuilding.js.map +1 -1
  263. package/dist/cjs/quest/QuestSystem.js +145 -111
  264. package/dist/cjs/quest/QuestSystem.js.map +1 -1
  265. package/dist/cjs/release/Release.js +142 -31
  266. package/dist/cjs/release/Release.js.map +1 -1
  267. package/dist/cjs/rendering/Camera2D.js +12 -7
  268. package/dist/cjs/rendering/Camera2D.js.map +1 -1
  269. package/dist/cjs/rendering/Renderer2D.js +62 -26
  270. package/dist/cjs/rendering/Renderer2D.js.map +1 -1
  271. package/dist/cjs/rendering/WebGPURenderPipeline.js +60 -31
  272. package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -1
  273. package/dist/cjs/runtime3d/Runtime3D.js +80 -55
  274. package/dist/cjs/runtime3d/Runtime3D.js.map +1 -1
  275. package/dist/cjs/runtime3d/SceneEditor3D.js +20 -11
  276. package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -1
  277. package/dist/cjs/scene/SceneManager.js +26 -12
  278. package/dist/cjs/scene/SceneManager.js.map +1 -1
  279. package/dist/cjs/scripting/GraphToAST.js +36 -24
  280. package/dist/cjs/scripting/GraphToAST.js.map +1 -1
  281. package/dist/cjs/scripting/LanguageExporter.js +2 -3
  282. package/dist/cjs/scripting/LanguageExporter.js.map +1 -1
  283. package/dist/cjs/scripting/NodeGraph.js +49 -32
  284. package/dist/cjs/scripting/NodeGraph.js.map +1 -1
  285. package/dist/cjs/scripting/ScriptAST.js +19 -6
  286. package/dist/cjs/scripting/ScriptAST.js.map +1 -1
  287. package/dist/cjs/scripting/VisualScripting2.js +13 -12
  288. package/dist/cjs/scripting/VisualScripting2.js.map +1 -1
  289. package/dist/cjs/scripting/exporters/CSharpExporter.js +16 -16
  290. package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -1
  291. package/dist/cjs/scripting/exporters/GDScriptExporter.js +3 -6
  292. package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -1
  293. package/dist/cjs/scripting/exporters/LuaExporter.js +5 -9
  294. package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -1
  295. package/dist/cjs/scripting/exporters/PythonExporter.js +7 -13
  296. package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -1
  297. package/dist/cjs/scripting/exporters/RustExporter.js +7 -14
  298. package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -1
  299. package/dist/cjs/scripting/exporters/TypeScriptExporter.js +28 -29
  300. package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -1
  301. package/dist/cjs/social/Social.js +27 -20
  302. package/dist/cjs/social/Social.js.map +1 -1
  303. package/dist/cjs/systems/LightingSystem.js +980 -0
  304. package/dist/cjs/systems/LightingSystem.js.map +1 -0
  305. package/dist/cjs/systems/ParticleSystem2.js +34 -17
  306. package/dist/cjs/systems/ParticleSystem2.js.map +1 -1
  307. package/dist/cjs/systems/PhysicsDebugSystem.js +1228 -0
  308. package/dist/cjs/systems/PhysicsDebugSystem.js.map +1 -0
  309. package/dist/cjs/systems/TerrainSystem.js +1137 -0
  310. package/dist/cjs/systems/TerrainSystem.js.map +1 -0
  311. package/dist/cjs/templates/ActionTemplates.js +144 -24
  312. package/dist/cjs/templates/ActionTemplates.js.map +1 -1
  313. package/dist/cjs/templates/FightingTemplate.js +536 -0
  314. package/dist/cjs/templates/FightingTemplate.js.map +1 -0
  315. package/dist/cjs/templates/MetroidvaniaTemplate.js +523 -0
  316. package/dist/cjs/templates/MetroidvaniaTemplate.js.map +1 -0
  317. package/dist/cjs/templates/PartyTemplates.js +60 -28
  318. package/dist/cjs/templates/PartyTemplates.js.map +1 -1
  319. package/dist/cjs/templates/PuzzleTemplates.js +63 -22
  320. package/dist/cjs/templates/PuzzleTemplates.js.map +1 -1
  321. package/dist/cjs/templates/RPGTemplates.js +29 -15
  322. package/dist/cjs/templates/RPGTemplates.js.map +1 -1
  323. package/dist/cjs/templates/SportsTemplates.js +41 -17
  324. package/dist/cjs/templates/SportsTemplates.js.map +1 -1
  325. package/dist/cjs/templates/StrategyTemplates.js +45 -18
  326. package/dist/cjs/templates/StrategyTemplates.js.map +1 -1
  327. package/dist/cjs/templates/SurvivalTemplate.js +479 -0
  328. package/dist/cjs/templates/SurvivalTemplate.js.map +1 -0
  329. package/dist/cjs/templates/WaveDefense.js +139 -52
  330. package/dist/cjs/templates/WaveDefense.js.map +1 -1
  331. package/dist/cjs/tilemap/Tilemap.js +48 -32
  332. package/dist/cjs/tilemap/Tilemap.js.map +1 -1
  333. package/dist/cjs/tutorials/TutorialBranching.js +111 -42
  334. package/dist/cjs/tutorials/TutorialBranching.js.map +1 -1
  335. package/dist/cjs/tutorials/TutorialEngine.js +152 -80
  336. package/dist/cjs/tutorials/TutorialEngine.js.map +1 -1
  337. package/dist/cjs/tutorials/TutorialOverlay.js +117 -40
  338. package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -1
  339. package/dist/cjs/ui/GameUI.js +69 -42
  340. package/dist/cjs/ui/GameUI.js.map +1 -1
  341. package/dist/cjs/unity-integration/UnityAssetStore.js +754 -0
  342. package/dist/cjs/unity-integration/UnityAssetStore.js.map +1 -0
  343. package/dist/cjs/unity-integration/UnityImport.js +1252 -0
  344. package/dist/cjs/unity-integration/UnityImport.js.map +1 -0
  345. package/dist/cjs/unity-integration/UnityLiveLink.js +1022 -0
  346. package/dist/cjs/unity-integration/UnityLiveLink.js.map +1 -0
  347. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +796 -0
  348. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
  349. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +833 -0
  350. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +1 -0
  351. package/dist/cjs/unreal-integration/UnrealImport.js +442 -0
  352. package/dist/cjs/unreal-integration/UnrealImport.js.map +1 -0
  353. package/dist/cjs/unreal-integration/UnrealLiveLink.js +1186 -0
  354. package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +1 -0
  355. package/dist/cjs/unreal-integration/UnrealMarketplace.js +497 -0
  356. package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +1 -0
  357. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +835 -0
  358. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
  359. package/dist/cjs/xr/ARVR.js +32 -9
  360. package/dist/cjs/xr/ARVR.js.map +1 -1
  361. package/dist/esm/accessibility/Accessibility.js +55 -20
  362. package/dist/esm/accessibility/Accessibility.js.map +1 -1
  363. package/dist/esm/ai/AI.js +74 -40
  364. package/dist/esm/ai/AI.js.map +1 -1
  365. package/dist/esm/ai/BehaviorTree.js +39 -47
  366. package/dist/esm/ai/BehaviorTree.js.map +1 -1
  367. package/dist/esm/ai/StateMachine.js +65 -99
  368. package/dist/esm/ai/StateMachine.js.map +1 -1
  369. package/dist/esm/animation/Animation.js +58 -34
  370. package/dist/esm/animation/Animation.js.map +1 -1
  371. package/dist/esm/audio/AudioAdvanced.js +71 -37
  372. package/dist/esm/audio/AudioAdvanced.js.map +1 -1
  373. package/dist/esm/audio/AudioBridge.js +61 -49
  374. package/dist/esm/audio/AudioBridge.js.map +1 -1
  375. package/dist/esm/audio/AudioManager.js +45 -29
  376. package/dist/esm/audio/AudioManager.js.map +1 -1
  377. package/dist/esm/build-cloud/BuildOrchestration.js +1129 -0
  378. package/dist/esm/build-cloud/BuildOrchestration.js.map +1 -0
  379. package/dist/esm/build-cloud/GodotBuildCloud.js +715 -0
  380. package/dist/esm/build-cloud/GodotBuildCloud.js.map +1 -0
  381. package/dist/esm/build-cloud/UnityBuildCloud.js +643 -0
  382. package/dist/esm/build-cloud/UnityBuildCloud.js.map +1 -0
  383. package/dist/esm/build-cloud/UnrealBuildCloud.js +668 -0
  384. package/dist/esm/build-cloud/UnrealBuildCloud.js.map +1 -0
  385. package/dist/esm/core/EventBus.js +2 -1
  386. package/dist/esm/core/EventBus.js.map +1 -1
  387. package/dist/esm/core/GameConfig.js +1 -1
  388. package/dist/esm/core/GameConfig.js.map +1 -1
  389. package/dist/esm/core/GameLoop.js +6 -3
  390. package/dist/esm/core/GameLoop.js.map +1 -1
  391. package/dist/esm/core/ServiceLocator.js +1 -2
  392. package/dist/esm/core/ServiceLocator.js.map +1 -1
  393. package/dist/esm/devtools/DevTools.js +73 -43
  394. package/dist/esm/devtools/DevTools.js.map +1 -1
  395. package/dist/esm/devtools/DeveloperExperience.js +84 -42
  396. package/dist/esm/devtools/DeveloperExperience.js.map +1 -1
  397. package/dist/esm/devtools/GameplayAnalytics.js +71 -43
  398. package/dist/esm/devtools/GameplayAnalytics.js.map +1 -1
  399. package/dist/esm/dialogue/DialogueSystem.js +153 -129
  400. package/dist/esm/dialogue/DialogueSystem.js.map +1 -1
  401. package/dist/esm/docs/DocGenerator.js +70 -28
  402. package/dist/esm/docs/DocGenerator.js.map +1 -1
  403. package/dist/esm/ecs/World.js +159 -33
  404. package/dist/esm/ecs/World.js.map +1 -1
  405. package/dist/esm/editor/AchievementEditor.js +645 -0
  406. package/dist/esm/editor/AchievementEditor.js.map +1 -0
  407. package/dist/esm/editor/AdvancedEditor.js +95 -23
  408. package/dist/esm/editor/AdvancedEditor.js.map +1 -1
  409. package/dist/esm/editor/AnimationRetargeting.js +738 -0
  410. package/dist/esm/editor/AnimationRetargeting.js.map +1 -0
  411. package/dist/esm/editor/AssetBrowser.js +1184 -0
  412. package/dist/esm/editor/AssetBrowser.js.map +1 -0
  413. package/dist/esm/editor/AssetManager.js +22 -14
  414. package/dist/esm/editor/AssetManager.js.map +1 -1
  415. package/dist/esm/editor/ConsolePro.js +1085 -0
  416. package/dist/esm/editor/ConsolePro.js.map +1 -0
  417. package/dist/esm/editor/CraftingEditor.js +744 -0
  418. package/dist/esm/editor/CraftingEditor.js.map +1 -0
  419. package/dist/esm/editor/DebugTools.js +46 -23
  420. package/dist/esm/editor/DebugTools.js.map +1 -1
  421. package/dist/esm/editor/DialogueSystem.js +918 -0
  422. package/dist/esm/editor/DialogueSystem.js.map +1 -0
  423. package/dist/esm/editor/LeaderboardSystem.js +491 -0
  424. package/dist/esm/editor/LeaderboardSystem.js.map +1 -0
  425. package/dist/esm/editor/NiceGameEditor.js +532 -142
  426. package/dist/esm/editor/NiceGameEditor.js.map +1 -1
  427. package/dist/esm/editor/PrefabSystem.js +858 -0
  428. package/dist/esm/editor/PrefabSystem.js.map +1 -0
  429. package/dist/esm/editor/ProfilerPanel.js +710 -0
  430. package/dist/esm/editor/ProfilerPanel.js.map +1 -0
  431. package/dist/esm/editor/QuestEditor.js +846 -0
  432. package/dist/esm/editor/QuestEditor.js.map +1 -0
  433. package/dist/esm/editor/ReplaySystem.js +648 -0
  434. package/dist/esm/editor/ReplaySystem.js.map +1 -0
  435. package/dist/esm/editor/SceneEditor.js +33 -13
  436. package/dist/esm/editor/SceneEditor.js.map +1 -1
  437. package/dist/esm/editor/ScreenshotMode.js +702 -0
  438. package/dist/esm/editor/ScreenshotMode.js.map +1 -0
  439. package/dist/esm/editor/ShaderGraph.js +7 -6
  440. package/dist/esm/editor/ShaderGraph.js.map +1 -1
  441. package/dist/esm/editor/TimelineEditor.js +37 -30
  442. package/dist/esm/editor/TimelineEditor.js.map +1 -1
  443. package/dist/esm/editor/UndoRedoPro.js +914 -0
  444. package/dist/esm/editor/UndoRedoPro.js.map +1 -0
  445. package/dist/esm/editor/VRARMode.js +653 -0
  446. package/dist/esm/editor/VRARMode.js.map +1 -0
  447. package/dist/esm/engine/NiceGameEngine.js +12 -10
  448. package/dist/esm/engine/NiceGameEngine.js.map +1 -1
  449. package/dist/esm/engine/SaveSystemV2.js +73 -37
  450. package/dist/esm/engine/SaveSystemV2.js.map +1 -1
  451. package/dist/esm/enterprise/Enterprise.js +92 -44
  452. package/dist/esm/enterprise/Enterprise.js.map +1 -1
  453. package/dist/esm/export/BevyExporter.js +995 -0
  454. package/dist/esm/export/BevyExporter.js.map +1 -0
  455. package/dist/esm/export/CocosExporter.js +703 -0
  456. package/dist/esm/export/CocosExporter.js.map +1 -0
  457. package/dist/esm/export/Construct3Exporter.js +829 -0
  458. package/dist/esm/export/Construct3Exporter.js.map +1 -0
  459. package/dist/esm/export/DefoldExporter.js +1103 -0
  460. package/dist/esm/export/DefoldExporter.js.map +1 -0
  461. package/dist/esm/export/GDevelopExporter.js +745 -0
  462. package/dist/esm/export/GDevelopExporter.js.map +1 -0
  463. package/dist/esm/export/GameMakerExporter.js +843 -0
  464. package/dist/esm/export/GameMakerExporter.js.map +1 -0
  465. package/dist/esm/export/GodotExporter.js +45 -50
  466. package/dist/esm/export/GodotExporter.js.map +1 -1
  467. package/dist/esm/export/MinecraftBedrockExporter.js +603 -0
  468. package/dist/esm/export/MinecraftBedrockExporter.js.map +1 -0
  469. package/dist/esm/export/MonoGameExporter.js +1331 -0
  470. package/dist/esm/export/MonoGameExporter.js.map +1 -0
  471. package/dist/esm/export/Pico8Exporter.js +843 -0
  472. package/dist/esm/export/Pico8Exporter.js.map +1 -0
  473. package/dist/esm/export/PlatformExporter.js +4 -5
  474. package/dist/esm/export/PlatformExporter.js.map +1 -1
  475. package/dist/esm/export/RPGMakerExporter.js +903 -0
  476. package/dist/esm/export/RPGMakerExporter.js.map +1 -0
  477. package/dist/esm/export/RobloxExporter.js +940 -0
  478. package/dist/esm/export/RobloxExporter.js.map +1 -0
  479. package/dist/esm/export/Solar2DExporter.js +1280 -0
  480. package/dist/esm/export/Solar2DExporter.js.map +1 -0
  481. package/dist/esm/export/ThreeJSExporter.js +52 -55
  482. package/dist/esm/export/ThreeJSExporter.js.map +1 -1
  483. package/dist/esm/export/Tic80Exporter.js +1312 -0
  484. package/dist/esm/export/Tic80Exporter.js.map +1 -0
  485. package/dist/esm/export/UnityExporter.js +41 -56
  486. package/dist/esm/export/UnityExporter.js.map +1 -1
  487. package/dist/esm/export/UnrealExporter.js +959 -0
  488. package/dist/esm/export/UnrealExporter.js.map +1 -0
  489. package/dist/esm/export/WebExporter.js +42 -50
  490. package/dist/esm/export/WebExporter.js.map +1 -1
  491. package/dist/esm/export/index.js +38 -2
  492. package/dist/esm/export/index.js.map +1 -1
  493. package/dist/esm/godot-integration/GodotAssetLibrary.js +711 -0
  494. package/dist/esm/godot-integration/GodotAssetLibrary.js.map +1 -0
  495. package/dist/esm/godot-integration/GodotImport.js +1062 -0
  496. package/dist/esm/godot-integration/GodotImport.js.map +1 -0
  497. package/dist/esm/godot-integration/GodotLiveLink.js +958 -0
  498. package/dist/esm/godot-integration/GodotLiveLink.js.map +1 -0
  499. package/dist/esm/godot-integration/components/GodotProjectBrowser.js +666 -0
  500. package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +1 -0
  501. package/dist/esm/i18n/I18n.js +56 -30
  502. package/dist/esm/i18n/I18n.js.map +1 -1
  503. package/dist/esm/i18n/useTranslation.js +4 -4
  504. package/dist/esm/i18n/useTranslation.js.map +1 -1
  505. package/dist/esm/import/AsepriteImporter.js +15 -19
  506. package/dist/esm/import/AsepriteImporter.js.map +1 -1
  507. package/dist/esm/import/DragonBonesImporter.js +36 -40
  508. package/dist/esm/import/DragonBonesImporter.js.map +1 -1
  509. package/dist/esm/import/GameMakerImporter.js +11 -17
  510. package/dist/esm/import/GameMakerImporter.js.map +1 -1
  511. package/dist/esm/import/GodotSceneImporter.js +43 -29
  512. package/dist/esm/import/GodotSceneImporter.js.map +1 -1
  513. package/dist/esm/import/LDtkImporter.js +16 -17
  514. package/dist/esm/import/LDtkImporter.js.map +1 -1
  515. package/dist/esm/import/Live2DImporter.js +16 -19
  516. package/dist/esm/import/Live2DImporter.js.map +1 -1
  517. package/dist/esm/import/NdgFormat.js +28 -35
  518. package/dist/esm/import/NdgFormat.js.map +1 -1
  519. package/dist/esm/import/OgmoImporter.js +16 -18
  520. package/dist/esm/import/OgmoImporter.js.map +1 -1
  521. package/dist/esm/import/RPGMakerImporter.js +5 -6
  522. package/dist/esm/import/RPGMakerImporter.js.map +1 -1
  523. package/dist/esm/import/SceneImporter.js +23 -13
  524. package/dist/esm/import/SceneImporter.js.map +1 -1
  525. package/dist/esm/import/SpineImporter.js +20 -20
  526. package/dist/esm/import/SpineImporter.js.map +1 -1
  527. package/dist/esm/import/SpriterImporter.js +38 -46
  528. package/dist/esm/import/SpriterImporter.js.map +1 -1
  529. package/dist/esm/import/TiledMapImporter.js +20 -24
  530. package/dist/esm/import/TiledMapImporter.js.map +1 -1
  531. package/dist/esm/import/UnitySceneImporter.js +15 -15
  532. package/dist/esm/import/UnitySceneImporter.js.map +1 -1
  533. package/dist/esm/index.js +76 -3
  534. package/dist/esm/index.js.map +1 -1
  535. package/dist/esm/input/GamepadNavigation.js +82 -47
  536. package/dist/esm/input/GamepadNavigation.js.map +1 -1
  537. package/dist/esm/input/InputManager.js +107 -52
  538. package/dist/esm/input/InputManager.js.map +1 -1
  539. package/dist/esm/input/useGamepads.js +35 -29
  540. package/dist/esm/input/useGamepads.js.map +1 -1
  541. package/dist/esm/integration/IconSprite.js +39 -21
  542. package/dist/esm/integration/IconSprite.js.map +1 -1
  543. package/dist/esm/inventory/InventorySystem.js +218 -127
  544. package/dist/esm/inventory/InventorySystem.js.map +1 -1
  545. package/dist/esm/kids/KidMode.js +491 -78
  546. package/dist/esm/kids/KidMode.js.map +1 -1
  547. package/dist/esm/kids/KidTools.js +154 -48
  548. package/dist/esm/kids/KidTools.js.map +1 -1
  549. package/dist/esm/monetization/Monetization.js +47 -35
  550. package/dist/esm/monetization/Monetization.js.map +1 -1
  551. package/dist/esm/multiplayer/LocalMultiplayer.js +48 -26
  552. package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -1
  553. package/dist/esm/multiplayer/MiniGameTypes.js +23 -10
  554. package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -1
  555. package/dist/esm/native-engine/AssetPipeline.js +537 -0
  556. package/dist/esm/native-engine/AssetPipeline.js.map +1 -0
  557. package/dist/esm/native-engine/AudioEngine.js +822 -0
  558. package/dist/esm/native-engine/AudioEngine.js.map +1 -0
  559. package/dist/esm/native-engine/InputSystem.js +1170 -0
  560. package/dist/esm/native-engine/InputSystem.js.map +1 -0
  561. package/dist/esm/native-engine/NetworkingSystem.js +817 -0
  562. package/dist/esm/native-engine/NetworkingSystem.js.map +1 -0
  563. package/dist/esm/native-engine/PhysicsEngine.js +619 -0
  564. package/dist/esm/native-engine/PhysicsEngine.js.map +1 -0
  565. package/dist/esm/native-engine/RenderingEngine.js +368 -0
  566. package/dist/esm/native-engine/RenderingEngine.js.map +1 -0
  567. package/dist/esm/native-engine/SceneGraph.js +857 -0
  568. package/dist/esm/native-engine/SceneGraph.js.map +1 -0
  569. package/dist/esm/network/MultiplayerTransport.js +63 -33
  570. package/dist/esm/network/MultiplayerTransport.js.map +1 -1
  571. package/dist/esm/network/Networking.js +87 -62
  572. package/dist/esm/network/Networking.js.map +1 -1
  573. package/dist/esm/pathfinding/Pathfinding.js +71 -26
  574. package/dist/esm/pathfinding/Pathfinding.js.map +1 -1
  575. package/dist/esm/performance/AssetStreaming.js +649 -0
  576. package/dist/esm/performance/AssetStreaming.js.map +1 -0
  577. package/dist/esm/performance/BenchmarkSuite.js +37 -24
  578. package/dist/esm/performance/BenchmarkSuite.js.map +1 -1
  579. package/dist/esm/performance/DeltaCompression.js +554 -0
  580. package/dist/esm/performance/DeltaCompression.js.map +1 -0
  581. package/dist/esm/performance/DeterministicPhysics.js +573 -0
  582. package/dist/esm/performance/DeterministicPhysics.js.map +1 -0
  583. package/dist/esm/performance/ECSOptimization.js +716 -0
  584. package/dist/esm/performance/ECSOptimization.js.map +1 -0
  585. package/dist/esm/performance/HotReload.js +517 -0
  586. package/dist/esm/performance/HotReload.js.map +1 -0
  587. package/dist/esm/performance/InputRecording.js +580 -0
  588. package/dist/esm/performance/InputRecording.js.map +1 -0
  589. package/dist/esm/performance/InterestManagement.js +524 -0
  590. package/dist/esm/performance/InterestManagement.js.map +1 -0
  591. package/dist/esm/performance/LocalizationRuntime.js +465 -0
  592. package/dist/esm/performance/LocalizationRuntime.js.map +1 -0
  593. package/dist/esm/performance/MemoryManagement.js +481 -0
  594. package/dist/esm/performance/MemoryManagement.js.map +1 -0
  595. package/dist/esm/performance/ModSupport.js +520 -0
  596. package/dist/esm/performance/ModSupport.js.map +1 -0
  597. package/dist/esm/performance/MultiThreadedPhysics.js +491 -0
  598. package/dist/esm/performance/MultiThreadedPhysics.js.map +1 -0
  599. package/dist/esm/performance/NetworkPrediction.js +508 -0
  600. package/dist/esm/performance/NetworkPrediction.js.map +1 -0
  601. package/dist/esm/performance/ObjectPooling.js +639 -0
  602. package/dist/esm/performance/ObjectPooling.js.map +1 -0
  603. package/dist/esm/performance/Performance.js +64 -25
  604. package/dist/esm/performance/Performance.js.map +1 -1
  605. package/dist/esm/performance/PerformanceAdvanced.js +83 -49
  606. package/dist/esm/performance/PerformanceAdvanced.js.map +1 -1
  607. package/dist/esm/performance/SaveSystem.js +567 -0
  608. package/dist/esm/performance/SaveSystem.js.map +1 -0
  609. package/dist/esm/performance/WebGPURenderer.js +697 -0
  610. package/dist/esm/performance/WebGPURenderer.js.map +1 -0
  611. package/dist/esm/physics/PhysicsAdvanced.js +32 -20
  612. package/dist/esm/physics/PhysicsAdvanced.js.map +1 -1
  613. package/dist/esm/physics/PhysicsEngine2D.js +63 -36
  614. package/dist/esm/physics/PhysicsEngine2D.js.map +1 -1
  615. package/dist/esm/plugins/PluginSDK.js +46 -34
  616. package/dist/esm/plugins/PluginSDK.js.map +1 -1
  617. package/dist/esm/plugins/PluginTestKit.js +28 -29
  618. package/dist/esm/plugins/PluginTestKit.js.map +1 -1
  619. package/dist/esm/procedural/Procedural.js +24 -17
  620. package/dist/esm/procedural/Procedural.js.map +1 -1
  621. package/dist/esm/procedural/WorldBuilding.js +188 -55
  622. package/dist/esm/procedural/WorldBuilding.js.map +1 -1
  623. package/dist/esm/quest/QuestSystem.js +145 -111
  624. package/dist/esm/quest/QuestSystem.js.map +1 -1
  625. package/dist/esm/release/Release.js +142 -31
  626. package/dist/esm/release/Release.js.map +1 -1
  627. package/dist/esm/rendering/Camera2D.js +12 -7
  628. package/dist/esm/rendering/Camera2D.js.map +1 -1
  629. package/dist/esm/rendering/Renderer2D.js +62 -26
  630. package/dist/esm/rendering/Renderer2D.js.map +1 -1
  631. package/dist/esm/rendering/WebGPURenderPipeline.js +60 -31
  632. package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -1
  633. package/dist/esm/runtime3d/Runtime3D.js +80 -55
  634. package/dist/esm/runtime3d/Runtime3D.js.map +1 -1
  635. package/dist/esm/runtime3d/SceneEditor3D.js +20 -11
  636. package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -1
  637. package/dist/esm/scene/SceneManager.js +26 -12
  638. package/dist/esm/scene/SceneManager.js.map +1 -1
  639. package/dist/esm/scripting/GraphToAST.js +36 -24
  640. package/dist/esm/scripting/GraphToAST.js.map +1 -1
  641. package/dist/esm/scripting/LanguageExporter.js +2 -3
  642. package/dist/esm/scripting/LanguageExporter.js.map +1 -1
  643. package/dist/esm/scripting/NodeGraph.js +49 -32
  644. package/dist/esm/scripting/NodeGraph.js.map +1 -1
  645. package/dist/esm/scripting/ScriptAST.js +19 -6
  646. package/dist/esm/scripting/ScriptAST.js.map +1 -1
  647. package/dist/esm/scripting/VisualScripting2.js +13 -12
  648. package/dist/esm/scripting/VisualScripting2.js.map +1 -1
  649. package/dist/esm/scripting/exporters/CSharpExporter.js +16 -16
  650. package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -1
  651. package/dist/esm/scripting/exporters/GDScriptExporter.js +3 -6
  652. package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -1
  653. package/dist/esm/scripting/exporters/LuaExporter.js +5 -9
  654. package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -1
  655. package/dist/esm/scripting/exporters/PythonExporter.js +7 -13
  656. package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -1
  657. package/dist/esm/scripting/exporters/RustExporter.js +7 -14
  658. package/dist/esm/scripting/exporters/RustExporter.js.map +1 -1
  659. package/dist/esm/scripting/exporters/TypeScriptExporter.js +28 -29
  660. package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -1
  661. package/dist/esm/social/Social.js +27 -20
  662. package/dist/esm/social/Social.js.map +1 -1
  663. package/dist/esm/systems/LightingSystem.js +968 -0
  664. package/dist/esm/systems/LightingSystem.js.map +1 -0
  665. package/dist/esm/systems/ParticleSystem2.js +34 -17
  666. package/dist/esm/systems/ParticleSystem2.js.map +1 -1
  667. package/dist/esm/systems/PhysicsDebugSystem.js +1219 -0
  668. package/dist/esm/systems/PhysicsDebugSystem.js.map +1 -0
  669. package/dist/esm/systems/TerrainSystem.js +1125 -0
  670. package/dist/esm/systems/TerrainSystem.js.map +1 -0
  671. package/dist/esm/templates/ActionTemplates.js +144 -24
  672. package/dist/esm/templates/ActionTemplates.js.map +1 -1
  673. package/dist/esm/templates/FightingTemplate.js +513 -0
  674. package/dist/esm/templates/FightingTemplate.js.map +1 -0
  675. package/dist/esm/templates/MetroidvaniaTemplate.js +484 -0
  676. package/dist/esm/templates/MetroidvaniaTemplate.js.map +1 -0
  677. package/dist/esm/templates/PartyTemplates.js +60 -28
  678. package/dist/esm/templates/PartyTemplates.js.map +1 -1
  679. package/dist/esm/templates/PuzzleTemplates.js +63 -22
  680. package/dist/esm/templates/PuzzleTemplates.js.map +1 -1
  681. package/dist/esm/templates/RPGTemplates.js +29 -15
  682. package/dist/esm/templates/RPGTemplates.js.map +1 -1
  683. package/dist/esm/templates/SportsTemplates.js +41 -17
  684. package/dist/esm/templates/SportsTemplates.js.map +1 -1
  685. package/dist/esm/templates/StrategyTemplates.js +45 -18
  686. package/dist/esm/templates/StrategyTemplates.js.map +1 -1
  687. package/dist/esm/templates/SurvivalTemplate.js +447 -0
  688. package/dist/esm/templates/SurvivalTemplate.js.map +1 -0
  689. package/dist/esm/templates/WaveDefense.js +139 -52
  690. package/dist/esm/templates/WaveDefense.js.map +1 -1
  691. package/dist/esm/tilemap/Tilemap.js +48 -32
  692. package/dist/esm/tilemap/Tilemap.js.map +1 -1
  693. package/dist/esm/tutorials/TutorialBranching.js +111 -42
  694. package/dist/esm/tutorials/TutorialBranching.js.map +1 -1
  695. package/dist/esm/tutorials/TutorialEngine.js +152 -80
  696. package/dist/esm/tutorials/TutorialEngine.js.map +1 -1
  697. package/dist/esm/tutorials/TutorialOverlay.js +117 -40
  698. package/dist/esm/tutorials/TutorialOverlay.js.map +1 -1
  699. package/dist/esm/ui/GameUI.js +69 -42
  700. package/dist/esm/ui/GameUI.js.map +1 -1
  701. package/dist/esm/unity-integration/UnityAssetStore.js +749 -0
  702. package/dist/esm/unity-integration/UnityAssetStore.js.map +1 -0
  703. package/dist/esm/unity-integration/UnityImport.js +1246 -0
  704. package/dist/esm/unity-integration/UnityImport.js.map +1 -0
  705. package/dist/esm/unity-integration/UnityLiveLink.js +1017 -0
  706. package/dist/esm/unity-integration/UnityLiveLink.js.map +1 -0
  707. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +794 -0
  708. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +1 -0
  709. package/dist/esm/unity-integration/components/UnityProjectBrowser.js +831 -0
  710. package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +1 -0
  711. package/dist/esm/unreal-integration/UnrealImport.js +437 -0
  712. package/dist/esm/unreal-integration/UnrealImport.js.map +1 -0
  713. package/dist/esm/unreal-integration/UnrealLiveLink.js +1182 -0
  714. package/dist/esm/unreal-integration/UnrealLiveLink.js.map +1 -0
  715. package/dist/esm/unreal-integration/UnrealMarketplace.js +490 -0
  716. package/dist/esm/unreal-integration/UnrealMarketplace.js.map +1 -0
  717. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +833 -0
  718. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +1 -0
  719. package/dist/esm/xr/ARVR.js +32 -9
  720. package/dist/esm/xr/ARVR.js.map +1 -1
  721. package/package.json +6 -5
@@ -43,15 +43,14 @@ class InventoryManager {
43
43
  this.eventBus = bus;
44
44
  }
45
45
  emit(event) {
46
- var _a;
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
- var _a, _b, _c, _d;
65
- const id = (_a = options.id) !== null && _a !== void 0 ? _a : `container_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
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: (_c = options.name) !== null && _c !== void 0 ? _c : `${type} container`,
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: (_d = options.currency) !== null && _d !== void 0 ? _d : new Map(),
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({ type: 'container:destroyed', containerId, ownerId: container.ownerId, timestamp: Date.now() });
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: (_a = restOptions.instanceId) !== null && _a !== void 0 ? _a : `item_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`,
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 ((_a = container.disallowedCategories) === null || _a === void 0 ? void 0 : _a.includes(def.category)) {
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 + (def.weight * count) > container.maxWeight) {
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; // No space
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 (_c = (_b = container.slots.find(s => { var _a; return ((_a = s.item) === null || _a === void 0 ? void 0 : _a.itemId) === itemId; })) === null || _b === void 0 ? void 0 : _b.item) !== null && _c !== void 0 ? _c : null;
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 (!(slot === null || slot === void 0 ? void 0 : slot.item))
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 (!(sourceSlot === null || sourceSlot === void 0 ? void 0 : sourceSlot.item) || !targetSlot)
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 (!(slot === null || slot === void 0 ? void 0 : slot.item) || slot.item.count <= splitCount)
280
+ if (!slot?.item || slot.item.count <= splitCount) {
266
281
  return false;
267
- const emptySlot = container.slots.find(s => !s.item && !s.locked);
268
- if (!emptySlot)
282
+ }
283
+ const emptySlot = container.slots.find((s) => !s.item && !s.locked);
284
+ if (!emptySlot) {
269
285
  return false;
270
- const newInstance = this.createItemInstance(slot.item.itemId, splitCount, { ...slot.item, instanceId: undefined });
271
- if (!newInstance)
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
- return container.slots.filter(s => !s.item && !s.locked).length;
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', 'chest', 'legs', 'feet', 'hands', 'shoulders', 'back', 'waist',
318
- 'mainHand', 'offHand', 'ring1', 'ring2', 'neck', 'trinket1', 'trinket2',
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 (!(invSlot === null || invSlot === void 0 ? void 0 : invSlot.item))
374
+ if (!invSlot?.item) {
337
375
  return false;
376
+ }
338
377
  const def = this.itemDefinitions.get(invSlot.item.itemId);
339
- if (!(def === null || def === void 0 ? void 0 : def.equipSlot))
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
- if (offHand)
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; // Inventory full
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 (!(def === null || def === void 0 ? void 0 : def.stats))
468
+ if (!def?.stats) {
422
469
  continue;
470
+ }
423
471
  for (const mod of def.stats) {
424
- const current = (_a = equipState.totalStats.get(mod.stat)) !== null && _a !== void 0 ? _a : 0;
425
- equipState.totalStats.set(mod.stat, current + ((_b = mod.flat) !== null && _b !== void 0 ? _b : 0));
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
- if (instance.durability === undefined)
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 (!(def === null || def === void 0 ? void 0 : def.maxDurability) || instance.durability === undefined)
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 (!(slot === null || slot === void 0 ? void 0 : slot.item))
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 = (_a = this.cooldowns.get(slot.item.instanceId)) !== null && _a !== void 0 ? _a : 0;
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 (!(learned === null || learned === void 0 ? void 0 : learned.has(recipeId)))
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 !== null && output !== void 0 ? output : undefined,
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
- var _a, _b;
598
- if (((_a = e.conditions) === null || _a === void 0 ? void 0 : _a.minLevel) && modifiers.levelContext && modifiers.levelContext < e.conditions.minLevel)
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
- if (((_b = e.conditions) === null || _b === void 0 ? void 0 : _b.maxLevel) && modifiers.levelContext && modifiers.levelContext > e.conditions.maxLevel)
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 + ((_a = modifiers.luckBonus) !== null && _a !== void 0 ? _a : 0));
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
- const unitPrice = (_a = listing.price) !== null && _a !== void 0 ? _a : Math.ceil(def.value * shop.sellRate);
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 = (_c = (_b = container.currency) === null || _b === void 0 ? void 0 : _b.get(listing.currencyId)) !== null && _c !== void 0 ? _c : 0;
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 (!(slot === null || slot === void 0 ? void 0 : slot.item) || slot.item.count < quantity)
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 = (_b = (_a = container.currency) === null || _a === void 0 ? void 0 : _a.get(currencyId)) !== null && _b !== void 0 ? _b : 0;
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
- if (!container.currency)
798
+ }
799
+ if (!container.currency) {
727
800
  container.currency = new Map();
728
- const current = (_a = container.currency.get(currencyId)) !== null && _a !== void 0 ? _a : 0;
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 (!(container === null || container === void 0 ? void 0 : container.currency))
816
+ if (!container?.currency) {
744
817
  return false;
745
- const current = (_a = container.currency.get(currencyId)) !== null && _a !== void 0 ? _a : 0;
746
- if (current < amount)
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
- var _a, _b, _c;
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 = ['common', 'uncommon', 'rare', 'epic', 'legendary', 'mythic', 'unique'];
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
- var _a;
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
- if (removed >= count)
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 (((_a = slot.item) === null || _a === void 0 ? void 0 : _a.itemId) === itemId) {
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) {