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