@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,357 @@
1
+ 'use strict';
2
+
3
+ var EventBus = require('../core/EventBus.js');
4
+
5
+ /* ────────────────────────────────────────────────────────────────
6
+ Documentation Generator — LEGENDARY L10
7
+
8
+ Auto-generates API docs from registered modules:
9
+ • Markdown output
10
+ • Interactive docs browser model (JSON structure)
11
+ • Search index for API lookup
12
+ • Example code linking
13
+ ──────────────────────────────────────────────────────────────── */
14
+ /* ══════════════════════════════════════════════════════════════
15
+ DocRegistry — Central API documentation registry
16
+ ══════════════════════════════════════════════════════════════ */
17
+ class DocRegistry {
18
+ constructor() {
19
+ this.events = new EventBus.EventBus();
20
+ this.modules = new Map();
21
+ }
22
+ /** Register a module's documentation. */
23
+ registerModule(mod) {
24
+ this.modules.set(mod.name, mod);
25
+ this.events.emit('doc:module-registered', { name: mod.name });
26
+ }
27
+ /** Unregister a module. */
28
+ unregisterModule(name) {
29
+ this.modules.delete(name);
30
+ }
31
+ /** Get a module by name. */
32
+ getModule(name) {
33
+ return this.modules.get(name);
34
+ }
35
+ /** Get all registered modules. */
36
+ getAllModules() {
37
+ return Array.from(this.modules.values());
38
+ }
39
+ /** Get all modules in a category. */
40
+ getModulesByCategory(category) {
41
+ const result = [];
42
+ for (const mod of this.modules.values()) {
43
+ if (mod.category === category)
44
+ result.push(mod);
45
+ }
46
+ return result;
47
+ }
48
+ /** Search across all docs. */
49
+ search(query, maxResults = 20) {
50
+ const q = query.toLowerCase();
51
+ const results = [];
52
+ for (const mod of this.modules.values()) {
53
+ for (const member of mod.members) {
54
+ const score = this.scoreMember(member, q);
55
+ if (score > 0) {
56
+ results.push({ member, module: mod.name, score });
57
+ }
58
+ }
59
+ }
60
+ results.sort((a, b) => b.score - a.score);
61
+ return results.slice(0, maxResults);
62
+ }
63
+ scoreMember(member, query) {
64
+ let score = 0;
65
+ const name = member.name.toLowerCase();
66
+ // Exact name match
67
+ if (name === query)
68
+ return 100;
69
+ // Name starts with query
70
+ if (name.startsWith(query))
71
+ score += 50;
72
+ // Name contains query
73
+ if (name.indexOf(query) >= 0)
74
+ score += 30;
75
+ // Description match
76
+ if (member.description.toLowerCase().indexOf(query) >= 0)
77
+ score += 10;
78
+ // Tag match
79
+ if (member.tags) {
80
+ for (const tag of member.tags) {
81
+ if (tag.toLowerCase().indexOf(query) >= 0)
82
+ score += 15;
83
+ }
84
+ }
85
+ return score;
86
+ }
87
+ /** Get a specific member by name. */
88
+ findMember(memberName) {
89
+ const lower = memberName.toLowerCase();
90
+ for (const mod of this.modules.values()) {
91
+ for (const member of mod.members) {
92
+ if (member.name.toLowerCase() === lower) {
93
+ return { member, module: mod.name };
94
+ }
95
+ }
96
+ }
97
+ return null;
98
+ }
99
+ /** Generate Markdown docs for a single module. */
100
+ generateModuleMarkdown(moduleName) {
101
+ const mod = this.modules.get(moduleName);
102
+ if (!mod)
103
+ return `Module "${moduleName}" not found.`;
104
+ const lines = [];
105
+ lines.push(`# ${mod.name}`);
106
+ lines.push('');
107
+ lines.push(mod.description);
108
+ lines.push('');
109
+ // Group by kind
110
+ const groups = new Map();
111
+ for (const m of mod.members) {
112
+ let arr = groups.get(m.kind);
113
+ if (!arr) {
114
+ arr = [];
115
+ groups.set(m.kind, arr);
116
+ }
117
+ arr.push(m);
118
+ }
119
+ const kindOrder = ['class', 'interface', 'type', 'function', 'constant', 'enum'];
120
+ const kindTitles = {
121
+ class: 'Classes',
122
+ interface: 'Interfaces',
123
+ type: 'Types',
124
+ function: 'Functions',
125
+ constant: 'Constants',
126
+ enum: 'Enums',
127
+ };
128
+ for (const kind of kindOrder) {
129
+ const members = groups.get(kind);
130
+ if (!members)
131
+ continue;
132
+ lines.push(`## ${kindTitles[kind]}`);
133
+ lines.push('');
134
+ for (const m of members) {
135
+ lines.push(`### ${m.name}`);
136
+ if (m.deprecated)
137
+ lines.push(`> **Deprecated:** ${m.deprecated}`);
138
+ lines.push('');
139
+ if (m.signature)
140
+ lines.push('```typescript\n' + m.signature + '\n```');
141
+ lines.push('');
142
+ lines.push(m.description);
143
+ lines.push('');
144
+ if (m.params && m.params.length > 0) {
145
+ lines.push('**Parameters:**');
146
+ lines.push('');
147
+ lines.push('| Name | Type | Description |');
148
+ lines.push('|------|------|-------------|');
149
+ for (const p of m.params) {
150
+ const opt = p.optional ? ' (optional)' : '';
151
+ const def = p.defaultValue ? ` Default: \`${p.defaultValue}\`` : '';
152
+ lines.push(`| \`${p.name}\`${opt} | \`${p.type}\` | ${p.description}${def} |`);
153
+ }
154
+ lines.push('');
155
+ }
156
+ if (m.returns) {
157
+ lines.push(`**Returns:** ${m.returns}`);
158
+ lines.push('');
159
+ }
160
+ if (m.example) {
161
+ lines.push('**Example:**');
162
+ lines.push('```typescript');
163
+ lines.push(m.example);
164
+ lines.push('```');
165
+ lines.push('');
166
+ }
167
+ if (m.seeAlso && m.seeAlso.length > 0) {
168
+ lines.push(`**See also:** ${m.seeAlso.map(s => `\`${s}\``).join(', ')}`);
169
+ lines.push('');
170
+ }
171
+ if (m.since) {
172
+ lines.push(`*Since: ${m.since}*`);
173
+ lines.push('');
174
+ }
175
+ lines.push('---');
176
+ lines.push('');
177
+ }
178
+ }
179
+ return lines.join('\n');
180
+ }
181
+ /** Generate full Markdown documentation for all modules. */
182
+ generateFullMarkdown() {
183
+ const lines = [];
184
+ lines.push('# nice2dev Game Engine — API Reference');
185
+ lines.push('');
186
+ // Table of contents
187
+ lines.push('## Table of Contents');
188
+ lines.push('');
189
+ const categories = ['core', 'ecs', 'rendering', 'physics', 'audio', 'input', 'ui', 'scene', 'multiplayer', 'editor', 'legendary', 'other'];
190
+ for (const cat of categories) {
191
+ const mods = this.getModulesByCategory(cat);
192
+ if (mods.length === 0)
193
+ continue;
194
+ lines.push(`### ${cat.charAt(0).toUpperCase() + cat.slice(1)}`);
195
+ for (const mod of mods) {
196
+ lines.push(`- [${mod.name}](#${mod.name.toLowerCase().replace(/[^a-z0-9]+/g, '-')})`);
197
+ }
198
+ lines.push('');
199
+ }
200
+ // Module docs
201
+ for (const mod of this.modules.values()) {
202
+ lines.push(this.generateModuleMarkdown(mod.name));
203
+ lines.push('');
204
+ }
205
+ return lines.join('\n');
206
+ }
207
+ /** Generate a JSON index for interactive docs browser. */
208
+ generateSearchIndex() {
209
+ var _a;
210
+ const index = [];
211
+ for (const mod of this.modules.values()) {
212
+ for (const m of mod.members) {
213
+ index.push({
214
+ name: m.name,
215
+ module: mod.name,
216
+ kind: m.kind,
217
+ description: m.description,
218
+ tags: (_a = m.tags) !== null && _a !== void 0 ? _a : [],
219
+ });
220
+ }
221
+ }
222
+ return index;
223
+ }
224
+ /** Total number of documented members. */
225
+ get totalMembers() {
226
+ let count = 0;
227
+ for (const mod of this.modules.values())
228
+ count += mod.members.length;
229
+ return count;
230
+ }
231
+ /** Reset. */
232
+ clear() {
233
+ this.modules.clear();
234
+ }
235
+ }
236
+ /* ══════════════════════════════════════════════════════════════
237
+ Built-in ECS Module Docs (example)
238
+ ══════════════════════════════════════════════════════════════ */
239
+ const DOCS_ECS = {
240
+ name: 'ECS',
241
+ category: 'ecs',
242
+ description: 'Entity-Component-System architecture. The core of the game engine.',
243
+ members: [
244
+ {
245
+ name: 'World',
246
+ kind: 'class',
247
+ description: 'The ECS world manages entities, components, and systems.',
248
+ signature: 'class World',
249
+ tags: ['ecs', 'entity', 'system'],
250
+ example: "const world = new World();\nconst id = world.createEntity();\nworld.addComponent(id, 'Transform', { x: 0, y: 0 });\nworld.addSystem('move', (dt, w) => { /* ... */ });",
251
+ seeAlso: ['System', 'Entity'],
252
+ },
253
+ {
254
+ name: 'World.createEntity',
255
+ kind: 'function',
256
+ description: 'Create a new entity and return its numeric ID.',
257
+ signature: 'createEntity(): number',
258
+ returns: 'The new entity ID.',
259
+ tags: ['ecs', 'entity', 'create'],
260
+ },
261
+ {
262
+ name: 'World.addComponent',
263
+ kind: 'function',
264
+ description: 'Add a component to an entity.',
265
+ signature: "addComponent(entityId: number, type: string, data: object): void",
266
+ params: [
267
+ { name: 'entityId', type: 'number', description: 'The entity to add the component to.' },
268
+ { name: 'type', type: 'string', description: "Component type name (e.g. 'Transform', 'Sprite')." },
269
+ { name: 'data', type: 'object', description: 'Component data.' },
270
+ ],
271
+ tags: ['ecs', 'component'],
272
+ },
273
+ {
274
+ name: 'World.getComponent',
275
+ kind: 'function',
276
+ description: 'Get a single component from an entity.',
277
+ signature: "getComponent<T>(entityId: number, type: string): T | undefined",
278
+ params: [
279
+ { name: 'entityId', type: 'number', description: 'Entity ID.' },
280
+ { name: 'type', type: 'string', description: 'Component type name.' },
281
+ ],
282
+ returns: 'The component data or undefined.',
283
+ tags: ['ecs', 'component', 'query'],
284
+ },
285
+ {
286
+ name: 'World.query',
287
+ kind: 'function',
288
+ description: 'Query entities that have all specified component types.',
289
+ signature: "query(...types: string[]): number[]",
290
+ params: [
291
+ { name: 'types', type: 'string[]', description: 'Component types (spread args, not array!).' },
292
+ ],
293
+ returns: 'Array of entity IDs matching the query.',
294
+ example: "const ids = world.query('Transform', 'Sprite');\n// NOT world.query(['Transform', 'Sprite'])",
295
+ tags: ['ecs', 'query', 'entity'],
296
+ },
297
+ {
298
+ name: 'World.addSystem',
299
+ kind: 'function',
300
+ description: 'Register a system that runs every frame.',
301
+ signature: "addSystem(name: string, updateFn: (dt: number, world: World) => void, priority?: number): void",
302
+ params: [
303
+ { name: 'name', type: 'string', description: 'System name.' },
304
+ { name: 'updateFn', type: 'function', description: 'Update function called each frame.' },
305
+ { name: 'priority', type: 'number', description: 'Execution order (lower = earlier).', optional: true },
306
+ ],
307
+ tags: ['ecs', 'system'],
308
+ },
309
+ {
310
+ name: 'World.destroyEntity',
311
+ kind: 'function',
312
+ description: 'Destroy an entity and all its components.',
313
+ signature: 'destroyEntity(entityId: number): void',
314
+ tags: ['ecs', 'entity', 'destroy'],
315
+ },
316
+ {
317
+ name: 'World.allEntities',
318
+ kind: 'function',
319
+ description: 'Returns all entity IDs. Note: use allEntities(), NOT getAllEntities().',
320
+ signature: 'allEntities(): number[]',
321
+ returns: 'Array of all entity IDs.',
322
+ tags: ['ecs', 'entity', 'query'],
323
+ },
324
+ ],
325
+ };
326
+ const DOCS_RENDERING = {
327
+ name: 'Rendering',
328
+ category: 'rendering',
329
+ description: '2D Canvas rendering pipeline with sprite batching, cameras, and post-processing.',
330
+ members: [
331
+ {
332
+ name: 'Camera2D',
333
+ kind: 'class',
334
+ description: '2D camera with zoom, pan, and shake support.',
335
+ signature: 'class Camera2D',
336
+ tags: ['camera', 'rendering', '2d'],
337
+ example: "const cam = new Camera2D(canvas.width, canvas.height);\ncam.follow(playerEntity);\ncam.shake(5, 300); // intensity=5, duration=300ms",
338
+ seeAlso: ['Renderer2D', 'SpriteRenderer'],
339
+ },
340
+ {
341
+ name: 'Camera2D.worldToScreen',
342
+ kind: 'function',
343
+ description: 'Convert world coordinates to screen coordinates.',
344
+ signature: 'worldToScreen(worldPos: Vec2): Vec2',
345
+ params: [
346
+ { name: 'worldPos', type: 'Vec2', description: 'Takes a Vec2, not separate x,y!' },
347
+ ],
348
+ returns: 'Screen-space Vec2.',
349
+ tags: ['camera', 'coordinate'],
350
+ },
351
+ ],
352
+ };
353
+
354
+ exports.DOCS_ECS = DOCS_ECS;
355
+ exports.DOCS_RENDERING = DOCS_RENDERING;
356
+ exports.DocRegistry = DocRegistry;
357
+ //# sourceMappingURL=DocGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocGenerator.js","sources":["../../../src/docs/DocGenerator.ts"],"sourcesContent":[null],"names":["EventBus"],"mappings":";;;;AAAA;;;;;;;;AAQmE;AAoEnE;;AAEoE;MAEvD,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACW,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIA,iBAAQ,EAAE;AACxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAqB;IA2OhD;;AAxOE,IAAA,cAAc,CAAC,GAAc,EAAA;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/D;;AAGA,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAC3B;;AAGA,IAAA,SAAS,CAAC,IAAY,EAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/B;;IAGA,aAAa,GAAA;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1C;;AAGA,IAAA,oBAAoB,CAAC,QAAqB,EAAA;QACxC,MAAM,MAAM,GAAgB,EAAE;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACjD;AACA,QAAA,OAAO,MAAM;IACf;;AAGA,IAAA,MAAM,CAAC,KAAa,EAAE,UAAU,GAAG,EAAE,EAAA;AACnC,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE;QAC7B,MAAM,OAAO,GAAsB,EAAE;QAErC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,gBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,oBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBACnD;YACF;QACF;AAEA,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;IACrC;IAEQ,WAAW,CAAC,MAAiB,EAAE,KAAa,EAAA;QAClD,IAAI,KAAK,GAAG,CAAC;QACb,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;;QAGtC,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,GAAG;;AAG9B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,EAAE;;AAGvC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,KAAK,IAAI,EAAE;;AAGzC,QAAA,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,KAAK,IAAI,EAAE;;AAGrE,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,YAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;gBAC7B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,KAAK,IAAI,EAAE;YACxD;QACF;AAEA,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,UAAU,CAAC,UAAkB,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;oBACvC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE;gBACrC;YACF;QACF;AACA,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,sBAAsB,CAAC,UAAkB,EAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO,CAAA,QAAA,EAAW,UAAU,CAAA,YAAA,CAAc;QAEpD,MAAM,KAAK,GAAa,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA,EAAA,EAAK,GAAG,CAAC,IAAI,CAAA,CAAE,CAAC;AAC3B,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,QAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3B,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;;AAGd,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B;AACpD,QAAA,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE;YAC3B,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE;gBAAE,GAAG,GAAG,EAAE;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE;AAC/C,YAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACb;AAEA,QAAA,MAAM,SAAS,GAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC;AACjG,QAAA,MAAM,UAAU,GAAkC;AAChD,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,IAAI,EAAE,OAAO;SACd;AAED,QAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,OAAO;gBAAE;YAEd,KAAK,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,UAAU,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAEd,YAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;gBACvB,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,CAAC,CAAC,UAAU,CAAA,CAAE,CAAC;AACjE,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd,IAAI,CAAC,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC;AACtE,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;AACzB,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAEd,gBAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,oBAAA,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC7B,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,oBAAA,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC;AAC3C,oBAAA,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC;AAC3C,oBAAA,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACxB,wBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,aAAa,GAAG,EAAE;AAC3C,wBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,GAAG,CAAA,YAAA,EAAe,CAAC,CAAC,YAAY,CAAA,EAAA,CAAI,GAAG,EAAE;wBACnE,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,CAAC,CAAC,IAAI,KAAK,GAAG,CAAA,KAAA,EAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;oBAChF;AACA,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB;AAEA,gBAAA,IAAI,CAAC,CAAC,OAAO,EAAE;oBACb,KAAK,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,CAAC,CAAC,OAAO,CAAA,CAAE,CAAC;AACvC,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB;AAEA,gBAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,oBAAA,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1B,oBAAA,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAC3B,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACrB,oBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjB,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB;AAEA,gBAAA,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,KAAK,CAAC,IAAI,CAAC,CAAA,cAAA,EAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,CAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACxE,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB;AAEA,gBAAA,IAAI,CAAC,CAAC,KAAK,EAAE;oBACX,KAAK,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,CAAC,CAAC,KAAK,CAAA,CAAA,CAAG,CAAC;AACjC,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB;AAEA,gBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjB,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB;QACF;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;;IAGA,oBAAoB,GAAA;QAClB,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC;AACpD,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;;AAGd,QAAA,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAClC,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,UAAU,GAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;AACzJ,QAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;AAC3C,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE;YACvB,KAAK,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC/D,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,KAAK,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,IAAI,CAAA,GAAA,EAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;YACvF;AACA,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB;;QAGA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;;IAGA,mBAAmB,GAAA;;QACjB,MAAM,KAAK,GAAsG,EAAE;QACnH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,GAAG,CAAC,IAAI;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,IAAI,EAAE,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,mCAAI,EAAE;AACnB,iBAAA,CAAC;YACJ;QACF;AACA,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,KAAK,GAAG,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAAE,YAAA,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM;AACpE,QAAA,OAAO,KAAK;IACd;;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IACtB;AACD;AAED;;AAEoE;AAE7D,MAAM,QAAQ,GAAc;AACjC,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,WAAW,EAAE,oEAAoE;AACjF,IAAA,OAAO,EAAE;AACP,QAAA;AACE,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,0DAA0D;AACvE,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACjC,YAAA,OAAO,EAAE,wKAAwK;AACjL,YAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,gDAAgD;AAC7D,YAAA,SAAS,EAAE,wBAAwB;AACnC,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAClC,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,+BAA+B;AAC5C,YAAA,SAAS,EAAE,kEAAkE;AAC7E,YAAA,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBACxF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;gBAClG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;AACjE,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;AAC3B,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,wCAAwC;AACrD,YAAA,SAAS,EAAE,gEAAgE;AAC3E,YAAA,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACtE,aAAA;AACD,YAAA,OAAO,EAAE,kCAAkC;AAC3C,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC;AACpC,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,yDAAyD;AACtE,YAAA,SAAS,EAAE,qCAAqC;AAChD,YAAA,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,4CAA4C,EAAE;AAC/F,aAAA;AACD,YAAA,OAAO,EAAE,yCAAyC;AAClD,YAAA,OAAO,EAAE,8FAA8F;AACvG,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjC,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,0CAA0C;AACvD,YAAA,SAAS,EAAE,gGAAgG;AAC3G,YAAA,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE;AACzF,gBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACxG,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;AACxB,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,2CAA2C;AACxD,YAAA,SAAS,EAAE,uCAAuC;AAClD,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;AACnC,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,wEAAwE;AACrF,YAAA,SAAS,EAAE,yBAAyB;AACpC,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;AACjC,SAAA;AACF,KAAA;;AAGI,MAAM,cAAc,GAAc;AACvC,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,WAAW,EAAE,kFAAkF;AAC/F,IAAA,OAAO,EAAE;AACP,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,8CAA8C;AAC3D,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;AACnC,YAAA,OAAO,EAAE,sIAAsI;AAC/I,YAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC1C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,WAAW,EAAE,kDAAkD;AAC/D,YAAA,SAAS,EAAE,qCAAqC;AAChD,YAAA,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE;AACnF,aAAA;AACD,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC/B,SAAA;AACF,KAAA;;;;;;;"}
@@ -0,0 +1,280 @@
1
+ 'use strict';
2
+
3
+ var EventBus = require('../core/EventBus.js');
4
+
5
+ /* ────────────────────────────────────────────────────────────────
6
+ ECS — Entity-Component-System architecture
7
+ ──────────────────────────────────────────────────────────────── */
8
+ /* ────────────────────────────────────────────────────────────────
9
+ COMPONENT DEFAULTS
10
+ ──────────────────────────────────────────────────────────────── */
11
+ const WHITE = { r: 1, g: 1, b: 1, a: 1 };
12
+ const BLACK = { r: 0, g: 0, b: 0, a: 1 };
13
+ const ZERO = { x: 0, y: 0 };
14
+ const ONE = { x: 1, y: 1 };
15
+ function createDefaultComponent(type, entityId) {
16
+ const base = { entityId, enabled: true };
17
+ switch (type) {
18
+ case 'Transform':
19
+ return { ...base, type: 'Transform', position: { ...ZERO }, rotation: 0, scale: { ...ONE }, prevPosition: { ...ZERO }, prevRotation: 0 };
20
+ case 'Sprite':
21
+ return { ...base, type: 'Sprite', assetId: null, srcRect: null, width: 32, height: 32, anchor: { x: 0.5, y: 0.5 }, tint: { ...WHITE }, opacity: 1, flipX: false, flipY: false, layer: 0, visible: true };
22
+ case 'Shape':
23
+ // as unknown as: TS can't narrow generic K in switch; Shape.shape conflicts with Collider2D.shape
24
+ return { ...base, type: 'Shape', shape: 'rect', width: 32, height: 32, radius: 16, points: [], lineStart: { ...ZERO }, lineEnd: { x: 32, y: 0 }, fillColor: { ...WHITE }, strokeColor: { ...BLACK }, strokeWidth: 0, layer: 0, visible: true };
25
+ case 'Collider2D':
26
+ return { ...base, type: 'Collider2D', shape: 'aabb', width: 32, height: 32, radius: 16, points: [], offset: { ...ZERO }, isTrigger: false, layer: 1, mask: 0xFFFF };
27
+ case 'RigidBody2D':
28
+ return { ...base, type: 'RigidBody2D', bodyType: 'dynamic', velocity: { ...ZERO }, acceleration: { ...ZERO }, angularVelocity: 0, mass: 1, drag: 0, angularDrag: 0, restitution: 0.3, friction: 0.5, gravityScale: 1, fixedRotation: false };
29
+ case 'Text':
30
+ return { ...base, type: 'Text', text: '', fontSize: 16, fontFamily: 'sans-serif', color: { ...WHITE }, align: 'center', baseline: 'middle', layer: 10, visible: true };
31
+ case 'Animator':
32
+ return { ...base, type: 'Animator', currentAnimation: '', animations: {}, frame: 0, elapsed: 0, playing: false, loop: true };
33
+ case 'Script':
34
+ return { ...base, type: 'Script', scriptId: '', variables: {} };
35
+ case 'AudioSource':
36
+ return { ...base, type: 'AudioSource', soundId: '', volume: 1, loop: false, spatial: false, maxDistance: 500, autoPlay: false, playing: false };
37
+ case 'ParticleEmitter':
38
+ return { ...base, type: 'ParticleEmitter', emitting: false, rate: 10, lifetime: [0.5, 1.5], speed: [50, 150], angle: [0, 360], size: [2, 6], sizeEnd: [0, 0], color: { ...WHITE }, colorEnd: { r: 1, g: 1, b: 1, a: 0 }, gravity: { x: 0, y: 100 }, maxParticles: 100 };
39
+ case 'CameraTarget':
40
+ return { ...base, type: 'CameraTarget', priority: 0, smoothing: 0.1, deadzone: { x: 50, y: 30 }, lookahead: { ...ZERO } };
41
+ default:
42
+ throw new Error(`Unknown component type: ${type}`);
43
+ }
44
+ }
45
+ /* ────────────────────────────────────────────────────────────────
46
+ SYSTEM — base class for game systems
47
+ ──────────────────────────────────────────────────────────────── */
48
+ class System {
49
+ constructor(priority = 0) {
50
+ this.enabled = true;
51
+ this.priority = priority;
52
+ }
53
+ /** Called once when added to world. */
54
+ init(_world) { }
55
+ /** Called every frame. */
56
+ update(_world, _dt) { }
57
+ /** Called at fixed timestep (physics). */
58
+ fixedUpdate(_world, _fixedDt) { }
59
+ /** Called when removed from world. */
60
+ destroy(_world) { }
61
+ /** Alias for destroy() — unified cleanup pattern. */
62
+ dispose(world) { this.destroy(world); }
63
+ }
64
+ /* ────────────────────────────────────────────────────────────────
65
+ WORLD — Container for entities, components, and systems
66
+ ──────────────────────────────────────────────────────────────── */
67
+ class World {
68
+ constructor() {
69
+ this.events = new EventBus.EventBus();
70
+ this._nextId = 1;
71
+ this.entities = new Map();
72
+ this.components = new Map();
73
+ this.systems = [];
74
+ this.systemsSorted = false;
75
+ }
76
+ /* ── Entity management ──────────────────────────────────────── */
77
+ createEntity(name = 'Entity') {
78
+ const id = this._nextId++;
79
+ const entity = {
80
+ id,
81
+ name,
82
+ tags: new Set(),
83
+ enabled: true,
84
+ parent: null,
85
+ children: [],
86
+ };
87
+ this.entities.set(id, entity);
88
+ this.events.emit('entity:created', id);
89
+ return entity;
90
+ }
91
+ destroyEntity(id) {
92
+ const entity = this.entities.get(id);
93
+ if (!entity) {
94
+ if (typeof console !== 'undefined')
95
+ console.warn(`[World] destroyEntity: entity ${id} not found`);
96
+ return;
97
+ }
98
+ // Destroy children recursively
99
+ for (const childId of [...entity.children]) {
100
+ this.destroyEntity(childId);
101
+ }
102
+ // Remove from parent
103
+ if (entity.parent != null) {
104
+ const parent = this.entities.get(entity.parent);
105
+ if (parent) {
106
+ parent.children = parent.children.filter(c => c !== id);
107
+ }
108
+ }
109
+ // Remove all components
110
+ for (const [, compMap] of this.components) {
111
+ compMap.delete(id);
112
+ }
113
+ this.entities.delete(id);
114
+ this.events.emit('entity:destroyed', id);
115
+ }
116
+ getEntity(id) {
117
+ return this.entities.get(id);
118
+ }
119
+ /** Get all entities (alive). */
120
+ allEntities() {
121
+ return Array.from(this.entities.values());
122
+ }
123
+ /** Find first entity with given tag. */
124
+ findByTag(tag) {
125
+ for (const e of this.entities.values()) {
126
+ if (e.tags.has(tag))
127
+ return e;
128
+ }
129
+ return undefined;
130
+ }
131
+ /** Find all entities with given tag. */
132
+ findAllByTag(tag) {
133
+ const result = [];
134
+ for (const e of this.entities.values()) {
135
+ if (e.tags.has(tag))
136
+ result.push(e);
137
+ }
138
+ return result;
139
+ }
140
+ /** Find first entity with given name. */
141
+ findByName(name) {
142
+ for (const e of this.entities.values()) {
143
+ if (e.name === name)
144
+ return e;
145
+ }
146
+ return undefined;
147
+ }
148
+ get entityCount() {
149
+ return this.entities.size;
150
+ }
151
+ /* ── Parenting ──────────────────────────────────────────────── */
152
+ setParent(childId, parentId) {
153
+ const child = this.entities.get(childId);
154
+ if (!child) {
155
+ if (typeof console !== 'undefined')
156
+ console.warn(`[World] setParent: entity ${childId} not found`);
157
+ return;
158
+ }
159
+ // Remove from old parent
160
+ if (child.parent != null) {
161
+ const oldParent = this.entities.get(child.parent);
162
+ if (oldParent) {
163
+ oldParent.children = oldParent.children.filter(c => c !== childId);
164
+ }
165
+ }
166
+ child.parent = parentId;
167
+ if (parentId != null) {
168
+ const parent = this.entities.get(parentId);
169
+ if (parent && !parent.children.includes(childId)) {
170
+ parent.children.push(childId);
171
+ }
172
+ }
173
+ }
174
+ /* ── Component management ───────────────────────────────────── */
175
+ addComponent(entityId, type, overrides) {
176
+ const comp = createDefaultComponent(type, entityId);
177
+ if (overrides)
178
+ Object.assign(comp, overrides, { type, entityId });
179
+ let map = this.components.get(type);
180
+ if (!map) {
181
+ map = new Map();
182
+ this.components.set(type, map);
183
+ }
184
+ map.set(entityId, comp);
185
+ this.events.emit('component:added', { entityId, type });
186
+ return comp;
187
+ }
188
+ removeComponent(entityId, type) {
189
+ const map = this.components.get(type);
190
+ if (map) {
191
+ map.delete(entityId);
192
+ this.events.emit('component:removed', { entityId, type });
193
+ }
194
+ }
195
+ getComponent(entityId, type) {
196
+ const map = this.components.get(type);
197
+ return map === null || map === void 0 ? void 0 : map.get(entityId);
198
+ }
199
+ hasComponent(entityId, type) {
200
+ var _a;
201
+ const map = this.components.get(type);
202
+ return (_a = map === null || map === void 0 ? void 0 : map.has(entityId)) !== null && _a !== void 0 ? _a : false;
203
+ }
204
+ /** Query all entities that have ALL specified components. */
205
+ query(...types) {
206
+ if (types.length === 0)
207
+ return [];
208
+ const maps = types.map(t => this.components.get(t));
209
+ if (maps.some(m => !m))
210
+ return [];
211
+ // Start with smallest set for efficiency
212
+ const sorted = maps.slice().sort((a, b) => { var _a, _b; return ((_a = a === null || a === void 0 ? void 0 : a.size) !== null && _a !== void 0 ? _a : 0) - ((_b = b === null || b === void 0 ? void 0 : b.size) !== null && _b !== void 0 ? _b : 0); });
213
+ const smallest = sorted[0];
214
+ const rest = sorted.slice(1);
215
+ const result = [];
216
+ for (const id of smallest.keys()) {
217
+ if (rest.every(m => m.has(id))) {
218
+ const entity = this.entities.get(id);
219
+ if (entity === null || entity === void 0 ? void 0 : entity.enabled)
220
+ result.push(id);
221
+ }
222
+ }
223
+ return result;
224
+ }
225
+ /** Get all components of a type (as a Map). */
226
+ getComponentsOfType(type) {
227
+ var _a;
228
+ return ((_a = this.components.get(type)) !== null && _a !== void 0 ? _a : new Map());
229
+ }
230
+ /* ── System management ──────────────────────────────────────── */
231
+ addSystem(system) {
232
+ this.systems.push(system);
233
+ this.systemsSorted = false;
234
+ system.init(this);
235
+ this.events.emit('system:added', system);
236
+ }
237
+ removeSystem(system) {
238
+ const idx = this.systems.indexOf(system);
239
+ if (idx >= 0) {
240
+ system.destroy(this);
241
+ this.systems.splice(idx, 1);
242
+ }
243
+ }
244
+ ensureSorted() {
245
+ if (!this.systemsSorted) {
246
+ this.systems.sort((a, b) => a.priority - b.priority);
247
+ this.systemsSorted = true;
248
+ }
249
+ }
250
+ /* ── Update ─────────────────────────────────────────────────── */
251
+ update(dt) {
252
+ this.ensureSorted();
253
+ for (const sys of this.systems) {
254
+ if (sys.enabled)
255
+ sys.update(this, dt);
256
+ }
257
+ }
258
+ fixedUpdate(fixedDt) {
259
+ this.ensureSorted();
260
+ for (const sys of this.systems) {
261
+ if (sys.enabled)
262
+ sys.fixedUpdate(this, fixedDt);
263
+ }
264
+ }
265
+ /* ── Serialization ──────────────────────────────────────────── */
266
+ /** Clear all entities, components, and systems. */
267
+ clear() {
268
+ for (const sys of this.systems)
269
+ sys.destroy(this);
270
+ this.systems.length = 0;
271
+ this.entities.clear();
272
+ this.components.clear();
273
+ this._nextId = 1;
274
+ }
275
+ }
276
+
277
+ exports.System = System;
278
+ exports.World = World;
279
+ exports.createDefaultComponent = createDefaultComponent;
280
+ //# sourceMappingURL=World.js.map