@nice2dev/game-engine 1.1.6 → 1.1.9

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 (496) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/dist/cjs/core/GameConfig.js +21 -7
  3. package/dist/cjs/devtools/DeveloperExperience.js +5 -5
  4. package/dist/cjs/dialogue/DialogueSystem.js +1 -1
  5. package/dist/cjs/editor/AssetBrowser.js +26 -25
  6. package/dist/cjs/editor/NiceGameEditor.js +66 -49
  7. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +33 -32
  8. package/dist/cjs/i18n/I18n.js +305 -0
  9. package/dist/cjs/kids/KidMode.js +36 -36
  10. package/dist/cjs/kids/KidTools.js +31 -31
  11. package/dist/cjs/native-engine/InputSystem.js +9 -2
  12. package/dist/cjs/package.json +3 -0
  13. package/dist/cjs/plugins/PluginSDK.js +1 -1
  14. package/dist/cjs/plugins/PluginTestKit.js +1 -1
  15. package/dist/cjs/quest/QuestSystem.js +5 -1
  16. package/dist/cjs/release/MobileExport.js +45 -12
  17. package/dist/cjs/tutorials/TutorialBranching.js +12 -12
  18. package/dist/cjs/tutorials/TutorialEngine.js +35 -35
  19. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +106 -89
  20. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +103 -55
  21. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +79 -56
  22. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
  23. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +28 -27
  24. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +31 -30
  25. package/dist/esm/core/GameConfig.js +21 -7
  26. package/dist/esm/devtools/DeveloperExperience.js +5 -5
  27. package/dist/esm/dialogue/DialogueSystem.js +1 -1
  28. package/dist/esm/editor/AssetBrowser.js +26 -25
  29. package/dist/esm/editor/NiceGameEditor.js +67 -50
  30. package/dist/esm/godot-integration/components/GodotProjectBrowser.js +33 -32
  31. package/dist/esm/i18n/I18n.js +305 -0
  32. package/dist/esm/kids/KidMode.js +36 -36
  33. package/dist/esm/kids/KidTools.js +31 -31
  34. package/dist/esm/native-engine/InputSystem.js +9 -2
  35. package/dist/esm/plugins/PluginSDK.js +1 -1
  36. package/dist/esm/plugins/PluginTestKit.js +1 -1
  37. package/dist/esm/quest/QuestSystem.js +5 -1
  38. package/dist/esm/release/MobileExport.js +45 -12
  39. package/dist/esm/tutorials/TutorialBranching.js +12 -12
  40. package/dist/esm/tutorials/TutorialEngine.js +35 -35
  41. package/dist/esm/tutorials/content/Tutorials_T05_T08.js +106 -89
  42. package/dist/esm/tutorials/content/Tutorials_T09_T11.js +103 -55
  43. package/dist/esm/tutorials/content/Tutorials_T12_T15.js +79 -56
  44. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
  45. package/dist/esm/unity-integration/components/UnityProjectBrowser.js +28 -27
  46. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +31 -30
  47. package/dist/types/core/index.d.ts +1 -1
  48. package/dist/types/editor/AssetBrowser.d.ts +1 -0
  49. package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +2 -1
  50. package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +1 -0
  51. package/dist/types/input/index.d.ts +1 -1
  52. package/dist/types/kids/KidMode.d.ts +4 -2
  53. package/dist/types/kids/KidTools.d.ts +1 -1
  54. package/dist/types/legendary/index.d.ts +7 -7
  55. package/dist/types/procedural/index.d.ts +1 -1
  56. package/dist/types/tutorials/TutorialBranching.d.ts +1 -1
  57. package/package.json +3 -2
  58. package/dist/cjs/accessibility/Accessibility.js.map +0 -1
  59. package/dist/cjs/ai/AI.js.map +0 -1
  60. package/dist/cjs/ai/BehaviorTree.js.map +0 -1
  61. package/dist/cjs/ai/StateMachine.js.map +0 -1
  62. package/dist/cjs/animation/Animation.js.map +0 -1
  63. package/dist/cjs/audio/AudioAdvanced.js.map +0 -1
  64. package/dist/cjs/audio/AudioBridge.js.map +0 -1
  65. package/dist/cjs/audio/AudioManager.js.map +0 -1
  66. package/dist/cjs/build-cloud/BuildOrchestration.js.map +0 -1
  67. package/dist/cjs/build-cloud/GodotBuildCloud.js.map +0 -1
  68. package/dist/cjs/build-cloud/UnityBuildCloud.js.map +0 -1
  69. package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +0 -1
  70. package/dist/cjs/core/EventBus.js.map +0 -1
  71. package/dist/cjs/core/GameClock.js.map +0 -1
  72. package/dist/cjs/core/GameConfig.js.map +0 -1
  73. package/dist/cjs/core/GameLoop.js.map +0 -1
  74. package/dist/cjs/core/ServiceLocator.js.map +0 -1
  75. package/dist/cjs/core/Validation.js.map +0 -1
  76. package/dist/cjs/core/math.js.map +0 -1
  77. package/dist/cjs/devtools/DevTools.js.map +0 -1
  78. package/dist/cjs/devtools/DeveloperExperience.js.map +0 -1
  79. package/dist/cjs/devtools/GameplayAnalytics.js.map +0 -1
  80. package/dist/cjs/dialogue/DialogueSystem.js.map +0 -1
  81. package/dist/cjs/docs/DocGenerator.js.map +0 -1
  82. package/dist/cjs/ecs/World.js.map +0 -1
  83. package/dist/cjs/editor/AchievementEditor.js.map +0 -1
  84. package/dist/cjs/editor/AdvancedEditor.js.map +0 -1
  85. package/dist/cjs/editor/AnimationRetargeting.js.map +0 -1
  86. package/dist/cjs/editor/AssetBrowser.js.map +0 -1
  87. package/dist/cjs/editor/AssetManager.js.map +0 -1
  88. package/dist/cjs/editor/ConsolePro.js.map +0 -1
  89. package/dist/cjs/editor/CraftingEditor.js.map +0 -1
  90. package/dist/cjs/editor/DebugTools.js.map +0 -1
  91. package/dist/cjs/editor/DialogueSystem.js.map +0 -1
  92. package/dist/cjs/editor/LeaderboardSystem.js.map +0 -1
  93. package/dist/cjs/editor/NiceGameEditor.js.map +0 -1
  94. package/dist/cjs/editor/PrefabSystem.js.map +0 -1
  95. package/dist/cjs/editor/ProfilerPanel.js.map +0 -1
  96. package/dist/cjs/editor/QuestEditor.js.map +0 -1
  97. package/dist/cjs/editor/ReplaySystem.js.map +0 -1
  98. package/dist/cjs/editor/SceneEditor.js.map +0 -1
  99. package/dist/cjs/editor/ScreenshotMode.js.map +0 -1
  100. package/dist/cjs/editor/ShaderGraph.js.map +0 -1
  101. package/dist/cjs/editor/TimelineEditor.js.map +0 -1
  102. package/dist/cjs/editor/UndoRedoPro.js.map +0 -1
  103. package/dist/cjs/editor/VRARMode.js.map +0 -1
  104. package/dist/cjs/engine/NiceGameEngine.js.map +0 -1
  105. package/dist/cjs/engine/SaveSystem.js.map +0 -1
  106. package/dist/cjs/engine/SaveSystemV2.js +0 -530
  107. package/dist/cjs/engine/SaveSystemV2.js.map +0 -1
  108. package/dist/cjs/enterprise/Enterprise.js.map +0 -1
  109. package/dist/cjs/export/BevyExporter.js.map +0 -1
  110. package/dist/cjs/export/CocosExporter.js.map +0 -1
  111. package/dist/cjs/export/Construct3Exporter.js.map +0 -1
  112. package/dist/cjs/export/DefoldExporter.js.map +0 -1
  113. package/dist/cjs/export/GDevelopExporter.js.map +0 -1
  114. package/dist/cjs/export/GameMakerExporter.js.map +0 -1
  115. package/dist/cjs/export/GodotExporter.js.map +0 -1
  116. package/dist/cjs/export/MinecraftBedrockExporter.js.map +0 -1
  117. package/dist/cjs/export/MonoGameExporter.js.map +0 -1
  118. package/dist/cjs/export/Pico8Exporter.js.map +0 -1
  119. package/dist/cjs/export/PlatformExporter.js.map +0 -1
  120. package/dist/cjs/export/RPGMakerExporter.js.map +0 -1
  121. package/dist/cjs/export/RobloxExporter.js.map +0 -1
  122. package/dist/cjs/export/Solar2DExporter.js.map +0 -1
  123. package/dist/cjs/export/ThreeJSExporter.js.map +0 -1
  124. package/dist/cjs/export/Tic80Exporter.js.map +0 -1
  125. package/dist/cjs/export/UnityExporter.js.map +0 -1
  126. package/dist/cjs/export/UnrealExporter.js.map +0 -1
  127. package/dist/cjs/export/WebExporter.js.map +0 -1
  128. package/dist/cjs/export/index.js.map +0 -1
  129. package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +0 -1
  130. package/dist/cjs/godot-integration/GodotImport.js.map +0 -1
  131. package/dist/cjs/godot-integration/GodotLiveLink.js.map +0 -1
  132. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +0 -1
  133. package/dist/cjs/i18n/I18n.js.map +0 -1
  134. package/dist/cjs/i18n/useTranslation.js.map +0 -1
  135. package/dist/cjs/import/AsepriteImporter.js.map +0 -1
  136. package/dist/cjs/import/DragonBonesImporter.js.map +0 -1
  137. package/dist/cjs/import/GameMakerImporter.js.map +0 -1
  138. package/dist/cjs/import/GodotSceneImporter.js.map +0 -1
  139. package/dist/cjs/import/LDtkImporter.js.map +0 -1
  140. package/dist/cjs/import/Live2DImporter.js.map +0 -1
  141. package/dist/cjs/import/NdgFormat.js.map +0 -1
  142. package/dist/cjs/import/OgmoImporter.js.map +0 -1
  143. package/dist/cjs/import/RPGMakerImporter.js.map +0 -1
  144. package/dist/cjs/import/SceneImporter.js.map +0 -1
  145. package/dist/cjs/import/SpineImporter.js.map +0 -1
  146. package/dist/cjs/import/SpriterImporter.js.map +0 -1
  147. package/dist/cjs/import/TiledMapImporter.js.map +0 -1
  148. package/dist/cjs/import/UnitySceneImporter.js.map +0 -1
  149. package/dist/cjs/import/index.js.map +0 -1
  150. package/dist/cjs/index.js.map +0 -1
  151. package/dist/cjs/input/GamepadNavigation.js.map +0 -1
  152. package/dist/cjs/input/InputManager.js.map +0 -1
  153. package/dist/cjs/input/useGamepads.js.map +0 -1
  154. package/dist/cjs/integration/IconSprite.js.map +0 -1
  155. package/dist/cjs/inventory/InventorySystem.js.map +0 -1
  156. package/dist/cjs/kids/KidMode.js.map +0 -1
  157. package/dist/cjs/kids/KidTools.js.map +0 -1
  158. package/dist/cjs/monetization/Monetization.js.map +0 -1
  159. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +0 -1
  160. package/dist/cjs/multiplayer/MiniGameTypes.js.map +0 -1
  161. package/dist/cjs/native-engine/AssetPipeline.js.map +0 -1
  162. package/dist/cjs/native-engine/AudioEngine.js.map +0 -1
  163. package/dist/cjs/native-engine/InputSystem.js.map +0 -1
  164. package/dist/cjs/native-engine/NetworkingSystem.js.map +0 -1
  165. package/dist/cjs/native-engine/PhysicsEngine.js.map +0 -1
  166. package/dist/cjs/native-engine/RenderingEngine.js.map +0 -1
  167. package/dist/cjs/native-engine/SceneGraph.js.map +0 -1
  168. package/dist/cjs/network/MultiplayerTransport.js.map +0 -1
  169. package/dist/cjs/network/Networking.js.map +0 -1
  170. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
  171. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
  172. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
  173. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
  174. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
  175. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
  176. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
  177. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
  178. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
  179. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
  180. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
  181. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
  182. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
  183. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
  184. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
  185. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
  186. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
  187. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
  188. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
  189. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
  190. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
  191. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
  192. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
  193. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
  194. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
  195. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
  196. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
  197. package/dist/cjs/pathfinding/Pathfinding.js.map +0 -1
  198. package/dist/cjs/performance/AssetStreaming.js.map +0 -1
  199. package/dist/cjs/performance/BenchmarkSuite.js.map +0 -1
  200. package/dist/cjs/performance/DeltaCompression.js.map +0 -1
  201. package/dist/cjs/performance/DeterministicPhysics.js.map +0 -1
  202. package/dist/cjs/performance/ECSOptimization.js.map +0 -1
  203. package/dist/cjs/performance/GameSaveSystem.js.map +0 -1
  204. package/dist/cjs/performance/HotReload.js.map +0 -1
  205. package/dist/cjs/performance/InputRecording.js.map +0 -1
  206. package/dist/cjs/performance/InterestManagement.js.map +0 -1
  207. package/dist/cjs/performance/LocalizationRuntime.js.map +0 -1
  208. package/dist/cjs/performance/MemoryManagement.js.map +0 -1
  209. package/dist/cjs/performance/ModSupport.js.map +0 -1
  210. package/dist/cjs/performance/MultiThreadedPhysics.js.map +0 -1
  211. package/dist/cjs/performance/NetworkPrediction.js.map +0 -1
  212. package/dist/cjs/performance/ObjectPooling.js.map +0 -1
  213. package/dist/cjs/performance/Performance.js.map +0 -1
  214. package/dist/cjs/performance/PerformanceAdvanced.js.map +0 -1
  215. package/dist/cjs/performance/SaveSystem.js +0 -574
  216. package/dist/cjs/performance/SaveSystem.js.map +0 -1
  217. package/dist/cjs/performance/WebGPURenderer.js.map +0 -1
  218. package/dist/cjs/physics/PhysicsAdvanced.js.map +0 -1
  219. package/dist/cjs/physics/PhysicsEngine2D.js.map +0 -1
  220. package/dist/cjs/plugins/PluginSDK.js.map +0 -1
  221. package/dist/cjs/plugins/PluginTestKit.js.map +0 -1
  222. package/dist/cjs/procedural/Procedural.js.map +0 -1
  223. package/dist/cjs/procedural/WorldBuilding.js.map +0 -1
  224. package/dist/cjs/quest/QuestSystem.js.map +0 -1
  225. package/dist/cjs/release/MobileExport.js.map +0 -1
  226. package/dist/cjs/release/Release.js.map +0 -1
  227. package/dist/cjs/rendering/Camera2D.js.map +0 -1
  228. package/dist/cjs/rendering/Renderer2D.js.map +0 -1
  229. package/dist/cjs/rendering/WebGPURenderPipeline.js.map +0 -1
  230. package/dist/cjs/runtime3d/Runtime3D.js.map +0 -1
  231. package/dist/cjs/runtime3d/SceneEditor3D.js.map +0 -1
  232. package/dist/cjs/scene/SceneManager.js.map +0 -1
  233. package/dist/cjs/scripting/GraphToAST.js.map +0 -1
  234. package/dist/cjs/scripting/LanguageExporter.js.map +0 -1
  235. package/dist/cjs/scripting/NodeGraph.js.map +0 -1
  236. package/dist/cjs/scripting/ScriptAST.js.map +0 -1
  237. package/dist/cjs/scripting/VisualScripting2.js.map +0 -1
  238. package/dist/cjs/scripting/exporters/CSharpExporter.js.map +0 -1
  239. package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +0 -1
  240. package/dist/cjs/scripting/exporters/LuaExporter.js.map +0 -1
  241. package/dist/cjs/scripting/exporters/PythonExporter.js.map +0 -1
  242. package/dist/cjs/scripting/exporters/RustExporter.js.map +0 -1
  243. package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +0 -1
  244. package/dist/cjs/social/Social.js.map +0 -1
  245. package/dist/cjs/systems/LightingSystem.js.map +0 -1
  246. package/dist/cjs/systems/ParticleSystem2.js.map +0 -1
  247. package/dist/cjs/systems/PhysicsDebugSystem.js.map +0 -1
  248. package/dist/cjs/systems/TerrainSystem.js.map +0 -1
  249. package/dist/cjs/templates/ActionTemplates.js.map +0 -1
  250. package/dist/cjs/templates/FightingTemplate.js.map +0 -1
  251. package/dist/cjs/templates/MetroidvaniaTemplate.js.map +0 -1
  252. package/dist/cjs/templates/PartyTemplates.js.map +0 -1
  253. package/dist/cjs/templates/PuzzleTemplates.js.map +0 -1
  254. package/dist/cjs/templates/RPGTemplates.js.map +0 -1
  255. package/dist/cjs/templates/SportsTemplates.js.map +0 -1
  256. package/dist/cjs/templates/StrategyTemplates.js.map +0 -1
  257. package/dist/cjs/templates/SurvivalTemplate.js.map +0 -1
  258. package/dist/cjs/templates/WaveDefense.js.map +0 -1
  259. package/dist/cjs/tilemap/Tilemap.js.map +0 -1
  260. package/dist/cjs/tutorials/TutorialBranching.js.map +0 -1
  261. package/dist/cjs/tutorials/TutorialEngine.js.map +0 -1
  262. package/dist/cjs/tutorials/TutorialOverlay.js.map +0 -1
  263. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +0 -1
  264. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +0 -1
  265. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +0 -1
  266. package/dist/cjs/ui/GameUI.js.map +0 -1
  267. package/dist/cjs/unity-integration/UnityAssetStore.js.map +0 -1
  268. package/dist/cjs/unity-integration/UnityImport.js.map +0 -1
  269. package/dist/cjs/unity-integration/UnityLiveLink.js.map +0 -1
  270. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
  271. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +0 -1
  272. package/dist/cjs/unreal-integration/UnrealImport.js.map +0 -1
  273. package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +0 -1
  274. package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +0 -1
  275. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
  276. package/dist/cjs/xr/ARVR.js.map +0 -1
  277. package/dist/esm/accessibility/Accessibility.js.map +0 -1
  278. package/dist/esm/ai/AI.js.map +0 -1
  279. package/dist/esm/ai/BehaviorTree.js.map +0 -1
  280. package/dist/esm/ai/StateMachine.js.map +0 -1
  281. package/dist/esm/animation/Animation.js.map +0 -1
  282. package/dist/esm/audio/AudioAdvanced.js.map +0 -1
  283. package/dist/esm/audio/AudioBridge.js.map +0 -1
  284. package/dist/esm/audio/AudioManager.js.map +0 -1
  285. package/dist/esm/build-cloud/BuildOrchestration.js.map +0 -1
  286. package/dist/esm/build-cloud/GodotBuildCloud.js.map +0 -1
  287. package/dist/esm/build-cloud/UnityBuildCloud.js.map +0 -1
  288. package/dist/esm/build-cloud/UnrealBuildCloud.js.map +0 -1
  289. package/dist/esm/core/EventBus.js.map +0 -1
  290. package/dist/esm/core/GameClock.js.map +0 -1
  291. package/dist/esm/core/GameConfig.js.map +0 -1
  292. package/dist/esm/core/GameLoop.js.map +0 -1
  293. package/dist/esm/core/ServiceLocator.js.map +0 -1
  294. package/dist/esm/core/Validation.js.map +0 -1
  295. package/dist/esm/core/math.js.map +0 -1
  296. package/dist/esm/devtools/DevTools.js.map +0 -1
  297. package/dist/esm/devtools/DeveloperExperience.js.map +0 -1
  298. package/dist/esm/devtools/GameplayAnalytics.js.map +0 -1
  299. package/dist/esm/dialogue/DialogueSystem.js.map +0 -1
  300. package/dist/esm/docs/DocGenerator.js.map +0 -1
  301. package/dist/esm/ecs/World.js.map +0 -1
  302. package/dist/esm/editor/AchievementEditor.js.map +0 -1
  303. package/dist/esm/editor/AdvancedEditor.js.map +0 -1
  304. package/dist/esm/editor/AnimationRetargeting.js.map +0 -1
  305. package/dist/esm/editor/AssetBrowser.js.map +0 -1
  306. package/dist/esm/editor/AssetManager.js.map +0 -1
  307. package/dist/esm/editor/ConsolePro.js.map +0 -1
  308. package/dist/esm/editor/CraftingEditor.js.map +0 -1
  309. package/dist/esm/editor/DebugTools.js.map +0 -1
  310. package/dist/esm/editor/DialogueSystem.js.map +0 -1
  311. package/dist/esm/editor/LeaderboardSystem.js.map +0 -1
  312. package/dist/esm/editor/NiceGameEditor.js.map +0 -1
  313. package/dist/esm/editor/PrefabSystem.js.map +0 -1
  314. package/dist/esm/editor/ProfilerPanel.js.map +0 -1
  315. package/dist/esm/editor/QuestEditor.js.map +0 -1
  316. package/dist/esm/editor/ReplaySystem.js.map +0 -1
  317. package/dist/esm/editor/SceneEditor.js.map +0 -1
  318. package/dist/esm/editor/ScreenshotMode.js.map +0 -1
  319. package/dist/esm/editor/ShaderGraph.js.map +0 -1
  320. package/dist/esm/editor/TimelineEditor.js.map +0 -1
  321. package/dist/esm/editor/UndoRedoPro.js.map +0 -1
  322. package/dist/esm/editor/VRARMode.js.map +0 -1
  323. package/dist/esm/engine/NiceGameEngine.js.map +0 -1
  324. package/dist/esm/engine/SaveSystem.js.map +0 -1
  325. package/dist/esm/engine/SaveSystemV2.js +0 -523
  326. package/dist/esm/engine/SaveSystemV2.js.map +0 -1
  327. package/dist/esm/enterprise/Enterprise.js.map +0 -1
  328. package/dist/esm/export/BevyExporter.js.map +0 -1
  329. package/dist/esm/export/CocosExporter.js.map +0 -1
  330. package/dist/esm/export/Construct3Exporter.js.map +0 -1
  331. package/dist/esm/export/DefoldExporter.js.map +0 -1
  332. package/dist/esm/export/GDevelopExporter.js.map +0 -1
  333. package/dist/esm/export/GameMakerExporter.js.map +0 -1
  334. package/dist/esm/export/GodotExporter.js.map +0 -1
  335. package/dist/esm/export/MinecraftBedrockExporter.js.map +0 -1
  336. package/dist/esm/export/MonoGameExporter.js.map +0 -1
  337. package/dist/esm/export/Pico8Exporter.js.map +0 -1
  338. package/dist/esm/export/PlatformExporter.js.map +0 -1
  339. package/dist/esm/export/RPGMakerExporter.js.map +0 -1
  340. package/dist/esm/export/RobloxExporter.js.map +0 -1
  341. package/dist/esm/export/Solar2DExporter.js.map +0 -1
  342. package/dist/esm/export/ThreeJSExporter.js.map +0 -1
  343. package/dist/esm/export/Tic80Exporter.js.map +0 -1
  344. package/dist/esm/export/UnityExporter.js.map +0 -1
  345. package/dist/esm/export/UnrealExporter.js.map +0 -1
  346. package/dist/esm/export/WebExporter.js.map +0 -1
  347. package/dist/esm/export/index.js.map +0 -1
  348. package/dist/esm/godot-integration/GodotAssetLibrary.js.map +0 -1
  349. package/dist/esm/godot-integration/GodotImport.js.map +0 -1
  350. package/dist/esm/godot-integration/GodotLiveLink.js.map +0 -1
  351. package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +0 -1
  352. package/dist/esm/i18n/I18n.js.map +0 -1
  353. package/dist/esm/i18n/useTranslation.js.map +0 -1
  354. package/dist/esm/import/AsepriteImporter.js.map +0 -1
  355. package/dist/esm/import/DragonBonesImporter.js.map +0 -1
  356. package/dist/esm/import/GameMakerImporter.js.map +0 -1
  357. package/dist/esm/import/GodotSceneImporter.js.map +0 -1
  358. package/dist/esm/import/LDtkImporter.js.map +0 -1
  359. package/dist/esm/import/Live2DImporter.js.map +0 -1
  360. package/dist/esm/import/NdgFormat.js.map +0 -1
  361. package/dist/esm/import/OgmoImporter.js.map +0 -1
  362. package/dist/esm/import/RPGMakerImporter.js.map +0 -1
  363. package/dist/esm/import/SceneImporter.js.map +0 -1
  364. package/dist/esm/import/SpineImporter.js.map +0 -1
  365. package/dist/esm/import/SpriterImporter.js.map +0 -1
  366. package/dist/esm/import/TiledMapImporter.js.map +0 -1
  367. package/dist/esm/import/UnitySceneImporter.js.map +0 -1
  368. package/dist/esm/import/index.js.map +0 -1
  369. package/dist/esm/index.js.map +0 -1
  370. package/dist/esm/input/GamepadNavigation.js.map +0 -1
  371. package/dist/esm/input/InputManager.js.map +0 -1
  372. package/dist/esm/input/useGamepads.js.map +0 -1
  373. package/dist/esm/integration/IconSprite.js.map +0 -1
  374. package/dist/esm/inventory/InventorySystem.js.map +0 -1
  375. package/dist/esm/kids/KidMode.js.map +0 -1
  376. package/dist/esm/kids/KidTools.js.map +0 -1
  377. package/dist/esm/monetization/Monetization.js.map +0 -1
  378. package/dist/esm/multiplayer/LocalMultiplayer.js.map +0 -1
  379. package/dist/esm/multiplayer/MiniGameTypes.js.map +0 -1
  380. package/dist/esm/native-engine/AssetPipeline.js.map +0 -1
  381. package/dist/esm/native-engine/AudioEngine.js.map +0 -1
  382. package/dist/esm/native-engine/InputSystem.js.map +0 -1
  383. package/dist/esm/native-engine/NetworkingSystem.js.map +0 -1
  384. package/dist/esm/native-engine/PhysicsEngine.js.map +0 -1
  385. package/dist/esm/native-engine/RenderingEngine.js.map +0 -1
  386. package/dist/esm/native-engine/SceneGraph.js.map +0 -1
  387. package/dist/esm/network/MultiplayerTransport.js.map +0 -1
  388. package/dist/esm/network/Networking.js.map +0 -1
  389. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
  390. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
  391. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
  392. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
  393. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
  394. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
  395. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
  396. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
  397. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
  398. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
  399. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
  400. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
  401. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
  402. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
  403. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
  404. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
  405. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
  406. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
  407. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
  408. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
  409. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
  410. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
  411. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
  412. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
  413. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
  414. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
  415. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
  416. package/dist/esm/pathfinding/Pathfinding.js.map +0 -1
  417. package/dist/esm/performance/AssetStreaming.js.map +0 -1
  418. package/dist/esm/performance/BenchmarkSuite.js.map +0 -1
  419. package/dist/esm/performance/DeltaCompression.js.map +0 -1
  420. package/dist/esm/performance/DeterministicPhysics.js.map +0 -1
  421. package/dist/esm/performance/ECSOptimization.js.map +0 -1
  422. package/dist/esm/performance/GameSaveSystem.js.map +0 -1
  423. package/dist/esm/performance/HotReload.js.map +0 -1
  424. package/dist/esm/performance/InputRecording.js.map +0 -1
  425. package/dist/esm/performance/InterestManagement.js.map +0 -1
  426. package/dist/esm/performance/LocalizationRuntime.js.map +0 -1
  427. package/dist/esm/performance/MemoryManagement.js.map +0 -1
  428. package/dist/esm/performance/ModSupport.js.map +0 -1
  429. package/dist/esm/performance/MultiThreadedPhysics.js.map +0 -1
  430. package/dist/esm/performance/NetworkPrediction.js.map +0 -1
  431. package/dist/esm/performance/ObjectPooling.js.map +0 -1
  432. package/dist/esm/performance/Performance.js.map +0 -1
  433. package/dist/esm/performance/PerformanceAdvanced.js.map +0 -1
  434. package/dist/esm/performance/SaveSystem.js +0 -567
  435. package/dist/esm/performance/SaveSystem.js.map +0 -1
  436. package/dist/esm/performance/WebGPURenderer.js.map +0 -1
  437. package/dist/esm/physics/PhysicsAdvanced.js.map +0 -1
  438. package/dist/esm/physics/PhysicsEngine2D.js.map +0 -1
  439. package/dist/esm/plugins/PluginSDK.js.map +0 -1
  440. package/dist/esm/plugins/PluginTestKit.js.map +0 -1
  441. package/dist/esm/procedural/Procedural.js.map +0 -1
  442. package/dist/esm/procedural/WorldBuilding.js.map +0 -1
  443. package/dist/esm/quest/QuestSystem.js.map +0 -1
  444. package/dist/esm/release/MobileExport.js.map +0 -1
  445. package/dist/esm/release/Release.js.map +0 -1
  446. package/dist/esm/rendering/Camera2D.js.map +0 -1
  447. package/dist/esm/rendering/Renderer2D.js.map +0 -1
  448. package/dist/esm/rendering/WebGPURenderPipeline.js.map +0 -1
  449. package/dist/esm/runtime3d/Runtime3D.js.map +0 -1
  450. package/dist/esm/runtime3d/SceneEditor3D.js.map +0 -1
  451. package/dist/esm/scene/SceneManager.js.map +0 -1
  452. package/dist/esm/scripting/GraphToAST.js.map +0 -1
  453. package/dist/esm/scripting/LanguageExporter.js.map +0 -1
  454. package/dist/esm/scripting/NodeGraph.js.map +0 -1
  455. package/dist/esm/scripting/ScriptAST.js.map +0 -1
  456. package/dist/esm/scripting/VisualScripting2.js.map +0 -1
  457. package/dist/esm/scripting/exporters/CSharpExporter.js.map +0 -1
  458. package/dist/esm/scripting/exporters/GDScriptExporter.js.map +0 -1
  459. package/dist/esm/scripting/exporters/LuaExporter.js.map +0 -1
  460. package/dist/esm/scripting/exporters/PythonExporter.js.map +0 -1
  461. package/dist/esm/scripting/exporters/RustExporter.js.map +0 -1
  462. package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +0 -1
  463. package/dist/esm/social/Social.js.map +0 -1
  464. package/dist/esm/systems/LightingSystem.js.map +0 -1
  465. package/dist/esm/systems/ParticleSystem2.js.map +0 -1
  466. package/dist/esm/systems/PhysicsDebugSystem.js.map +0 -1
  467. package/dist/esm/systems/TerrainSystem.js.map +0 -1
  468. package/dist/esm/templates/ActionTemplates.js.map +0 -1
  469. package/dist/esm/templates/FightingTemplate.js.map +0 -1
  470. package/dist/esm/templates/MetroidvaniaTemplate.js.map +0 -1
  471. package/dist/esm/templates/PartyTemplates.js.map +0 -1
  472. package/dist/esm/templates/PuzzleTemplates.js.map +0 -1
  473. package/dist/esm/templates/RPGTemplates.js.map +0 -1
  474. package/dist/esm/templates/SportsTemplates.js.map +0 -1
  475. package/dist/esm/templates/StrategyTemplates.js.map +0 -1
  476. package/dist/esm/templates/SurvivalTemplate.js.map +0 -1
  477. package/dist/esm/templates/WaveDefense.js.map +0 -1
  478. package/dist/esm/tilemap/Tilemap.js.map +0 -1
  479. package/dist/esm/tutorials/TutorialBranching.js.map +0 -1
  480. package/dist/esm/tutorials/TutorialEngine.js.map +0 -1
  481. package/dist/esm/tutorials/TutorialOverlay.js.map +0 -1
  482. package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +0 -1
  483. package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +0 -1
  484. package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +0 -1
  485. package/dist/esm/ui/GameUI.js.map +0 -1
  486. package/dist/esm/unity-integration/UnityAssetStore.js.map +0 -1
  487. package/dist/esm/unity-integration/UnityImport.js.map +0 -1
  488. package/dist/esm/unity-integration/UnityLiveLink.js.map +0 -1
  489. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
  490. package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +0 -1
  491. package/dist/esm/unreal-integration/UnrealImport.js.map +0 -1
  492. package/dist/esm/unreal-integration/UnrealLiveLink.js.map +0 -1
  493. package/dist/esm/unreal-integration/UnrealMarketplace.js.map +0 -1
  494. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
  495. package/dist/esm/xr/ARVR.js.map +0 -1
  496. package/dist/types/engine/SaveSystemV2.d.ts +0 -155
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var ui = require('@nice2dev/ui');
4
5
  var React = require('react');
5
6
 
6
7
  const DEFAULT_THEME = {
@@ -104,23 +105,23 @@ function useBrowser() {
104
105
  function getAssetIcon(type) {
105
106
  switch (type) {
106
107
  case 'scene':
107
- return '🎬';
108
+ return 'video';
108
109
  case 'prefab':
109
- return '📦';
110
+ return 'box';
110
111
  case 'material':
111
- return '🎨';
112
+ return 'palette';
112
113
  case 'texture':
113
- return '🖼️';
114
+ return 'image';
114
115
  case 'mesh':
115
- return '🔷';
116
+ return 'hexagon';
116
117
  case 'animation':
117
- return '🏃';
118
+ return 'play';
118
119
  case 'script':
119
- return '📜';
120
+ return 'code';
120
121
  case 'audio':
121
- return '🔊';
122
+ return 'volume';
122
123
  default:
123
- return '📄';
124
+ return 'file';
124
125
  }
125
126
  }
126
127
  function formatFileSize(bytes) {
@@ -151,7 +152,7 @@ const BrowserHeader = ({ projectPath }) => {
151
152
  alignItems: 'center',
152
153
  justifyContent: 'center',
153
154
  fontSize: 20,
154
- }, children: "\uD83C\uDFAE" }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Unity ", state.projectInfo.unityVersion, " \u2022", ' ', state.projectInfo.renderPipeline.toUpperCase()] })) : ((projectPath ?? 'Select a Unity project folder')) })] }), jsxRuntime.jsxs("div", { style: {
155
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "gamepad", size: 18 }) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Unity ", state.projectInfo.unityVersion, " \u2022", ' ', state.projectInfo.renderPipeline.toUpperCase()] })) : ((projectPath ?? 'Select a Unity project folder')) })] }), jsxRuntime.jsxs("div", { style: {
155
156
  display: 'flex',
156
157
  alignItems: 'center',
157
158
  gap: 8,
@@ -218,21 +219,21 @@ const BrowserToolbar = () => {
218
219
  backgroundColor: 'rgba(0,0,0,0.2)',
219
220
  borderRadius: 6,
220
221
  overflow: 'hidden',
221
- }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), style: {
222
+ }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), "aria-label": "Tree view", style: {
222
223
  padding: '6px 10px',
223
224
  fontSize: 12,
224
225
  backgroundColor: state.viewMode === 'tree' ? theme.accent : 'transparent',
225
226
  border: 'none',
226
227
  color: '#fff',
227
228
  cursor: 'pointer',
228
- }, children: "\uD83D\uDCD1" }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'grid' }), style: {
229
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "list", size: 14 }) }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'grid' }), "aria-label": "Grid view", style: {
229
230
  padding: '6px 10px',
230
231
  fontSize: 12,
231
232
  backgroundColor: state.viewMode === 'grid' ? theme.accent : 'transparent',
232
233
  border: 'none',
233
234
  color: '#fff',
234
235
  cursor: 'pointer',
235
- }, children: "\uD83D\uDD32" })] }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsx("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importProgress !== null, style: {
236
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "grid", size: 14 }) })] }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsxs("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importProgress !== null, style: {
236
237
  padding: '8px 16px',
237
238
  fontSize: 12,
238
239
  fontWeight: 500,
@@ -244,16 +245,16 @@ const BrowserToolbar = () => {
244
245
  color: '#fff',
245
246
  cursor: state.selectedAssets.size > 0 && !state.importProgress ? 'pointer' : 'not-allowed',
246
247
  opacity: state.selectedAssets.size > 0 && !state.importProgress ? 1 : 0.5,
247
- }, children: state.importProgress ? '⏳ Importing...' : '📥 Import Selected' })] }));
248
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: state.importProgress ? 'clock' : 'download', size: 14 }), ' ', state.importProgress ? 'Importing...' : 'Import Selected'] })] }));
248
249
  };
249
250
  /* ── Tab Bar Component ────────────────────────────────────────── */
250
251
  const TabBar = () => {
251
252
  const { state, dispatch, theme } = useBrowser();
252
253
  const tabs = [
253
- { id: 'assets', label: 'Assets', icon: '📁' },
254
- { id: 'scenes', label: 'Scenes', icon: '🎬' },
255
- { id: 'packages', label: 'Packages', icon: '📦' },
256
- { id: 'settings', label: 'Settings', icon: '⚙️' },
254
+ { id: 'assets', label: 'Assets', icon: 'folder' },
255
+ { id: 'scenes', label: 'Scenes', icon: 'video' },
256
+ { id: 'packages', label: 'Packages', icon: 'box' },
257
+ { id: 'settings', label: 'Settings', icon: 'settings' },
257
258
  ];
258
259
  return (jsxRuntime.jsx("div", { style: {
259
260
  display: 'flex',
@@ -269,7 +270,7 @@ const TabBar = () => {
269
270
  borderBottom: state.tab === tab.id ? `2px solid ${theme.accent}` : '2px solid transparent',
270
271
  color: state.tab === tab.id ? theme.textPrimary : theme.textSecondary,
271
272
  cursor: 'pointer',
272
- }, children: [tab.icon, " ", tab.label] }, tab.id))) }));
273
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: tab.icon, size: 14 }), " ", tab.label] }, tab.id))) }));
273
274
  };
274
275
  /* ── Asset Tree View ──────────────────────────────────────────── */
275
276
  const AssetTreeItem = ({ asset, indent }) => {
@@ -283,7 +284,7 @@ const AssetTreeItem = ({ asset, indent }) => {
283
284
  paddingLeft: indent * 16 + 8,
284
285
  backgroundColor: isSelected ? theme.itemSelected : 'transparent',
285
286
  cursor: 'pointer',
286
- }, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: getAssetIcon(asset.type) }), jsxRuntime.jsx("span", { style: {
287
+ }, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 14 }), jsxRuntime.jsx("span", { style: {
287
288
  flex: 1,
288
289
  fontSize: 12,
289
290
  color: isSelected ? theme.textPrimary : theme.textSecondary,
@@ -320,7 +321,7 @@ const FolderTreeItem = ({ folder, indent }) => {
320
321
  padding: '4px 8px',
321
322
  paddingLeft: indent * 16 + 8,
322
323
  cursor: 'pointer',
323
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 10, color: theme.textSecondary }, children: isExpanded ? '▼' : '▶' }), jsxRuntime.jsx("span", { style: { fontSize: 14, color: theme.folderColor }, children: "\uD83D\uDCC1" }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, fontWeight: 500 }, children: folder.name }), jsxRuntime.jsxs("span", { style: { fontSize: 10, color: theme.textSecondary }, children: ["(", filteredChildren.length, ")"] })] }), isExpanded &&
324
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: isExpanded ? 'chevron-down' : 'chevron-right', size: 10, color: theme.textSecondary }), jsxRuntime.jsx(ui.NiceIcon, { name: "folder", size: 14, color: theme.folderColor }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, fontWeight: 500 }, children: folder.name }), jsxRuntime.jsxs("span", { style: { fontSize: 10, color: theme.textSecondary }, children: ["(", filteredChildren.length, ")"] })] }), isExpanded &&
324
325
  filteredChildren.map((child, _i) => 'children' in child ? (jsxRuntime.jsx(FolderTreeItem, { folder: child, indent: indent + 1 }, child.path)) : (jsxRuntime.jsx(AssetTreeItem, { asset: child, indent: indent + 1 }, child.id)))] }));
325
326
  };
326
327
  /* ── Asset Grid View ──────────────────────────────────────────── */
@@ -366,7 +367,7 @@ const AssetGridView = () => {
366
367
  justifyContent: 'center',
367
368
  fontSize: 24,
368
369
  marginBottom: 8,
369
- }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsx("span", { style: {
370
+ }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsx("span", { style: {
370
371
  fontSize: 11,
371
372
  color: theme.textPrimary,
372
373
  textAlign: 'center',
@@ -416,7 +417,7 @@ const PackagesPanel = () => {
416
417
  marginBottom: 4,
417
418
  backgroundColor: theme.itemBackground,
418
419
  borderRadius: 6,
419
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: "\uD83D\uDCE6" }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, flex: 1 }, children: pkg.name }), jsxRuntime.jsx("span", { style: {
420
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, flex: 1 }, children: pkg.name }), jsxRuntime.jsx("span", { style: {
420
421
  padding: '2px 8px',
421
422
  fontSize: 10,
422
423
  backgroundColor: getSourceBadge(pkg.source),
@@ -469,14 +470,14 @@ const PreviewPanel = () => {
469
470
  gap: 12,
470
471
  padding: 16,
471
472
  borderBottom: `1px solid ${theme.border}`,
472
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 24 }, children: getAssetIcon(asset.type) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary }, children: asset.path })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_PREVIEW', asset: null }), style: {
473
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 24 }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary }, children: asset.path })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_PREVIEW', asset: null }), style: {
473
474
  padding: '4px 8px',
474
475
  fontSize: 14,
475
476
  backgroundColor: 'transparent',
476
477
  border: 'none',
477
478
  color: theme.textSecondary,
478
479
  cursor: 'pointer',
479
- }, children: "\u2715" })] }), jsxRuntime.jsxs("div", { style: { padding: 16 }, children: [jsxRuntime.jsx("div", { style: {
480
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "close", size: 14 }) })] }), jsxRuntime.jsxs("div", { style: { padding: 16 }, children: [jsxRuntime.jsx("div", { style: {
480
481
  width: '100%',
481
482
  height: 300,
482
483
  backgroundColor: 'rgba(0,0,0,0.3)',
@@ -486,7 +487,7 @@ const PreviewPanel = () => {
486
487
  justifyContent: 'center',
487
488
  fontSize: 48,
488
489
  marginBottom: 16,
489
- }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
490
+ }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
490
491
  padding: '4px 8px',
491
492
  fontSize: 11,
492
493
  color: theme.textSecondary,
@@ -536,7 +537,7 @@ const ImportProgressOverlay = () => {
536
537
  backgroundColor: theme.panelBackground,
537
538
  borderRadius: 12,
538
539
  padding: 24,
539
- }, children: [jsxRuntime.jsx("h3", { style: { margin: '0 0 16px', fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: progress.phase === 'complete' ? '✅ Import Complete' : '📥 Importing Assets' }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary, marginBottom: 8 }, children: progress.message }), progress.currentAsset && (jsxRuntime.jsx("div", { style: {
540
+ }, children: [jsxRuntime.jsxs("h3", { style: { margin: '0 0 16px', fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: progress.phase === 'complete' ? 'success' : 'download', size: 16 }), ' ', progress.phase === 'complete' ? 'Import Complete' : 'Importing Assets'] }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary, marginBottom: 8 }, children: progress.message }), progress.currentAsset && (jsxRuntime.jsx("div", { style: {
540
541
  fontSize: 11,
541
542
  color: theme.textPrimary,
542
543
  backgroundColor: 'rgba(0,0,0,0.2)',
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var ui = require('@nice2dev/ui');
4
5
  var React = require('react');
5
6
 
6
7
  const DEFAULT_THEME = {
@@ -112,29 +113,29 @@ function useBrowser() {
112
113
  function getAssetIcon(type) {
113
114
  switch (type) {
114
115
  case 'blueprint':
115
- return '🔵';
116
+ return 'code';
116
117
  case 'level':
117
- return '🗺️';
118
+ return 'map-pin';
118
119
  case 'material':
119
- return '🎨';
120
+ return 'palette';
120
121
  case 'texture':
121
- return '🖼️';
122
+ return 'image';
122
123
  case 'mesh':
123
- return '🔷';
124
+ return 'hexagon';
124
125
  case 'skeletal_mesh':
125
- return '🦴';
126
+ return 'user';
126
127
  case 'animation':
127
- return '🏃';
128
+ return 'play';
128
129
  case 'sound':
129
- return '🔊';
130
+ return 'volume';
130
131
  case 'particle':
131
- return '✨';
132
+ return 'star';
132
133
  case 'widget':
133
- return '📱';
134
+ return 'monitor';
134
135
  case 'data_asset':
135
- return '📊';
136
+ return 'table';
136
137
  default:
137
- return '📄';
138
+ return 'file';
138
139
  }
139
140
  }
140
141
  function formatFileSize(bytes) {
@@ -185,7 +186,7 @@ const BrowserHeader = () => {
185
186
  justifyContent: 'center',
186
187
  fontSize: 18,
187
188
  border: '1px solid rgba(255,255,255,0.1)',
188
- }, children: "\uD83C\uDFAE" }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["UE ", state.projectInfo.engineVersion, " \u2022 ", state.projectInfo.targetPlatforms.join(', ')] })) : ('Select a .uproject file') })] }), state.liveLinkStatus.connected && state.liveLinkStatus.hotReloadAvailable && (jsxRuntime.jsx("button", { onClick: triggerHotReload, disabled: state.liveLinkStatus.compiling, style: {
189
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "gamepad", size: 18 }) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["UE ", state.projectInfo.engineVersion, " \u2022 ", state.projectInfo.targetPlatforms.join(', ')] })) : ('Select a .uproject file') })] }), state.liveLinkStatus.connected && state.liveLinkStatus.hotReloadAvailable && (jsxRuntime.jsxs("button", { onClick: triggerHotReload, disabled: state.liveLinkStatus.compiling, style: {
189
190
  padding: '6px 12px',
190
191
  fontSize: 11,
191
192
  backgroundColor: state.liveLinkStatus.compiling ? theme.warning : theme.cppOrange,
@@ -193,7 +194,7 @@ const BrowserHeader = () => {
193
194
  borderRadius: 4,
194
195
  color: '#fff',
195
196
  cursor: state.liveLinkStatus.compiling ? 'not-allowed' : 'pointer',
196
- }, children: state.liveLinkStatus.compiling ? '⏳ Compiling...' : '🔥 Hot Reload' })), jsxRuntime.jsxs("div", { style: {
197
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: state.liveLinkStatus.compiling ? 'clock' : 'zap', size: 14 }), ' ', state.liveLinkStatus.compiling ? 'Compiling...' : 'Hot Reload'] })), jsxRuntime.jsxs("div", { style: {
197
198
  display: 'flex',
198
199
  alignItems: 'center',
199
200
  gap: 8,
@@ -272,35 +273,35 @@ const BrowserToolbar = () => {
272
273
  backgroundColor: 'rgba(0,0,0,0.2)',
273
274
  borderRadius: 4,
274
275
  overflow: 'hidden',
275
- }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tiles' }), style: {
276
+ }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tiles' }), "aria-label": "Tile view", style: {
276
277
  padding: '6px 10px',
277
278
  fontSize: 12,
278
279
  backgroundColor: state.viewMode === 'tiles' ? theme.accent : 'transparent',
279
280
  border: 'none',
280
281
  color: '#fff',
281
282
  cursor: 'pointer',
282
- }, children: "\uD83D\uDD32" }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'list' }), style: {
283
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "grid", size: 14 }) }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'list' }), "aria-label": "List view", style: {
283
284
  padding: '6px 10px',
284
285
  fontSize: 12,
285
286
  backgroundColor: state.viewMode === 'list' ? theme.accent : 'transparent',
286
287
  border: 'none',
287
288
  color: '#fff',
288
289
  cursor: 'pointer',
289
- }, children: "\uD83D\uDCCB" }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'columns' }), style: {
290
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "list", size: 14 }) }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'columns' }), "aria-label": "Column view", style: {
290
291
  padding: '6px 10px',
291
292
  fontSize: 12,
292
293
  backgroundColor: state.viewMode === 'columns' ? theme.accent : 'transparent',
293
294
  border: 'none',
294
295
  color: '#fff',
295
296
  cursor: 'pointer',
296
- }, children: "\uD83D\uDCD1" })] }), state.viewMode === 'tiles' && (jsxRuntime.jsxs("select", { value: state.tileSize, onChange: (e) => dispatch({ type: 'SET_TILE_SIZE', size: e.target.value }), style: {
297
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "columns", size: 14 }) })] }), state.viewMode === 'tiles' && (jsxRuntime.jsxs("select", { value: state.tileSize, onChange: (e) => dispatch({ type: 'SET_TILE_SIZE', size: e.target.value }), style: {
297
298
  padding: '6px 10px',
298
299
  fontSize: 12,
299
300
  backgroundColor: 'rgba(0,0,0,0.3)',
300
301
  border: `1px solid ${theme.border}`,
301
302
  borderRadius: 4,
302
303
  color: theme.textPrimary,
303
- }, children: [jsxRuntime.jsx("option", { value: "small", children: "Small" }), jsxRuntime.jsx("option", { value: "medium", children: "Medium" }), jsxRuntime.jsx("option", { value: "large", children: "Large" })] })), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsx("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importing, style: {
304
+ }, children: [jsxRuntime.jsx("option", { value: "small", children: "Small" }), jsxRuntime.jsx("option", { value: "medium", children: "Medium" }), jsxRuntime.jsx("option", { value: "large", children: "Large" })] })), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsxs("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importing, style: {
304
305
  padding: '8px 16px',
305
306
  fontSize: 12,
306
307
  fontWeight: 500,
@@ -310,17 +311,17 @@ const BrowserToolbar = () => {
310
311
  color: '#fff',
311
312
  cursor: state.selectedAssets.size > 0 && !state.importing ? 'pointer' : 'not-allowed',
312
313
  opacity: state.selectedAssets.size > 0 && !state.importing ? 1 : 0.5,
313
- }, children: state.importing ? `⏳ ${state.importProgress}%` : '📥 Import Selected' })] }));
314
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: state.importing ? 'clock' : 'download', size: 14 }), ' ', state.importing ? `${state.importProgress}%` : 'Import Selected'] })] }));
314
315
  };
315
316
  /* ── Tab Bar ─────────────────────────────────────────────────── */
316
317
  const TabBar = () => {
317
318
  const { state, dispatch, theme } = useBrowser();
318
319
  const tabs = [
319
- { id: 'content', label: 'Content', icon: '📁' },
320
- { id: 'levels', label: 'Levels', icon: '🗺️' },
321
- { id: 'plugins', label: 'Plugins', icon: '🔌' },
322
- { id: 'modules', label: 'Modules', icon: '📦' },
323
- { id: 'settings', label: 'Settings', icon: '⚙️' },
320
+ { id: 'content', label: 'Content', icon: 'folder' },
321
+ { id: 'levels', label: 'Levels', icon: 'map-pin' },
322
+ { id: 'plugins', label: 'Plugins', icon: 'plug' },
323
+ { id: 'modules', label: 'Modules', icon: 'box' },
324
+ { id: 'settings', label: 'Settings', icon: 'settings' },
324
325
  ];
325
326
  return (jsxRuntime.jsx("div", { style: {
326
327
  display: 'flex',
@@ -335,7 +336,7 @@ const TabBar = () => {
335
336
  borderBottom: state.tab === tab.id ? `2px solid ${theme.accent}` : '2px solid transparent',
336
337
  color: state.tab === tab.id ? theme.textPrimary : theme.textSecondary,
337
338
  cursor: 'pointer',
338
- }, children: [tab.icon, " ", tab.label] }, tab.id))) }));
339
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: tab.icon, size: 14 }), " ", tab.label] }, tab.id))) }));
339
340
  };
340
341
  /* ── Asset Tile ───────────────────────────────────────────────── */
341
342
  const AssetTile = ({ asset, size, }) => {
@@ -371,7 +372,7 @@ const AssetTile = ({ asset, size, }) => {
371
372
  backgroundSize: 'cover',
372
373
  backgroundPosition: 'center',
373
374
  borderRadius: 4,
374
- } })) : (getAssetIcon(asset.type)), jsxRuntime.jsx("div", { style: {
375
+ } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })), jsxRuntime.jsx("div", { style: {
375
376
  position: 'absolute',
376
377
  bottom: 4,
377
378
  right: 4,
@@ -434,7 +435,7 @@ const AssetListItem = ({ asset, isSelected, }) => {
434
435
  height: 6,
435
436
  borderRadius: 2,
436
437
  backgroundColor: getAssetColor(asset.type, theme),
437
- } }), jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: getAssetIcon(asset.type) }), jsxRuntime.jsx("span", { style: { flex: 1, fontSize: 12, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("span", { style: { fontSize: 11, color: theme.textSecondary }, children: asset.className }), jsxRuntime.jsx("span", { style: { fontSize: 10, color: theme.textSecondary }, children: formatFileSize(asset.size) })] }));
438
+ } }), jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 14 }), jsxRuntime.jsx("span", { style: { flex: 1, fontSize: 12, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("span", { style: { fontSize: 11, color: theme.textSecondary }, children: asset.className }), jsxRuntime.jsx("span", { style: { fontSize: 10, color: theme.textSecondary }, children: formatFileSize(asset.size) })] }));
438
439
  };
439
440
  /* ── Levels Panel ─────────────────────────────────────────────── */
440
441
  const LevelsPanel = () => {
@@ -450,7 +451,7 @@ const LevelsPanel = () => {
450
451
  marginBottom: 4,
451
452
  backgroundColor: theme.itemBackground,
452
453
  borderRadius: 4,
453
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 20 }, children: "\uD83D\uDDFA\uFE0F" }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontWeight: 500 }, children: map.name }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: map.path })] }), map.persistent && (jsxRuntime.jsx("span", { style: {
454
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "map-pin", size: 20 }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontWeight: 500 }, children: map.name }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: map.path })] }), map.persistent && (jsxRuntime.jsx("span", { style: {
454
455
  padding: '2px 8px',
455
456
  fontSize: 10,
456
457
  backgroundColor: theme.accent,
@@ -529,7 +530,7 @@ const ModulesPanel = () => {
529
530
  marginBottom: 4,
530
531
  backgroundColor: theme.itemBackground,
531
532
  borderRadius: 4,
532
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: "\uD83D\uDCE6" }), jsxRuntime.jsx("span", { style: { flex: 1, fontSize: 13, color: theme.textPrimary, fontWeight: 500 }, children: module.name }), jsxRuntime.jsx("span", { style: {
533
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), jsxRuntime.jsx("span", { style: { flex: 1, fontSize: 13, color: theme.textPrimary, fontWeight: 500 }, children: module.name }), jsxRuntime.jsx("span", { style: {
533
534
  padding: '2px 8px',
534
535
  fontSize: 10,
535
536
  backgroundColor: getModuleTypeColor(module.type),
@@ -35,13 +35,27 @@ class GameConfig {
35
35
  get settings() {
36
36
  return this._settings;
37
37
  }
38
- get width() { return this._settings.width; }
39
- get height() { return this._settings.height; }
40
- get targetFps() { return this._settings.targetFps; }
41
- get maxPlayers() { return this._settings.maxPlayers; }
42
- get physics() { return this._settings.physics; }
43
- get audio() { return this._settings.audio; }
44
- get rendering() { return this._settings.rendering; }
38
+ get width() {
39
+ return this._settings.width;
40
+ }
41
+ get height() {
42
+ return this._settings.height;
43
+ }
44
+ get targetFps() {
45
+ return this._settings.targetFps;
46
+ }
47
+ get maxPlayers() {
48
+ return this._settings.maxPlayers;
49
+ }
50
+ get physics() {
51
+ return this._settings.physics;
52
+ }
53
+ get audio() {
54
+ return this._settings.audio;
55
+ }
56
+ get rendering() {
57
+ return this._settings.rendering;
58
+ }
45
59
  update(overrides) {
46
60
  this._settings = mergeSettings(this._settings, overrides);
47
61
  }
@@ -123,16 +123,16 @@ function getEngineError(code, context) {
123
123
  }
124
124
  /** Format an engine error for console output */
125
125
  function formatEngineError(err) {
126
- const icon = err.severity === 'error' ? '❌' : err.severity === 'warning' ? '⚠️' : 'ℹ️';
127
- const lines = [`${icon} [Nice2Dev ${err.code}] ${err.message}`];
126
+ const label = err.severity === 'error' ? 'Error' : err.severity === 'warning' ? 'Warning' : 'Info';
127
+ const lines = [`${label}: [Nice2Dev ${err.code}] ${err.message}`];
128
128
  if (err.suggestion) {
129
- lines.push(` 💡 ${err.suggestion}`);
129
+ lines.push(` Tip: ${err.suggestion}`);
130
130
  }
131
131
  if (err.docsSection) {
132
- lines.push(` 📖 Docs: https://nice2dev.com/docs/game-engine/${err.docsSection}`);
132
+ lines.push(` Docs: https://nice2dev.com/docs/game-engine/${err.docsSection}`);
133
133
  }
134
134
  if (err.context) {
135
- lines.push(` 📋 Context: ${JSON.stringify(err.context)}`);
135
+ lines.push(` Context: ${JSON.stringify(err.context)}`);
136
136
  }
137
137
  return lines.join('\n');
138
138
  }
@@ -702,7 +702,7 @@ const DialogueBox = ({ text, characterName, portrait, emotion = 'neutral', textE
702
702
  opacity: isComplete ? 1 : 0.5,
703
703
  fontSize: '12px',
704
704
  },
705
- }, isComplete ? '▼ Click to continue' : '...'),
705
+ }, isComplete ? 'Click to continue' : '...'),
706
706
  ]),
707
707
  ]);
708
708
  };
@@ -538,7 +538,7 @@ class AssetBrowser {
538
538
  id: 'favorites',
539
539
  name: 'Favorites',
540
540
  description: 'Your favorite assets',
541
- icon: '⭐',
541
+ icon: 'star',
542
542
  color: '#f9e2af',
543
543
  assetIds: [],
544
544
  createdAt: Date.now(),
@@ -549,7 +549,7 @@ class AssetBrowser {
549
549
  id: 'recent',
550
550
  name: 'Recent',
551
551
  description: 'Recently used assets',
552
- icon: '🕐',
552
+ icon: 'clock',
553
553
  color: '#89b4fa',
554
554
  assetIds: [],
555
555
  createdAt: Date.now(),
@@ -560,7 +560,7 @@ class AssetBrowser {
560
560
  id: 'unused',
561
561
  name: 'Unused',
562
562
  description: 'Assets not referenced by any scene',
563
- icon: '📦',
563
+ icon: 'box',
564
564
  color: '#cdd6f4',
565
565
  assetIds: [],
566
566
  createdAt: Date.now(),
@@ -995,7 +995,7 @@ class AssetBrowser {
995
995
  id: `collection_${Date.now()}`,
996
996
  name,
997
997
  description,
998
- icon: '📁',
998
+ icon: 'folder',
999
999
  color: '#cdd6f4',
1000
1000
  assetIds: [],
1001
1001
  createdAt: Date.now(),
@@ -1144,30 +1144,31 @@ class AssetBrowser {
1144
1144
  }
1145
1145
  return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
1146
1146
  }
1147
+ /** NiceIcon name for an asset type. */
1147
1148
  getAssetTypeIcon(type) {
1148
1149
  const icons = {
1149
- image: '🖼️',
1150
- sprite: '🎨',
1151
- spritesheet: '📊',
1152
- tilemap: '🗺️',
1153
- audio: '🔊',
1154
- music: '🎵',
1155
- sfx: '💥',
1156
- model: '🎲',
1157
- material: '🎨',
1158
- shader: '✨',
1159
- script: '📜',
1160
- scene: '🎬',
1161
- prefab: '📦',
1162
- animation: '🎞️',
1163
- font: '🔤',
1164
- particle: '💫',
1165
- terrain: '🏔️',
1166
- video: '🎥',
1167
- json: '📋',
1168
- other: '📄',
1150
+ image: 'image',
1151
+ sprite: 'palette',
1152
+ spritesheet: 'grid',
1153
+ tilemap: 'map-pin',
1154
+ audio: 'volume',
1155
+ music: 'music',
1156
+ sfx: 'zap',
1157
+ model: 'box',
1158
+ material: 'palette',
1159
+ shader: 'wand',
1160
+ script: 'code',
1161
+ scene: 'video',
1162
+ prefab: 'box',
1163
+ animation: 'video',
1164
+ font: 'type',
1165
+ particle: 'star',
1166
+ terrain: 'mountain',
1167
+ video: 'video',
1168
+ json: 'file',
1169
+ other: 'file',
1169
1170
  };
1170
- return icons[type] ?? '📄';
1171
+ return icons[type] ?? 'file';
1171
1172
  }
1172
1173
  }
1173
1174
  // ============================================================