@nice2dev/game-engine 0.1.0 → 1.0.3

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 (294) hide show
  1. package/CHANGELOG.md +193 -1
  2. package/dist/cjs/ai/BehaviorTree.js +1215 -0
  3. package/dist/cjs/ai/BehaviorTree.js.map +1 -0
  4. package/dist/cjs/ai/StateMachine.js +783 -0
  5. package/dist/cjs/ai/StateMachine.js.map +1 -0
  6. package/dist/cjs/audio/AudioBridge.js +454 -0
  7. package/dist/cjs/audio/AudioBridge.js.map +1 -0
  8. package/dist/cjs/devtools/GameplayAnalytics.js +651 -0
  9. package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -0
  10. package/dist/cjs/dialogue/DialogueSystem.js +1023 -0
  11. package/dist/cjs/dialogue/DialogueSystem.js.map +1 -0
  12. package/dist/cjs/editor/NiceGameEditor.js +569 -71
  13. package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
  14. package/dist/cjs/editor/ShaderGraph.js +1616 -0
  15. package/dist/cjs/editor/ShaderGraph.js.map +1 -0
  16. package/dist/cjs/editor/TimelineEditor.js +819 -0
  17. package/dist/cjs/editor/TimelineEditor.js.map +1 -0
  18. package/dist/cjs/engine/SaveSystemV2.js +494 -0
  19. package/dist/cjs/engine/SaveSystemV2.js.map +1 -0
  20. package/dist/cjs/export/GodotExporter.js +1102 -0
  21. package/dist/cjs/export/GodotExporter.js.map +1 -0
  22. package/dist/cjs/export/PlatformExporter.js +236 -0
  23. package/dist/cjs/export/PlatformExporter.js.map +1 -0
  24. package/dist/cjs/export/ThreeJSExporter.js +1116 -0
  25. package/dist/cjs/export/ThreeJSExporter.js.map +1 -0
  26. package/dist/cjs/export/UnityExporter.js +1193 -0
  27. package/dist/cjs/export/UnityExporter.js.map +1 -0
  28. package/dist/cjs/export/WebExporter.js +1036 -0
  29. package/dist/cjs/export/WebExporter.js.map +1 -0
  30. package/dist/cjs/export/index.js +58 -0
  31. package/dist/cjs/export/index.js.map +1 -0
  32. package/dist/cjs/i18n/useTranslation.js +11 -11
  33. package/dist/cjs/import/AsepriteImporter.js +761 -0
  34. package/dist/cjs/import/AsepriteImporter.js.map +1 -0
  35. package/dist/cjs/import/DragonBonesImporter.js +499 -0
  36. package/dist/cjs/import/DragonBonesImporter.js.map +1 -0
  37. package/dist/cjs/import/GameMakerImporter.js +559 -0
  38. package/dist/cjs/import/GameMakerImporter.js.map +1 -0
  39. package/dist/cjs/import/GodotSceneImporter.js +824 -0
  40. package/dist/cjs/import/GodotSceneImporter.js.map +1 -0
  41. package/dist/cjs/import/LDtkImporter.js +481 -0
  42. package/dist/cjs/import/LDtkImporter.js.map +1 -0
  43. package/dist/cjs/import/Live2DImporter.js +553 -0
  44. package/dist/cjs/import/Live2DImporter.js.map +1 -0
  45. package/dist/cjs/import/NdgFormat.js +499 -0
  46. package/dist/cjs/import/NdgFormat.js.map +1 -0
  47. package/dist/cjs/import/OgmoImporter.js +529 -0
  48. package/dist/cjs/import/OgmoImporter.js.map +1 -0
  49. package/dist/cjs/import/RPGMakerImporter.js +520 -0
  50. package/dist/cjs/import/RPGMakerImporter.js.map +1 -0
  51. package/dist/cjs/import/SceneImporter.js +449 -0
  52. package/dist/cjs/import/SceneImporter.js.map +1 -0
  53. package/dist/cjs/import/SpineImporter.js +583 -0
  54. package/dist/cjs/import/SpineImporter.js.map +1 -0
  55. package/dist/cjs/import/SpriterImporter.js +652 -0
  56. package/dist/cjs/import/SpriterImporter.js.map +1 -0
  57. package/dist/cjs/import/TiledMapImporter.js +859 -0
  58. package/dist/cjs/import/TiledMapImporter.js.map +1 -0
  59. package/dist/cjs/import/UnitySceneImporter.js +732 -0
  60. package/dist/cjs/import/UnitySceneImporter.js.map +1 -0
  61. package/dist/cjs/import/index.js +305 -0
  62. package/dist/cjs/import/index.js.map +1 -0
  63. package/dist/cjs/index.js +291 -1
  64. package/dist/cjs/index.js.map +1 -1
  65. package/dist/cjs/input/GamepadNavigation.js +21 -21
  66. package/dist/cjs/input/useGamepads.js +6 -6
  67. package/dist/cjs/integration/IconSprite.js +281 -0
  68. package/dist/cjs/integration/IconSprite.js.map +1 -0
  69. package/dist/cjs/inventory/InventorySystem.js +930 -0
  70. package/dist/cjs/inventory/InventorySystem.js.map +1 -0
  71. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
  72. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
  73. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
  74. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
  75. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
  76. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
  77. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
  78. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
  79. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
  80. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
  81. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
  82. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
  83. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
  84. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
  85. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
  86. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
  87. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
  88. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
  89. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
  90. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
  91. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
  92. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
  93. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
  94. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
  95. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
  96. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
  97. package/dist/cjs/quest/QuestSystem.js +924 -0
  98. package/dist/cjs/quest/QuestSystem.js.map +1 -0
  99. package/dist/cjs/rendering/WebGPURenderPipeline.js +658 -0
  100. package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -0
  101. package/dist/cjs/scripting/GraphToAST.js +567 -0
  102. package/dist/cjs/scripting/GraphToAST.js.map +1 -0
  103. package/dist/cjs/scripting/LanguageExporter.js +321 -0
  104. package/dist/cjs/scripting/LanguageExporter.js.map +1 -0
  105. package/dist/cjs/scripting/ScriptAST.js +67 -0
  106. package/dist/cjs/scripting/ScriptAST.js.map +1 -0
  107. package/dist/cjs/scripting/VisualScripting2.js +1140 -0
  108. package/dist/cjs/scripting/VisualScripting2.js.map +1 -0
  109. package/dist/cjs/scripting/exporters/CSharpExporter.js +503 -0
  110. package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -0
  111. package/dist/cjs/scripting/exporters/GDScriptExporter.js +452 -0
  112. package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -0
  113. package/dist/cjs/scripting/exporters/LuaExporter.js +457 -0
  114. package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -0
  115. package/dist/cjs/scripting/exporters/PythonExporter.js +565 -0
  116. package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -0
  117. package/dist/cjs/scripting/exporters/RustExporter.js +525 -0
  118. package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -0
  119. package/dist/cjs/scripting/exporters/TypeScriptExporter.js +570 -0
  120. package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -0
  121. package/dist/cjs/systems/ParticleSystem2.js +1478 -0
  122. package/dist/cjs/systems/ParticleSystem2.js.map +1 -0
  123. package/dist/cjs/xr/ARVR.js.map +1 -1
  124. package/dist/esm/ai/BehaviorTree.js +1186 -0
  125. package/dist/esm/ai/BehaviorTree.js.map +1 -0
  126. package/dist/esm/ai/StateMachine.js +767 -0
  127. package/dist/esm/ai/StateMachine.js.map +1 -0
  128. package/dist/esm/audio/AudioBridge.js +446 -0
  129. package/dist/esm/audio/AudioBridge.js.map +1 -0
  130. package/dist/esm/devtools/GameplayAnalytics.js +639 -0
  131. package/dist/esm/devtools/GameplayAnalytics.js.map +1 -0
  132. package/dist/esm/dialogue/DialogueSystem.js +1008 -0
  133. package/dist/esm/dialogue/DialogueSystem.js.map +1 -0
  134. package/dist/esm/editor/NiceGameEditor.js +556 -58
  135. package/dist/esm/editor/NiceGameEditor.js.map +1 -1
  136. package/dist/esm/editor/ShaderGraph.js +1606 -0
  137. package/dist/esm/editor/ShaderGraph.js.map +1 -0
  138. package/dist/esm/editor/TimelineEditor.js +800 -0
  139. package/dist/esm/editor/TimelineEditor.js.map +1 -0
  140. package/dist/esm/engine/SaveSystemV2.js +487 -0
  141. package/dist/esm/engine/SaveSystemV2.js.map +1 -0
  142. package/dist/esm/export/GodotExporter.js +1100 -0
  143. package/dist/esm/export/GodotExporter.js.map +1 -0
  144. package/dist/esm/export/PlatformExporter.js +230 -0
  145. package/dist/esm/export/PlatformExporter.js.map +1 -0
  146. package/dist/esm/export/ThreeJSExporter.js +1114 -0
  147. package/dist/esm/export/ThreeJSExporter.js.map +1 -0
  148. package/dist/esm/export/UnityExporter.js +1191 -0
  149. package/dist/esm/export/UnityExporter.js.map +1 -0
  150. package/dist/esm/export/WebExporter.js +1033 -0
  151. package/dist/esm/export/WebExporter.js.map +1 -0
  152. package/dist/esm/export/index.js +44 -0
  153. package/dist/esm/export/index.js.map +1 -0
  154. package/dist/esm/import/AsepriteImporter.js +759 -0
  155. package/dist/esm/import/AsepriteImporter.js.map +1 -0
  156. package/dist/esm/import/DragonBonesImporter.js +496 -0
  157. package/dist/esm/import/DragonBonesImporter.js.map +1 -0
  158. package/dist/esm/import/GameMakerImporter.js +556 -0
  159. package/dist/esm/import/GameMakerImporter.js.map +1 -0
  160. package/dist/esm/import/GodotSceneImporter.js +822 -0
  161. package/dist/esm/import/GodotSceneImporter.js.map +1 -0
  162. package/dist/esm/import/LDtkImporter.js +479 -0
  163. package/dist/esm/import/LDtkImporter.js.map +1 -0
  164. package/dist/esm/import/Live2DImporter.js +550 -0
  165. package/dist/esm/import/Live2DImporter.js.map +1 -0
  166. package/dist/esm/import/NdgFormat.js +490 -0
  167. package/dist/esm/import/NdgFormat.js.map +1 -0
  168. package/dist/esm/import/OgmoImporter.js +526 -0
  169. package/dist/esm/import/OgmoImporter.js.map +1 -0
  170. package/dist/esm/import/RPGMakerImporter.js +517 -0
  171. package/dist/esm/import/RPGMakerImporter.js.map +1 -0
  172. package/dist/esm/import/SceneImporter.js +441 -0
  173. package/dist/esm/import/SceneImporter.js.map +1 -0
  174. package/dist/esm/import/SpineImporter.js +580 -0
  175. package/dist/esm/import/SpineImporter.js.map +1 -0
  176. package/dist/esm/import/SpriterImporter.js +649 -0
  177. package/dist/esm/import/SpriterImporter.js.map +1 -0
  178. package/dist/esm/import/TiledMapImporter.js +857 -0
  179. package/dist/esm/import/TiledMapImporter.js.map +1 -0
  180. package/dist/esm/import/UnitySceneImporter.js +730 -0
  181. package/dist/esm/import/UnitySceneImporter.js.map +1 -0
  182. package/dist/esm/import/index.js +279 -0
  183. package/dist/esm/import/index.js.map +1 -0
  184. package/dist/esm/index.js +47 -3
  185. package/dist/esm/index.js.map +1 -1
  186. package/dist/esm/integration/IconSprite.js +266 -0
  187. package/dist/esm/integration/IconSprite.js.map +1 -0
  188. package/dist/esm/inventory/InventorySystem.js +924 -0
  189. package/dist/esm/inventory/InventorySystem.js.map +1 -0
  190. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
  191. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
  192. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
  193. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
  194. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
  195. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
  196. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
  197. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
  198. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
  199. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
  200. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
  201. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
  202. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
  203. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
  204. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
  205. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
  206. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
  207. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
  208. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
  209. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
  210. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
  211. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
  212. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
  213. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
  214. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
  215. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
  216. package/dist/esm/quest/QuestSystem.js +916 -0
  217. package/dist/esm/quest/QuestSystem.js.map +1 -0
  218. package/dist/esm/rendering/WebGPURenderPipeline.js +642 -0
  219. package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -0
  220. package/dist/esm/scripting/GraphToAST.js +564 -0
  221. package/dist/esm/scripting/GraphToAST.js.map +1 -0
  222. package/dist/esm/scripting/LanguageExporter.js +311 -0
  223. package/dist/esm/scripting/LanguageExporter.js.map +1 -0
  224. package/dist/esm/scripting/ScriptAST.js +52 -0
  225. package/dist/esm/scripting/ScriptAST.js.map +1 -0
  226. package/dist/esm/scripting/VisualScripting2.js +1130 -0
  227. package/dist/esm/scripting/VisualScripting2.js.map +1 -0
  228. package/dist/esm/scripting/exporters/CSharpExporter.js +501 -0
  229. package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -0
  230. package/dist/esm/scripting/exporters/GDScriptExporter.js +450 -0
  231. package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -0
  232. package/dist/esm/scripting/exporters/LuaExporter.js +455 -0
  233. package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -0
  234. package/dist/esm/scripting/exporters/PythonExporter.js +563 -0
  235. package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -0
  236. package/dist/esm/scripting/exporters/RustExporter.js +523 -0
  237. package/dist/esm/scripting/exporters/RustExporter.js.map +1 -0
  238. package/dist/esm/scripting/exporters/TypeScriptExporter.js +568 -0
  239. package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -0
  240. package/dist/esm/systems/ParticleSystem2.js +1471 -0
  241. package/dist/esm/systems/ParticleSystem2.js.map +1 -0
  242. package/dist/esm/xr/ARVR.js.map +1 -1
  243. package/dist/types/__tests__/setup.d.ts +1 -1
  244. package/dist/types/ai/BehaviorTree.d.ts +375 -0
  245. package/dist/types/ai/StateMachine.d.ts +296 -0
  246. package/dist/types/audio/AudioBridge.d.ts +199 -0
  247. package/dist/types/devtools/GameplayAnalytics.d.ts +279 -0
  248. package/dist/types/dialogue/DialogueSystem.d.ts +326 -0
  249. package/dist/types/dialogue/index.d.ts +2 -0
  250. package/dist/types/editor/NiceGameEditor.d.ts +12 -1
  251. package/dist/types/editor/ShaderGraph.d.ts +207 -0
  252. package/dist/types/editor/TimelineEditor.d.ts +393 -0
  253. package/dist/types/engine/SaveSystemV2.d.ts +155 -0
  254. package/dist/types/export/GodotExporter.d.ts +56 -0
  255. package/dist/types/export/PlatformExporter.d.ts +201 -0
  256. package/dist/types/export/ThreeJSExporter.d.ts +40 -0
  257. package/dist/types/export/UnityExporter.d.ts +69 -0
  258. package/dist/types/export/WebExporter.d.ts +58 -0
  259. package/dist/types/export/index.d.ts +19 -0
  260. package/dist/types/import/AsepriteImporter.d.ts +46 -0
  261. package/dist/types/import/DragonBonesImporter.d.ts +331 -0
  262. package/dist/types/import/GameMakerImporter.d.ts +375 -0
  263. package/dist/types/import/GodotSceneImporter.d.ts +34 -0
  264. package/dist/types/import/LDtkImporter.d.ts +177 -0
  265. package/dist/types/import/Live2DImporter.d.ts +237 -0
  266. package/dist/types/import/NdgFormat.d.ts +387 -0
  267. package/dist/types/import/OgmoImporter.d.ts +237 -0
  268. package/dist/types/import/RPGMakerImporter.d.ts +186 -0
  269. package/dist/types/import/SceneImporter.d.ts +276 -0
  270. package/dist/types/import/SpineImporter.d.ts +372 -0
  271. package/dist/types/import/SpriterImporter.d.ts +230 -0
  272. package/dist/types/import/TiledMapImporter.d.ts +57 -0
  273. package/dist/types/import/UnitySceneImporter.d.ts +87 -0
  274. package/dist/types/import/index.d.ts +59 -0
  275. package/dist/types/index.d.ts +46 -18
  276. package/dist/types/integration/IconSprite.d.ts +196 -0
  277. package/dist/types/inventory/InventorySystem.d.ts +336 -0
  278. package/dist/types/performance/WebGPUCompute.d.ts +0 -10
  279. package/dist/types/quest/QuestSystem.d.ts +287 -0
  280. package/dist/types/rendering/WebGPURenderPipeline.d.ts +255 -0
  281. package/dist/types/scripting/GraphToAST.d.ts +55 -0
  282. package/dist/types/scripting/LanguageExporter.d.ts +136 -0
  283. package/dist/types/scripting/ScriptAST.d.ts +312 -0
  284. package/dist/types/scripting/VisualScripting2.d.ts +353 -0
  285. package/dist/types/scripting/exporters/CSharpExporter.d.ts +44 -0
  286. package/dist/types/scripting/exporters/GDScriptExporter.d.ts +46 -0
  287. package/dist/types/scripting/exporters/LuaExporter.d.ts +46 -0
  288. package/dist/types/scripting/exporters/PythonExporter.d.ts +49 -0
  289. package/dist/types/scripting/exporters/RustExporter.d.ts +46 -0
  290. package/dist/types/scripting/exporters/TypeScriptExporter.d.ts +48 -0
  291. package/dist/types/scripting/exporters/index.d.ts +8 -0
  292. package/dist/types/scripting/index.d.ts +11 -0
  293. package/dist/types/systems/ParticleSystem2.d.ts +646 -0
  294. package/package.json +7 -1
@@ -0,0 +1,646 @@
1
+ /**
2
+ * @file ParticleSystem2.ts
3
+ * @description Advanced Particle System with GPU Compute and Visual Editor
4
+ * PRO-1.4: Professional Editor Features
5
+ *
6
+ * Features:
7
+ * - GPU-accelerated particles (WebGPU Compute)
8
+ * - Multiple emitter shapes
9
+ * - Force fields (gravity, wind, vortex, etc.)
10
+ * - Sub-emitters and trails
11
+ * - Collision detection
12
+ * - LOD system
13
+ * - Visual editor integration
14
+ */
15
+ export type ParticleSimulationSpace = 'local' | 'world';
16
+ export type ParticleRenderMode = 'billboard' | 'stretchedBillboard' | 'horizontalBillboard' | 'verticalBillboard' | 'mesh' | 'trail';
17
+ export type ParticleBlendMode = 'alpha' | 'additive' | 'multiply' | 'premultiplied';
18
+ export type ParticleSortingMode = 'none' | 'byDistance' | 'oldestFirst' | 'youngestFirst';
19
+ export type InterpolationMode = 'linear' | 'smooth' | 'step';
20
+ export interface CurveKeyframe {
21
+ time: number;
22
+ value: number;
23
+ inTangent: number;
24
+ outTangent: number;
25
+ mode: 'auto' | 'free' | 'linear' | 'constant';
26
+ }
27
+ export interface ParticleAnimationCurve {
28
+ keyframes: CurveKeyframe[];
29
+ preWrapMode: 'clamp' | 'loop' | 'pingPong';
30
+ postWrapMode: 'clamp' | 'loop' | 'pingPong';
31
+ }
32
+ export interface Gradient {
33
+ colorKeys: {
34
+ time: number;
35
+ color: [number, number, number];
36
+ }[];
37
+ alphaKeys: {
38
+ time: number;
39
+ alpha: number;
40
+ }[];
41
+ mode: 'blend' | 'fixed';
42
+ }
43
+ export type MinMaxCurve = {
44
+ mode: 'constant';
45
+ value: number;
46
+ } | {
47
+ mode: 'curve';
48
+ curve: ParticleAnimationCurve;
49
+ multiplier: number;
50
+ } | {
51
+ mode: 'randomBetweenTwoConstants';
52
+ min: number;
53
+ max: number;
54
+ } | {
55
+ mode: 'randomBetweenTwoCurves';
56
+ curveMin: ParticleAnimationCurve;
57
+ curveMax: ParticleAnimationCurve;
58
+ multiplier: number;
59
+ };
60
+ export type MinMaxGradient = {
61
+ mode: 'color';
62
+ color: [number, number, number, number];
63
+ } | {
64
+ mode: 'gradient';
65
+ gradient: Gradient;
66
+ } | {
67
+ mode: 'randomBetweenTwoColors';
68
+ colorMin: [number, number, number, number];
69
+ colorMax: [number, number, number, number];
70
+ } | {
71
+ mode: 'randomBetweenTwoGradients';
72
+ gradientMin: Gradient;
73
+ gradientMax: Gradient;
74
+ };
75
+ export type MinMaxVector3 = {
76
+ mode: 'constant';
77
+ value: [number, number, number];
78
+ } | {
79
+ mode: 'randomBetweenTwoConstants';
80
+ min: [number, number, number];
81
+ max: [number, number, number];
82
+ };
83
+ export type EmitterShape = SphereShape | HemisphereShape | ConeShape | BoxShape | CircleShape | RectangleShape | EdgeShape | MeshShape | SkinnnedMeshShape;
84
+ export interface SphereShape {
85
+ type: 'sphere';
86
+ radius: number;
87
+ radiusThickness: number;
88
+ arc: number;
89
+ arcMode: 'random' | 'loop' | 'pingPong' | 'burstSpread';
90
+ arcSpeed: number;
91
+ position: [number, number, number];
92
+ rotation: [number, number, number];
93
+ scale: [number, number, number];
94
+ }
95
+ export interface HemisphereShape {
96
+ type: 'hemisphere';
97
+ radius: number;
98
+ radiusThickness: number;
99
+ arc: number;
100
+ arcMode: 'random' | 'loop' | 'pingPong' | 'burstSpread';
101
+ arcSpeed: number;
102
+ position: [number, number, number];
103
+ rotation: [number, number, number];
104
+ scale: [number, number, number];
105
+ }
106
+ export interface ConeShape {
107
+ type: 'cone';
108
+ angle: number;
109
+ radius: number;
110
+ radiusThickness: number;
111
+ arc: number;
112
+ arcMode: 'random' | 'loop' | 'pingPong' | 'burstSpread';
113
+ arcSpeed: number;
114
+ length: number;
115
+ emitFrom: 'base' | 'volume' | 'shell' | 'volumeShell';
116
+ position: [number, number, number];
117
+ rotation: [number, number, number];
118
+ scale: [number, number, number];
119
+ }
120
+ export interface BoxShape {
121
+ type: 'box';
122
+ emitFrom: 'volume' | 'shell' | 'edge';
123
+ position: [number, number, number];
124
+ rotation: [number, number, number];
125
+ scale: [number, number, number];
126
+ }
127
+ export interface CircleShape {
128
+ type: 'circle';
129
+ radius: number;
130
+ radiusThickness: number;
131
+ arc: number;
132
+ arcMode: 'random' | 'loop' | 'pingPong' | 'burstSpread';
133
+ arcSpeed: number;
134
+ position: [number, number, number];
135
+ rotation: [number, number, number];
136
+ scale: [number, number, number];
137
+ }
138
+ export interface RectangleShape {
139
+ type: 'rectangle';
140
+ emitFrom: 'vertex' | 'edge' | 'shell';
141
+ position: [number, number, number];
142
+ rotation: [number, number, number];
143
+ scale: [number, number, number];
144
+ }
145
+ export interface EdgeShape {
146
+ type: 'edge';
147
+ radius: number;
148
+ radiusMode: 'random' | 'loop' | 'pingPong' | 'burstSpread';
149
+ radiusSpeed: number;
150
+ position: [number, number, number];
151
+ rotation: [number, number, number];
152
+ scale: [number, number, number];
153
+ }
154
+ export interface MeshShape {
155
+ type: 'mesh';
156
+ meshId: string;
157
+ emitFrom: 'vertex' | 'edge' | 'triangle';
158
+ useMeshColors: boolean;
159
+ normalOffset: number;
160
+ position: [number, number, number];
161
+ rotation: [number, number, number];
162
+ scale: [number, number, number];
163
+ }
164
+ export interface SkinnnedMeshShape {
165
+ type: 'skinnedMesh';
166
+ meshId: string;
167
+ emitFrom: 'vertex' | 'edge' | 'triangle';
168
+ useMeshColors: boolean;
169
+ normalOffset: number;
170
+ position: [number, number, number];
171
+ rotation: [number, number, number];
172
+ scale: [number, number, number];
173
+ }
174
+ export type ForceField = GravityField | DirectionalField | VortexField | DragField | TurbulenceField | AttractorField | VectorField;
175
+ export interface GravityField {
176
+ type: 'gravity';
177
+ strength: number;
178
+ direction: [number, number, number];
179
+ }
180
+ export interface DirectionalField {
181
+ type: 'directional';
182
+ strength: MinMaxCurve;
183
+ direction: [number, number, number];
184
+ randomize: number;
185
+ }
186
+ export interface VortexField {
187
+ type: 'vortex';
188
+ center: [number, number, number];
189
+ axis: [number, number, number];
190
+ strength: MinMaxCurve;
191
+ attractionStrength: number;
192
+ radius: number;
193
+ }
194
+ export interface DragField {
195
+ type: 'drag';
196
+ coefficient: MinMaxCurve;
197
+ multiplyBySize: boolean;
198
+ multiplyByVelocity: boolean;
199
+ }
200
+ export interface TurbulenceField {
201
+ type: 'turbulence';
202
+ strength: MinMaxCurve;
203
+ frequency: number;
204
+ scrollSpeed: [number, number, number];
205
+ octaves: number;
206
+ roughness: number;
207
+ }
208
+ export interface AttractorField {
209
+ type: 'attractor';
210
+ position: [number, number, number];
211
+ strength: MinMaxCurve;
212
+ radius: number;
213
+ radiusScale: number;
214
+ killOnArrive: boolean;
215
+ }
216
+ export interface VectorField {
217
+ type: 'vectorField';
218
+ textureId: string;
219
+ strength: MinMaxCurve;
220
+ speed: number;
221
+ attractionSpeed: number;
222
+ position: [number, number, number];
223
+ rotation: [number, number, number];
224
+ scale: [number, number, number];
225
+ }
226
+ export interface ParticleCollision {
227
+ enabled: boolean;
228
+ type: 'planes' | 'world' | 'depth';
229
+ planes: CollisionPlane[];
230
+ bounce: MinMaxCurve;
231
+ lifetimeLoss: MinMaxCurve;
232
+ minKillSpeed: number;
233
+ radiusScale: number;
234
+ dampen: MinMaxCurve;
235
+ enableDynamicColliders: boolean;
236
+ colliderForce: number;
237
+ multiplyByCollisionAngle: boolean;
238
+ multiplyByParticleSpeed: boolean;
239
+ multiplyByParticleSize: boolean;
240
+ sendCollisionMessages: boolean;
241
+ }
242
+ export interface CollisionPlane {
243
+ normal: [number, number, number];
244
+ position: [number, number, number];
245
+ }
246
+ export type SubEmitterTrigger = 'birth' | 'collision' | 'death' | 'trigger' | 'manual';
247
+ export interface SubEmitter {
248
+ id: string;
249
+ systemId: string;
250
+ trigger: SubEmitterTrigger;
251
+ probability: number;
252
+ inheritProperties: {
253
+ color: boolean;
254
+ size: boolean;
255
+ rotation: boolean;
256
+ lifetime: boolean;
257
+ duration: boolean;
258
+ };
259
+ emitProbability: number;
260
+ }
261
+ export interface ParticleTrail {
262
+ enabled: boolean;
263
+ ratio: number;
264
+ lifetime: MinMaxCurve;
265
+ minVertexDistance: number;
266
+ textureMode: 'stretch' | 'tile' | 'distributePerSegment' | 'repeatPerSegment';
267
+ worldSpace: boolean;
268
+ dieWithParticle: boolean;
269
+ sizeAffectsWidth: boolean;
270
+ sizeAffectsLifetime: boolean;
271
+ inheritParticleColor: boolean;
272
+ colorOverLifetime: MinMaxGradient;
273
+ widthOverTrail: MinMaxCurve;
274
+ colorOverTrail: MinMaxGradient;
275
+ generateLightingData: boolean;
276
+ shadowBias: number;
277
+ }
278
+ export interface TextureSheetAnimation {
279
+ enabled: boolean;
280
+ mode: 'grid' | 'sprites';
281
+ tilesX: number;
282
+ tilesY: number;
283
+ animation: 'wholeSheet' | 'singleRow';
284
+ rowIndex: number;
285
+ rowMode: 'custom' | 'random' | 'meshIndex';
286
+ timeMode: 'lifetime' | 'speed' | 'fps';
287
+ frameOverTime: MinMaxCurve;
288
+ startFrame: MinMaxCurve;
289
+ cycleCount: number;
290
+ speedRange: [number, number];
291
+ fps: number;
292
+ sprites: {
293
+ name: string;
294
+ frame: number;
295
+ }[];
296
+ }
297
+ export interface ParticleLights {
298
+ enabled: boolean;
299
+ ratio: number;
300
+ randomDistribution: boolean;
301
+ light: {
302
+ type: 'point' | 'spot';
303
+ color: MinMaxGradient;
304
+ intensity: MinMaxCurve;
305
+ range: MinMaxCurve;
306
+ spotAngle?: number;
307
+ };
308
+ useParticleColor: boolean;
309
+ sizeAffectsRange: boolean;
310
+ alphaAffectsIntensity: boolean;
311
+ maxLights: number;
312
+ }
313
+ export interface ParticleNoise {
314
+ enabled: boolean;
315
+ separateAxes: boolean;
316
+ strength: MinMaxCurve;
317
+ strengthX?: MinMaxCurve;
318
+ strengthY?: MinMaxCurve;
319
+ strengthZ?: MinMaxCurve;
320
+ frequency: number;
321
+ scrollSpeed: number;
322
+ damping: boolean;
323
+ octaves: number;
324
+ octaveMultiplier: number;
325
+ octaveScale: number;
326
+ quality: 'low' | 'medium' | 'high';
327
+ remapEnabled: boolean;
328
+ remapCurve: ParticleAnimationCurve;
329
+ remapX?: ParticleAnimationCurve;
330
+ remapY?: ParticleAnimationCurve;
331
+ remapZ?: ParticleAnimationCurve;
332
+ positionAmount: MinMaxCurve;
333
+ rotationAmount: MinMaxCurve;
334
+ sizeAmount: MinMaxCurve;
335
+ }
336
+ export interface ParticleSystemDef {
337
+ id: string;
338
+ name: string;
339
+ main: {
340
+ duration: number;
341
+ looping: boolean;
342
+ prewarm: boolean;
343
+ startDelay: MinMaxCurve;
344
+ startLifetime: MinMaxCurve;
345
+ startSpeed: MinMaxCurve;
346
+ startSize3D: boolean;
347
+ startSize: MinMaxCurve;
348
+ startSizeX?: MinMaxCurve;
349
+ startSizeY?: MinMaxCurve;
350
+ startSizeZ?: MinMaxCurve;
351
+ startRotation3D: boolean;
352
+ startRotation: MinMaxCurve;
353
+ startRotationX?: MinMaxCurve;
354
+ startRotationY?: MinMaxCurve;
355
+ startRotationZ?: MinMaxCurve;
356
+ flipRotation: number;
357
+ startColor: MinMaxGradient;
358
+ gravityModifier: MinMaxCurve;
359
+ simulationSpace: ParticleSimulationSpace;
360
+ simulationSpeed: number;
361
+ deltaTime: 'scaled' | 'unscaled';
362
+ scalingMode: 'hierarchy' | 'local' | 'shape';
363
+ playOnAwake: boolean;
364
+ emitterVelocityMode: 'transform' | 'rigidbody' | 'custom';
365
+ maxParticles: number;
366
+ stopAction: 'none' | 'disable' | 'destroy' | 'callback';
367
+ cullingMode: 'automatic' | 'pauseAndCatchUp' | 'pause' | 'alwaysSimulate';
368
+ ringBufferMode: 'disabled' | 'pauseUntilReplaced' | 'loopUntilReplaced';
369
+ ringBufferLoopRange: [number, number];
370
+ };
371
+ emission: {
372
+ enabled: boolean;
373
+ rateOverTime: MinMaxCurve;
374
+ rateOverDistance: MinMaxCurve;
375
+ bursts: EmissionBurst[];
376
+ };
377
+ shape: EmitterShape;
378
+ velocityOverLifetime: {
379
+ enabled: boolean;
380
+ space: 'local' | 'world';
381
+ linear: MinMaxVector3;
382
+ orbital: MinMaxVector3;
383
+ offset: MinMaxVector3;
384
+ radial: MinMaxCurve;
385
+ speedModifier: MinMaxCurve;
386
+ };
387
+ limitVelocityOverLifetime: {
388
+ enabled: boolean;
389
+ separateAxes: boolean;
390
+ speed: MinMaxCurve;
391
+ speedX?: MinMaxCurve;
392
+ speedY?: MinMaxCurve;
393
+ speedZ?: MinMaxCurve;
394
+ space: 'local' | 'world';
395
+ dampen: number;
396
+ drag: MinMaxCurve;
397
+ multiplyDragBySize: boolean;
398
+ multiplyDragByVelocity: boolean;
399
+ };
400
+ inheritVelocity: {
401
+ enabled: boolean;
402
+ mode: 'initial' | 'current';
403
+ curve: MinMaxCurve;
404
+ };
405
+ lifetimeByEmitterSpeed: {
406
+ enabled: boolean;
407
+ curve: MinMaxCurve;
408
+ speedRange: [number, number];
409
+ };
410
+ forceOverLifetime: {
411
+ enabled: boolean;
412
+ space: 'local' | 'world';
413
+ x: MinMaxCurve;
414
+ y: MinMaxCurve;
415
+ z: MinMaxCurve;
416
+ randomize: boolean;
417
+ };
418
+ colorOverLifetime: {
419
+ enabled: boolean;
420
+ color: MinMaxGradient;
421
+ };
422
+ colorBySpeed: {
423
+ enabled: boolean;
424
+ color: MinMaxGradient;
425
+ speedRange: [number, number];
426
+ };
427
+ sizeOverLifetime: {
428
+ enabled: boolean;
429
+ separateAxes: boolean;
430
+ size: MinMaxCurve;
431
+ sizeX?: MinMaxCurve;
432
+ sizeY?: MinMaxCurve;
433
+ sizeZ?: MinMaxCurve;
434
+ };
435
+ sizeBySpeed: {
436
+ enabled: boolean;
437
+ separateAxes: boolean;
438
+ size: MinMaxCurve;
439
+ sizeX?: MinMaxCurve;
440
+ sizeY?: MinMaxCurve;
441
+ sizeZ?: MinMaxCurve;
442
+ speedRange: [number, number];
443
+ };
444
+ rotationOverLifetime: {
445
+ enabled: boolean;
446
+ separateAxes: boolean;
447
+ angularVelocity: MinMaxCurve;
448
+ angularVelocityX?: MinMaxCurve;
449
+ angularVelocityY?: MinMaxCurve;
450
+ angularVelocityZ?: MinMaxCurve;
451
+ };
452
+ rotationBySpeed: {
453
+ enabled: boolean;
454
+ separateAxes: boolean;
455
+ angularVelocity: MinMaxCurve;
456
+ angularVelocityX?: MinMaxCurve;
457
+ angularVelocityY?: MinMaxCurve;
458
+ angularVelocityZ?: MinMaxCurve;
459
+ speedRange: [number, number];
460
+ };
461
+ externalForces: {
462
+ enabled: boolean;
463
+ multiplier: MinMaxCurve;
464
+ influenceFilter: 'layerMask' | 'list' | 'listAndLayerMask';
465
+ influenceMask: number;
466
+ forceFields: ForceField[];
467
+ };
468
+ noise: ParticleNoise;
469
+ collision: ParticleCollision;
470
+ triggers: {
471
+ enabled: boolean;
472
+ inside: 'ignore' | 'kill' | 'callback';
473
+ outside: 'ignore' | 'kill' | 'callback';
474
+ enter: 'ignore' | 'kill' | 'callback';
475
+ exit: 'ignore' | 'kill' | 'callback';
476
+ colliderQueryMode: 'disabled' | 'one' | 'all';
477
+ radiusScale: number;
478
+ };
479
+ subEmitters: SubEmitter[];
480
+ textureSheetAnimation: TextureSheetAnimation;
481
+ lights: ParticleLights;
482
+ trails: ParticleTrail;
483
+ customData: {
484
+ enabled: boolean;
485
+ stream1: {
486
+ mode: 'disabled' | 'vector' | 'color';
487
+ components: number;
488
+ };
489
+ stream2: {
490
+ mode: 'disabled' | 'vector' | 'color';
491
+ components: number;
492
+ };
493
+ };
494
+ renderer: {
495
+ enabled: boolean;
496
+ renderMode: ParticleRenderMode;
497
+ material: string;
498
+ trailMaterial?: string;
499
+ sortMode: ParticleSortingMode;
500
+ sortingFudge: number;
501
+ minParticleSize: number;
502
+ maxParticleSize: number;
503
+ cameraVelocityScale: number;
504
+ velocityScale: number;
505
+ lengthScale: number;
506
+ normalDirection: number;
507
+ shadowCastingMode: 'off' | 'on' | 'twoSided' | 'shadowsOnly';
508
+ receiveShadows: boolean;
509
+ motionVectors: 'cameraMotionOnly' | 'perObjectMotion' | 'forceNoMotion';
510
+ lightProbes: 'off' | 'blendProbes' | 'useProxyVolume';
511
+ reflectionProbes: 'off' | 'blendProbes' | 'blendProbesAndSkybox' | 'simple';
512
+ maskInteraction: 'none' | 'visibleInsideMask' | 'visibleOutsideMask';
513
+ pivot: [number, number, number];
514
+ flip: [number, number, number];
515
+ allowRoll: boolean;
516
+ freeformStretching: boolean;
517
+ rotateWithStretchDirection: boolean;
518
+ mesh?: string;
519
+ meshes?: string[];
520
+ meshDistribution?: 'uniformRandom' | 'nonUniformRandom';
521
+ meshWeights?: number[];
522
+ enableGPUInstancing: boolean;
523
+ };
524
+ }
525
+ export interface EmissionBurst {
526
+ time: number;
527
+ count: MinMaxCurve;
528
+ cycles: number;
529
+ interval: number;
530
+ probability: number;
531
+ }
532
+ export interface Particle {
533
+ position: Float32Array;
534
+ velocity: Float32Array;
535
+ startColor: Float32Array;
536
+ color: Float32Array;
537
+ startSize: Float32Array;
538
+ size: Float32Array;
539
+ rotation: Float32Array;
540
+ angularVelocity: Float32Array;
541
+ startLifetime: number;
542
+ remainingLifetime: number;
543
+ normalizedLifetime: number;
544
+ randomSeed: number;
545
+ startSpeed: number;
546
+ axisOfRotation: Float32Array;
547
+ meshIndex: number;
548
+ customData1: Float32Array;
549
+ customData2: Float32Array;
550
+ }
551
+ export interface ParticleSystemState {
552
+ particles: Particle[];
553
+ activeCount: number;
554
+ time: number;
555
+ isPlaying: boolean;
556
+ isPaused: boolean;
557
+ isStopped: boolean;
558
+ isEmitting: boolean;
559
+ randomSeed: number;
560
+ emitCounter: number;
561
+ distanceTraveled: number;
562
+ lastPosition: Float32Array;
563
+ burstStates: BurstState[];
564
+ }
565
+ export interface BurstState {
566
+ burstIndex: number;
567
+ cycleCount: number;
568
+ nextTime: number;
569
+ }
570
+ export interface ParticleGPUBuffers {
571
+ positionBuffer: GPUBuffer | WebGLBuffer;
572
+ velocityBuffer: GPUBuffer | WebGLBuffer;
573
+ colorBuffer: GPUBuffer | WebGLBuffer;
574
+ sizeBuffer: GPUBuffer | WebGLBuffer;
575
+ rotationBuffer: GPUBuffer | WebGLBuffer;
576
+ lifetimeBuffer: GPUBuffer | WebGLBuffer;
577
+ randomBuffer: GPUBuffer | WebGLBuffer;
578
+ indirectDrawBuffer: GPUBuffer | WebGLBuffer;
579
+ aliveIndexBuffer: GPUBuffer | WebGLBuffer;
580
+ deadIndexBuffer: GPUBuffer | WebGLBuffer;
581
+ counterBuffer: GPUBuffer | WebGLBuffer;
582
+ }
583
+ export declare class ParticleSystem2 {
584
+ private definition;
585
+ private state;
586
+ private gpuBuffers?;
587
+ private useGPU;
588
+ constructor(def: ParticleSystemDef);
589
+ private createInitialState;
590
+ private createDeadParticle;
591
+ play(): void;
592
+ pause(): void;
593
+ stop(clear?: boolean): void;
594
+ clear(): void;
595
+ private resetBurstStates;
596
+ private prewarm;
597
+ emit(count: number, position?: [number, number, number]): void;
598
+ private emitSingleParticle;
599
+ private findDeadParticleIndex;
600
+ private initializeParticle;
601
+ private sampleEmitterShape;
602
+ private sampleSphere;
603
+ private sampleHemisphere;
604
+ private sampleCone;
605
+ private sampleBox;
606
+ private sampleCircle;
607
+ simulate(deltaTime: number): void;
608
+ private processEmission;
609
+ private updateParticle;
610
+ private applyForces;
611
+ private applyForceField;
612
+ private applyVelocityOverLifetime;
613
+ private applyForceOverLifetime;
614
+ private applyLimitVelocityOverLifetime;
615
+ private applyNoise;
616
+ private applyColorOverLifetime;
617
+ private applySizeOverLifetime;
618
+ private applyRotationOverLifetime;
619
+ private applyColorBySpeed;
620
+ private applySizeBySpeed;
621
+ private applyRotationBySpeed;
622
+ private handleCollision;
623
+ private triggerSubEmitters;
624
+ private evaluateMinMaxCurve;
625
+ private evaluateAnimationCurve;
626
+ private handleWrapMode;
627
+ private evaluateMinMaxGradient;
628
+ private evaluateGradient;
629
+ private evaluateMinMaxVector3;
630
+ private seededRandom;
631
+ private normalizedTime;
632
+ get particleCount(): number;
633
+ get isPlaying(): boolean;
634
+ get isPaused(): boolean;
635
+ get isStopped(): boolean;
636
+ get time(): number;
637
+ get duration(): number;
638
+ getParticles(): Particle[];
639
+ getDefinition(): ParticleSystemDef;
640
+ setDefinition(def: ParticleSystemDef): void;
641
+ }
642
+ export declare function createDefaultParticleSystem(name: string): ParticleSystemDef;
643
+ export declare function createParticleSystem(def: ParticleSystemDef): ParticleSystem2;
644
+ export declare function createFireParticleSystem(): ParticleSystemDef;
645
+ export declare function createSmokeParticleSystem(): ParticleSystemDef;
646
+ export declare function createSparkParticleSystem(): ParticleSystemDef;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/game-engine",
3
- "version": "0.1.0",
3
+ "version": "1.0.3",
4
4
  "description": "Nice2Dev Game Engine — No-code game engine and editor for React",
5
5
  "author": "NiceToDev <contact@nicetodev.com>",
6
6
  "license": "MIT",
@@ -59,11 +59,17 @@
59
59
  "nicetodev"
60
60
  ],
61
61
  "peerDependencies": {
62
+ "@nice2dev/icons-gaming": "^1.0.0",
62
63
  "@nice2dev/ui": "^1.0.0",
63
64
  "@nice2dev/ui-graphics": "^1.0.0",
64
65
  "react": ">=17.0.0",
65
66
  "react-dom": ">=17.0.0"
66
67
  },
68
+ "peerDependenciesMeta": {
69
+ "@nice2dev/icons-gaming": {
70
+ "optional": true
71
+ }
72
+ },
67
73
  "devDependencies": {
68
74
  "@microsoft/signalr": "^10.0.0",
69
75
  "@rollup/plugin-commonjs": "^28.0.0",