@nice2dev/game-engine 0.1.0

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 (519) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +105 -0
  4. package/dist/cjs/accessibility/Accessibility.js +162 -0
  5. package/dist/cjs/accessibility/Accessibility.js.map +1 -0
  6. package/dist/cjs/ai/AI.js +321 -0
  7. package/dist/cjs/ai/AI.js.map +1 -0
  8. package/dist/cjs/animation/Animation.js +233 -0
  9. package/dist/cjs/animation/Animation.js.map +1 -0
  10. package/dist/cjs/audio/AudioAdvanced.js +262 -0
  11. package/dist/cjs/audio/AudioAdvanced.js.map +1 -0
  12. package/dist/cjs/audio/AudioManager.js +248 -0
  13. package/dist/cjs/audio/AudioManager.js.map +1 -0
  14. package/dist/cjs/core/EventBus.js +63 -0
  15. package/dist/cjs/core/EventBus.js.map +1 -0
  16. package/dist/cjs/core/GameClock.js +70 -0
  17. package/dist/cjs/core/GameClock.js.map +1 -0
  18. package/dist/cjs/core/GameConfig.js +86 -0
  19. package/dist/cjs/core/GameConfig.js.map +1 -0
  20. package/dist/cjs/core/GameLoop.js +93 -0
  21. package/dist/cjs/core/GameLoop.js.map +1 -0
  22. package/dist/cjs/core/ServiceLocator.js +73 -0
  23. package/dist/cjs/core/ServiceLocator.js.map +1 -0
  24. package/dist/cjs/core/Validation.js +119 -0
  25. package/dist/cjs/core/Validation.js.map +1 -0
  26. package/dist/cjs/core/math.js +116 -0
  27. package/dist/cjs/core/math.js.map +1 -0
  28. package/dist/cjs/devtools/DevTools.js +560 -0
  29. package/dist/cjs/devtools/DevTools.js.map +1 -0
  30. package/dist/cjs/devtools/DeveloperExperience.js +562 -0
  31. package/dist/cjs/devtools/DeveloperExperience.js.map +1 -0
  32. package/dist/cjs/docs/DocGenerator.js +357 -0
  33. package/dist/cjs/docs/DocGenerator.js.map +1 -0
  34. package/dist/cjs/ecs/World.js +280 -0
  35. package/dist/cjs/ecs/World.js.map +1 -0
  36. package/dist/cjs/editor/AdvancedEditor.js +149 -0
  37. package/dist/cjs/editor/AdvancedEditor.js.map +1 -0
  38. package/dist/cjs/editor/AssetManager.js +190 -0
  39. package/dist/cjs/editor/AssetManager.js.map +1 -0
  40. package/dist/cjs/editor/DebugTools.js +187 -0
  41. package/dist/cjs/editor/DebugTools.js.map +1 -0
  42. package/dist/cjs/editor/NiceGameEditor.js +361 -0
  43. package/dist/cjs/editor/NiceGameEditor.js.map +1 -0
  44. package/dist/cjs/editor/SceneEditor.js +223 -0
  45. package/dist/cjs/editor/SceneEditor.js.map +1 -0
  46. package/dist/cjs/engine/NiceGameEngine.js +172 -0
  47. package/dist/cjs/engine/NiceGameEngine.js.map +1 -0
  48. package/dist/cjs/enterprise/Enterprise.js +258 -0
  49. package/dist/cjs/enterprise/Enterprise.js.map +1 -0
  50. package/dist/cjs/i18n/I18n.js +634 -0
  51. package/dist/cjs/i18n/I18n.js.map +1 -0
  52. package/dist/cjs/i18n/useTranslation.js +100 -0
  53. package/dist/cjs/i18n/useTranslation.js.map +1 -0
  54. package/dist/cjs/index.js +526 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/input/GamepadNavigation.js +181 -0
  57. package/dist/cjs/input/GamepadNavigation.js.map +1 -0
  58. package/dist/cjs/input/InputManager.js +404 -0
  59. package/dist/cjs/input/InputManager.js.map +1 -0
  60. package/dist/cjs/input/useGamepads.js +86 -0
  61. package/dist/cjs/input/useGamepads.js.map +1 -0
  62. package/dist/cjs/kids/KidMode.js +670 -0
  63. package/dist/cjs/kids/KidMode.js.map +1 -0
  64. package/dist/cjs/kids/KidTools.js +533 -0
  65. package/dist/cjs/kids/KidTools.js.map +1 -0
  66. package/dist/cjs/monetization/Monetization.js +197 -0
  67. package/dist/cjs/monetization/Monetization.js.map +1 -0
  68. package/dist/cjs/multiplayer/LocalMultiplayer.js +288 -0
  69. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -0
  70. package/dist/cjs/multiplayer/MiniGameTypes.js +70 -0
  71. package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -0
  72. package/dist/cjs/network/MultiplayerTransport.js +109 -0
  73. package/dist/cjs/network/MultiplayerTransport.js.map +1 -0
  74. package/dist/cjs/network/Networking.js +569 -0
  75. package/dist/cjs/network/Networking.js.map +1 -0
  76. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js +32 -0
  77. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  78. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +51 -0
  79. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  80. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +46 -0
  81. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  82. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +18 -0
  83. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  84. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js +145 -0
  85. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  86. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +161 -0
  87. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  88. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +56 -0
  89. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  90. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +11 -0
  91. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  92. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +52 -0
  93. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  94. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +576 -0
  95. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  96. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +956 -0
  97. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  98. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +149 -0
  99. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  100. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  101. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  102. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  103. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  104. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  105. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  106. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +124 -0
  107. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  108. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js +17 -0
  109. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  110. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +188 -0
  111. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  112. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +199 -0
  113. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  114. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +108 -0
  115. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  116. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js +38 -0
  117. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  118. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +24 -0
  119. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  120. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js +264 -0
  121. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  122. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +160 -0
  123. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  124. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +88 -0
  125. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  126. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js +50 -0
  127. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  128. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +6 -0
  129. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  130. package/dist/cjs/pathfinding/Pathfinding.js +255 -0
  131. package/dist/cjs/pathfinding/Pathfinding.js.map +1 -0
  132. package/dist/cjs/performance/BenchmarkSuite.js +318 -0
  133. package/dist/cjs/performance/BenchmarkSuite.js.map +1 -0
  134. package/dist/cjs/performance/Performance.js +180 -0
  135. package/dist/cjs/performance/Performance.js.map +1 -0
  136. package/dist/cjs/performance/PerformanceAdvanced.js +628 -0
  137. package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -0
  138. package/dist/cjs/physics/PhysicsAdvanced.js +432 -0
  139. package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -0
  140. package/dist/cjs/physics/PhysicsEngine2D.js +445 -0
  141. package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -0
  142. package/dist/cjs/plugins/PluginSDK.js +488 -0
  143. package/dist/cjs/plugins/PluginSDK.js.map +1 -0
  144. package/dist/cjs/plugins/PluginTestKit.js +368 -0
  145. package/dist/cjs/plugins/PluginTestKit.js.map +1 -0
  146. package/dist/cjs/procedural/Procedural.js +288 -0
  147. package/dist/cjs/procedural/Procedural.js.map +1 -0
  148. package/dist/cjs/procedural/WorldBuilding.js +246 -0
  149. package/dist/cjs/procedural/WorldBuilding.js.map +1 -0
  150. package/dist/cjs/release/MobileExport.js +149 -0
  151. package/dist/cjs/release/MobileExport.js.map +1 -0
  152. package/dist/cjs/release/Release.js +151 -0
  153. package/dist/cjs/release/Release.js.map +1 -0
  154. package/dist/cjs/rendering/Camera2D.js +129 -0
  155. package/dist/cjs/rendering/Camera2D.js.map +1 -0
  156. package/dist/cjs/rendering/Renderer2D.js +337 -0
  157. package/dist/cjs/rendering/Renderer2D.js.map +1 -0
  158. package/dist/cjs/runtime3d/Runtime3D.js +381 -0
  159. package/dist/cjs/runtime3d/Runtime3D.js.map +1 -0
  160. package/dist/cjs/runtime3d/SceneEditor3D.js +316 -0
  161. package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -0
  162. package/dist/cjs/scene/SceneManager.js +186 -0
  163. package/dist/cjs/scene/SceneManager.js.map +1 -0
  164. package/dist/cjs/scripting/NodeGraph.js +573 -0
  165. package/dist/cjs/scripting/NodeGraph.js.map +1 -0
  166. package/dist/cjs/social/Social.js +91 -0
  167. package/dist/cjs/social/Social.js.map +1 -0
  168. package/dist/cjs/templates/ActionTemplates.js +229 -0
  169. package/dist/cjs/templates/ActionTemplates.js.map +1 -0
  170. package/dist/cjs/templates/PartyTemplates.js +221 -0
  171. package/dist/cjs/templates/PartyTemplates.js.map +1 -0
  172. package/dist/cjs/templates/PuzzleTemplates.js +283 -0
  173. package/dist/cjs/templates/PuzzleTemplates.js.map +1 -0
  174. package/dist/cjs/templates/RPGTemplates.js +209 -0
  175. package/dist/cjs/templates/RPGTemplates.js.map +1 -0
  176. package/dist/cjs/templates/SportsTemplates.js +272 -0
  177. package/dist/cjs/templates/SportsTemplates.js.map +1 -0
  178. package/dist/cjs/templates/StrategyTemplates.js +173 -0
  179. package/dist/cjs/templates/StrategyTemplates.js.map +1 -0
  180. package/dist/cjs/templates/WaveDefense.js +470 -0
  181. package/dist/cjs/templates/WaveDefense.js.map +1 -0
  182. package/dist/cjs/tilemap/Tilemap.js +208 -0
  183. package/dist/cjs/tilemap/Tilemap.js.map +1 -0
  184. package/dist/cjs/tutorials/TutorialBranching.js +392 -0
  185. package/dist/cjs/tutorials/TutorialBranching.js.map +1 -0
  186. package/dist/cjs/tutorials/TutorialEngine.js +903 -0
  187. package/dist/cjs/tutorials/TutorialEngine.js.map +1 -0
  188. package/dist/cjs/tutorials/TutorialOverlay.js +602 -0
  189. package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -0
  190. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +816 -0
  191. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  192. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +741 -0
  193. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  194. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +786 -0
  195. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  196. package/dist/cjs/ui/GameUI.js +312 -0
  197. package/dist/cjs/ui/GameUI.js.map +1 -0
  198. package/dist/cjs/xr/ARVR.js +197 -0
  199. package/dist/cjs/xr/ARVR.js.map +1 -0
  200. package/dist/esm/accessibility/Accessibility.js +153 -0
  201. package/dist/esm/accessibility/Accessibility.js.map +1 -0
  202. package/dist/esm/ai/AI.js +302 -0
  203. package/dist/esm/ai/AI.js.map +1 -0
  204. package/dist/esm/animation/Animation.js +227 -0
  205. package/dist/esm/animation/Animation.js.map +1 -0
  206. package/dist/esm/audio/AudioAdvanced.js +243 -0
  207. package/dist/esm/audio/AudioAdvanced.js.map +1 -0
  208. package/dist/esm/audio/AudioManager.js +246 -0
  209. package/dist/esm/audio/AudioManager.js.map +1 -0
  210. package/dist/esm/core/EventBus.js +61 -0
  211. package/dist/esm/core/EventBus.js.map +1 -0
  212. package/dist/esm/core/GameClock.js +68 -0
  213. package/dist/esm/core/GameClock.js.map +1 -0
  214. package/dist/esm/core/GameConfig.js +80 -0
  215. package/dist/esm/core/GameConfig.js.map +1 -0
  216. package/dist/esm/core/GameLoop.js +91 -0
  217. package/dist/esm/core/GameLoop.js.map +1 -0
  218. package/dist/esm/core/ServiceLocator.js +70 -0
  219. package/dist/esm/core/ServiceLocator.js.map +1 -0
  220. package/dist/esm/core/Validation.js +108 -0
  221. package/dist/esm/core/Validation.js.map +1 -0
  222. package/dist/esm/core/math.js +114 -0
  223. package/dist/esm/core/math.js.map +1 -0
  224. package/dist/esm/devtools/DevTools.js +555 -0
  225. package/dist/esm/devtools/DevTools.js.map +1 -0
  226. package/dist/esm/devtools/DeveloperExperience.js +547 -0
  227. package/dist/esm/devtools/DeveloperExperience.js.map +1 -0
  228. package/dist/esm/docs/DocGenerator.js +353 -0
  229. package/dist/esm/docs/DocGenerator.js.map +1 -0
  230. package/dist/esm/ecs/World.js +276 -0
  231. package/dist/esm/ecs/World.js.map +1 -0
  232. package/dist/esm/editor/AdvancedEditor.js +141 -0
  233. package/dist/esm/editor/AdvancedEditor.js.map +1 -0
  234. package/dist/esm/editor/AssetManager.js +188 -0
  235. package/dist/esm/editor/AssetManager.js.map +1 -0
  236. package/dist/esm/editor/DebugTools.js +179 -0
  237. package/dist/esm/editor/DebugTools.js.map +1 -0
  238. package/dist/esm/editor/NiceGameEditor.js +355 -0
  239. package/dist/esm/editor/NiceGameEditor.js.map +1 -0
  240. package/dist/esm/editor/SceneEditor.js +209 -0
  241. package/dist/esm/editor/SceneEditor.js.map +1 -0
  242. package/dist/esm/engine/NiceGameEngine.js +170 -0
  243. package/dist/esm/engine/NiceGameEngine.js.map +1 -0
  244. package/dist/esm/enterprise/Enterprise.js +246 -0
  245. package/dist/esm/enterprise/Enterprise.js.map +1 -0
  246. package/dist/esm/i18n/I18n.js +622 -0
  247. package/dist/esm/i18n/I18n.js.map +1 -0
  248. package/dist/esm/i18n/useTranslation.js +95 -0
  249. package/dist/esm/i18n/useTranslation.js.map +1 -0
  250. package/dist/esm/index.js +71 -0
  251. package/dist/esm/index.js.map +1 -0
  252. package/dist/esm/input/GamepadNavigation.js +178 -0
  253. package/dist/esm/input/GamepadNavigation.js.map +1 -0
  254. package/dist/esm/input/InputManager.js +399 -0
  255. package/dist/esm/input/InputManager.js.map +1 -0
  256. package/dist/esm/input/useGamepads.js +83 -0
  257. package/dist/esm/input/useGamepads.js.map +1 -0
  258. package/dist/esm/kids/KidMode.js +663 -0
  259. package/dist/esm/kids/KidMode.js.map +1 -0
  260. package/dist/esm/kids/KidTools.js +529 -0
  261. package/dist/esm/kids/KidTools.js.map +1 -0
  262. package/dist/esm/monetization/Monetization.js +186 -0
  263. package/dist/esm/monetization/Monetization.js.map +1 -0
  264. package/dist/esm/multiplayer/LocalMultiplayer.js +284 -0
  265. package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -0
  266. package/dist/esm/multiplayer/MiniGameTypes.js +60 -0
  267. package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -0
  268. package/dist/esm/network/MultiplayerTransport.js +106 -0
  269. package/dist/esm/network/MultiplayerTransport.js.map +1 -0
  270. package/dist/esm/network/Networking.js +561 -0
  271. package/dist/esm/network/Networking.js.map +1 -0
  272. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js +30 -0
  273. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  274. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +49 -0
  275. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  276. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +44 -0
  277. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  278. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +16 -0
  279. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  280. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js +136 -0
  281. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  282. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +159 -0
  283. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  284. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +54 -0
  285. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  286. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +9 -0
  287. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  288. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +49 -0
  289. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  290. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +573 -0
  291. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  292. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +954 -0
  293. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  294. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +147 -0
  295. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  296. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  297. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  298. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  299. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  300. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  301. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  302. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +122 -0
  303. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  304. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js +15 -0
  305. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  306. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +186 -0
  307. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  308. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +197 -0
  309. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  310. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +106 -0
  311. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  312. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js +36 -0
  313. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  314. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +22 -0
  315. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  316. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js +249 -0
  317. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  318. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +158 -0
  319. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  320. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +86 -0
  321. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  322. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js +13 -0
  323. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  324. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +4 -0
  325. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  326. package/dist/esm/pathfinding/Pathfinding.js +250 -0
  327. package/dist/esm/pathfinding/Pathfinding.js.map +1 -0
  328. package/dist/esm/performance/BenchmarkSuite.js +315 -0
  329. package/dist/esm/performance/BenchmarkSuite.js.map +1 -0
  330. package/dist/esm/performance/Performance.js +171 -0
  331. package/dist/esm/performance/Performance.js.map +1 -0
  332. package/dist/esm/performance/PerformanceAdvanced.js +620 -0
  333. package/dist/esm/performance/PerformanceAdvanced.js.map +1 -0
  334. package/dist/esm/physics/PhysicsAdvanced.js +417 -0
  335. package/dist/esm/physics/PhysicsAdvanced.js.map +1 -0
  336. package/dist/esm/physics/PhysicsEngine2D.js +442 -0
  337. package/dist/esm/physics/PhysicsEngine2D.js.map +1 -0
  338. package/dist/esm/plugins/PluginSDK.js +484 -0
  339. package/dist/esm/plugins/PluginSDK.js.map +1 -0
  340. package/dist/esm/plugins/PluginTestKit.js +359 -0
  341. package/dist/esm/plugins/PluginTestKit.js.map +1 -0
  342. package/dist/esm/procedural/Procedural.js +282 -0
  343. package/dist/esm/procedural/Procedural.js.map +1 -0
  344. package/dist/esm/procedural/WorldBuilding.js +225 -0
  345. package/dist/esm/procedural/WorldBuilding.js.map +1 -0
  346. package/dist/esm/release/MobileExport.js +142 -0
  347. package/dist/esm/release/MobileExport.js.map +1 -0
  348. package/dist/esm/release/Release.js +141 -0
  349. package/dist/esm/release/Release.js.map +1 -0
  350. package/dist/esm/rendering/Camera2D.js +127 -0
  351. package/dist/esm/rendering/Camera2D.js.map +1 -0
  352. package/dist/esm/rendering/Renderer2D.js +334 -0
  353. package/dist/esm/rendering/Renderer2D.js.map +1 -0
  354. package/dist/esm/runtime3d/Runtime3D.js +371 -0
  355. package/dist/esm/runtime3d/Runtime3D.js.map +1 -0
  356. package/dist/esm/runtime3d/SceneEditor3D.js +299 -0
  357. package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -0
  358. package/dist/esm/scene/SceneManager.js +184 -0
  359. package/dist/esm/scene/SceneManager.js.map +1 -0
  360. package/dist/esm/scripting/NodeGraph.js +568 -0
  361. package/dist/esm/scripting/NodeGraph.js.map +1 -0
  362. package/dist/esm/social/Social.js +85 -0
  363. package/dist/esm/social/Social.js.map +1 -0
  364. package/dist/esm/templates/ActionTemplates.js +217 -0
  365. package/dist/esm/templates/ActionTemplates.js.map +1 -0
  366. package/dist/esm/templates/PartyTemplates.js +204 -0
  367. package/dist/esm/templates/PartyTemplates.js.map +1 -0
  368. package/dist/esm/templates/PuzzleTemplates.js +267 -0
  369. package/dist/esm/templates/PuzzleTemplates.js.map +1 -0
  370. package/dist/esm/templates/RPGTemplates.js +196 -0
  371. package/dist/esm/templates/RPGTemplates.js.map +1 -0
  372. package/dist/esm/templates/SportsTemplates.js +257 -0
  373. package/dist/esm/templates/SportsTemplates.js.map +1 -0
  374. package/dist/esm/templates/StrategyTemplates.js +157 -0
  375. package/dist/esm/templates/StrategyTemplates.js.map +1 -0
  376. package/dist/esm/templates/WaveDefense.js +467 -0
  377. package/dist/esm/templates/WaveDefense.js.map +1 -0
  378. package/dist/esm/tilemap/Tilemap.js +205 -0
  379. package/dist/esm/tilemap/Tilemap.js.map +1 -0
  380. package/dist/esm/tutorials/TutorialBranching.js +388 -0
  381. package/dist/esm/tutorials/TutorialBranching.js.map +1 -0
  382. package/dist/esm/tutorials/TutorialEngine.js +897 -0
  383. package/dist/esm/tutorials/TutorialEngine.js.map +1 -0
  384. package/dist/esm/tutorials/TutorialOverlay.js +600 -0
  385. package/dist/esm/tutorials/TutorialOverlay.js.map +1 -0
  386. package/dist/esm/tutorials/content/Tutorials_T05_T08.js +810 -0
  387. package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  388. package/dist/esm/tutorials/content/Tutorials_T09_T11.js +736 -0
  389. package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  390. package/dist/esm/tutorials/content/Tutorials_T12_T15.js +780 -0
  391. package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  392. package/dist/esm/ui/GameUI.js +310 -0
  393. package/dist/esm/ui/GameUI.js.map +1 -0
  394. package/dist/esm/xr/ARVR.js +182 -0
  395. package/dist/esm/xr/ARVR.js.map +1 -0
  396. package/dist/types/__tests__/setup.d.ts +1 -0
  397. package/dist/types/accessibility/Accessibility.d.ts +82 -0
  398. package/dist/types/accessibility/index.d.ts +1 -0
  399. package/dist/types/ai/AI.d.ts +140 -0
  400. package/dist/types/ai/index.d.ts +1 -0
  401. package/dist/types/animation/Animation.d.ts +90 -0
  402. package/dist/types/animation/index.d.ts +1 -0
  403. package/dist/types/audio/AudioAdvanced.d.ts +190 -0
  404. package/dist/types/audio/AudioManager.d.ts +55 -0
  405. package/dist/types/audio/index.d.ts +1 -0
  406. package/dist/types/community/Community.d.ts +112 -0
  407. package/dist/types/community/index.d.ts +1 -0
  408. package/dist/types/core/EventBus.d.ts +16 -0
  409. package/dist/types/core/GameClock.d.ts +29 -0
  410. package/dist/types/core/GameConfig.d.ts +20 -0
  411. package/dist/types/core/GameLoop.d.ts +32 -0
  412. package/dist/types/core/ServiceLocator.d.ts +36 -0
  413. package/dist/types/core/TypeSafety.d.ts +190 -0
  414. package/dist/types/core/Validation.d.ts +24 -0
  415. package/dist/types/core/index.d.ts +7 -0
  416. package/dist/types/core/math.d.ts +32 -0
  417. package/dist/types/core/types.d.ts +130 -0
  418. package/dist/types/devtools/AssetStore.d.ts +133 -0
  419. package/dist/types/devtools/DevTools.d.ts +217 -0
  420. package/dist/types/devtools/DeveloperExperience.d.ts +123 -0
  421. package/dist/types/devtools/index.d.ts +3 -0
  422. package/dist/types/docs/APIPlayground.d.ts +26 -0
  423. package/dist/types/docs/Cookbook.d.ts +18 -0
  424. package/dist/types/docs/DocGenerator.d.ts +83 -0
  425. package/dist/types/docs/Guides.d.ts +18 -0
  426. package/dist/types/docs/index.d.ts +4 -0
  427. package/dist/types/ecs/World.d.ts +219 -0
  428. package/dist/types/ecs/index.d.ts +1 -0
  429. package/dist/types/editor/AdvancedEditor.d.ts +267 -0
  430. package/dist/types/editor/AssetManager.d.ts +45 -0
  431. package/dist/types/editor/DebugTools.d.ts +74 -0
  432. package/dist/types/editor/NiceGameEditor.d.ts +115 -0
  433. package/dist/types/editor/SceneEditor.d.ts +37 -0
  434. package/dist/types/editor/index.d.ts +8 -0
  435. package/dist/types/engine/NiceGameEngine.d.ts +53 -0
  436. package/dist/types/engine/index.d.ts +2 -0
  437. package/dist/types/enterprise/Enterprise.d.ts +217 -0
  438. package/dist/types/enterprise/index.d.ts +1 -0
  439. package/dist/types/epic/index.d.ts +10 -0
  440. package/dist/types/i18n/I18n.d.ts +107 -0
  441. package/dist/types/i18n/index.d.ts +2 -0
  442. package/dist/types/i18n/useTranslation.d.ts +74 -0
  443. package/dist/types/index.d.ts +127 -0
  444. package/dist/types/input/GamepadNavigation.d.ts +34 -0
  445. package/dist/types/input/InputManager.d.ts +77 -0
  446. package/dist/types/input/index.d.ts +3 -0
  447. package/dist/types/input/useGamepads.d.ts +39 -0
  448. package/dist/types/kids/KidMode.d.ts +207 -0
  449. package/dist/types/kids/KidTools.d.ts +135 -0
  450. package/dist/types/kids/index.d.ts +2 -0
  451. package/dist/types/legendary/index.d.ts +57 -0
  452. package/dist/types/monetization/Monetization.d.ts +224 -0
  453. package/dist/types/monetization/index.d.ts +1 -0
  454. package/dist/types/multiplayer/LocalMultiplayer.d.ts +61 -0
  455. package/dist/types/multiplayer/MiniGameTypes.d.ts +70 -0
  456. package/dist/types/multiplayer/index.d.ts +3 -0
  457. package/dist/types/network/MultiplayerTransport.d.ts +71 -0
  458. package/dist/types/network/Networking.d.ts +199 -0
  459. package/dist/types/network/index.d.ts +2 -0
  460. package/dist/types/pathfinding/Pathfinding.d.ts +42 -0
  461. package/dist/types/pathfinding/index.d.ts +1 -0
  462. package/dist/types/performance/AssetCompression.d.ts +137 -0
  463. package/dist/types/performance/BenchmarkSuite.d.ts +99 -0
  464. package/dist/types/performance/Performance.d.ts +87 -0
  465. package/dist/types/performance/PerformanceAdvanced.d.ts +220 -0
  466. package/dist/types/performance/WASMModules.d.ts +65 -0
  467. package/dist/types/performance/WebGPUCompute.d.ts +164 -0
  468. package/dist/types/performance/index.d.ts +1 -0
  469. package/dist/types/physics/PhysicsAdvanced.d.ts +148 -0
  470. package/dist/types/physics/PhysicsEngine2D.d.ts +66 -0
  471. package/dist/types/physics/index.d.ts +1 -0
  472. package/dist/types/plugins/PluginSDK.d.ts +134 -0
  473. package/dist/types/plugins/PluginTestKit.d.ts +107 -0
  474. package/dist/types/plugins/index.d.ts +2 -0
  475. package/dist/types/procedural/Procedural.d.ts +90 -0
  476. package/dist/types/procedural/WorldBuilding.d.ts +200 -0
  477. package/dist/types/procedural/index.d.ts +2 -0
  478. package/dist/types/release/MobileExport.d.ts +218 -0
  479. package/dist/types/release/Release.d.ts +81 -0
  480. package/dist/types/release/index.d.ts +1 -0
  481. package/dist/types/rendering/Camera2D.d.ts +39 -0
  482. package/dist/types/rendering/Renderer2D.d.ts +41 -0
  483. package/dist/types/rendering/index.d.ts +2 -0
  484. package/dist/types/runtime3d/Runtime3D.d.ts +259 -0
  485. package/dist/types/runtime3d/SceneEditor3D.d.ts +186 -0
  486. package/dist/types/runtime3d/index.d.ts +2 -0
  487. package/dist/types/scene/SceneManager.d.ts +59 -0
  488. package/dist/types/scene/index.d.ts +2 -0
  489. package/dist/types/scripting/NodeGraph.d.ts +84 -0
  490. package/dist/types/scripting/index.d.ts +2 -0
  491. package/dist/types/social/Social.d.ts +245 -0
  492. package/dist/types/social/index.d.ts +1 -0
  493. package/dist/types/templates/ActionTemplates.d.ts +173 -0
  494. package/dist/types/templates/PartyTemplates.d.ts +195 -0
  495. package/dist/types/templates/PuzzleTemplates.d.ts +127 -0
  496. package/dist/types/templates/RPGTemplates.d.ts +210 -0
  497. package/dist/types/templates/SportsTemplates.d.ts +162 -0
  498. package/dist/types/templates/StrategyTemplates.d.ts +264 -0
  499. package/dist/types/templates/WaveDefense.d.ts +92 -0
  500. package/dist/types/templates/index.d.ts +2 -0
  501. package/dist/types/tilemap/Tilemap.d.ts +66 -0
  502. package/dist/types/tilemap/index.d.ts +1 -0
  503. package/dist/types/tutorials/TutorialBranching.d.ts +132 -0
  504. package/dist/types/tutorials/TutorialEditor.d.ts +43 -0
  505. package/dist/types/tutorials/TutorialEngine.d.ts +237 -0
  506. package/dist/types/tutorials/TutorialOverlay.d.ts +79 -0
  507. package/dist/types/tutorials/VoiceNarration.d.ts +75 -0
  508. package/dist/types/tutorials/content/Tutorials_T04.d.ts +3 -0
  509. package/dist/types/tutorials/content/Tutorials_T05_T08.d.ts +6 -0
  510. package/dist/types/tutorials/content/Tutorials_T09_T11.d.ts +5 -0
  511. package/dist/types/tutorials/content/Tutorials_T12_T15.d.ts +6 -0
  512. package/dist/types/tutorials/content/UITutorials.d.ts +14 -0
  513. package/dist/types/tutorials/content/index.d.ts +5 -0
  514. package/dist/types/tutorials/index.d.ts +6 -0
  515. package/dist/types/ui/GameUI.d.ts +97 -0
  516. package/dist/types/ui/index.d.ts +2 -0
  517. package/dist/types/xr/ARVR.d.ts +252 -0
  518. package/dist/types/xr/index.d.ts +1 -0
  519. package/package.json +88 -0
@@ -0,0 +1,622 @@
1
+ import { EventBus } from '../core/EventBus.js';
2
+
3
+ /* ────────────────────────────────────────────────────────────────
4
+ I18nManager — LEGENDARY internationalization engine
5
+
6
+ Features:
7
+ • Namespace support: t('editor:tools.select')
8
+ • Interpolation: t('hello', { name: 'Jan' })
9
+ • Pluralization: t('items', { count: 5 })
10
+ • Lazy loading per module
11
+ • RTL detection
12
+ • Date/time/number formatting
13
+ • 20 languages supported
14
+ • React hook: useTranslation()
15
+ ──────────────────────────────────────────────────────────────── */
16
+ /** All supported locales as array */
17
+ const SUPPORTED_LOCALES = [
18
+ 'pl', 'en', 'de', 'fr', 'es',
19
+ 'it', 'pt', 'nl', 'sv', 'no',
20
+ 'da', 'fi', 'cs', 'sk', 'hu',
21
+ 'ro', 'bg', 'uk', 'ja', 'ko',
22
+ ];
23
+ /** Human-readable locale names */
24
+ const LOCALE_NAMES = {
25
+ pl: 'Polski',
26
+ en: 'English',
27
+ de: 'Deutsch',
28
+ fr: 'Français',
29
+ es: 'Español',
30
+ it: 'Italiano',
31
+ pt: 'Português',
32
+ nl: 'Nederlands',
33
+ sv: 'Svenska',
34
+ no: 'Norsk',
35
+ da: 'Dansk',
36
+ fi: 'Suomi',
37
+ cs: 'Čeština',
38
+ sk: 'Slovenčina',
39
+ hu: 'Magyar',
40
+ ro: 'Română',
41
+ bg: 'Български',
42
+ uk: 'Українська',
43
+ ja: '日本語',
44
+ ko: '한국어',
45
+ };
46
+ /** RTL locales (none currently, but extensible for ar, he) */
47
+ const RTL_LOCALES = new Set([]);
48
+ /* ── Plural Rules ─────────────────────────────────────────────── */
49
+ /** CLDR-based plural rules for supported languages */
50
+ const PLURAL_RULES = {
51
+ // Germanic / Romance (en, de, nl, sv, no, da, fi, it, pt, es, fr, hu, ro)
52
+ oneOther: {
53
+ select(n) {
54
+ return n === 1 ? 'one' : 'other';
55
+ },
56
+ },
57
+ // Slavic (pl, cs, sk, uk, bg)
58
+ slavic: {
59
+ select(n) {
60
+ if (n === 1)
61
+ return 'one';
62
+ const mod10 = n % 10;
63
+ const mod100 = n % 100;
64
+ if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14))
65
+ return 'few';
66
+ if (n !== 1 && mod10 >= 0 && mod10 <= 1)
67
+ return 'many';
68
+ if (mod10 >= 5 && mod10 <= 9)
69
+ return 'many';
70
+ if (mod100 >= 12 && mod100 <= 14)
71
+ return 'many';
72
+ return 'other';
73
+ },
74
+ },
75
+ // Japanese, Korean (no plural forms)
76
+ eastAsian: {
77
+ select(_n) {
78
+ return 'other';
79
+ },
80
+ },
81
+ // French (0 and 1 are singular)
82
+ french: {
83
+ select(n) {
84
+ return n === 0 || n === 1 ? 'one' : 'other';
85
+ },
86
+ },
87
+ };
88
+ const LOCALE_PLURAL_MAP = {
89
+ en: PLURAL_RULES.oneOther,
90
+ de: PLURAL_RULES.oneOther,
91
+ nl: PLURAL_RULES.oneOther,
92
+ sv: PLURAL_RULES.oneOther,
93
+ no: PLURAL_RULES.oneOther,
94
+ da: PLURAL_RULES.oneOther,
95
+ fi: PLURAL_RULES.oneOther,
96
+ it: PLURAL_RULES.oneOther,
97
+ pt: PLURAL_RULES.oneOther,
98
+ es: PLURAL_RULES.oneOther,
99
+ hu: PLURAL_RULES.oneOther,
100
+ ro: PLURAL_RULES.oneOther,
101
+ fr: PLURAL_RULES.french,
102
+ pl: PLURAL_RULES.slavic,
103
+ cs: PLURAL_RULES.slavic,
104
+ sk: PLURAL_RULES.slavic,
105
+ uk: PLURAL_RULES.slavic,
106
+ bg: PLURAL_RULES.slavic,
107
+ ja: PLURAL_RULES.eastAsian,
108
+ ko: PLURAL_RULES.eastAsian,
109
+ };
110
+ /* ── I18nManager ──────────────────────────────────────────────── */
111
+ const DEFAULT_I18N_CONFIG = {
112
+ defaultLocale: 'en',
113
+ fallbackLocale: 'en',
114
+ debug: false,
115
+ interpolationPrefix: '{{',
116
+ interpolationSuffix: '}}',
117
+ pluralSeparator: '_',
118
+ namespaceSeparator: ':',
119
+ keySeparator: '.',
120
+ };
121
+ class I18nManager {
122
+ constructor(config) {
123
+ this.namespaces = new Map();
124
+ this.loadedNamespaces = new Set();
125
+ this.events = new EventBus();
126
+ this.config = { ...DEFAULT_I18N_CONFIG, ...config };
127
+ this.locale = this.config.defaultLocale;
128
+ }
129
+ /* ── Locale Management ──────────────────────────────────────── */
130
+ getLocale() {
131
+ return this.locale;
132
+ }
133
+ setLocale(locale) {
134
+ if (!SUPPORTED_LOCALES.includes(locale)) {
135
+ if (this.config.debug) {
136
+ // eslint-disable-next-line no-console
137
+ console.warn(`[I18n] Unsupported locale: "${locale}". Falling back to "${this.config.fallbackLocale}".`);
138
+ }
139
+ return;
140
+ }
141
+ const prev = this.locale;
142
+ this.locale = locale;
143
+ this.events.emit('locale:changed', { from: prev, to: locale });
144
+ }
145
+ isRTL() {
146
+ return RTL_LOCALES.has(this.locale);
147
+ }
148
+ /** Auto-detect locale from browser settings */
149
+ detectLocale() {
150
+ if (typeof navigator === 'undefined')
151
+ return this.config.defaultLocale;
152
+ const browserLang = navigator.language.split('-')[0].toLowerCase();
153
+ const match = SUPPORTED_LOCALES.find(l => l === browserLang);
154
+ return match !== null && match !== void 0 ? match : this.config.defaultLocale;
155
+ }
156
+ /* ── Translation Loading ────────────────────────────────────── */
157
+ /**
158
+ * Add translations for a namespace + locale.
159
+ * Can be called multiple times (merges).
160
+ */
161
+ addTranslations(namespace, locale, translations) {
162
+ var _a;
163
+ let nsMap = this.namespaces.get(namespace);
164
+ if (!nsMap) {
165
+ nsMap = new Map();
166
+ this.namespaces.set(namespace, nsMap);
167
+ }
168
+ const existing = (_a = nsMap.get(locale)) !== null && _a !== void 0 ? _a : {};
169
+ nsMap.set(locale, deepMergeDict(existing, translations));
170
+ this.loadedNamespaces.add(`${namespace}:${locale}`);
171
+ }
172
+ /** Check if translations are loaded for namespace + locale */
173
+ isLoaded(namespace, locale) {
174
+ return this.loadedNamespaces.has(`${namespace}:${locale !== null && locale !== void 0 ? locale : this.locale}`);
175
+ }
176
+ /** Load translations from async source (e.g., dynamic import) */
177
+ async loadNamespace(namespace, locale, loader) {
178
+ const key = `${namespace}:${locale}`;
179
+ if (this.loadedNamespaces.has(key))
180
+ return;
181
+ const dict = await loader();
182
+ this.addTranslations(namespace, locale, dict);
183
+ this.events.emit('namespace:loaded', { namespace, locale });
184
+ }
185
+ /* ── Translation ────────────────────────────────────────────── */
186
+ /**
187
+ * Translate a key.
188
+ *
189
+ * @param fullKey - Key with optional namespace: 'ns:path.to.key' or just 'path.to.key'
190
+ * @param values - Interpolation values (including `count` for pluralization)
191
+ * @returns Translated string or fallback
192
+ *
193
+ * @example
194
+ * i18n.t('editor:tools.select') // → 'Select'
195
+ * i18n.t('game:score', { score: 100 }) // → 'Score: 100'
196
+ * i18n.t('items', { count: 5 }) // → '5 items' (pluralized)
197
+ */
198
+ t(fullKey, values) {
199
+ const { ns, key } = this.parseKey(fullKey);
200
+ const count = values === null || values === void 0 ? void 0 : values.count;
201
+ // Try current locale
202
+ let result = this.resolve(ns, this.locale, key, typeof count === 'number' ? count : undefined);
203
+ // Fallback to default locale
204
+ if (result === undefined && this.locale !== this.config.fallbackLocale) {
205
+ result = this.resolve(ns, this.config.fallbackLocale, key, typeof count === 'number' ? count : undefined);
206
+ }
207
+ // Missing key handler
208
+ if (result === undefined) {
209
+ if (this.config.missingKeyHandler) {
210
+ return this.config.missingKeyHandler(this.locale, ns, key);
211
+ }
212
+ if (this.config.debug) {
213
+ // eslint-disable-next-line no-console
214
+ console.warn(`[I18n] Missing translation: "${fullKey}" (${this.locale})`);
215
+ }
216
+ return fullKey;
217
+ }
218
+ // Interpolation
219
+ if (values) {
220
+ return this.interpolate(result, values);
221
+ }
222
+ return result;
223
+ }
224
+ /** Get plural category for current locale */
225
+ getPluralCategory(count) {
226
+ const rule = LOCALE_PLURAL_MAP[this.locale];
227
+ return rule.select(count);
228
+ }
229
+ /* ── Formatting ─────────────────────────────────────────────── */
230
+ /** Format number using locale conventions */
231
+ formatNumber(value, options) {
232
+ return new Intl.NumberFormat(this.locale, options).format(value);
233
+ }
234
+ /** Format date using locale conventions */
235
+ formatDate(date, options) {
236
+ return new Intl.DateTimeFormat(this.locale, options).format(date);
237
+ }
238
+ /** Format relative time (e.g., "2 days ago") — requires ES2020+ runtime */
239
+ formatRelativeTime(value, unit) {
240
+ const Ctor = Intl.RelativeTimeFormat;
241
+ if (!Ctor)
242
+ return `${value} ${unit}`;
243
+ return new Ctor(this.locale, { numeric: 'auto' }).format(value, unit);
244
+ }
245
+ /* ── Internals ──────────────────────────────────────────────── */
246
+ parseKey(fullKey) {
247
+ const sepIdx = fullKey.indexOf(this.config.namespaceSeparator);
248
+ if (sepIdx > 0) {
249
+ return {
250
+ ns: fullKey.slice(0, sepIdx),
251
+ key: fullKey.slice(sepIdx + 1),
252
+ };
253
+ }
254
+ return { ns: 'common', key: fullKey };
255
+ }
256
+ resolve(ns, locale, key, count) {
257
+ const nsMap = this.namespaces.get(ns);
258
+ if (!nsMap)
259
+ return undefined;
260
+ const dict = nsMap.get(locale);
261
+ if (!dict)
262
+ return undefined;
263
+ // With pluralization
264
+ if (count !== undefined) {
265
+ const category = LOCALE_PLURAL_MAP[locale].select(count);
266
+ const pluralKey = `${key}${this.config.pluralSeparator}${category}`;
267
+ const pluralResult = lookupKey(dict, pluralKey, this.config.keySeparator);
268
+ if (typeof pluralResult === 'string')
269
+ return pluralResult;
270
+ // Fallback to _other
271
+ const otherKey = `${key}${this.config.pluralSeparator}other`;
272
+ const otherResult = lookupKey(dict, otherKey, this.config.keySeparator);
273
+ if (typeof otherResult === 'string')
274
+ return otherResult;
275
+ }
276
+ const result = lookupKey(dict, key, this.config.keySeparator);
277
+ return typeof result === 'string' ? result : undefined;
278
+ }
279
+ interpolate(text, values) {
280
+ const { interpolationPrefix: pre, interpolationSuffix: suf } = this.config;
281
+ let result = text;
282
+ for (const [k, v] of Object.entries(values)) {
283
+ const placeholder = `${pre}${k}${suf}`;
284
+ // Replace all occurrences without regex
285
+ while (result.includes(placeholder)) {
286
+ result = result.replace(placeholder, String(v));
287
+ }
288
+ }
289
+ return result;
290
+ }
291
+ /* ── Export / Inspect ───────────────────────────────────────── */
292
+ /** Get all loaded namespaces */
293
+ getLoadedNamespaces() {
294
+ return Array.from(this.namespaces.keys());
295
+ }
296
+ /** Get all translations for a namespace + locale (for debugging) */
297
+ getTranslations(namespace, locale) {
298
+ const nsMap = this.namespaces.get(namespace);
299
+ return nsMap === null || nsMap === void 0 ? void 0 : nsMap.get(locale !== null && locale !== void 0 ? locale : this.locale);
300
+ }
301
+ /** Get count of missing translations for a locale compared to fallback */
302
+ getMissingKeys(namespace, locale) {
303
+ var _a, _b;
304
+ const fallbackDict = (_a = this.namespaces.get(namespace)) === null || _a === void 0 ? void 0 : _a.get(this.config.fallbackLocale);
305
+ const targetDict = (_b = this.namespaces.get(namespace)) === null || _b === void 0 ? void 0 : _b.get(locale);
306
+ if (!fallbackDict)
307
+ return [];
308
+ const missing = [];
309
+ collectKeys(fallbackDict, '', (key) => {
310
+ if (!targetDict || lookupKey(targetDict, key, this.config.keySeparator) === undefined) {
311
+ missing.push(key);
312
+ }
313
+ });
314
+ return missing;
315
+ }
316
+ dispose() {
317
+ this.namespaces.clear();
318
+ this.loadedNamespaces.clear();
319
+ }
320
+ }
321
+ /* ── Helpers ──────────────────────────────────────────────────── */
322
+ function lookupKey(dict, key, separator) {
323
+ const parts = key.split(separator);
324
+ let current = dict;
325
+ for (const part of parts) {
326
+ if (typeof current !== 'object' || current === null)
327
+ return undefined;
328
+ current = current[part];
329
+ }
330
+ return current;
331
+ }
332
+ function deepMergeDict(target, source) {
333
+ const result = { ...target };
334
+ for (const key of Object.keys(source)) {
335
+ const sv = source[key];
336
+ const tv = target[key];
337
+ if (typeof sv === 'object' && sv !== null && typeof tv === 'object' && tv !== null) {
338
+ result[key] = deepMergeDict(tv, sv);
339
+ }
340
+ else {
341
+ result[key] = sv;
342
+ }
343
+ }
344
+ return result;
345
+ }
346
+ function collectKeys(dict, prefix, callback) {
347
+ for (const [key, value] of Object.entries(dict)) {
348
+ const fullKey = prefix ? `${prefix}.${key}` : key;
349
+ if (typeof value === 'string') {
350
+ callback(fullKey);
351
+ }
352
+ else {
353
+ collectKeys(value, fullKey, callback);
354
+ }
355
+ }
356
+ }
357
+ /* ── Singleton convenience ────────────────────────────────────── */
358
+ let _defaultManager;
359
+ /** Get or create the default I18nManager instance */
360
+ function getI18n() {
361
+ if (!_defaultManager) {
362
+ _defaultManager = new I18nManager();
363
+ }
364
+ return _defaultManager;
365
+ }
366
+ /** Initialize the default I18nManager with config */
367
+ function initI18n(config) {
368
+ _defaultManager = new I18nManager(config);
369
+ return _defaultManager;
370
+ }
371
+ /** Convenience shorthand for getI18n().t() */
372
+ function t(key, values) {
373
+ return getI18n().t(key, values);
374
+ }
375
+ /* ── Built-in engine translations ─────────────────────────────── */
376
+ /** Core engine UI strings in English */
377
+ const ENGINE_TRANSLATIONS_EN = {
378
+ editor: {
379
+ tools: {
380
+ select: 'Select',
381
+ move: 'Move',
382
+ rotate: 'Rotate',
383
+ scale: 'Scale',
384
+ pan: 'Pan',
385
+ },
386
+ panels: {
387
+ hierarchy: 'Hierarchy',
388
+ inspector: 'Inspector',
389
+ assets: 'Assets',
390
+ console: 'Console',
391
+ viewport: 'Viewport',
392
+ },
393
+ actions: {
394
+ save: 'Save',
395
+ undo: 'Undo',
396
+ redo: 'Redo',
397
+ copy: 'Copy',
398
+ paste: 'Paste',
399
+ delete: 'Delete',
400
+ duplicate: 'Duplicate',
401
+ play: 'Play',
402
+ pause: 'Pause',
403
+ stop: 'Stop',
404
+ },
405
+ messages: {
406
+ noSelection: 'No selection',
407
+ unsavedChanges: 'You have unsaved changes. Save before closing?',
408
+ projectSaved: 'Project saved successfully!',
409
+ assetImported: '{{count}} asset(s) imported',
410
+ },
411
+ },
412
+ game: {
413
+ menu: {
414
+ start: 'Start Game',
415
+ resume: 'Resume',
416
+ restart: 'Restart',
417
+ quit: 'Quit',
418
+ settings: 'Settings',
419
+ controls: 'Controls',
420
+ },
421
+ hud: {
422
+ score: 'Score: {{score}}',
423
+ lives: 'Lives: {{lives}}',
424
+ level: 'Level {{level}}',
425
+ time: 'Time: {{time}}',
426
+ wave: 'Wave {{wave}}',
427
+ },
428
+ items_one: '{{count}} item',
429
+ items_other: '{{count}} items',
430
+ players_one: '{{count}} player',
431
+ players_other: '{{count}} players',
432
+ },
433
+ accessibility: {
434
+ colorblind: {
435
+ protanopia: 'Protanopia',
436
+ deuteranopia: 'Deuteranopia',
437
+ tritanopia: 'Tritanopia',
438
+ achromatopsia: 'Achromatopsia',
439
+ },
440
+ difficulty: {
441
+ easy: 'Easy',
442
+ medium: 'Medium',
443
+ hard: 'Hard',
444
+ custom: 'Custom',
445
+ },
446
+ settings: {
447
+ highContrast: 'High Contrast',
448
+ screenReader: 'Screen Reader',
449
+ subtitles: 'Subtitles',
450
+ fontSize: 'Font Size',
451
+ },
452
+ },
453
+ };
454
+ /** Core engine UI strings in Polish */
455
+ const ENGINE_TRANSLATIONS_PL = {
456
+ editor: {
457
+ tools: {
458
+ select: 'Zaznacz',
459
+ move: 'Przesuń',
460
+ rotate: 'Obróć',
461
+ scale: 'Skaluj',
462
+ pan: 'Przesuń widok',
463
+ },
464
+ panels: {
465
+ hierarchy: 'Hierarchia',
466
+ inspector: 'Inspektor',
467
+ assets: 'Zasoby',
468
+ console: 'Konsola',
469
+ viewport: 'Widok',
470
+ },
471
+ actions: {
472
+ save: 'Zapisz',
473
+ undo: 'Cofnij',
474
+ redo: 'Ponów',
475
+ copy: 'Kopiuj',
476
+ paste: 'Wklej',
477
+ delete: 'Usuń',
478
+ duplicate: 'Duplikuj',
479
+ play: 'Graj',
480
+ pause: 'Pauza',
481
+ stop: 'Stop',
482
+ },
483
+ messages: {
484
+ noSelection: 'Brak zaznaczenia',
485
+ unsavedChanges: 'Masz niezapisane zmiany. Zapisać przed zamknięciem?',
486
+ projectSaved: 'Projekt zapisany!',
487
+ assetImported: 'Zaimportowano {{count}} zasób/zasobów',
488
+ },
489
+ },
490
+ game: {
491
+ menu: {
492
+ start: 'Rozpocznij grę',
493
+ resume: 'Wznów',
494
+ restart: 'Od nowa',
495
+ quit: 'Wyjdź',
496
+ settings: 'Ustawienia',
497
+ controls: 'Sterowanie',
498
+ },
499
+ hud: {
500
+ score: 'Wynik: {{score}}',
501
+ lives: 'Życia: {{lives}}',
502
+ level: 'Poziom {{level}}',
503
+ time: 'Czas: {{time}}',
504
+ wave: 'Fala {{wave}}',
505
+ },
506
+ items_one: '{{count}} element',
507
+ items_few: '{{count}} elementy',
508
+ items_many: '{{count}} elementów',
509
+ items_other: '{{count}} elementów',
510
+ players_one: '{{count}} gracz',
511
+ players_few: '{{count}} graczy',
512
+ players_many: '{{count}} graczy',
513
+ players_other: '{{count}} graczy',
514
+ },
515
+ accessibility: {
516
+ colorblind: {
517
+ protanopia: 'Protanopia',
518
+ deuteranopia: 'Deuteranopia',
519
+ tritanopia: 'Tritanopia',
520
+ achromatopsia: 'Achromatopsja',
521
+ },
522
+ difficulty: {
523
+ easy: 'Łatwy',
524
+ medium: 'Średni',
525
+ hard: 'Trudny',
526
+ custom: 'Własny',
527
+ },
528
+ settings: {
529
+ highContrast: 'Wysoki kontrast',
530
+ screenReader: 'Czytnik ekranowy',
531
+ subtitles: 'Napisy',
532
+ fontSize: 'Rozmiar czcionki',
533
+ },
534
+ },
535
+ };
536
+ /** Core engine UI strings in German */
537
+ const ENGINE_TRANSLATIONS_DE = {
538
+ editor: {
539
+ tools: {
540
+ select: 'Auswählen',
541
+ move: 'Verschieben',
542
+ rotate: 'Drehen',
543
+ scale: 'Skalieren',
544
+ pan: 'Schwenken',
545
+ },
546
+ panels: {
547
+ hierarchy: 'Hierarchie',
548
+ inspector: 'Inspektor',
549
+ assets: 'Ressourcen',
550
+ console: 'Konsole',
551
+ viewport: 'Ansicht',
552
+ },
553
+ actions: {
554
+ save: 'Speichern',
555
+ undo: 'Rückgängig',
556
+ redo: 'Wiederholen',
557
+ copy: 'Kopieren',
558
+ paste: 'Einfügen',
559
+ delete: 'Löschen',
560
+ duplicate: 'Duplizieren',
561
+ play: 'Spielen',
562
+ pause: 'Pause',
563
+ stop: 'Stoppen',
564
+ },
565
+ messages: {
566
+ noSelection: 'Keine Auswahl',
567
+ unsavedChanges: 'Sie haben ungespeicherte Änderungen. Vor dem Schließen speichern?',
568
+ projectSaved: 'Projekt erfolgreich gespeichert!',
569
+ assetImported: '{{count}} Ressource(n) importiert',
570
+ },
571
+ },
572
+ game: {
573
+ menu: {
574
+ start: 'Spiel starten',
575
+ resume: 'Fortsetzen',
576
+ restart: 'Neustart',
577
+ quit: 'Beenden',
578
+ settings: 'Einstellungen',
579
+ controls: 'Steuerung',
580
+ },
581
+ hud: {
582
+ score: 'Punkte: {{score}}',
583
+ lives: 'Leben: {{lives}}',
584
+ level: 'Level {{level}}',
585
+ time: 'Zeit: {{time}}',
586
+ wave: 'Welle {{wave}}',
587
+ },
588
+ items_one: '{{count}} Element',
589
+ items_other: '{{count}} Elemente',
590
+ players_one: '{{count}} Spieler',
591
+ players_other: '{{count}} Spieler',
592
+ },
593
+ accessibility: {
594
+ colorblind: {
595
+ protanopia: 'Protanopie',
596
+ deuteranopia: 'Deuteranopie',
597
+ tritanopia: 'Tritanopie',
598
+ achromatopsia: 'Achromatopsie',
599
+ },
600
+ difficulty: {
601
+ easy: 'Leicht',
602
+ medium: 'Mittel',
603
+ hard: 'Schwer',
604
+ custom: 'Benutzerdefiniert',
605
+ },
606
+ settings: {
607
+ highContrast: 'Hoher Kontrast',
608
+ screenReader: 'Bildschirmleser',
609
+ subtitles: 'Untertitel',
610
+ fontSize: 'Schriftgröße',
611
+ },
612
+ },
613
+ };
614
+ /** Register built-in translations on an I18nManager instance */
615
+ function registerEngineTranslations(i18n) {
616
+ i18n.addTranslations('engine', 'en', ENGINE_TRANSLATIONS_EN);
617
+ i18n.addTranslations('engine', 'pl', ENGINE_TRANSLATIONS_PL);
618
+ i18n.addTranslations('engine', 'de', ENGINE_TRANSLATIONS_DE);
619
+ }
620
+
621
+ export { ENGINE_TRANSLATIONS_DE, ENGINE_TRANSLATIONS_EN, ENGINE_TRANSLATIONS_PL, I18nManager, LOCALE_NAMES, RTL_LOCALES, SUPPORTED_LOCALES, getI18n, initI18n, registerEngineTranslations, t };
622
+ //# sourceMappingURL=I18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"I18n.js","sources":["../../../src/i18n/I18n.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}