@nice2dev/game-engine 1.0.5 → 1.0.11

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