@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,573 @@
1
+ 'use strict';
2
+
3
+ var EventBus = require('../core/EventBus.js');
4
+
5
+ /* ────────────────────────────────────────────────────────────────
6
+ Visual Scripting — Node Graph Framework
7
+
8
+ A no-code programming system using node-based visual graphs.
9
+ Nodes have typed ports, connections transport data between them.
10
+ ──────────────────────────────────────────────────────────────── */
11
+ /* ── Node Library ─────────────────────────────────────────────── */
12
+ class NodeLibrary {
13
+ constructor() {
14
+ this.defs = new Map();
15
+ }
16
+ register(def) {
17
+ this.defs.set(def.type, def);
18
+ }
19
+ get(type) {
20
+ return this.defs.get(type);
21
+ }
22
+ getAll() {
23
+ return Array.from(this.defs.values());
24
+ }
25
+ getByCategory(category) {
26
+ return this.getAll().filter(d => d.category === category);
27
+ }
28
+ search(query) {
29
+ const q = query.toLowerCase();
30
+ return this.getAll().filter(d => d.name.toLowerCase().includes(q) ||
31
+ d.type.toLowerCase().includes(q) ||
32
+ d.description.toLowerCase().includes(q));
33
+ }
34
+ }
35
+ /* ── Graph Executor ───────────────────────────────────────────── */
36
+ class GraphExecutor {
37
+ constructor(library) {
38
+ this.events = new EventBus.EventBus();
39
+ this.library = library;
40
+ }
41
+ /** Execute a graph starting from an entry node (e.g. "on_start", "on_update"). */
42
+ execute(graph, entryType, context) {
43
+ // Find entry nodes
44
+ const entries = graph.nodes.filter(n => n.type === entryType);
45
+ for (const entry of entries) {
46
+ this.executeNode(graph, entry, context);
47
+ }
48
+ }
49
+ executeNode(graph, node, context) {
50
+ const def = this.library.get(node.type);
51
+ if (!def)
52
+ return;
53
+ // Gather inputs
54
+ const inputs = { ...node.inputValues };
55
+ for (const conn of graph.connections) {
56
+ if (conn.toNode === node.id) {
57
+ const fromNode = graph.nodes.find(n => n.id === conn.fromNode);
58
+ if (fromNode) {
59
+ inputs[conn.toPort] = fromNode.outputValues[conn.fromPort];
60
+ }
61
+ }
62
+ }
63
+ // Setup flow trigger
64
+ const flowTargets = [];
65
+ const origTrigger = context.triggerFlow;
66
+ context.triggerFlow = (portId) => {
67
+ flowTargets.push(portId);
68
+ };
69
+ // Execute
70
+ const outputs = def.execute(inputs, context);
71
+ if (outputs) {
72
+ node.outputValues = outputs;
73
+ }
74
+ // Follow flow connections
75
+ for (const flowPort of flowTargets) {
76
+ const outConns = graph.connections.filter(c => c.fromNode === node.id && c.fromPort === flowPort);
77
+ for (const conn of outConns) {
78
+ const nextNode = graph.nodes.find(n => n.id === conn.toNode);
79
+ if (nextNode) {
80
+ this.executeNode(graph, nextNode, context);
81
+ }
82
+ }
83
+ }
84
+ context.triggerFlow = origTrigger;
85
+ }
86
+ }
87
+ /* ── Built-in Nodes ───────────────────────────────────────────── */
88
+ function registerBuiltInNodes(library) {
89
+ // ── Flow Control ───────────────────────────────
90
+ library.register({
91
+ type: 'event_start',
92
+ name: 'On Start',
93
+ category: 'flow',
94
+ description: 'Fires once when the scene starts.',
95
+ color: '#e64553',
96
+ ports: [
97
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
98
+ ],
99
+ execute: (_inputs, ctx) => { ctx.triggerFlow('out'); },
100
+ });
101
+ library.register({
102
+ type: 'event_update',
103
+ name: 'On Update',
104
+ category: 'flow',
105
+ description: 'Fires every frame.',
106
+ color: '#e64553',
107
+ ports: [
108
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
109
+ { id: 'dt', name: 'Delta Time', direction: 'output', dataType: 'number' },
110
+ ],
111
+ execute: (_inputs, ctx) => {
112
+ ctx.triggerFlow('out');
113
+ return { dt: ctx.dt };
114
+ },
115
+ });
116
+ library.register({
117
+ type: 'if_else',
118
+ name: 'If / Else',
119
+ category: 'flow',
120
+ description: 'Branch based on condition.',
121
+ color: '#fab387',
122
+ ports: [
123
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
124
+ { id: 'cond', name: 'Condition', direction: 'input', dataType: 'boolean' },
125
+ { id: 'true', name: 'True', direction: 'output', dataType: 'flow' },
126
+ { id: 'false', name: 'False', direction: 'output', dataType: 'flow' },
127
+ ],
128
+ execute: (inputs, ctx) => {
129
+ ctx.triggerFlow(inputs.cond ? 'true' : 'false');
130
+ },
131
+ });
132
+ library.register({
133
+ type: 'delay',
134
+ name: 'Delay',
135
+ category: 'flow',
136
+ description: 'Wait for a duration then continue.',
137
+ color: '#fab387',
138
+ ports: [
139
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
140
+ { id: 'seconds', name: 'Seconds', direction: 'input', dataType: 'number', defaultValue: 1 },
141
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
142
+ ],
143
+ execute: (inputs, ctx) => {
144
+ // In a real implementation this would be async/coroutine-based
145
+ ctx.triggerFlow('out');
146
+ },
147
+ });
148
+ library.register({
149
+ type: 'sequence',
150
+ name: 'Sequence',
151
+ category: 'flow',
152
+ description: 'Execute outputs in order.',
153
+ color: '#fab387',
154
+ ports: [
155
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
156
+ { id: 'out1', name: '1', direction: 'output', dataType: 'flow' },
157
+ { id: 'out2', name: '2', direction: 'output', dataType: 'flow' },
158
+ { id: 'out3', name: '3', direction: 'output', dataType: 'flow' },
159
+ ],
160
+ execute: (_inputs, ctx) => {
161
+ ctx.triggerFlow('out1');
162
+ ctx.triggerFlow('out2');
163
+ ctx.triggerFlow('out3');
164
+ },
165
+ });
166
+ // ── Math ───────────────────────────────────────
167
+ library.register({
168
+ type: 'math_add',
169
+ name: 'Add',
170
+ category: 'math',
171
+ description: 'A + B',
172
+ color: '#89b4fa',
173
+ ports: [
174
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
175
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 0 },
176
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'number' },
177
+ ],
178
+ execute: (inputs) => ({ result: inputs.a + inputs.b }),
179
+ });
180
+ library.register({
181
+ type: 'math_sub',
182
+ name: 'Subtract',
183
+ category: 'math',
184
+ description: 'A - B',
185
+ color: '#89b4fa',
186
+ ports: [
187
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
188
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 0 },
189
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'number' },
190
+ ],
191
+ execute: (inputs) => ({ result: inputs.a - inputs.b }),
192
+ });
193
+ library.register({
194
+ type: 'math_mul',
195
+ name: 'Multiply',
196
+ category: 'math',
197
+ description: 'A × B',
198
+ color: '#89b4fa',
199
+ ports: [
200
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
201
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 1 },
202
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'number' },
203
+ ],
204
+ execute: (inputs) => ({ result: inputs.a * inputs.b }),
205
+ });
206
+ library.register({
207
+ type: 'math_div',
208
+ name: 'Divide',
209
+ category: 'math',
210
+ description: 'A ÷ B',
211
+ color: '#89b4fa',
212
+ ports: [
213
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
214
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 1 },
215
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'number' },
216
+ ],
217
+ execute: (inputs) => {
218
+ const b = inputs.b;
219
+ return { result: b !== 0 ? inputs.a / b : 0 };
220
+ },
221
+ });
222
+ library.register({
223
+ type: 'math_random',
224
+ name: 'Random',
225
+ category: 'math',
226
+ description: 'Random number between min and max.',
227
+ color: '#89b4fa',
228
+ ports: [
229
+ { id: 'min', name: 'Min', direction: 'input', dataType: 'number', defaultValue: 0 },
230
+ { id: 'max', name: 'Max', direction: 'input', dataType: 'number', defaultValue: 1 },
231
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'number' },
232
+ ],
233
+ execute: (inputs) => {
234
+ const min = inputs.min;
235
+ const max = inputs.max;
236
+ return { result: min + Math.random() * (max - min) };
237
+ },
238
+ });
239
+ // ── Comparison ─────────────────────────────────
240
+ library.register({
241
+ type: 'compare_eq',
242
+ name: 'Equals',
243
+ category: 'logic',
244
+ description: 'A == B',
245
+ color: '#a6e3a1',
246
+ ports: [
247
+ { id: 'a', name: 'A', direction: 'input', dataType: 'any' },
248
+ { id: 'b', name: 'B', direction: 'input', dataType: 'any' },
249
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
250
+ ],
251
+ execute: (inputs) => ({ result: inputs.a === inputs.b }),
252
+ });
253
+ library.register({
254
+ type: 'compare_gt',
255
+ name: 'Greater Than',
256
+ category: 'logic',
257
+ description: 'A > B',
258
+ color: '#a6e3a1',
259
+ ports: [
260
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
261
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 0 },
262
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
263
+ ],
264
+ execute: (inputs) => ({ result: inputs.a > inputs.b }),
265
+ });
266
+ library.register({
267
+ type: 'compare_lt',
268
+ name: 'Less Than',
269
+ category: 'logic',
270
+ description: 'A < B',
271
+ color: '#a6e3a1',
272
+ ports: [
273
+ { id: 'a', name: 'A', direction: 'input', dataType: 'number', defaultValue: 0 },
274
+ { id: 'b', name: 'B', direction: 'input', dataType: 'number', defaultValue: 0 },
275
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
276
+ ],
277
+ execute: (inputs) => ({ result: inputs.a < inputs.b }),
278
+ });
279
+ library.register({
280
+ type: 'logic_and',
281
+ name: 'And',
282
+ category: 'logic',
283
+ description: 'A AND B',
284
+ color: '#a6e3a1',
285
+ ports: [
286
+ { id: 'a', name: 'A', direction: 'input', dataType: 'boolean' },
287
+ { id: 'b', name: 'B', direction: 'input', dataType: 'boolean' },
288
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
289
+ ],
290
+ execute: (inputs) => ({ result: !!(inputs.a && inputs.b) }),
291
+ });
292
+ library.register({
293
+ type: 'logic_or',
294
+ name: 'Or',
295
+ category: 'logic',
296
+ description: 'A OR B',
297
+ color: '#a6e3a1',
298
+ ports: [
299
+ { id: 'a', name: 'A', direction: 'input', dataType: 'boolean' },
300
+ { id: 'b', name: 'B', direction: 'input', dataType: 'boolean' },
301
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
302
+ ],
303
+ execute: (inputs) => ({ result: !!(inputs.a || inputs.b) }),
304
+ });
305
+ library.register({
306
+ type: 'logic_not',
307
+ name: 'Not',
308
+ category: 'logic',
309
+ description: 'NOT A',
310
+ color: '#a6e3a1',
311
+ ports: [
312
+ { id: 'a', name: 'A', direction: 'input', dataType: 'boolean' },
313
+ { id: 'result', name: 'Result', direction: 'output', dataType: 'boolean' },
314
+ ],
315
+ execute: (inputs) => ({ result: !inputs.a }),
316
+ });
317
+ // ── Game / Input ───────────────────────────────
318
+ library.register({
319
+ type: 'input_action',
320
+ name: 'Input Action',
321
+ category: 'input',
322
+ description: 'Read an input action value.',
323
+ color: '#f9e2af',
324
+ ports: [
325
+ { id: 'action', name: 'Action', direction: 'input', dataType: 'string', defaultValue: 'moveX' },
326
+ { id: 'pressed', name: 'Pressed', direction: 'output', dataType: 'boolean' },
327
+ { id: 'value', name: 'Value', direction: 'output', dataType: 'number' },
328
+ ],
329
+ execute: (_inputs, ctx) => {
330
+ var _a;
331
+ const actionName = (_a = _inputs.action) !== null && _a !== void 0 ? _a : 'moveX';
332
+ const input = ctx.services['input'];
333
+ if (input === null || input === void 0 ? void 0 : input.getAction) {
334
+ const state = input.getAction(actionName);
335
+ return { pressed: state.pressed, value: state.value };
336
+ }
337
+ return { pressed: false, value: 0 };
338
+ },
339
+ });
340
+ library.register({
341
+ type: 'play_sound',
342
+ name: 'Play Sound',
343
+ category: 'audio',
344
+ description: 'Play a sound effect.',
345
+ color: '#cba6f7',
346
+ ports: [
347
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
348
+ { id: 'soundId', name: 'Sound', direction: 'input', dataType: 'string' },
349
+ { id: 'volume', name: 'Volume', direction: 'input', dataType: 'number', defaultValue: 1 },
350
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
351
+ ],
352
+ execute: (_inputs, ctx) => {
353
+ var _a;
354
+ const audio = ctx.services['audio'];
355
+ if (audio === null || audio === void 0 ? void 0 : audio.play) {
356
+ audio.play(_inputs.soundId, { volume: (_a = _inputs.volume) !== null && _a !== void 0 ? _a : 1 });
357
+ }
358
+ ctx.triggerFlow('out');
359
+ },
360
+ });
361
+ // ── Entity ─────────────────────────────────────
362
+ library.register({
363
+ type: 'get_position',
364
+ name: 'Get Position',
365
+ category: 'entity',
366
+ description: 'Get entity position.',
367
+ color: '#74c7ec',
368
+ ports: [
369
+ { id: 'entity', name: 'Entity', direction: 'input', dataType: 'entity' },
370
+ { id: 'x', name: 'X', direction: 'output', dataType: 'number' },
371
+ { id: 'y', name: 'Y', direction: 'output', dataType: 'number' },
372
+ ],
373
+ execute: (_inputs, ctx) => {
374
+ var _a;
375
+ const world = ctx.world;
376
+ const eid = ((_a = _inputs.entity) !== null && _a !== void 0 ? _a : ctx.entityId);
377
+ if ((world === null || world === void 0 ? void 0 : world.getComponent) && eid != null) {
378
+ const t = world.getComponent(eid, 'Transform');
379
+ if (t === null || t === void 0 ? void 0 : t.position)
380
+ return { x: t.position.x, y: t.position.y };
381
+ }
382
+ return { x: 0, y: 0 };
383
+ },
384
+ });
385
+ library.register({
386
+ type: 'set_position',
387
+ name: 'Set Position',
388
+ category: 'entity',
389
+ description: 'Set entity position.',
390
+ color: '#74c7ec',
391
+ ports: [
392
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
393
+ { id: 'entity', name: 'Entity', direction: 'input', dataType: 'entity' },
394
+ { id: 'x', name: 'X', direction: 'input', dataType: 'number', defaultValue: 0 },
395
+ { id: 'y', name: 'Y', direction: 'input', dataType: 'number', defaultValue: 0 },
396
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
397
+ ],
398
+ execute: (_inputs, ctx) => {
399
+ var _a, _b, _c;
400
+ const world = ctx.world;
401
+ const eid = ((_a = _inputs.entity) !== null && _a !== void 0 ? _a : ctx.entityId);
402
+ if ((world === null || world === void 0 ? void 0 : world.getComponent) && eid != null) {
403
+ const t = world.getComponent(eid, 'Transform');
404
+ if (t === null || t === void 0 ? void 0 : t.position) {
405
+ t.position.x = (_b = _inputs.x) !== null && _b !== void 0 ? _b : 0;
406
+ t.position.y = (_c = _inputs.y) !== null && _c !== void 0 ? _c : 0;
407
+ }
408
+ }
409
+ ctx.triggerFlow('out');
410
+ },
411
+ });
412
+ library.register({
413
+ type: 'spawn_entity',
414
+ name: 'Spawn Entity',
415
+ category: 'entity',
416
+ description: 'Create a new entity from a prefab.',
417
+ color: '#74c7ec',
418
+ ports: [
419
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
420
+ { id: 'prefab', name: 'Prefab', direction: 'input', dataType: 'string' },
421
+ { id: 'x', name: 'X', direction: 'input', dataType: 'number', defaultValue: 0 },
422
+ { id: 'y', name: 'Y', direction: 'input', dataType: 'number', defaultValue: 0 },
423
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
424
+ { id: 'entity', name: 'Entity', direction: 'output', dataType: 'entity' },
425
+ ],
426
+ execute: (_inputs, ctx) => {
427
+ ctx.triggerFlow('out');
428
+ return { entity: null };
429
+ },
430
+ });
431
+ library.register({
432
+ type: 'destroy_entity',
433
+ name: 'Destroy Entity',
434
+ category: 'entity',
435
+ description: 'Remove an entity from the world.',
436
+ color: '#74c7ec',
437
+ ports: [
438
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
439
+ { id: 'entity', name: 'Entity', direction: 'input', dataType: 'entity' },
440
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
441
+ ],
442
+ execute: (_inputs, ctx) => {
443
+ ctx.triggerFlow('out');
444
+ },
445
+ });
446
+ // ── Variables ──────────────────────────────────
447
+ library.register({
448
+ type: 'get_variable',
449
+ name: 'Get Variable',
450
+ category: 'variable',
451
+ description: 'Read a variable value.',
452
+ color: '#94e2d5',
453
+ ports: [
454
+ { id: 'name', name: 'Name', direction: 'input', dataType: 'string', defaultValue: '' },
455
+ { id: 'value', name: 'Value', direction: 'output', dataType: 'any' },
456
+ ],
457
+ execute: (inputs, ctx) => { var _a; return ({ value: ctx.variables[(_a = inputs.name) !== null && _a !== void 0 ? _a : ''] }); },
458
+ });
459
+ library.register({
460
+ type: 'set_variable',
461
+ name: 'Set Variable',
462
+ category: 'variable',
463
+ description: 'Write a variable value.',
464
+ color: '#94e2d5',
465
+ ports: [
466
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
467
+ { id: 'name', name: 'Name', direction: 'input', dataType: 'string', defaultValue: '' },
468
+ { id: 'value', name: 'Value', direction: 'input', dataType: 'any' },
469
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
470
+ ],
471
+ execute: (inputs, ctx) => {
472
+ const name = inputs.name;
473
+ if (name)
474
+ ctx.variables[name] = inputs.value;
475
+ ctx.triggerFlow('out');
476
+ },
477
+ });
478
+ // ── Physics ────────────────────────────────────
479
+ library.register({
480
+ type: 'apply_force',
481
+ name: 'Apply Force',
482
+ category: 'physics',
483
+ description: 'Apply a force to an entity.',
484
+ color: '#f38ba8',
485
+ ports: [
486
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
487
+ { id: 'entity', name: 'Entity', direction: 'input', dataType: 'entity' },
488
+ { id: 'x', name: 'X', direction: 'input', dataType: 'number', defaultValue: 0 },
489
+ { id: 'y', name: 'Y', direction: 'input', dataType: 'number', defaultValue: 0 },
490
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
491
+ ],
492
+ execute: (_inputs, ctx) => {
493
+ ctx.triggerFlow('out');
494
+ },
495
+ });
496
+ library.register({
497
+ type: 'on_collision',
498
+ name: 'On Collision',
499
+ category: 'physics',
500
+ description: 'Fires when entity collides with another.',
501
+ color: '#f38ba8',
502
+ ports: [
503
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
504
+ { id: 'other', name: 'Other', direction: 'output', dataType: 'entity' },
505
+ { id: 'normal_x', name: 'Normal X', direction: 'output', dataType: 'number' },
506
+ { id: 'normal_y', name: 'Normal Y', direction: 'output', dataType: 'number' },
507
+ ],
508
+ execute: (_inputs, ctx) => {
509
+ ctx.triggerFlow('out');
510
+ return { other: null, normal_x: 0, normal_y: 0 };
511
+ },
512
+ });
513
+ // ── Game Control ───────────────────────────────
514
+ library.register({
515
+ type: 'load_scene',
516
+ name: 'Load Scene',
517
+ category: 'game',
518
+ description: 'Load a scene by ID.',
519
+ color: '#eba0ac',
520
+ ports: [
521
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
522
+ { id: 'sceneId', name: 'Scene ID', direction: 'input', dataType: 'string' },
523
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
524
+ ],
525
+ execute: (_inputs, ctx) => {
526
+ ctx.triggerFlow('out');
527
+ },
528
+ });
529
+ library.register({
530
+ type: 'camera_shake',
531
+ name: 'Camera Shake',
532
+ category: 'game',
533
+ description: 'Shake the camera.',
534
+ color: '#eba0ac',
535
+ ports: [
536
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
537
+ { id: 'intensity', name: 'Intensity', direction: 'input', dataType: 'number', defaultValue: 5 },
538
+ { id: 'duration', name: 'Duration', direction: 'input', dataType: 'number', defaultValue: 0.3 },
539
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
540
+ ],
541
+ execute: (_inputs, ctx) => {
542
+ ctx.triggerFlow('out');
543
+ },
544
+ });
545
+ library.register({
546
+ type: 'print',
547
+ name: 'Print',
548
+ category: 'flow',
549
+ description: 'Log a value to the console.',
550
+ color: '#fab387',
551
+ ports: [
552
+ { id: 'in', name: '', direction: 'input', dataType: 'flow' },
553
+ { id: 'message', name: 'Message', direction: 'input', dataType: 'any' },
554
+ { id: 'out', name: '', direction: 'output', dataType: 'flow' },
555
+ ],
556
+ execute: (inputs, ctx) => {
557
+ ctx.events.emit('script:log', inputs.message);
558
+ ctx.triggerFlow('out');
559
+ },
560
+ });
561
+ }
562
+ /* ── Helper: Create a default library with all built-in nodes ── */
563
+ function createDefaultNodeLibrary() {
564
+ const lib = new NodeLibrary();
565
+ registerBuiltInNodes(lib);
566
+ return lib;
567
+ }
568
+
569
+ exports.GraphExecutor = GraphExecutor;
570
+ exports.NodeLibrary = NodeLibrary;
571
+ exports.createDefaultNodeLibrary = createDefaultNodeLibrary;
572
+ exports.registerBuiltInNodes = registerBuiltInNodes;
573
+ //# sourceMappingURL=NodeGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeGraph.js","sources":["../../../src/scripting/NodeGraph.ts"],"sourcesContent":[null],"names":["EventBus"],"mappings":"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"}