@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,132 @@
1
+ import { EventBus } from '../core/EventBus';
2
+ import type { TutorialProgress } from './TutorialEngine';
3
+ import type { Locale } from '../i18n/I18n';
4
+ export type BranchConditionType = 'quiz-correct' | 'quiz-incorrect' | 'quiz-answer' | 'code-valid' | 'code-invalid' | 'always';
5
+ export interface BranchCondition {
6
+ type: BranchConditionType;
7
+ /** For 'quiz-answer': the specific answer ID that triggers this branch. */
8
+ answerId?: string;
9
+ }
10
+ export interface BranchRule {
11
+ /** Condition that triggers this branch. */
12
+ condition: BranchCondition;
13
+ /** Step ID to jump to if condition is met. */
14
+ targetStepId: string;
15
+ }
16
+ export interface BranchingStep {
17
+ /** The step ID this branching config applies to. */
18
+ stepId: string;
19
+ /** Ordered list of branching rules. First matching rule wins. */
20
+ rules: BranchRule[];
21
+ /** Fallback step ID if no rules match (defaults to next sequential step). */
22
+ fallbackStepId?: string;
23
+ }
24
+ export interface BranchingConfig {
25
+ /** Tutorial ID this branching config belongs to. */
26
+ tutorialId: string;
27
+ /** Map of step ID → branching rules. */
28
+ branches: BranchingStep[];
29
+ }
30
+ export declare class BranchingEngine {
31
+ private configs;
32
+ /** Register branching configuration for a tutorial. */
33
+ register(config: BranchingConfig): void;
34
+ /** Unregister branching for a tutorial. */
35
+ unregister(tutorialId: string): void;
36
+ /** Check if a step has branching rules. */
37
+ hasBranching(tutorialId: string, stepId: string): boolean;
38
+ /**
39
+ * Resolve the next step ID based on branching rules and context.
40
+ * Returns null if no branching is defined (use default sequential advance).
41
+ */
42
+ resolveNextStep(tutorialId: string, currentStepId: string, context: BranchContext): string | null;
43
+ private evaluateCondition;
44
+ }
45
+ export interface BranchContext {
46
+ /** Whether the quiz answer was correct (for quiz steps). */
47
+ quizCorrect?: boolean;
48
+ /** The specific quiz answer ID chosen. */
49
+ quizAnswerId?: string;
50
+ /** Whether the code validation passed (for code steps). */
51
+ codeValid?: boolean;
52
+ }
53
+ export type AchievementTier = 'bronze' | 'silver' | 'gold' | 'platinum' | 'diamond';
54
+ export interface AchievementCondition {
55
+ type: 'tutorial-complete' | 'tutorials-count' | 'category-complete' | 'streak' | 'quiz-perfect' | 'custom';
56
+ /** For tutorial-complete: tutorial ID. */
57
+ tutorialId?: string;
58
+ /** For tutorials-count: minimum number. */
59
+ count?: number;
60
+ /** For category-complete: tutorial category. */
61
+ category?: string;
62
+ /** For streak: consecutive days. */
63
+ streakDays?: number;
64
+ /** For custom: custom condition ID evaluated externally. */
65
+ customId?: string;
66
+ }
67
+ export interface AchievementDefinition {
68
+ id: string;
69
+ /** Localized title. */
70
+ title: Record<string, string>;
71
+ /** Localized description. */
72
+ description: Record<string, string>;
73
+ /** Emoji icon. */
74
+ icon: string;
75
+ /** Tier (visual style). */
76
+ tier: AchievementTier;
77
+ /** XP points awarded. */
78
+ xp: number;
79
+ /** Condition to unlock. */
80
+ condition: AchievementCondition;
81
+ /** Whether this is hidden until unlocked. */
82
+ hidden?: boolean;
83
+ }
84
+ export interface AchievementProgress {
85
+ achievementId: string;
86
+ unlocked: boolean;
87
+ unlockedAt?: number;
88
+ /** Progress toward the goal (0-1). */
89
+ progress: number;
90
+ }
91
+ export declare class AchievementEngine {
92
+ private readonly persistToStorage;
93
+ readonly events: EventBus;
94
+ private definitions;
95
+ private playerProgress;
96
+ private customEvaluators;
97
+ private readonly storageKey;
98
+ constructor(persistToStorage?: boolean);
99
+ /** Register an achievement definition. */
100
+ registerAchievement(def: AchievementDefinition): void;
101
+ /** Register multiple achievements. */
102
+ registerAchievements(defs: AchievementDefinition[]): void;
103
+ /** Register a custom evaluator for custom conditions. */
104
+ registerCustomEvaluator(customId: string, evaluator: () => {
105
+ met: boolean;
106
+ progress: number;
107
+ }): void;
108
+ /**
109
+ * Evaluate all achievements against current tutorial progress.
110
+ * Returns newly unlocked achievement IDs.
111
+ */
112
+ evaluate(tutorialProgress: Map<string, TutorialProgress>, streakDays?: number): string[];
113
+ private evaluateCondition;
114
+ /** Get all achievement definitions. */
115
+ getAllAchievements(): AchievementDefinition[];
116
+ /** Get unlocked achievements. */
117
+ getUnlocked(): AchievementDefinition[];
118
+ /** Get progress for a specific achievement. */
119
+ getProgress(achievementId: string): AchievementProgress | undefined;
120
+ /** Total XP from unlocked achievements. */
121
+ getTotalXP(): number;
122
+ /** Get visible achievements (not hidden, or hidden but unlocked). */
123
+ getVisible(locale?: Locale): Array<AchievementDefinition & {
124
+ unlocked: boolean;
125
+ progress: number;
126
+ }>;
127
+ /** Reset all progress. */
128
+ reset(): void;
129
+ private save;
130
+ private load;
131
+ }
132
+ export declare const BUILT_IN_ACHIEVEMENTS: AchievementDefinition[];
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import type { TutorialStepType, TutorialDefinition } from './TutorialEngine';
3
+ export interface TutorialEditorStep {
4
+ id: string;
5
+ type: TutorialStepType;
6
+ title: string;
7
+ content: string;
8
+ highlight?: string;
9
+ code?: string;
10
+ codeLanguage?: string;
11
+ quizOptions?: {
12
+ text: string;
13
+ correct: boolean;
14
+ }[];
15
+ validationHint?: string;
16
+ videoUrl?: string;
17
+ duration?: number;
18
+ }
19
+ export interface TutorialEditorState {
20
+ definition: Partial<TutorialDefinition>;
21
+ steps: TutorialEditorStep[];
22
+ selectedStepIndex: number;
23
+ previewMode: boolean;
24
+ dirty: boolean;
25
+ }
26
+ export interface TutorialEditorProps {
27
+ initial?: TutorialDefinition;
28
+ onSave?: (definition: TutorialDefinition) => void;
29
+ onExport?: (json: string) => void;
30
+ }
31
+ export declare function useTutorialEditor(initial?: TutorialDefinition): {
32
+ state: TutorialEditorState;
33
+ addStep: (type: TutorialStepType) => void;
34
+ removeStep: (index: number) => void;
35
+ moveStep: (fromIndex: number, toIndex: number) => void;
36
+ updateStep: (index: number, updates: Partial<TutorialEditorStep>) => void;
37
+ updateDefinition: (updates: Partial<TutorialDefinition>) => void;
38
+ selectStep: (index: number) => void;
39
+ togglePreview: () => void;
40
+ exportJSON: () => string;
41
+ importJSON: (json: string) => void;
42
+ };
43
+ export declare const NiceTutorialEditor: React.FC<TutorialEditorProps>;
@@ -0,0 +1,237 @@
1
+ import { EventBus } from '../core/EventBus';
2
+ import type { Locale, InterpolationValues } from '../i18n/I18n';
3
+ import { I18nManager } from '../i18n/I18n';
4
+ /** Step types in a tutorial */
5
+ export type TutorialStepType = 'text' | 'code' | 'highlight' | 'interactive' | 'quiz' | 'checkpoint' | 'video';
6
+ /** Difficulty levels */
7
+ export type TutorialDifficulty = 'beginner' | 'intermediate' | 'advanced' | 'expert';
8
+ /** Category of tutorial */
9
+ export type TutorialCategory = 'game-basics' | 'game-advanced' | 'ui-controls' | 'art-design' | 'multiplayer' | 'scripting' | 'editor' | 'quick-start';
10
+ /** Quiz answer — supports both localized and simple flat format */
11
+ export interface QuizOption {
12
+ id?: string;
13
+ text: string | Partial<Record<Locale, string>>;
14
+ correct?: boolean;
15
+ }
16
+ /** Code validation result */
17
+ export interface CodeValidation {
18
+ pattern?: string;
19
+ containsAll?: string[];
20
+ containsAny?: string[];
21
+ maxLines?: number;
22
+ customValidator?: string;
23
+ }
24
+ /** A single step in a tutorial */
25
+ export interface TutorialStep {
26
+ id: string;
27
+ type: TutorialStepType;
28
+ /** Localized title */
29
+ title: Record<string, string>;
30
+ /** Localized content/instruction */
31
+ content: Record<string, string>;
32
+ /** For 'code' steps: starting code template */
33
+ codeTemplate?: string;
34
+ /** For 'code' steps: expected solution (for hints) */
35
+ codeSolution?: string;
36
+ /** For 'code' steps: validation rules */
37
+ codeValidation?: CodeValidation;
38
+ /** Alias for codeTemplate */
39
+ code?: string;
40
+ /** Code language hint */
41
+ codeLanguage?: string;
42
+ /** Validation hint text */
43
+ validationHint?: string;
44
+ /** For 'highlight' steps: CSS selector or element ID to highlight */
45
+ highlightTarget?: string;
46
+ /** Alias for highlightTarget */
47
+ highlight?: string;
48
+ /** For 'interactive' steps: action the user must perform */
49
+ requiredAction?: string;
50
+ /** For 'quiz' steps: multiple-choice options */
51
+ quizOptions?: QuizOption[];
52
+ /** For 'quiz' steps: correct answer ID */
53
+ quizCorrectId?: string;
54
+ /** For 'video' steps: video URL */
55
+ videoUrl?: string;
56
+ /** Hint text (localized) shown on demand */
57
+ hint?: Record<string, string>;
58
+ /** Auto-advance after N milliseconds (0 = manual) */
59
+ autoAdvanceMs?: number;
60
+ /** Optional interpolation values for the content */
61
+ interpolation?: InterpolationValues;
62
+ /** Optional: position of tooltip (top/bottom/left/right) */
63
+ tooltipPosition?: 'top' | 'bottom' | 'left' | 'right' | 'center';
64
+ /** Whether to allow skipping this step */
65
+ skippable?: boolean;
66
+ }
67
+ /** A complete tutorial definition */
68
+ export interface TutorialDefinition {
69
+ id: string;
70
+ /** Localized tutorial title */
71
+ title: Record<string, string>;
72
+ /** Localized description */
73
+ description: Record<string, string>;
74
+ /** Category */
75
+ category: TutorialCategory;
76
+ /** Difficulty level */
77
+ difficulty: TutorialDifficulty;
78
+ /** Estimated time in minutes */
79
+ estimatedMinutes: number;
80
+ /** Prerequisites — IDs of tutorials that should be completed first */
81
+ prerequisites?: string[];
82
+ /** Tags for search */
83
+ tags?: string[];
84
+ /** Kid-friendly version available? */
85
+ kidFriendly?: boolean;
86
+ /** Ordered steps */
87
+ steps: TutorialStep[];
88
+ /** Target age range (optional, for kid mode filtering) */
89
+ ageRange?: {
90
+ min: number;
91
+ max: number;
92
+ };
93
+ }
94
+ /** Progress for a single tutorial */
95
+ export interface TutorialProgress {
96
+ tutorialId: string;
97
+ currentStepIndex: number;
98
+ completedSteps: string[];
99
+ startedAt: number;
100
+ lastAccessedAt: number;
101
+ completed: boolean;
102
+ completedAt?: number;
103
+ quizScores: Record<string, boolean>;
104
+ codeSubmissions: Record<string, string>;
105
+ }
106
+ /** Tutorial engine event types */
107
+ export interface TutorialEvents {
108
+ 'tutorial:started': {
109
+ tutorialId: string;
110
+ };
111
+ 'tutorial:completed': {
112
+ tutorialId: string;
113
+ durationMs: number;
114
+ };
115
+ 'tutorial:step:entered': {
116
+ tutorialId: string;
117
+ stepId: string;
118
+ stepIndex: number;
119
+ };
120
+ 'tutorial:step:completed': {
121
+ tutorialId: string;
122
+ stepId: string;
123
+ };
124
+ 'tutorial:quiz:answered': {
125
+ tutorialId: string;
126
+ stepId: string;
127
+ correct: boolean;
128
+ };
129
+ 'tutorial:code:validated': {
130
+ tutorialId: string;
131
+ stepId: string;
132
+ valid: boolean;
133
+ };
134
+ 'tutorial:hint:shown': {
135
+ tutorialId: string;
136
+ stepId: string;
137
+ };
138
+ 'tutorial:progress:saved': {
139
+ tutorialId: string;
140
+ };
141
+ }
142
+ /** Custom code validator function signature */
143
+ export type CodeValidatorFn = (code: string) => {
144
+ valid: boolean;
145
+ message?: string;
146
+ };
147
+ export declare class TutorialEngine {
148
+ private readonly i18n;
149
+ private readonly persistProgress;
150
+ private readonly tutorials;
151
+ private readonly progress;
152
+ private readonly validators;
153
+ private activeTutorialId;
154
+ private readonly storagePrefix;
155
+ readonly events: EventBus;
156
+ constructor(i18n: I18nManager, persistProgress?: boolean);
157
+ /** Register a tutorial definition */
158
+ registerTutorial(definition: TutorialDefinition): void;
159
+ /** Register multiple tutorials at once */
160
+ registerTutorials(definitions: TutorialDefinition[]): void;
161
+ /** Register a custom code validator */
162
+ registerValidator(name: string, fn: CodeValidatorFn): void;
163
+ /** Get all registered tutorials */
164
+ getAllTutorials(): TutorialDefinition[];
165
+ /** Get tutorials filtered by category */
166
+ getTutorialsByCategory(category: TutorialCategory): TutorialDefinition[];
167
+ /** Get tutorials filtered by difficulty */
168
+ getTutorialsByDifficulty(difficulty: TutorialDifficulty): TutorialDefinition[];
169
+ /** Get tutorials suitable for kids */
170
+ getKidFriendlyTutorials(): TutorialDefinition[];
171
+ /** Search tutorials by tag or title */
172
+ searchTutorials(query: string): TutorialDefinition[];
173
+ /** Start a tutorial */
174
+ startTutorial(tutorialId: string): TutorialStep | null;
175
+ /** Get the current step of the active tutorial */
176
+ getCurrentStep(): TutorialStep | null;
177
+ /** Advance to the next step */
178
+ nextStep(): TutorialStep | null;
179
+ /** Go to a previous step */
180
+ previousStep(): TutorialStep | null;
181
+ /** Jump to a specific step by index */
182
+ goToStep(index: number): TutorialStep | null;
183
+ /** Stop the current tutorial */
184
+ stopTutorial(): void;
185
+ /** Submit a quiz answer */
186
+ submitQuizAnswer(answerId: string): boolean;
187
+ /** Submit code for validation */
188
+ validateCode(code: string): {
189
+ valid: boolean;
190
+ message?: string;
191
+ };
192
+ /** Request a hint for the current step */
193
+ getHint(): string | null;
194
+ /** Get localized content for current step */
195
+ getStepContent(step: TutorialStep): {
196
+ title: string;
197
+ content: string;
198
+ };
199
+ /** Get progress for a tutorial */
200
+ getProgress(tutorialId: string): TutorialProgress | undefined;
201
+ /** Get progress percentage (0 to 1) */
202
+ getProgressPercent(tutorialId: string): number;
203
+ /** Check if a tutorial is completed */
204
+ isCompleted(tutorialId: string): boolean;
205
+ /** Get quiz score summary for a completed tutorial */
206
+ getQuizScore(tutorialId: string): {
207
+ correct: number;
208
+ total: number;
209
+ percentage: number;
210
+ };
211
+ /** Get all tutorials with their completion status */
212
+ getAllProgress(): Array<{
213
+ tutorial: TutorialDefinition;
214
+ progress?: TutorialProgress;
215
+ percent: number;
216
+ }>;
217
+ /** Reset progress for a tutorial */
218
+ resetProgress(tutorialId: string): void;
219
+ /** Reset all progress */
220
+ resetAllProgress(): void;
221
+ private saveProgress;
222
+ private loadAllProgress;
223
+ private removeStoredProgress;
224
+ getActiveTutorialId(): string | null;
225
+ getActiveTutorial(): TutorialDefinition | null;
226
+ getTotalSteps(): number;
227
+ getCurrentStepIndex(): number;
228
+ dispose(): void;
229
+ }
230
+ /** Tutorial: First Game — Bouncing Ball */
231
+ export declare const TUTORIAL_FIRST_GAME: TutorialDefinition;
232
+ /** Tutorial: Space Shooter */
233
+ export declare const TUTORIAL_SPACE_SHOOTER: TutorialDefinition;
234
+ /** Tutorial: NiceDataGrid basics (for nice2dev-ui) */
235
+ export declare const TUTORIAL_DATAGRID_BASICS: TutorialDefinition;
236
+ /** Get all built-in tutorials */
237
+ export declare function getBuiltInTutorials(): TutorialDefinition[];
@@ -0,0 +1,79 @@
1
+ import { EventBus } from '../core/EventBus';
2
+ import type { TutorialDefinition } from './TutorialEngine';
3
+ export interface OverlayConfig {
4
+ /** CSS z-index for the overlay layer (default: 10000). */
5
+ zIndex: number;
6
+ /** Spotlight padding around highlighted element in px (default: 8). */
7
+ spotlightPadding: number;
8
+ /** Spotlight border-radius (default: 8). */
9
+ spotlightBorderRadius: number;
10
+ /** Background opacity of the mask (default: 0.65). */
11
+ maskOpacity: number;
12
+ /** Whether to animate transitions (default: true). */
13
+ animate: boolean;
14
+ /** Animation duration in ms (default: 300). */
15
+ animationDuration: number;
16
+ /** Theme: 'light' or 'dark' (default: 'dark'). */
17
+ theme: 'light' | 'dark';
18
+ /** Custom CSS class prefix (default: 'n2d-tutorial'). */
19
+ classPrefix: string;
20
+ /** Whether tooltip closes when clicking outside (default: false). */
21
+ closeOnOutsideClick: boolean;
22
+ /** Whether to show the progress bar (default: true). */
23
+ showProgress: boolean;
24
+ /** Whether to show navigation buttons (default: true). */
25
+ showNavigation: boolean;
26
+ /** Locale for button labels. */
27
+ locale: string;
28
+ }
29
+ export interface TooltipPosition {
30
+ top: number;
31
+ left: number;
32
+ arrowDirection: 'top' | 'bottom' | 'left' | 'right';
33
+ }
34
+ export type OverlayAction = 'next' | 'back' | 'skip' | 'close' | 'quiz-answer';
35
+ export declare class TutorialOverlay {
36
+ readonly events: EventBus;
37
+ private config;
38
+ private container;
39
+ private styleEl;
40
+ private maskEl;
41
+ private spotlightEl;
42
+ private tooltipEl;
43
+ private active;
44
+ private currentTutorial;
45
+ private currentStepIndex;
46
+ private selectedQuizAnswer;
47
+ private hintVisible;
48
+ constructor(config?: Partial<OverlayConfig>);
49
+ /** Whether the overlay is currently showing. */
50
+ get isActive(): boolean;
51
+ /** Current step index. */
52
+ get stepIndex(): number;
53
+ /** Total steps in current tutorial. */
54
+ get totalSteps(): number;
55
+ /** Show the overlay for a tutorial at a given step. */
56
+ show(tutorial: TutorialDefinition, stepIndex?: number): void;
57
+ /** Hide the overlay and clean up. */
58
+ hide(): void;
59
+ /** Go to a specific step. */
60
+ goToStep(index: number): void;
61
+ /** Advance to next step. */
62
+ next(): void;
63
+ /** Go to previous step. */
64
+ back(): void;
65
+ /** Update the locale for button labels. */
66
+ setLocale(locale: string): void;
67
+ private ensureDOM;
68
+ private removeDOM;
69
+ private renderStep;
70
+ private renderContent;
71
+ private renderQuizOptions;
72
+ private positionTooltip;
73
+ private calculatePosition;
74
+ private bindTooltipEvents;
75
+ private label;
76
+ private escapeHtml;
77
+ /** Dispose the overlay and all DOM elements. */
78
+ dispose(): void;
79
+ }
@@ -0,0 +1,75 @@
1
+ export interface VoiceNarrationConfig {
2
+ /** Speech rate (0.1 to 10, default 1) */
3
+ rate: number;
4
+ /** Pitch (0 to 2, default 1) */
5
+ pitch: number;
6
+ /** Volume (0 to 1, default 0.8) */
7
+ volume: number;
8
+ /** Preferred voice name (auto-detected by locale if omitted) */
9
+ voiceName?: string;
10
+ /** BCP 47 locale (e.g. 'pl-PL', 'en-US') */
11
+ locale: string;
12
+ /** Enable narration (default true) */
13
+ enabled: boolean;
14
+ }
15
+ export interface NarrationEvent {
16
+ type: 'start' | 'end' | 'pause' | 'resume' | 'error' | 'boundary';
17
+ text?: string;
18
+ charIndex?: number;
19
+ error?: string;
20
+ }
21
+ export type NarrationCallback = (event: NarrationEvent) => void;
22
+ export declare const DEFAULT_NARRATION_CONFIG: VoiceNarrationConfig;
23
+ export declare class VoiceNarrator {
24
+ private config;
25
+ private synth;
26
+ private currentUtterance;
27
+ private listeners;
28
+ private _speaking;
29
+ private _paused;
30
+ constructor(config?: Partial<VoiceNarrationConfig>);
31
+ /** Check if TTS is available in the browser. */
32
+ get available(): boolean;
33
+ get speaking(): boolean;
34
+ get paused(): boolean;
35
+ /** Get available voices for the current locale. */
36
+ getVoices(): SpeechSynthesisVoice[];
37
+ /** Get all available voices. */
38
+ getAllVoices(): SpeechSynthesisVoice[];
39
+ /** Speak the given text. Stops any current speech first. */
40
+ speak(text: string, locale?: string): void;
41
+ /** Speak a tutorial step — extracts localized text. */
42
+ speakStep(step: {
43
+ title: string | Record<string, string>;
44
+ content: string | Record<string, string>;
45
+ }, locale?: string): void;
46
+ /** Pause speech. */
47
+ pause(): void;
48
+ /** Resume speech. */
49
+ resume(): void;
50
+ /** Stop speech. */
51
+ stop(): void;
52
+ /** Update configuration. */
53
+ setConfig(updates: Partial<VoiceNarrationConfig>): void;
54
+ /** Subscribe to narration events. */
55
+ on(callback: NarrationCallback): () => void;
56
+ /** Dispose — stop speech and clear listeners. */
57
+ dispose(): void;
58
+ private selectVoice;
59
+ private stripMarkdown;
60
+ private emit;
61
+ }
62
+ export declare function useVoiceNarration(config?: Partial<VoiceNarrationConfig>): {
63
+ speak: (text: string, locale?: string) => void;
64
+ speakStep: (step: {
65
+ title: string | Record<string, string>;
66
+ content: string | Record<string, string>;
67
+ }, locale?: string) => void;
68
+ pause: () => void | undefined;
69
+ resume: () => void | undefined;
70
+ stop: () => void | undefined;
71
+ speaking: boolean;
72
+ paused: boolean;
73
+ available: boolean;
74
+ voices: SpeechSynthesisVoice[];
75
+ };
@@ -0,0 +1,3 @@
1
+ import type { TutorialDefinition } from '../TutorialEngine';
2
+ export declare const TUTORIAL_SOUNDS_AND_MUSIC: TutorialDefinition;
3
+ export declare function getTutorial_T04(): TutorialDefinition[];
@@ -0,0 +1,6 @@
1
+ import type { TutorialDefinition } from '../TutorialEngine';
2
+ export declare const TUTORIAL_ANIMATIONS: TutorialDefinition;
3
+ export declare const TUTORIAL_TILEMAPS: TutorialDefinition;
4
+ export declare const TUTORIAL_VISUAL_SCRIPTING: TutorialDefinition;
5
+ export declare const TUTORIAL_LOCAL_MULTIPLAYER: TutorialDefinition;
6
+ export declare function getTutorials_T05_T08(): TutorialDefinition[];
@@ -0,0 +1,5 @@
1
+ import type { TutorialDefinition } from '../TutorialEngine';
2
+ export declare const TUTORIAL_MULTIPLAYER_ONLINE: TutorialDefinition;
3
+ export declare const TUTORIAL_PROCEDURAL_WORLD: TutorialDefinition;
4
+ export declare const TUTORIAL_PLATFORMER: TutorialDefinition;
5
+ export declare function getTutorials_T09_T11(): TutorialDefinition[];
@@ -0,0 +1,6 @@
1
+ import type { TutorialDefinition } from '../TutorialEngine';
2
+ export declare const TUTORIAL_RPG: TutorialDefinition;
3
+ export declare const TUTORIAL_TOWER_DEFENSE: TutorialDefinition;
4
+ export declare const TUTORIAL_3D_GAME: TutorialDefinition;
5
+ export declare const TUTORIAL_PUBLISHING: TutorialDefinition;
6
+ export declare function getTutorials_T12_T15(): TutorialDefinition[];
@@ -0,0 +1,14 @@
1
+ import type { TutorialDefinition } from '../TutorialEngine';
2
+ export declare const TUTORIAL_UI_DATAGRID: TutorialDefinition;
3
+ export declare const TUTORIAL_UI_FORM: TutorialDefinition;
4
+ export declare const TUTORIAL_UI_CHART: TutorialDefinition;
5
+ export declare const TUTORIAL_UI_TREEVIEW: TutorialDefinition;
6
+ export declare const TUTORIAL_UI_SCHEDULER: TutorialDefinition;
7
+ export declare const TUTORIAL_UI_GANTT: TutorialDefinition;
8
+ export declare const TUTORIAL_UI_PIVOTGRID: TutorialDefinition;
9
+ export declare const TUTORIAL_UI_HTMLEDITOR: TutorialDefinition;
10
+ export declare const TUTORIAL_UI_NAVIGATION: TutorialDefinition;
11
+ export declare const TUTORIAL_UI_OVERLAYS: TutorialDefinition;
12
+ export declare const TUTORIAL_UI_THEMES: TutorialDefinition;
13
+ export declare const TUTORIAL_UI_RESPONSIVE: TutorialDefinition;
14
+ export declare function getAllUITutorials(): TutorialDefinition[];
@@ -0,0 +1,5 @@
1
+ export * from './Tutorials_T04';
2
+ export * from './Tutorials_T05_T08';
3
+ export * from './Tutorials_T09_T11';
4
+ export * from './Tutorials_T12_T15';
5
+ export * from './UITutorials';
@@ -0,0 +1,6 @@
1
+ export * from './TutorialBranching';
2
+ export * from './TutorialEditor';
3
+ export * from './TutorialEngine';
4
+ export * from './TutorialOverlay';
5
+ export * from './VoiceNarration';
6
+ export * from './content';