gdcore-tools 1.0.6 → 1.0.7

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 (601) hide show
  1. package/GDevelop/ExtLibs/7za.exe +0 -0
  2. package/GDevelop/ExtLibs/curl.exe +0 -0
  3. package/GDevelop/scripts/libgettextlib-0-17.dll +0 -0
  4. package/GDevelop/scripts/libgettextsrc-0-17.dll +0 -0
  5. package/LICENSE +1 -1
  6. package/dist/Runtime/AsyncTasksManager.js +5 -0
  7. package/dist/Runtime/AsyncTasksManager.js.map +7 -0
  8. package/dist/Runtime/Cordova/config.xml +44 -0
  9. package/dist/Runtime/Cordova/package.json +22 -0
  10. package/dist/Runtime/Cordova/www/index.html +45 -0
  11. package/dist/Runtime/CustomRuntimeObject.js +2 -0
  12. package/dist/Runtime/CustomRuntimeObject.js.map +7 -0
  13. package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +2 -0
  14. package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +7 -0
  15. package/dist/Runtime/Electron/main.js +65 -0
  16. package/dist/Runtime/Electron/package.json +26 -0
  17. package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +2 -0
  18. package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +7 -0
  19. package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +2 -0
  20. package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +7 -0
  21. package/dist/Runtime/Extensions/3D/AmbientLight.js +2 -0
  22. package/dist/Runtime/Extensions/3D/AmbientLight.js.map +7 -0
  23. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +2 -0
  24. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +7 -0
  25. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js +2 -0
  26. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js.map +7 -0
  27. package/dist/Runtime/Extensions/3D/DirectionalLight.js +2 -0
  28. package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +7 -0
  29. package/dist/Runtime/Extensions/3D/ExponentialFog.js +2 -0
  30. package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +7 -0
  31. package/dist/Runtime/Extensions/3D/HemisphereLight.js +2 -0
  32. package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +7 -0
  33. package/dist/Runtime/Extensions/3D/JsExtension.js +2809 -0
  34. package/dist/Runtime/Extensions/3D/LinearFog.js +2 -0
  35. package/dist/Runtime/Extensions/3D/LinearFog.js.map +7 -0
  36. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +2 -0
  37. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +7 -0
  38. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +2 -0
  39. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +7 -0
  40. package/dist/Runtime/Extensions/3D/Scene3DTools.js +2 -0
  41. package/dist/Runtime/Extensions/3D/Scene3DTools.js.map +7 -0
  42. package/dist/Runtime/Extensions/AdMob/JsExtension.js +798 -0
  43. package/dist/Runtime/Extensions/AdMob/admobtools.js +2 -0
  44. package/dist/Runtime/Extensions/AdMob/admobtools.js.map +7 -0
  45. package/dist/Runtime/Extensions/AdvancedWindow/JsExtension.js +719 -0
  46. package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js +2 -0
  47. package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js.map +7 -0
  48. package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +2 -0
  49. package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +7 -0
  50. package/dist/Runtime/Extensions/BBText/JsExtension.js +639 -0
  51. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js +2 -0
  52. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js.map +7 -0
  53. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +2 -0
  54. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +7 -0
  55. package/dist/Runtime/Extensions/BBText/pixi-multistyle-text/dist/pixi-multistyle-text.umd.js +1 -0
  56. package/dist/Runtime/Extensions/BitmapText/JsExtension.js +756 -0
  57. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js +2 -0
  58. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +7 -0
  59. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +2 -0
  60. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +7 -0
  61. package/dist/Runtime/Extensions/DebuggerTools/JsExtension.js +123 -0
  62. package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js +2 -0
  63. package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js.map +7 -0
  64. package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js +2 -0
  65. package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +7 -0
  66. package/dist/Runtime/Extensions/DeviceSensors/JsExtension.js +461 -0
  67. package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js +2 -0
  68. package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js.map +7 -0
  69. package/dist/Runtime/Extensions/DeviceVibration/JsExtension.js +108 -0
  70. package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js +2 -0
  71. package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js.map +7 -0
  72. package/dist/Runtime/Extensions/DialogueTree/JsExtension.js +730 -0
  73. package/dist/Runtime/Extensions/DialogueTree/bondage.js/dist/bondage.min.js +11 -0
  74. package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js +3 -0
  75. package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js.map +7 -0
  76. package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js +2 -0
  77. package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js.map +7 -0
  78. package/dist/Runtime/Extensions/Effects/JsExtension.js +1197 -0
  79. package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +2 -0
  80. package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +7 -0
  81. package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +2 -0
  82. package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +7 -0
  83. package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +2 -0
  84. package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +7 -0
  85. package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +2 -0
  86. package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +7 -0
  87. package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +2 -0
  88. package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +7 -0
  89. package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +2 -0
  90. package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +7 -0
  91. package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +2 -0
  92. package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +7 -0
  93. package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +2 -0
  94. package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +7 -0
  95. package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +2 -0
  96. package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +7 -0
  97. package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +2 -0
  98. package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +7 -0
  99. package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +2 -0
  100. package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +7 -0
  101. package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +2 -0
  102. package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +7 -0
  103. package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +2 -0
  104. package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +7 -0
  105. package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +2 -0
  106. package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +7 -0
  107. package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +2 -0
  108. package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +7 -0
  109. package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +2 -0
  110. package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +7 -0
  111. package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +2 -0
  112. package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +7 -0
  113. package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +2 -0
  114. package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +7 -0
  115. package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +2 -0
  116. package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +7 -0
  117. package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +3 -0
  118. package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +7 -0
  119. package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +3 -0
  120. package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +7 -0
  121. package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +2 -0
  122. package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +7 -0
  123. package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +2 -0
  124. package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +7 -0
  125. package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +2 -0
  126. package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +7 -0
  127. package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +2 -0
  128. package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +7 -0
  129. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-adjustment.js +8 -0
  130. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-advanced-bloom.js +8 -0
  131. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-ascii.js +8 -0
  132. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bevel.js +8 -0
  133. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bulge-pinch.js +8 -0
  134. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-map.js +8 -0
  135. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-replace.js +8 -0
  136. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-crt.js +8 -0
  137. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-dot.js +8 -0
  138. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-drop-shadow.js +8 -0
  139. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glitch.js +8 -0
  140. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glow.js +8 -0
  141. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-godray.js +8 -0
  142. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-kawase-blur.js +8 -0
  143. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-old-film.js +8 -0
  144. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-outline.js +8 -0
  145. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-pixelate.js +8 -0
  146. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-radial-blur.js +8 -0
  147. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-reflection.js +8 -0
  148. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-rgb-split.js +8 -0
  149. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-tilt-shift.js +171 -0
  150. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-twist.js +8 -0
  151. package/dist/Runtime/Extensions/Effects/pixi-filters/filter-zoom-blur.js +8 -0
  152. package/dist/Runtime/Extensions/Effects/pixi-filters/types/adjustment/types.d.ts +29 -0
  153. package/dist/Runtime/Extensions/Effects/pixi-filters/types/advanced-bloom/types.d.ts +30 -0
  154. package/dist/Runtime/Extensions/Effects/pixi-filters/types/ascii/types.d.ts +11 -0
  155. package/dist/Runtime/Extensions/Effects/pixi-filters/types/bevel/types.d.ts +25 -0
  156. package/dist/Runtime/Extensions/Effects/pixi-filters/types/bloom/types.d.ts +18 -0
  157. package/dist/Runtime/Extensions/Effects/pixi-filters/types/bulge-pinch/types.d.ts +24 -0
  158. package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-map/types.d.ts +22 -0
  159. package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-overlay/types.d.ts +11 -0
  160. package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-replace/types.d.ts +17 -0
  161. package/dist/Runtime/Extensions/Effects/pixi-filters/types/convolution/types.d.ts +13 -0
  162. package/dist/Runtime/Extensions/Effects/pixi-filters/types/cross-hatch/types.d.ts +10 -0
  163. package/dist/Runtime/Extensions/Effects/pixi-filters/types/crt/types.d.ts +35 -0
  164. package/dist/Runtime/Extensions/Effects/pixi-filters/types/dot/types.d.ts +12 -0
  165. package/dist/Runtime/Extensions/Effects/pixi-filters/types/drop-shadow/types.d.ts +33 -0
  166. package/dist/Runtime/Extensions/Effects/pixi-filters/types/emboss/types.d.ts +11 -0
  167. package/dist/Runtime/Extensions/Effects/pixi-filters/types/glitch/types.d.ts +38 -0
  168. package/dist/Runtime/Extensions/Effects/pixi-filters/types/glow/types.d.ts +23 -0
  169. package/dist/Runtime/Extensions/Effects/pixi-filters/types/godray/types.d.ts +27 -0
  170. package/dist/Runtime/Extensions/Effects/pixi-filters/types/kawase-blur/types.d.ts +15 -0
  171. package/dist/Runtime/Extensions/Effects/pixi-filters/types/motion-blur/types.d.ts +17 -0
  172. package/dist/Runtime/Extensions/Effects/pixi-filters/types/multi-color-replace/types.d.ts +18 -0
  173. package/dist/Runtime/Extensions/Effects/pixi-filters/types/old-film/types.d.ts +33 -0
  174. package/dist/Runtime/Extensions/Effects/pixi-filters/types/outline/types.d.ts +13 -0
  175. package/dist/Runtime/Extensions/Effects/pixi-filters/types/pixelate/types.d.ts +11 -0
  176. package/dist/Runtime/Extensions/Effects/pixi-filters/types/radial-blur/types.d.ts +19 -0
  177. package/dist/Runtime/Extensions/Effects/pixi-filters/types/reflection/types.d.ts +25 -0
  178. package/dist/Runtime/Extensions/Effects/pixi-filters/types/rgb-split/types.d.ts +13 -0
  179. package/dist/Runtime/Extensions/Effects/pixi-filters/types/shockwave/types.d.ts +25 -0
  180. package/dist/Runtime/Extensions/Effects/pixi-filters/types/simple-lightmap/types.d.ts +13 -0
  181. package/dist/Runtime/Extensions/Effects/pixi-filters/types/tilt-shift/types.d.ts +19 -0
  182. package/dist/Runtime/Extensions/Effects/pixi-filters/types/twist/types.d.ts +13 -0
  183. package/dist/Runtime/Extensions/Effects/pixi-filters/types/zoom-blur/types.d.ts +28 -0
  184. package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +2 -0
  185. package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +7 -0
  186. package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +2 -0
  187. package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +7 -0
  188. package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +2 -0
  189. package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +7 -0
  190. package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +2 -0
  191. package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +7 -0
  192. package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +2 -0
  193. package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +7 -0
  194. package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +2 -0
  195. package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +7 -0
  196. package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +2 -0
  197. package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +7 -0
  198. package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +589 -0
  199. package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +3 -0
  200. package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +7 -0
  201. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js +2 -0
  202. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js.map +7 -0
  203. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js +2 -0
  204. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js.map +7 -0
  205. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js +2 -0
  206. package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js.map +7 -0
  207. package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js +2 -0
  208. package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js.map +7 -0
  209. package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js +2 -0
  210. package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js.map +7 -0
  211. package/dist/Runtime/Extensions/FacebookInstantGames/FBInstant.d.ts +2 -0
  212. package/dist/Runtime/Extensions/FacebookInstantGames/JsExtension.js +379 -0
  213. package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js +2 -0
  214. package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js.map +7 -0
  215. package/dist/Runtime/Extensions/FileSystem/JsExtension.js +559 -0
  216. package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +2 -0
  217. package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +7 -0
  218. package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js +2 -0
  219. package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js.map +1 -0
  220. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js +2 -0
  221. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js.map +1 -0
  222. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js +2 -0
  223. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js.map +1 -0
  224. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js +2 -0
  225. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js.map +1 -0
  226. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js +2 -0
  227. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js.map +1 -0
  228. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js +2 -0
  229. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js.map +1 -0
  230. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js +2 -0
  231. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js.map +1 -0
  232. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js +2 -0
  233. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js.map +1 -0
  234. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js +2 -0
  235. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js.map +1 -0
  236. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js +2 -0
  237. package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js.map +1 -0
  238. package/dist/Runtime/Extensions/Firebase/A_firebasejs/firebase.d.ts +10191 -0
  239. package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js +2 -0
  240. package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js.map +7 -0
  241. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js +2 -0
  242. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js.map +7 -0
  243. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js +2 -0
  244. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js.map +7 -0
  245. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js +2 -0
  246. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js.map +7 -0
  247. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js +2 -0
  248. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js.map +7 -0
  249. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js +2 -0
  250. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js.map +7 -0
  251. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js +2 -0
  252. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js.map +7 -0
  253. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js +2 -0
  254. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js.map +7 -0
  255. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js +2 -0
  256. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js.map +7 -0
  257. package/dist/Runtime/Extensions/Firebase/JsExtension.js +2323 -0
  258. package/dist/Runtime/Extensions/Inventory/inventory.js +2 -0
  259. package/dist/Runtime/Extensions/Inventory/inventory.js.map +7 -0
  260. package/dist/Runtime/Extensions/Inventory/inventorytools.js +2 -0
  261. package/dist/Runtime/Extensions/Inventory/inventorytools.js.map +7 -0
  262. package/dist/Runtime/Extensions/JsExtensionTypes.flow.js +34 -0
  263. package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +299 -0
  264. package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +2 -0
  265. package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +7 -0
  266. package/dist/Runtime/Extensions/Leaderboards/sha256.d.ts +234 -0
  267. package/dist/Runtime/Extensions/Leaderboards/sha256.js +21 -0
  268. package/dist/Runtime/Extensions/Lighting/JsExtension.js +371 -0
  269. package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js +2 -0
  270. package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js.map +7 -0
  271. package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js +40 -0
  272. package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js.map +7 -0
  273. package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +2 -0
  274. package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +7 -0
  275. package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +2 -0
  276. package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +7 -0
  277. package/dist/Runtime/Extensions/P2P/A_peer.js +4 -0
  278. package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -0
  279. package/dist/Runtime/Extensions/P2P/B_p2ptools.js +2 -0
  280. package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +7 -0
  281. package/dist/Runtime/Extensions/P2P/JsExtension.js +483 -0
  282. package/dist/Runtime/Extensions/P2P/peerjs.d.ts +509 -0
  283. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js +2 -0
  284. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js.map +7 -0
  285. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +2 -0
  286. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +7 -0
  287. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +2 -0
  288. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +7 -0
  289. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +2 -0
  290. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +7 -0
  291. package/dist/Runtime/Extensions/ParticleSystem/pixi-particles-pixi-renderer.min.js +3 -0
  292. package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js +2 -0
  293. package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js.map +7 -0
  294. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js +2 -0
  295. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js.map +7 -0
  296. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +2 -0
  297. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +7 -0
  298. package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js +2 -0
  299. package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js.map +7 -0
  300. package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.wasm +0 -0
  301. package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +4072 -0
  302. package/dist/Runtime/Extensions/Physics2Behavior/box2d.d.ts +1804 -0
  303. package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +2 -0
  304. package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +7 -0
  305. package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js +2 -0
  306. package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js.map +7 -0
  307. package/dist/Runtime/Extensions/PhysicsBehavior/box2djs/box2d.js +804 -0
  308. package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js +2 -0
  309. package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js.map +7 -0
  310. package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js +2 -0
  311. package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js.map +7 -0
  312. package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +2 -0
  313. package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +7 -0
  314. package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +2 -0
  315. package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +7 -0
  316. package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js +2 -0
  317. package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js.map +7 -0
  318. package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +218 -0
  319. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +5 -0
  320. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +7 -0
  321. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +2 -0
  322. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +7 -0
  323. package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js +10 -0
  324. package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js.map +1 -0
  325. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +2 -0
  326. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +7 -0
  327. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +2 -0
  328. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +7 -0
  329. package/dist/Runtime/Extensions/Screenshot/JsExtension.js +68 -0
  330. package/dist/Runtime/Extensions/Screenshot/screenshottools.js +2 -0
  331. package/dist/Runtime/Extensions/Screenshot/screenshottools.js.map +7 -0
  332. package/dist/Runtime/Extensions/Shopify/shopify-buy.umd.polyfilled.min.js +2 -0
  333. package/dist/Runtime/Extensions/Shopify/shopifytools.js +2 -0
  334. package/dist/Runtime/Extensions/Shopify/shopifytools.js.map +7 -0
  335. package/dist/Runtime/Extensions/SpatialSound/JsExtension.js +92 -0
  336. package/dist/Runtime/Extensions/SpatialSound/howler.spatial.min.js +2 -0
  337. package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js +2 -0
  338. package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js.map +7 -0
  339. package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js +2 -0
  340. package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js.map +7 -0
  341. package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js +2 -0
  342. package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js.map +7 -0
  343. package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js +2 -0
  344. package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js.map +7 -0
  345. package/dist/Runtime/Extensions/TextInput/JsExtension.js +790 -0
  346. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +2 -0
  347. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +7 -0
  348. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +2 -0
  349. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +7 -0
  350. package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js +2 -0
  351. package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +7 -0
  352. package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +2 -0
  353. package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +7 -0
  354. package/dist/Runtime/Extensions/TileMap/JsExtension.js +1653 -0
  355. package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +2 -0
  356. package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +7 -0
  357. package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js +2 -0
  358. package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js.map +7 -0
  359. package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +2 -0
  360. package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +7 -0
  361. package/dist/Runtime/Extensions/TileMap/example/anotherIsland.json +5769 -0
  362. package/dist/Runtime/Extensions/TileMap/example/island.json +5823 -0
  363. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +25 -0
  364. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +2 -0
  365. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +7 -0
  366. package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts +16 -0
  367. package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts.map +1 -0
  368. package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts +12 -0
  369. package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts.map +1 -0
  370. package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts +18 -0
  371. package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts.map +1 -0
  372. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts +589 -0
  373. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts.map +1 -0
  374. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts +16 -0
  375. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts.map +1 -0
  376. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts +5 -0
  377. package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts.map +1 -0
  378. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts +343 -0
  379. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts.map +1 -0
  380. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts +16 -0
  381. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts.map +1 -0
  382. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts +2 -0
  383. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts.map +1 -0
  384. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts +37 -0
  385. package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts.map +1 -0
  386. package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +5 -0
  387. package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -0
  388. package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts +45 -0
  389. package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts.map +1 -0
  390. package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +361 -0
  391. package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -0
  392. package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts +27 -0
  393. package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts.map +1 -0
  394. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +70 -0
  395. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -0
  396. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +56 -0
  397. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -0
  398. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts +24 -0
  399. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts.map +1 -0
  400. package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts +26 -0
  401. package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts.map +1 -0
  402. package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts +21 -0
  403. package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts.map +1 -0
  404. package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts +12 -0
  405. package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts.map +1 -0
  406. package/dist/Runtime/Extensions/TileMap/pako/dist/pako.d.ts +166 -0
  407. package/dist/Runtime/Extensions/TileMap/pako/dist/pako.min.js +2 -0
  408. package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/global-pixi-tilemap.d.ts +23 -0
  409. package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.d.ts +270 -0
  410. package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js +74 -0
  411. package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js.map +7 -0
  412. package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +2 -0
  413. package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +7 -0
  414. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +2 -0
  415. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +7 -0
  416. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +2 -0
  417. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +7 -0
  418. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js +2 -0
  419. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js.map +7 -0
  420. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +2 -0
  421. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +7 -0
  422. package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +2 -0
  423. package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +7 -0
  424. package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +1087 -0
  425. package/dist/Runtime/Extensions/TweenBehavior/shifty.d.ts +839 -0
  426. package/dist/Runtime/Extensions/TweenBehavior/shifty.js +5 -0
  427. package/dist/Runtime/Extensions/TweenBehavior/shifty.js.map +1 -0
  428. package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js +2 -0
  429. package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js.map +7 -0
  430. package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +2 -0
  431. package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +7 -0
  432. package/dist/Runtime/Extensions/TweenBehavior/tweentools.js +2 -0
  433. package/dist/Runtime/Extensions/TweenBehavior/tweentools.js.map +7 -0
  434. package/dist/Runtime/Extensions/Video/JsExtension.js +694 -0
  435. package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js +2 -0
  436. package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js.map +7 -0
  437. package/dist/Runtime/Extensions/Video/videoruntimeobject.js +2 -0
  438. package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +7 -0
  439. package/dist/Runtime/FacebookInstantGames/fbapp-config.json +17 -0
  440. package/dist/Runtime/FacebookInstantGames/index.html +68 -0
  441. package/dist/Runtime/Model3DManager.js +2 -0
  442. package/dist/Runtime/Model3DManager.js.map +7 -0
  443. package/dist/Runtime/RuntimeCustomObjectLayer.js +2 -0
  444. package/dist/Runtime/RuntimeCustomObjectLayer.js.map +7 -0
  445. package/dist/Runtime/RuntimeInstanceContainer.js +2 -0
  446. package/dist/Runtime/RuntimeInstanceContainer.js.map +7 -0
  447. package/dist/Runtime/RuntimeLayer.js +2 -0
  448. package/dist/Runtime/RuntimeLayer.js.map +7 -0
  449. package/dist/Runtime/affinetransformation.js +2 -0
  450. package/dist/Runtime/affinetransformation.js.map +7 -0
  451. package/dist/Runtime/debugger-client/abstract-debugger-client.js +2 -0
  452. package/dist/Runtime/debugger-client/abstract-debugger-client.js.map +7 -0
  453. package/dist/Runtime/debugger-client/hot-reloader.js +2 -0
  454. package/dist/Runtime/debugger-client/hot-reloader.js.map +7 -0
  455. package/dist/Runtime/debugger-client/websocket-debugger-client.js +2 -0
  456. package/dist/Runtime/debugger-client/websocket-debugger-client.js.map +7 -0
  457. package/dist/Runtime/debugger-client/window-message-debugger-client.js +2 -0
  458. package/dist/Runtime/debugger-client/window-message-debugger-client.js.map +7 -0
  459. package/dist/Runtime/events-tools/cameratools.js +2 -0
  460. package/dist/Runtime/events-tools/cameratools.js.map +7 -0
  461. package/dist/Runtime/events-tools/commontools.js +2 -0
  462. package/dist/Runtime/events-tools/commontools.js.map +7 -0
  463. package/dist/Runtime/events-tools/inputtools.js +2 -0
  464. package/dist/Runtime/events-tools/inputtools.js.map +7 -0
  465. package/dist/Runtime/events-tools/networktools.js +2 -0
  466. package/dist/Runtime/events-tools/networktools.js.map +7 -0
  467. package/dist/Runtime/events-tools/objecttools.js +2 -0
  468. package/dist/Runtime/events-tools/objecttools.js.map +7 -0
  469. package/dist/Runtime/events-tools/runtimescenetools.js +2 -0
  470. package/dist/Runtime/events-tools/runtimescenetools.js.map +7 -0
  471. package/dist/Runtime/events-tools/soundtools.js +2 -0
  472. package/dist/Runtime/events-tools/soundtools.js.map +7 -0
  473. package/dist/Runtime/events-tools/storagetools.js +2 -0
  474. package/dist/Runtime/events-tools/storagetools.js.map +7 -0
  475. package/dist/Runtime/events-tools/stringtools.js +3 -0
  476. package/dist/Runtime/events-tools/stringtools.js.map +7 -0
  477. package/dist/Runtime/events-tools/variabletools.js +2 -0
  478. package/dist/Runtime/events-tools/variabletools.js.map +7 -0
  479. package/dist/Runtime/events-tools/windowtools.js +2 -0
  480. package/dist/Runtime/events-tools/windowtools.js.map +7 -0
  481. package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js +2 -0
  482. package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js.map +7 -0
  483. package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver.js +16 -0
  484. package/dist/Runtime/force.js +2 -0
  485. package/dist/Runtime/force.js.map +7 -0
  486. package/dist/Runtime/gd.js +2 -0
  487. package/dist/Runtime/gd.js.map +7 -0
  488. package/dist/Runtime/howler-sound-manager/howler-sound-manager.js +2 -0
  489. package/dist/Runtime/howler-sound-manager/howler-sound-manager.js.map +7 -0
  490. package/dist/Runtime/howler-sound-manager/howler.min.js +3 -0
  491. package/dist/Runtime/index.html +55 -0
  492. package/dist/Runtime/inputmanager.js +2 -0
  493. package/dist/Runtime/inputmanager.js.map +7 -0
  494. package/dist/Runtime/jsonmanager.js +2 -0
  495. package/dist/Runtime/jsonmanager.js.map +7 -0
  496. package/dist/Runtime/layer.js +2 -0
  497. package/dist/Runtime/layer.js.map +7 -0
  498. package/dist/Runtime/libs/CocoonJS/cocoon.min.js +4 -0
  499. package/dist/Runtime/libs/jshashtable.js +2 -0
  500. package/dist/Runtime/libs/jshashtable.js.map +7 -0
  501. package/dist/Runtime/libs/rbush.js +624 -0
  502. package/dist/Runtime/logger.js +2 -0
  503. package/dist/Runtime/logger.js.map +7 -0
  504. package/dist/Runtime/oncetriggers.js +2 -0
  505. package/dist/Runtime/oncetriggers.js.map +7 -0
  506. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +2 -0
  507. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +7 -0
  508. package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +2 -0
  509. package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +7 -0
  510. package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js +1 -0
  511. package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js.map +7 -0
  512. package/dist/Runtime/pixi-renderers/ThreeAddons.js +2 -0
  513. package/dist/Runtime/pixi-renderers/draco/gltf/draco_decoder.wasm +0 -0
  514. package/dist/Runtime/pixi-renderers/draco/gltf/draco_wasm_wrapper.js +116 -0
  515. package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +15 -0
  516. package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +7 -0
  517. package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js +2 -0
  518. package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js.map +7 -0
  519. package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js +2 -0
  520. package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js.map +7 -0
  521. package/dist/Runtime/pixi-renderers/pixi-effects-manager.js +2 -0
  522. package/dist/Runtime/pixi-renderers/pixi-effects-manager.js.map +7 -0
  523. package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +2 -0
  524. package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +7 -0
  525. package/dist/Runtime/pixi-renderers/pixi-image-manager.js +2 -0
  526. package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +7 -0
  527. package/dist/Runtime/pixi-renderers/pixi.js +11 -0
  528. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +2 -0
  529. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +7 -0
  530. package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js +3 -0
  531. package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js.map +7 -0
  532. package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +2 -0
  533. package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +7 -0
  534. package/dist/Runtime/pixi-renderers/three.js +7 -0
  535. package/dist/Runtime/polygon.js +2 -0
  536. package/dist/Runtime/polygon.js.map +7 -0
  537. package/dist/Runtime/profiler.js +2 -0
  538. package/dist/Runtime/profiler.js.map +7 -0
  539. package/dist/Runtime/runtimebehavior.js +2 -0
  540. package/dist/Runtime/runtimebehavior.js.map +7 -0
  541. package/dist/Runtime/runtimegame.js +2 -0
  542. package/dist/Runtime/runtimegame.js.map +7 -0
  543. package/dist/Runtime/runtimeobject.js +2 -0
  544. package/dist/Runtime/runtimeobject.js.map +7 -0
  545. package/dist/Runtime/runtimescene.js +2 -0
  546. package/dist/Runtime/runtimescene.js.map +7 -0
  547. package/dist/Runtime/runtimewatermark.js +100 -0
  548. package/dist/Runtime/runtimewatermark.js.map +7 -0
  549. package/dist/Runtime/scenestack.js +2 -0
  550. package/dist/Runtime/scenestack.js.map +7 -0
  551. package/dist/Runtime/splash/gd-logo-dark-colored.js +2 -0
  552. package/dist/Runtime/splash/gd-logo-dark-colored.js.map +7 -0
  553. package/dist/Runtime/splash/gd-logo-dark.js +2 -0
  554. package/dist/Runtime/splash/gd-logo-dark.js.map +7 -0
  555. package/dist/Runtime/splash/gd-logo-light-colored.js +2 -0
  556. package/dist/Runtime/splash/gd-logo-light-colored.js.map +7 -0
  557. package/dist/Runtime/splash/gd-logo-light.js +2 -0
  558. package/dist/Runtime/splash/gd-logo-light.js.map +7 -0
  559. package/dist/Runtime/spriteruntimeobject.js +2 -0
  560. package/dist/Runtime/spriteruntimeobject.js.map +7 -0
  561. package/dist/Runtime/timemanager.js +2 -0
  562. package/dist/Runtime/timemanager.js.map +7 -0
  563. package/dist/Runtime/timer.js +2 -0
  564. package/dist/Runtime/timer.js.map +7 -0
  565. package/dist/Runtime/types/global-pixi.d.ts +22 -0
  566. package/dist/Runtime/types/global-three-addons.d.ts +9 -0
  567. package/dist/Runtime/types/global-three.d.ts +3 -0
  568. package/dist/Runtime/types/global-types.d.ts +61 -0
  569. package/dist/Runtime/types/howler.d.ts +313 -0
  570. package/dist/Runtime/types/project-data.d.ts +276 -0
  571. package/dist/Runtime/variable.js +2 -0
  572. package/dist/Runtime/variable.js.map +7 -0
  573. package/dist/Runtime/variablescontainer.js +2 -0
  574. package/dist/Runtime/variablescontainer.js.map +7 -0
  575. package/dist/lib/libGD.cjs +22 -0
  576. package/dist/lib/libGD.wasm +0 -0
  577. package/dist/loaders.js +1 -0
  578. package/package.json +24 -10
  579. package/src/downloadGD.js +0 -70
  580. package/src/index.js +21 -14
  581. package/examples/create-objects-from-json/assets/Blank button.png +0 -0
  582. package/examples/create-objects-from-json/game.json +0 -258
  583. package/examples/create-objects-from-json/index.js +0 -50
  584. package/examples/create-objects-from-json/mylist.json +0 -7
  585. package/examples/export-game/game.json +0 -205
  586. package/examples/export-game/index.js +0 -13
  587. package/src/CaseSensitiveSlug.js +0 -34
  588. package/src/EventsFunctionsExtensionsLoader/LocalEventsFunctionCodeWriter.js +0 -56
  589. package/src/EventsFunctionsExtensionsLoader/MetadataDeclarationHelpers.js +0 -489
  590. package/src/EventsFunctionsExtensionsLoader/index.js +0 -451
  591. package/src/JsExtensionsLoader/LocalJsExtensionsFinder.js +0 -42
  592. package/src/JsExtensionsLoader/LocalJsExtensionsLoader.js +0 -57
  593. package/src/JsExtensionsLoader/index.js +0 -101
  594. package/src/LocalFileSystem.js +0 -158
  595. package/src/LocalProjectOpener.js +0 -46
  596. package/src/LocalProjectWriter.js +0 -96
  597. package/src/MapFor.js +0 -46
  598. package/src/ObjectSplitter.js +0 -187
  599. package/src/Serializer.js +0 -35
  600. package/src/build.js +0 -51
  601. package/src/runtime-files-list.js +0 -143
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/debugger-client/hot-reloader.ts"],
4
+ "sourcesContent": ["namespace gdjs {\n const logger = new gdjs.Logger('Hot reloader');\n export type HotReloaderLog = {\n message: string;\n kind: 'fatal' | 'error' | 'warning' | 'info';\n };\n\n export type ChangedRuntimeBehavior = {\n oldBehaviorConstructor: Function;\n newBehaviorConstructor: Function;\n behaviorTypeName: string;\n };\n\n /**\n * Reload scripts/data of an exported game and applies the changes\n * to the running runtime game.\n */\n export class HotReloader {\n _runtimeGame: gdjs.RuntimeGame;\n _reloadedScriptElement: Record<string, HTMLScriptElement> = {};\n _logs: HotReloaderLog[] = [];\n _alreadyLoadedScriptFiles: Record<string, boolean> = {};\n\n /**\n * @param runtimeGame - The `gdjs.RuntimeGame` to be hot-reloaded.\n */\n constructor(runtimeGame: gdjs.RuntimeGame) {\n this._runtimeGame = runtimeGame;\n }\n\n static groupByPersistentUuid<\n ObjectWithPersistentId extends { persistentUuid: string | null }\n >(\n objectsWithPersistentId: ObjectWithPersistentId[]\n ): Record<string, ObjectWithPersistentId> {\n return objectsWithPersistentId.reduce(function (objectsMap, object) {\n if (object.persistentUuid) {\n objectsMap[object.persistentUuid] = object;\n }\n return objectsMap;\n }, {});\n }\n\n _canReloadScriptFile(srcFilename: string): boolean {\n function endsWith(str: string, suffix: string): boolean {\n const suffixPosition = str.indexOf(suffix);\n return (\n suffixPosition !== -1 && suffixPosition === str.length - suffix.length\n );\n }\n\n // Never reload .h script files, as they are leaking by mistake from C++ extensions.\n if (endsWith(srcFilename, '.h')) {\n return false;\n }\n\n // Make sure some files are loaded only once.\n if (this._alreadyLoadedScriptFiles[srcFilename]) {\n if (\n // Don't reload Box2d as it would confuse and crash the asm.js library.\n endsWith(srcFilename, 'box2d.js') ||\n // Don't reload sha256.js library.\n endsWith(srcFilename, 'sha256.js') ||\n // Don't reload shifty.js library.\n endsWith(srcFilename, 'shifty.js') ||\n // Don't reload shopify-buy library.\n endsWith(srcFilename, 'shopify-buy.umd.polyfilled.min.js') ||\n // Don't reload pixi-multistyle-text library.\n endsWith(srcFilename, 'pixi-multistyle-text.umd.js') ||\n // Don't reload pixi-tilemap library.\n endsWith(srcFilename, 'pixi-tilemap.umd.js') ||\n // Don't reload bondage.js library.\n endsWith(srcFilename, 'bondage.min.js') ||\n // Don't reload pixi-particles library.\n endsWith(srcFilename, 'pixi-particles-pixi-renderer.min.js') ||\n // Don't reload pixi-tilemap amd pixi-tilemap-helper libraries.\n endsWith(srcFilename, 'pixi-tilemap.umd.js') ||\n endsWith(srcFilename, 'pixi-tilemap-helper.js') ||\n // Don't reload pako library (used in pixi-tilemap)\n endsWith(srcFilename, 'pako/dist/pako.min')\n ) {\n return false;\n }\n }\n return true;\n }\n\n _reloadScript(srcFilename: string): Promise<void> {\n function endsWith(str: string, suffix: string): boolean {\n const suffixPosition = str.indexOf(suffix);\n return (\n suffixPosition !== -1 && suffixPosition === str.length - suffix.length\n );\n }\n if (!this._canReloadScriptFile(srcFilename)) {\n this._logs.push({\n kind: 'info',\n message:\n 'Not reloading ' +\n srcFilename +\n ' as it is blocked for hot-reloading.',\n });\n return Promise.resolve();\n }\n const head = document.getElementsByTagName('head')[0];\n if (!head) {\n return Promise.reject(\n new Error('No head element found, are you in a navigator?')\n );\n }\n return new Promise((resolve, reject) => {\n const existingScriptElement = this._reloadedScriptElement[srcFilename];\n if (existingScriptElement) {\n head.removeChild(existingScriptElement);\n } else {\n // Check if there is an existing scriptElement in head\n const headScriptElements = head.getElementsByTagName('script');\n for (let i = 0; i < headScriptElements.length; ++i) {\n const scriptElement = headScriptElements[i];\n if (endsWith(scriptElement.src, srcFilename)) {\n head.removeChild(scriptElement);\n }\n }\n }\n const reloadedScriptElement = document.createElement('script');\n reloadedScriptElement.src = srcFilename + '?timestamp=' + Date.now();\n reloadedScriptElement.onload = () => {\n resolve();\n };\n reloadedScriptElement.onerror = (event) => {\n reject(event);\n };\n head.appendChild(reloadedScriptElement);\n this._reloadedScriptElement[srcFilename] = reloadedScriptElement;\n });\n }\n\n hotReload(): Promise<HotReloaderLog[]> {\n logger.info('Hot reload started');\n this._runtimeGame.pause(true);\n this._logs = [];\n\n // Save old data of the project, to be used to compute\n // the difference between the old and new project data:\n\n const oldProjectData: ProjectData = gdjs.projectData;\n\n const oldScriptFiles = gdjs.runtimeGameOptions\n .scriptFiles as RuntimeGameOptionsScriptFile[];\n\n oldScriptFiles.forEach((scriptFile) => {\n this._alreadyLoadedScriptFiles[scriptFile.path] = true;\n });\n const oldBehaviorConstructors: { [key: string]: Function } = {};\n\n for (let behaviorTypeName in gdjs.behaviorsTypes.items) {\n oldBehaviorConstructors[behaviorTypeName] =\n gdjs.behaviorsTypes.items[behaviorTypeName];\n }\n\n // Reload projectData and runtimeGameOptions stored by convention in data.js:\n return this._reloadScript('data.js').then(() => {\n const newProjectData: ProjectData = gdjs.projectData;\n\n const newRuntimeGameOptions: RuntimeGameOptions =\n gdjs.runtimeGameOptions;\n\n const newScriptFiles = newRuntimeGameOptions.scriptFiles as RuntimeGameOptionsScriptFile[];\n const projectDataOnlyExport = !!newRuntimeGameOptions.projectDataOnlyExport;\n\n // Reload the changed scripts, which will have the side effects of re-running\n // the new scripts, potentially replacing the code of the free functions from\n // extensions (which is fine) and registering updated behaviors (which will\n // need to be re-instantiated in runtime objects).\n return this.reloadScriptFiles(\n newProjectData,\n oldScriptFiles,\n newScriptFiles,\n projectDataOnlyExport\n )\n .then(() => {\n const changedRuntimeBehaviors = this._computeChangedRuntimeBehaviors(\n oldBehaviorConstructors,\n gdjs.behaviorsTypes.items\n );\n return this._hotReloadRuntimeGame(\n oldProjectData,\n newProjectData,\n changedRuntimeBehaviors,\n this._runtimeGame\n );\n })\n .catch((error) => {\n const errorTarget = error.target;\n if (errorTarget instanceof HTMLScriptElement) {\n this._logs.push({\n kind: 'fatal',\n message: 'Unable to reload script:' + errorTarget.src,\n });\n } else {\n this._logs.push({\n kind: 'fatal',\n message:\n 'Unexpected error happened while hot-reloading:' +\n error.message,\n });\n }\n })\n .then(() => {\n logger.info('Hot reload finished with logs:', this._logs);\n this._runtimeGame.pause(false);\n return this._logs;\n });\n });\n }\n\n _computeChangedRuntimeBehaviors(\n oldBehaviorConstructors: Record<string, Function>,\n newBehaviorConstructors: Record<string, Function>\n ): ChangedRuntimeBehavior[] {\n const changedRuntimeBehaviors: ChangedRuntimeBehavior[] = [];\n for (let behaviorTypeName in oldBehaviorConstructors) {\n const oldBehaviorConstructor =\n oldBehaviorConstructors[behaviorTypeName];\n const newBehaviorConstructor =\n newBehaviorConstructors[behaviorTypeName];\n if (!newBehaviorConstructor) {\n this._logs.push({\n kind: 'warning',\n message:\n 'Behavior with type ' +\n behaviorTypeName +\n ' was removed from the registered behaviors in gdjs.',\n });\n } else {\n if (oldBehaviorConstructor !== newBehaviorConstructor) {\n this._logs.push({\n kind: 'info',\n message:\n 'Behavior with type ' +\n behaviorTypeName +\n ' was changed, and will be re-instantiated in gdjs.RuntimeObjects using it.',\n });\n changedRuntimeBehaviors.push({\n oldBehaviorConstructor,\n newBehaviorConstructor,\n behaviorTypeName,\n });\n }\n }\n }\n return changedRuntimeBehaviors;\n }\n\n reloadScriptFiles(\n newProjectData: ProjectData,\n oldScriptFiles: RuntimeGameOptionsScriptFile[],\n newScriptFiles: RuntimeGameOptionsScriptFile[],\n projectDataOnlyExport: boolean\n ): Promise<void[]> {\n const reloadPromises: Array<Promise<void>> = [];\n\n // Reload events, only if they were exported.\n if (!projectDataOnlyExport) {\n newProjectData.layouts.forEach((_layoutData, index) => {\n reloadPromises.push(this._reloadScript('code' + index + '.js'));\n });\n }\n for (let i = 0; i < newScriptFiles.length; ++i) {\n const newScriptFile = newScriptFiles[i];\n const oldScriptFile = oldScriptFiles.filter(\n (scriptFile) => scriptFile.path === newScriptFile.path\n )[0];\n if (!oldScriptFile) {\n // Script file added\n this._logs.push({\n kind: 'info',\n message:\n 'Loading ' +\n newScriptFile.path +\n ' as it was added to the list of scripts.',\n });\n reloadPromises.push(this._reloadScript(newScriptFile.path));\n } else {\n // Script file changed, which can be the case for extensions created\n // from the editor, containing free functions or behaviors.\n if (newScriptFile.hash !== oldScriptFile.hash) {\n this._logs.push({\n kind: 'info',\n message:\n 'Reloading ' + newScriptFile.path + ' because it was changed.',\n });\n reloadPromises.push(this._reloadScript(newScriptFile.path));\n }\n }\n }\n for (let i = 0; i < oldScriptFiles.length; ++i) {\n const oldScriptFile = oldScriptFiles[i];\n const newScriptFile = newScriptFiles.filter(\n (scriptFile) => scriptFile.path === oldScriptFile.path\n )[0];\n\n // A file may be removed because of a partial preview.\n if (!newScriptFile && !projectDataOnlyExport) {\n this._logs.push({\n kind: 'warning',\n message: 'Script file ' + oldScriptFile.path + ' was removed.',\n });\n }\n }\n return Promise.all(reloadPromises);\n }\n\n _hotReloadRuntimeGame(\n oldProjectData: ProjectData,\n newProjectData: ProjectData,\n changedRuntimeBehaviors: ChangedRuntimeBehavior[],\n runtimeGame: gdjs.RuntimeGame\n ): Promise<void> {\n return new Promise((resolve) => {\n // Update project data and re-load assets (sound/image/font/json managers\n // will take care of reloading only what is needed).\n runtimeGame.setProjectData(newProjectData);\n runtimeGame.loadAllAssets(() => {\n this._hotReloadVariablesContainer(\n oldProjectData.variables,\n newProjectData.variables,\n runtimeGame.getVariables()\n );\n\n // Reload runtime scenes\n const sceneStack = runtimeGame.getSceneStack();\n sceneStack._stack.forEach((runtimeScene) => {\n const oldLayoutData = oldProjectData.layouts.filter(\n (layoutData) => layoutData.name === runtimeScene.getName()\n )[0];\n const newLayoutData = newProjectData.layouts.filter(\n (layoutData) => layoutData.name === runtimeScene.getName()\n )[0];\n if (oldLayoutData && newLayoutData) {\n this._hotReloadRuntimeScene(\n oldLayoutData,\n newLayoutData,\n changedRuntimeBehaviors,\n runtimeScene\n );\n } else {\n // A scene was removed. Not hot-reloading this.\n this._logs.push({\n kind: 'error',\n message:\n 'Scene ' +\n oldLayoutData.name +\n ' was removed. A fresh preview should be launched.',\n });\n }\n });\n\n // Reload changes in external layouts\n newProjectData.externalLayouts.forEach((newExternalLayoutData) => {\n const oldExternalLayoutData = oldProjectData.externalLayouts.filter(\n (externalLayoutData) =>\n externalLayoutData.name === newExternalLayoutData.name\n )[0];\n if (\n oldExternalLayoutData &&\n // Check if there are actual changes, to avoid useless work trying to\n // hot-reload all the scenes.\n !HotReloader.deepEqual(\n oldExternalLayoutData,\n newExternalLayoutData\n )\n ) {\n sceneStack._stack.forEach((runtimeScene) => {\n this._hotReloadRuntimeSceneInstances(\n oldExternalLayoutData.instances,\n newExternalLayoutData.instances,\n runtimeScene\n );\n });\n }\n });\n resolve();\n });\n });\n }\n\n _hotReloadVariablesContainer(\n oldVariablesData: RootVariableData[],\n newVariablesData: RootVariableData[],\n variablesContainer: gdjs.VariablesContainer\n ): void {\n newVariablesData.forEach((newVariableData) => {\n const variableName = newVariableData.name;\n const oldVariableData = oldVariablesData.find(\n (variable) => variable.name === variableName\n );\n const variable = variablesContainer.get(newVariableData.name);\n\n if (!oldVariableData) {\n // New variable\n variablesContainer.add(\n variableName,\n new gdjs.Variable(newVariableData)\n );\n } else if (\n gdjs.Variable.isPrimitive(newVariableData.type || 'number') &&\n (oldVariableData.value !== newVariableData.value ||\n !gdjs.Variable.isPrimitive(oldVariableData.type || 'number'))\n ) {\n // Variable value was changed or was converted from\n // a structure to a variable with value.\n variablesContainer.remove(variableName);\n variablesContainer.add(\n variableName,\n new gdjs.Variable(newVariableData)\n );\n } else if (\n !gdjs.Variable.isPrimitive(newVariableData.type || 'number')\n ) {\n // Variable is a structure or array (or was converted from a primitive\n // to one of those).\n if (newVariableData.type === 'structure')\n this._hotReloadStructureVariable(\n //@ts-ignore If the type is structure, it is assured that the children have a name\n oldVariableData.children,\n newVariableData.children,\n variable\n );\n else {\n // Arrays cannot be hot reloaded.\n // As indices can change at runtime, and in the IDE, they can be desynchronized.\n // It will in that case mess up the whole array,\n // and there is no way to know if that was the case.\n //\n // We therefore just replace the old array with the new one.\n variablesContainer.remove(variableName);\n variablesContainer.add(\n variableName,\n new gdjs.Variable(newVariableData)\n );\n }\n }\n });\n oldVariablesData.forEach((oldVariableData) => {\n const newVariableData = newVariablesData.find(\n (variable) => variable.name === oldVariableData.name\n );\n\n if (!newVariableData) {\n // Variable was removed\n variablesContainer.remove(oldVariableData.name);\n }\n });\n }\n\n _hotReloadStructureVariable(\n oldChildren: RootVariableData[],\n newChildren: RootVariableData[],\n variable: gdjs.Variable\n ): void {\n if (oldChildren) {\n oldChildren.forEach((oldChildVariableData) => {\n const newChildVariableData = newChildren.find(\n (childVariableData) =>\n childVariableData.name === oldChildVariableData.name\n );\n\n if (!newChildVariableData) {\n // Child variable was removed.\n variable.removeChild(oldChildVariableData.name);\n } else if (\n gdjs.Variable.isPrimitive(newChildVariableData.type || 'number') &&\n (oldChildVariableData.value !== newChildVariableData.value ||\n !gdjs.Variable.isPrimitive(oldChildVariableData.type || 'number'))\n ) {\n // The child variable value was changed or was converted from\n // structure to a variable with value.\n variable.addChild(\n newChildVariableData.name,\n new gdjs.Variable(newChildVariableData)\n );\n } else if (\n !gdjs.Variable.isPrimitive(newChildVariableData.type || 'number')\n ) {\n // Variable is a structure or array (or was converted from a primitive\n // to one of those).\n if (newChildVariableData.type === 'structure')\n this._hotReloadStructureVariable(\n //@ts-ignore If the type is structure, it is assured that the children have a name\n oldChildVariableData.children,\n newChildVariableData.children as Required<VariableData>[],\n variable.getChild(newChildVariableData.name)\n );\n else {\n // Arrays cannot be hot reloaded.\n // As indices can change at runtime, and in the IDE, they can be desynchronized.\n // It will in that case mess up the whole array,\n // and there is no way to know if that was the case.\n //\n // We therefore just replace the old array with the new one.\n variable.addChild(\n newChildVariableData.name,\n new gdjs.Variable(newChildVariableData)\n );\n }\n }\n });\n newChildren.forEach((newChildVariableData) => {\n const oldChildVariableData = oldChildren.find(\n (childVariableData) =>\n childVariableData.name === newChildVariableData.name\n );\n\n if (!oldChildVariableData) {\n // Child variable was added\n variable.addChild(\n newChildVariableData.name,\n new gdjs.Variable(newChildVariableData)\n );\n }\n });\n } else {\n // Variable was converted from a value to a structure:\n newChildren.forEach((newChildVariableData) => {\n variable.addChild(\n newChildVariableData.name,\n new gdjs.Variable(newChildVariableData)\n );\n });\n }\n }\n\n _hotReloadRuntimeScene(\n oldLayoutData: LayoutData,\n newLayoutData: LayoutData,\n changedRuntimeBehaviors: ChangedRuntimeBehavior[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n runtimeScene.setBackgroundColor(\n newLayoutData.r,\n newLayoutData.v,\n newLayoutData.b\n );\n if (oldLayoutData.title !== newLayoutData.title) {\n runtimeScene\n .getGame()\n .getRenderer()\n .setWindowTitle(newLayoutData.title);\n }\n this._hotReloadVariablesContainer(\n oldLayoutData.variables as Required<VariableData>[],\n newLayoutData.variables as Required<VariableData>[],\n runtimeScene.getVariables()\n );\n this._hotReloadRuntimeSceneBehaviorsSharedData(\n oldLayoutData.behaviorsSharedData,\n newLayoutData.behaviorsSharedData,\n runtimeScene\n );\n\n // Re-instantiate any gdjs.RuntimeBehavior that was changed.\n this._reinstantiateRuntimeSceneRuntimeBehaviors(\n changedRuntimeBehaviors,\n newLayoutData.objects,\n runtimeScene\n );\n this._hotReloadRuntimeSceneObjects(\n oldLayoutData.objects,\n newLayoutData.objects,\n runtimeScene\n );\n this._hotReloadRuntimeSceneInstances(\n oldLayoutData.instances,\n newLayoutData.instances,\n runtimeScene\n );\n this._hotReloadRuntimeSceneLayers(\n oldLayoutData.layers,\n newLayoutData.layers,\n runtimeScene\n );\n\n // Update the events generated code launched at each frame. Events generated code\n // script files were already reloaded at the beginning of the hot-reload. Note that\n // if they have not changed, it's still fine to call this, it will be basically a\n // no-op.\n runtimeScene.setEventsGeneratedCodeFunction(newLayoutData);\n }\n\n _hotReloadRuntimeSceneBehaviorsSharedData(\n oldBehaviorsSharedData: BehaviorSharedData[],\n newBehaviorsSharedData: BehaviorSharedData[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n oldBehaviorsSharedData.forEach((oldBehaviorSharedData) => {\n const name = oldBehaviorSharedData.name;\n const newBehaviorSharedData = newBehaviorsSharedData.filter(\n (behaviorSharedData) => behaviorSharedData.name === name\n )[0];\n if (!newBehaviorSharedData) {\n // Behavior shared data was removed.\n runtimeScene.setInitialSharedDataForBehavior(\n oldBehaviorSharedData.name,\n null\n );\n } else {\n if (\n !HotReloader.deepEqual(oldBehaviorSharedData, newBehaviorSharedData)\n ) {\n // Behavior shared data was modified\n runtimeScene.setInitialSharedDataForBehavior(\n newBehaviorSharedData.name,\n newBehaviorSharedData\n );\n }\n }\n });\n newBehaviorsSharedData.forEach((newBehaviorSharedData) => {\n const name = newBehaviorSharedData.name;\n const oldBehaviorSharedData = oldBehaviorsSharedData.filter(\n (behaviorSharedData) => behaviorSharedData.name === name\n )[0];\n if (!oldBehaviorSharedData) {\n // Behavior shared data was added\n runtimeScene.setInitialSharedDataForBehavior(\n newBehaviorSharedData.name,\n newBehaviorSharedData\n );\n }\n });\n }\n\n _reinstantiateRuntimeSceneRuntimeBehaviors(\n changedRuntimeBehaviors: ChangedRuntimeBehavior[],\n newObjects: ObjectData[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n newObjects.forEach((newObjectData) => {\n const objectName = newObjectData.name;\n const newBehaviors = newObjectData.behaviors;\n const runtimeObjects = runtimeScene.getObjects(objectName)!;\n changedRuntimeBehaviors.forEach((changedRuntimeBehavior) => {\n const behaviorTypeName = changedRuntimeBehavior.behaviorTypeName;\n\n // If the changed behavior is used by the object, re-instantiate\n // it.\n newBehaviors\n .filter((behaviorData) => behaviorData.type === behaviorTypeName)\n .forEach((changedBehaviorNewData) => {\n const name = changedBehaviorNewData.name;\n this._logs.push({\n kind: 'info',\n message:\n 'Re-instantiating behavior named \"' +\n name +\n '\" for instances of object \"' +\n objectName +\n '\".',\n });\n runtimeObjects.forEach((runtimeObject) => {\n this._reinstantiateRuntimeObjectRuntimeBehavior(\n changedBehaviorNewData,\n runtimeObject\n );\n });\n });\n });\n });\n }\n\n _reinstantiateRuntimeObjectRuntimeBehavior(\n behaviorData: BehaviorData,\n runtimeObject: gdjs.RuntimeObject\n ): void {\n const behaviorName = behaviorData.name;\n const oldRuntimeBehavior = runtimeObject.getBehavior(behaviorName);\n if (!oldRuntimeBehavior) {\n return;\n }\n\n // Remove and re-add the behavior so that it's using the newly\n // registered gdjs.RuntimeBehavior.\n runtimeObject.removeBehavior(behaviorName);\n runtimeObject.addNewBehavior(behaviorData);\n const newRuntimeBehavior = runtimeObject.getBehavior(behaviorName);\n if (!newRuntimeBehavior) {\n this._logs.push({\n kind: 'error',\n message:\n 'Could not create behavior ' +\n behaviorName +\n ' (type: ' +\n behaviorData.type +\n ') for object ' +\n runtimeObject.getName(),\n });\n return;\n }\n\n // Copy the properties from the old behavior to the new one.\n for (let behaviorProperty in oldRuntimeBehavior) {\n if (!oldRuntimeBehavior.hasOwnProperty(behaviorProperty)) {\n continue;\n }\n if (behaviorProperty === '_behaviorData') {\n // For property \"_behaviorData\" that we know to be an object,\n // do a copy of each property of\n // this object so that we keep the new ones (useful if a new property was added).\n newRuntimeBehavior[behaviorProperty] =\n newRuntimeBehavior[behaviorProperty] || {};\n for (let property in oldRuntimeBehavior[behaviorProperty]) {\n newRuntimeBehavior[behaviorProperty][property] =\n oldRuntimeBehavior[behaviorProperty][property];\n }\n } else {\n newRuntimeBehavior[behaviorProperty] =\n oldRuntimeBehavior[behaviorProperty];\n }\n }\n return;\n }\n\n _hotReloadRuntimeSceneObjects(\n oldObjects: ObjectData[],\n newObjects: ObjectData[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n oldObjects.forEach((oldObjectData) => {\n const name = oldObjectData.name;\n const newObjectData = newObjects.filter(\n (objectData) => objectData.name === name\n )[0];\n\n // Note: if an object is renamed in the editor, it will be considered as removed,\n // and the new object name as a new object to register.\n // It's not ideal because living instances of the object will be destroyed,\n // but it would be complex to iterate over instances of the object and change\n // its name (it's not expected to change).\n if (!newObjectData || oldObjectData.type !== newObjectData.type) {\n // Object was removed or object type was changed (considered as a removal of the old object)\n runtimeScene.unregisterObject(name);\n } else {\n if (runtimeScene.isObjectRegistered(name)) {\n this._hotReloadRuntimeSceneObject(\n oldObjectData,\n newObjectData,\n runtimeScene\n );\n }\n }\n });\n newObjects.forEach((newObjectData) => {\n const name = newObjectData.name;\n const oldObjectData = oldObjects.filter(\n (layerData) => layerData.name === name\n )[0];\n if (\n (!oldObjectData || oldObjectData.type !== newObjectData.type) &&\n !runtimeScene.isObjectRegistered(name)\n ) {\n // Object was added or object type was changed (considered as adding the new object)\n runtimeScene.registerObject(newObjectData);\n }\n });\n }\n\n _hotReloadRuntimeSceneObject(\n oldObjectData: ObjectData,\n newObjectData: ObjectData,\n runtimeScene: gdjs.RuntimeScene\n ): void {\n let hotReloadSucceeded = true;\n if (!HotReloader.deepEqual(oldObjectData, newObjectData)) {\n this._logs.push({\n kind: 'info',\n message:\n 'Object \"' +\n newObjectData.name +\n '\" was modified and is hot-reloaded.',\n });\n\n // Register the updated object data, used for new instances.\n runtimeScene.updateObject(newObjectData);\n\n // Update existing instances\n const runtimeObjects = runtimeScene.getObjects(newObjectData.name)!;\n\n // Update instances state\n runtimeObjects.forEach((runtimeObject) => {\n // Update the runtime object\n hotReloadSucceeded =\n runtimeObject.updateFromObjectData(oldObjectData, newObjectData) &&\n hotReloadSucceeded;\n });\n\n // Don't update the variables, behaviors and effects for each runtime object to avoid\n // doing the check for differences for every single object.\n\n // Update variables\n runtimeObjects.forEach((runtimeObject) => {\n this._hotReloadVariablesContainer(\n oldObjectData.variables as Required<VariableData>[],\n newObjectData.variables as Required<VariableData>[],\n runtimeObject.getVariables()\n );\n });\n\n // Update behaviors\n this._hotReloadRuntimeObjectsBehaviors(\n oldObjectData.behaviors,\n newObjectData.behaviors,\n runtimeObjects\n );\n\n // Update effects\n this._hotReloadRuntimeObjectsEffects(\n oldObjectData.effects,\n newObjectData.effects,\n runtimeObjects\n );\n }\n if (!hotReloadSucceeded) {\n this._logs.push({\n kind: 'error',\n message:\n 'Object \"' +\n newObjectData.name +\n '\" could not be hot-reloaded. A fresh preview should be run.',\n });\n }\n }\n\n _hotReloadRuntimeObjectsBehaviors(\n oldBehaviors: BehaviorData[],\n newBehaviors: BehaviorData[],\n runtimeObjects: gdjs.RuntimeObject[]\n ): void {\n oldBehaviors.forEach((oldBehaviorData) => {\n const name = oldBehaviorData.name;\n const newBehaviorData = newBehaviors.filter(\n (behaviorData) => behaviorData.name === name\n )[0];\n if (!newBehaviorData) {\n // Behavior was removed\n runtimeObjects.forEach((runtimeObject) => {\n if (runtimeObject.hasBehavior(name)) {\n if (!runtimeObject.removeBehavior(name)) {\n this._logs.push({\n kind: 'error',\n message:\n 'Behavior ' +\n name +\n ' could not be removed from object' +\n runtimeObject.getName(),\n });\n }\n }\n });\n } else {\n if (!HotReloader.deepEqual(oldBehaviorData, newBehaviorData)) {\n let hotReloadSucceeded = true;\n runtimeObjects.forEach((runtimeObject) => {\n const runtimeBehavior = runtimeObject.getBehavior(\n newBehaviorData.name\n );\n if (runtimeBehavior) {\n hotReloadSucceeded =\n this._hotReloadRuntimeBehavior(\n oldBehaviorData,\n newBehaviorData,\n runtimeBehavior\n ) && hotReloadSucceeded;\n }\n });\n if (!hotReloadSucceeded) {\n this._logs.push({\n kind: 'error',\n message:\n newBehaviorData.name + ' behavior could not be hot-reloaded.',\n });\n }\n }\n }\n });\n newBehaviors.forEach((newBehaviorData) => {\n const name = newBehaviorData.name;\n const oldBehaviorData = oldBehaviors.filter(\n (layerData) => layerData.name === name\n )[0];\n if (!oldBehaviorData) {\n // Behavior was added\n let hotReloadSucceeded = true;\n runtimeObjects.forEach((runtimeObject) => {\n hotReloadSucceeded =\n runtimeObject.addNewBehavior(newBehaviorData) &&\n hotReloadSucceeded;\n });\n if (!hotReloadSucceeded) {\n this._logs.push({\n kind: 'error',\n message:\n newBehaviorData.name +\n ' behavior could not be added during hot-reload.',\n });\n }\n }\n });\n }\n\n _hotReloadRuntimeObjectsEffects(\n oldEffects: EffectData[],\n newEffects: EffectData[],\n runtimeObjects: RuntimeObject[]\n ): void {\n oldEffects.forEach((oldEffectData) => {\n const name = oldEffectData.name;\n const newEffectData = newEffects.filter(\n (effectData) => effectData.name === name\n )[0];\n if (!newEffectData) {\n // Effect was removed.\n runtimeObjects.forEach((runtimeObject) => {\n if (runtimeObject.hasEffect(name)) {\n if (!runtimeObject.removeEffect(name)) {\n this._logs.push({\n kind: 'error',\n message:\n 'Effect ' +\n name +\n ' could not be removed from object' +\n runtimeObject.getName(),\n });\n }\n }\n });\n } else {\n if (!HotReloader.deepEqual(oldEffectData, newEffectData)) {\n let hotReloadSucceeded = true;\n runtimeObjects.forEach((runtimeObject) => {\n if (oldEffectData.effectType === newEffectData.effectType) {\n hotReloadSucceeded =\n runtimeObject.updateAllEffectParameters(newEffectData) &&\n hotReloadSucceeded;\n } else {\n // Another effect type was applied\n runtimeObject.removeEffect(oldEffectData.name);\n runtimeObject.addEffect(newEffectData);\n }\n });\n if (!hotReloadSucceeded) {\n this._logs.push({\n kind: 'error',\n message:\n newEffectData.name + ' effect could not be hot-reloaded.',\n });\n }\n }\n }\n });\n newEffects.forEach((newEffectData) => {\n const name = newEffectData.name;\n const oldEffectData = oldEffects.filter(\n (oldEffectData) => oldEffectData.name === name\n )[0];\n if (!oldEffectData) {\n // Effect was added\n let hotReloadSucceeded = true;\n runtimeObjects.forEach((runtimeObject) => {\n hotReloadSucceeded =\n runtimeObject.addEffect(newEffectData) && hotReloadSucceeded;\n });\n if (!hotReloadSucceeded) {\n this._logs.push({\n kind: 'error',\n message:\n newEffectData.name +\n ' effect could not be added during hot-reload.',\n });\n }\n }\n });\n }\n\n /**\n * @returns true if hot-reload succeeded, false otherwise.\n */\n _hotReloadRuntimeBehavior(\n oldBehaviorData: BehaviorData,\n newBehaviorData: BehaviorData,\n runtimeBehavior: gdjs.RuntimeBehavior\n ): boolean {\n // Don't check here for deep equality between oldBehaviorData and newBehaviorData.\n // This would be too costly to do for each runtime object.\n // It's supposed to be done once by the caller.\n return runtimeBehavior.updateFromBehaviorData(\n oldBehaviorData,\n newBehaviorData\n );\n }\n\n _hotReloadRuntimeSceneLayers(\n oldLayers: LayerData[],\n newLayers: LayerData[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n oldLayers.forEach((oldLayerData) => {\n const name = oldLayerData.name;\n const newLayerData = newLayers.filter(\n (layerData) => layerData.name === name\n )[0];\n if (!newLayerData) {\n // Layer was removed\n runtimeScene.removeLayer(name);\n } else {\n if (runtimeScene.hasLayer(name)) {\n const layer = runtimeScene.getLayer(name);\n this._hotReloadRuntimeLayer(oldLayerData, newLayerData, layer);\n }\n }\n });\n newLayers.forEach((newLayerData) => {\n const name = newLayerData.name;\n const oldLayerData = oldLayers.filter(\n (layerData) => layerData.name === name\n )[0];\n if (!oldLayerData && !runtimeScene.hasLayer(name)) {\n // Layer was added\n runtimeScene.addLayer(newLayerData);\n }\n });\n newLayers.forEach((newLayerData, index) => {\n runtimeScene.setLayerIndex(newLayerData.name, index);\n });\n }\n\n _hotReloadRuntimeLayer(\n oldLayer: LayerData,\n newLayer: LayerData,\n runtimeLayer: gdjs.RuntimeLayer\n ): void {\n // Properties\n if (oldLayer.visibility !== newLayer.visibility) {\n runtimeLayer.show(newLayer.visibility);\n }\n if (newLayer.isLightingLayer) {\n if (\n oldLayer.ambientLightColorR !== newLayer.ambientLightColorR ||\n oldLayer.ambientLightColorG !== newLayer.ambientLightColorG ||\n oldLayer.ambientLightColorB !== newLayer.ambientLightColorB\n ) {\n runtimeLayer.setClearColor(\n newLayer.ambientLightColorR,\n newLayer.ambientLightColorG,\n newLayer.ambientLightColorB\n );\n }\n if (oldLayer.followBaseLayerCamera !== newLayer.followBaseLayerCamera) {\n runtimeLayer.setFollowBaseLayerCamera(newLayer.followBaseLayerCamera);\n }\n }\n\n // Rendering type can't be easily changed at runtime.\n if (oldLayer.renderingType !== newLayer.renderingType) {\n this._logs.push({\n kind: 'error',\n message: `Could not change the rendering type (2D, 3D...) layer at runtime (for layer \"${newLayer.name}\").`,\n });\n }\n if (newLayer.isLightingLayer !== oldLayer.isLightingLayer) {\n this._logs.push({\n kind: 'error',\n message: `Could not add/remove a lighting layer at runtime (for layer \"${newLayer.name}\").`,\n });\n }\n\n // Effects\n this._hotReloadRuntimeLayerEffects(\n oldLayer.effects,\n newLayer.effects,\n runtimeLayer\n );\n }\n\n _hotReloadRuntimeLayerEffects(\n oldEffectsData: EffectData[],\n newEffectsData: EffectData[],\n runtimeLayer: gdjs.RuntimeLayer\n ): void {\n oldEffectsData.forEach((oldEffectData) => {\n const name = oldEffectData.name;\n const newEffectData = newEffectsData.filter(\n (effectData) => effectData.name === name\n )[0];\n if (!newEffectData) {\n // Effect was removed\n runtimeLayer.removeEffect(name);\n } else {\n if (runtimeLayer.hasEffect(name)) {\n if (oldEffectData.effectType !== newEffectData.effectType) {\n // Effect changed type, consider it was removed and added back.\n runtimeLayer.removeEffect(name);\n runtimeLayer.addEffect(newEffectData);\n } else {\n this._hotReloadRuntimeLayerEffect(\n oldEffectData,\n newEffectData,\n runtimeLayer,\n name\n );\n }\n }\n }\n });\n newEffectsData.forEach((newEffectData) => {\n const name = newEffectData.name;\n const oldEffectData = oldEffectsData.filter(\n (layerData) => layerData.name === name\n )[0];\n if (!oldEffectData && !runtimeLayer.hasEffect(name)) {\n // Effect was added\n runtimeLayer.addEffect(newEffectData);\n }\n });\n }\n\n _hotReloadRuntimeLayerEffect(\n oldEffectData: EffectData,\n newEffectData: EffectData,\n runtimeLayer: gdjs.RuntimeLayer,\n effectName: string\n ): void {\n // We consider oldEffectData.effectType and newEffectData.effectType\n // are the same - it's responsibility of the caller to verify this.\n for (let parameterName in newEffectData.booleanParameters) {\n const value = newEffectData.booleanParameters[parameterName];\n if (value !== oldEffectData.booleanParameters[parameterName]) {\n runtimeLayer.setEffectBooleanParameter(\n effectName,\n parameterName,\n value\n );\n }\n }\n for (let parameterName in newEffectData.doubleParameters) {\n const value = newEffectData.doubleParameters[parameterName];\n if (value !== oldEffectData.doubleParameters[parameterName]) {\n runtimeLayer.setEffectDoubleParameter(\n effectName,\n parameterName,\n value\n );\n }\n }\n for (let parameterName in newEffectData.stringParameters) {\n const value = newEffectData.stringParameters[parameterName];\n if (value !== oldEffectData.stringParameters[parameterName]) {\n runtimeLayer.setEffectStringParameter(\n effectName,\n parameterName,\n value\n );\n }\n }\n }\n\n _hotReloadRuntimeSceneInstances(\n oldInstances: InstanceData[],\n newInstances: InstanceData[],\n runtimeScene: gdjs.RuntimeScene\n ): void {\n const runtimeObjects = runtimeScene.getAdhocListOfAllInstances();\n const groupedOldInstances: {\n [key: number]: InstanceData;\n } = HotReloader.groupByPersistentUuid(oldInstances);\n const groupedNewInstances: {\n [key: number]: InstanceData;\n } = HotReloader.groupByPersistentUuid(newInstances);\n const groupedRuntimeObjects: {\n [key: number]: gdjs.RuntimeObject;\n } = HotReloader.groupByPersistentUuid(runtimeObjects);\n for (let persistentUuid in groupedOldInstances) {\n const oldInstance = groupedOldInstances[persistentUuid];\n const newInstance = groupedNewInstances[persistentUuid];\n const runtimeObject = groupedRuntimeObjects[persistentUuid];\n if (\n oldInstance &&\n (!newInstance || oldInstance.name !== newInstance.name)\n ) {\n // Instance was deleted (or object name changed, in which case it will be re-created later)\n if (runtimeObject) {\n runtimeObject.deleteFromScene(runtimeScene);\n }\n } else {\n if (oldInstance && newInstance && runtimeObject) {\n // Instance was not deleted nor created, maybe modified (or not):\n this._hotReloadRuntimeInstance(\n oldInstance,\n newInstance,\n runtimeObject\n );\n }\n }\n }\n for (let persistentUuid in groupedNewInstances) {\n const oldInstance = groupedOldInstances[persistentUuid];\n const newInstance = groupedNewInstances[persistentUuid];\n const runtimeObject = groupedRuntimeObjects[persistentUuid];\n if (\n newInstance &&\n (!oldInstance || oldInstance.name !== newInstance.name) &&\n !runtimeObject\n ) {\n // Instance was created (or object name changed, in which case it was destroyed previously)\n // and we verified that runtimeObject does not exist.\n runtimeScene.createObjectsFrom(\n [newInstance],\n 0,\n 0,\n /*trackByPersistentUuid=*/\n true\n );\n }\n }\n }\n\n _hotReloadRuntimeInstance(\n oldInstance: InstanceData,\n newInstance: InstanceData,\n runtimeObject: gdjs.RuntimeObject\n ): void {\n let somethingChanged = false;\n\n // Check if default properties changed\n if (oldInstance.x !== newInstance.x) {\n runtimeObject.setX(newInstance.x);\n somethingChanged = true;\n }\n if (oldInstance.y !== newInstance.y) {\n runtimeObject.setY(newInstance.y);\n somethingChanged = true;\n }\n if (oldInstance.angle !== newInstance.angle) {\n runtimeObject.setAngle(newInstance.angle);\n somethingChanged = true;\n }\n if (oldInstance.zOrder !== newInstance.zOrder) {\n runtimeObject.setZOrder(newInstance.zOrder);\n somethingChanged = true;\n }\n if (oldInstance.layer !== newInstance.layer) {\n runtimeObject.setLayer(newInstance.layer);\n somethingChanged = true;\n }\n if (\n gdjs.RuntimeObject3D &&\n runtimeObject instanceof gdjs.RuntimeObject3D\n ) {\n if (oldInstance.z !== newInstance.z && newInstance.z !== undefined) {\n runtimeObject.setZ(newInstance.z);\n somethingChanged = true;\n }\n if (\n oldInstance.rotationX !== newInstance.rotationX &&\n newInstance.rotationX !== undefined\n ) {\n runtimeObject.setRotationX(newInstance.rotationX);\n somethingChanged = true;\n }\n if (\n oldInstance.rotationY !== newInstance.rotationY &&\n newInstance.rotationY !== undefined\n ) {\n runtimeObject.setRotationY(newInstance.rotationY);\n somethingChanged = true;\n }\n }\n\n // Check if size changed\n let sizeChanged = false;\n if (newInstance.customSize) {\n if (!oldInstance.customSize) {\n // A custom size was set\n runtimeObject.setWidth(newInstance.width);\n runtimeObject.setHeight(newInstance.height);\n somethingChanged = true;\n sizeChanged = true;\n } else {\n // The custom size was changed\n if (oldInstance.width !== newInstance.width) {\n runtimeObject.setWidth(newInstance.width);\n somethingChanged = true;\n sizeChanged = true;\n }\n if (oldInstance.height !== newInstance.height) {\n runtimeObject.setHeight(newInstance.height);\n somethingChanged = true;\n sizeChanged = true;\n }\n }\n } else {\n if (!newInstance.customSize && oldInstance.customSize) {\n // The custom size was removed. Just flag the size as changed\n // and hope the object will handle this in\n // `extraInitializationFromInitialInstance`.\n sizeChanged = true;\n }\n }\n if (\n gdjs.RuntimeObject3D &&\n runtimeObject instanceof gdjs.RuntimeObject3D\n ) {\n // A custom depth was set or changed\n if (\n oldInstance.depth !== newInstance.depth &&\n newInstance.depth !== undefined\n ) {\n runtimeObject.setDepth(newInstance.depth);\n somethingChanged = true;\n sizeChanged = true;\n } else if (\n newInstance.depth === undefined &&\n oldInstance.depth !== undefined\n ) {\n // The custom depth was removed. Just flag the depth as changed\n // and hope the object will handle this in\n // `extraInitializationFromInitialInstance`.\n sizeChanged = true;\n }\n }\n\n // Update variables\n this._hotReloadVariablesContainer(\n oldInstance.initialVariables as Required<VariableData>[],\n newInstance.initialVariables as Required<VariableData>[],\n runtimeObject.getVariables()\n );\n\n // Check if custom properties changed (specific to each object type)\n const numberPropertiesChanged = newInstance.numberProperties.some(\n (numberProperty) => {\n const name = numberProperty.name;\n const value = numberProperty.value;\n const oldNumberProperty = oldInstance.numberProperties.filter(\n (numberProperty) => numberProperty.name === name\n )[0];\n return !oldNumberProperty || oldNumberProperty.value !== value;\n }\n );\n const stringPropertiesChanged = newInstance.stringProperties.some(\n (stringProperty) => {\n const name = stringProperty.name;\n const value = stringProperty.value;\n const oldStringProperty = oldInstance.stringProperties.filter(\n (stringProperty) => stringProperty.name === name\n )[0];\n return !oldStringProperty || oldStringProperty.value !== value;\n }\n );\n if (numberPropertiesChanged || stringPropertiesChanged || sizeChanged) {\n runtimeObject.extraInitializationFromInitialInstance(newInstance);\n somethingChanged = true;\n }\n if (somethingChanged) {\n // If we changed the runtime object position/size/angle or another property,\n // notify behaviors that the runtime object was reloaded.\n // This is useful for behaviors like the physics engine that are watching the\n // object position/size and need to be notified when changed (otherwise, they\n // would continue using the previous position, so the object would not be moved\n // or updated according to the changes made in the project instance).\n runtimeObject.notifyBehaviorsObjectHotReloaded();\n }\n }\n\n /**\n * Deep check equality between the two objects/arrays/primitives.\n *\n * Inspired from https://github.com/epoberezkin/fast-deep-equal\n * @param a The first object/array/primitive to compare\n * @param b The second object/array/primitive to compare\n */\n static deepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) {\n return false;\n }\n let length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) {\n return false;\n }\n for (i = length; i-- !== 0; ) {\n if (!HotReloader.deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (a.valueOf !== Object.prototype.valueOf) {\n return a.valueOf() === b.valueOf();\n }\n if (a.toString !== Object.prototype.toString) {\n return a.toString() === b.toString();\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0; ) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0; ) {\n const key = keys[i];\n if (!HotReloader.deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["gdjs", "logger", "HotReloader", "runtimeGame", "objectsWithPersistentId", "objectsMap", "object", "srcFilename", "endsWith", "str", "suffix", "suffixPosition", "head", "resolve", "reject", "existingScriptElement", "headScriptElements", "i", "scriptElement", "reloadedScriptElement", "event", "oldProjectData", "oldScriptFiles", "scriptFile", "oldBehaviorConstructors", "behaviorTypeName", "newProjectData", "newRuntimeGameOptions", "newScriptFiles", "projectDataOnlyExport", "changedRuntimeBehaviors", "error", "errorTarget", "newBehaviorConstructors", "oldBehaviorConstructor", "newBehaviorConstructor", "reloadPromises", "_layoutData", "index", "newScriptFile", "oldScriptFile", "sceneStack", "runtimeScene", "oldLayoutData", "layoutData", "newLayoutData", "newExternalLayoutData", "oldExternalLayoutData", "externalLayoutData", "oldVariablesData", "newVariablesData", "variablesContainer", "newVariableData", "variableName", "oldVariableData", "variable", "oldChildren", "newChildren", "oldChildVariableData", "newChildVariableData", "childVariableData", "oldBehaviorsSharedData", "newBehaviorsSharedData", "oldBehaviorSharedData", "name", "newBehaviorSharedData", "behaviorSharedData", "newObjects", "newObjectData", "objectName", "newBehaviors", "runtimeObjects", "changedRuntimeBehavior", "behaviorData", "changedBehaviorNewData", "runtimeObject", "behaviorName", "oldRuntimeBehavior", "newRuntimeBehavior", "behaviorProperty", "property", "oldObjects", "oldObjectData", "objectData", "layerData", "hotReloadSucceeded", "oldBehaviors", "oldBehaviorData", "newBehaviorData", "runtimeBehavior", "oldEffects", "newEffects", "oldEffectData", "newEffectData", "effectData", "oldLayers", "newLayers", "oldLayerData", "newLayerData", "layer", "oldLayer", "newLayer", "runtimeLayer", "oldEffectsData", "newEffectsData", "effectName", "parameterName", "value", "oldInstances", "newInstances", "groupedOldInstances", "groupedNewInstances", "groupedRuntimeObjects", "persistentUuid", "oldInstance", "newInstance", "somethingChanged", "sizeChanged", "numberPropertiesChanged", "numberProperty", "oldNumberProperty", "stringPropertiesChanged", "stringProperty", "oldStringProperty", "a", "b", "length", "keys", "key"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(s=>{const t=new s.Logger("Debugger client (websocket)");class i extends s.AbstractDebuggerClient{_ws;constructor(o){if(super(o),this._ws=null,typeof WebSocket>"u"){t.log("WebSocket is not defined, the debugger won't work.");return}const c=this;try{const e=o.getAdditionalOptions(),n=e&&e.websocketDebuggerServerAddress||"127.0.0.1",r=e&&e.websocketDebuggerServerPort||"3030";this._ws=new WebSocket("ws://"+n+":"+r+"/")}catch{t.log("WebSocket could not initialize, debugger/hot-reload won't work.");return}this._ws.onopen=function(){t.info("Debugger connection open")},this._ws.onclose=function(){t.info("Debugger connection closed")},this._ws.onerror=function(n){t.warn("Debugger client error:",n)},this._ws.onmessage=function(n){let r=null;try{r=JSON.parse(n.data)}catch(g){t.info("Debugger received a badly formatted message:",g)}c.handleCommand(r)}}_sendMessage(o){if(!this._ws){t.warn("No connection to debugger opened to send a message.");return}this._ws.readyState===1&&this._ws.send(o)}}s.WebsocketDebuggerClient=i,s.DebuggerClient=i})(gdjs||={});
2
+ //# sourceMappingURL=websocket-debugger-client.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/debugger-client/websocket-debugger-client.ts"],
4
+ "sourcesContent": ["namespace gdjs {\n const logger = new gdjs.Logger('Debugger client (websocket)');\n\n /**\n * This debugger client connects to a websocket server, exchanging\n * and receiving messages with this server.\n */\n export class WebsocketDebuggerClient extends gdjs.AbstractDebuggerClient {\n _ws: WebSocket | null;\n\n /**\n * @param path - The path of the property to modify, starting from the RuntimeGame.\n */\n constructor(runtimeGame: RuntimeGame) {\n super(runtimeGame);\n this._ws = null;\n if (typeof WebSocket === 'undefined') {\n logger.log(\"WebSocket is not defined, the debugger won't work.\");\n return;\n }\n\n const that = this;\n try {\n // Find the WebSocket server to connect to using the address that was stored\n // in the options by the editor. If not, try the default address, though it's unlikely\n // to work - which is ok, the game can run without a debugger server.\n const runtimeGameOptions = runtimeGame.getAdditionalOptions();\n const address =\n (runtimeGameOptions &&\n runtimeGameOptions.websocketDebuggerServerAddress) ||\n '127.0.0.1';\n const port =\n (runtimeGameOptions &&\n runtimeGameOptions.websocketDebuggerServerPort) ||\n '3030';\n this._ws = new WebSocket('ws://' + address + ':' + port + '/');\n } catch (e) {\n logger.log(\n \"WebSocket could not initialize, debugger/hot-reload won't work.\"\n );\n return;\n }\n this._ws.onopen = function open() {\n logger.info('Debugger connection open');\n };\n this._ws.onclose = function close() {\n logger.info('Debugger connection closed');\n };\n this._ws.onerror = function errored(error) {\n logger.warn('Debugger client error:', error);\n };\n this._ws.onmessage = function incoming(message) {\n let data: any = null;\n try {\n data = JSON.parse(message.data);\n } catch (error) {\n logger.info('Debugger received a badly formatted message:', error);\n }\n that.handleCommand(data);\n };\n }\n\n protected _sendMessage(message: string) {\n if (!this._ws) {\n logger.warn('No connection to debugger opened to send a message.');\n return;\n }\n if (this._ws.readyState === 1) this._ws.send(message);\n }\n }\n\n //Register the class to let the engine use it.\n // @ts-ignore\n export const DebuggerClient = WebsocketDebuggerClient;\n}\n"],
5
+ "mappings": "AAAA,IAAU,MAAAA,GAAV,CACE,MAAMC,EAAS,IAAID,EAAK,OAAO,6BAA6B,EAMrD,MAAME,UAAgCF,EAAK,sBAAuB,CACvE,IAKA,YAAYG,EAA0B,CAGpC,GAFA,MAAMA,CAAW,EACjB,KAAK,IAAM,KACP,OAAO,UAAc,IAAa,CACpCF,EAAO,IAAI,oDAAoD,EAC/D,MACF,CAEA,MAAMG,EAAO,KACb,GAAI,CAIF,MAAMC,EAAqBF,EAAY,qBAAqB,EACtDG,EACHD,GACCA,EAAmB,gCACrB,YACIE,EACHF,GACCA,EAAmB,6BACrB,OACF,KAAK,IAAM,IAAI,UAAU,QAAUC,EAAU,IAAMC,EAAO,GAAG,CAC/D,MAAY,CACVN,EAAO,IACL,iEACF,EACA,MACF,CACA,KAAK,IAAI,OAAS,UAAgB,CAChCA,EAAO,KAAK,0BAA0B,CACxC,EACA,KAAK,IAAI,QAAU,UAAiB,CAClCA,EAAO,KAAK,4BAA4B,CAC1C,EACA,KAAK,IAAI,QAAU,SAAiBO,EAAO,CACzCP,EAAO,KAAK,yBAA0BO,CAAK,CAC7C,EACA,KAAK,IAAI,UAAY,SAAkBC,EAAS,CAC9C,IAAIC,EAAY,KAChB,GAAI,CACFA,EAAO,KAAK,MAAMD,EAAQ,IAAI,CAChC,OAASD,EAAO,CACdP,EAAO,KAAK,+CAAgDO,CAAK,CACnE,CACAJ,EAAK,cAAcM,CAAI,CACzB,CACF,CAEU,aAAaD,EAAiB,CACtC,GAAI,CAAC,KAAK,IAAK,CACbR,EAAO,KAAK,qDAAqD,EACjE,MACF,CACI,KAAK,IAAI,aAAe,GAAG,KAAK,IAAI,KAAKQ,CAAO,CACtD,CACF,CA9DOT,EAAM,wBAAAE,EAkEAF,EAAA,eAAiBE,IAzEtB",
6
+ "names": ["gdjs", "logger", "WebsocketDebuggerClient", "runtimeGame", "that", "runtimeGameOptions", "address", "port", "error", "message", "data"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(e=>{const r=new e.Logger("Debugger client (window message)");class o extends e.AbstractDebuggerClient{_opener=null;constructor(n){if(super(n),this._opener=window.opener||null,!this._opener){r.info("`window.opener` not existing, the debugger won't work.");return}window.addEventListener("message",t=>{const s=t.data;this.handleCommand(s)})}_sendMessage(n){if(this._opener)try{this._opener.postMessage(n,"*")}catch(t){this._originalConsole.warn("Error while sending a message to the debugger:",t)}}}e.WindowMessageDebuggerClient=o,e.DebuggerClient=o})(gdjs||={});
2
+ //# sourceMappingURL=window-message-debugger-client.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/debugger-client/window-message-debugger-client.ts"],
4
+ "sourcesContent": ["namespace gdjs {\n const logger = new gdjs.Logger('Debugger client (window message)');\n\n /**\n * This debugger client connects to the parent window, exchanging\n * and receiving messages using `postMessage` and the `message` event listener.\n */\n export class WindowMessageDebuggerClient extends gdjs.AbstractDebuggerClient {\n _opener: Window | null = null;\n\n /**\n * @param path - The path of the property to modify, starting from the RuntimeGame.\n */\n constructor(runtimeGame: RuntimeGame) {\n super(runtimeGame);\n\n this._opener = window.opener || null;\n if (!this._opener) {\n logger.info(\"`window.opener` not existing, the debugger won't work.\");\n return;\n }\n\n window.addEventListener('message', (event) => {\n const data = event.data;\n this.handleCommand(data);\n });\n }\n\n protected _sendMessage(message: string) {\n if (!this._opener) return;\n\n try {\n this._opener.postMessage(message, '*');\n } catch (error) {\n this._originalConsole.warn(\n 'Error while sending a message to the debugger:',\n error\n );\n }\n }\n }\n\n //Register the class to let the engine use it.\n // @ts-ignore\n export const DebuggerClient = WindowMessageDebuggerClient;\n}\n"],
5
+ "mappings": "AAAA,IAAU,MAAAA,GAAV,CACE,MAAMC,EAAS,IAAID,EAAK,OAAO,kCAAkC,EAM1D,MAAME,UAAoCF,EAAK,sBAAuB,CAC3E,QAAyB,KAKzB,YAAYG,EAA0B,CAIpC,GAHA,MAAMA,CAAW,EAEjB,KAAK,QAAU,OAAO,QAAU,KAC5B,CAAC,KAAK,QAAS,CACjBF,EAAO,KAAK,wDAAwD,EACpE,MACF,CAEA,OAAO,iBAAiB,UAAYG,GAAU,CAC5C,MAAMC,EAAOD,EAAM,KACnB,KAAK,cAAcC,CAAI,CACzB,CAAC,CACH,CAEU,aAAaC,EAAiB,CACtC,GAAK,KAAK,QAEV,GAAI,CACF,KAAK,QAAQ,YAAYA,EAAS,GAAG,CACvC,OAASC,EAAO,CACd,KAAK,iBAAiB,KACpB,iDACAA,CACF,CACF,CACF,CACF,CAjCOP,EAAM,4BAAAE,EAqCAF,EAAA,eAAiBE,IA5CtB",
6
+ "names": ["gdjs", "logger", "WindowMessageDebuggerClient", "runtimeGame", "event", "data", "message", "error"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(L=>{let x;(b=>{let I;(r=>(r.setCameraX=function(t,e,n,s){t.hasLayer(n)&&t.getLayer(n).setCameraX(e,s)},r.setCameraY=function(t,e,n,s){t.hasLayer(n)&&t.getLayer(n).setCameraY(e,s)},r.getCameraX=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraX():0},r.getCameraY=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraY():0},r.getCameraWidth=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraWidth():0},r.getCameraHeight=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraHeight():0},r.getCameraBorderLeft=function(t,e,n){return t.hasLayer(e)?(0,r.getCameraX)(t,e,n)-(0,r.getCameraWidth)(t,e,n)/2:0},r.getCameraBorderRight=function(t,e,n){return t.hasLayer(e)?(0,r.getCameraX)(t,e,n)+(0,r.getCameraWidth)(t,e,n)/2:0},r.getCameraBorderTop=function(t,e,n){return t.hasLayer(e)?(0,r.getCameraY)(t,e,n)-(0,r.getCameraHeight)(t,e,n)/2:0},r.getCameraBorderBottom=function(t,e,n){return t.hasLayer(e)?(0,r.getCameraY)(t,e,n)+(0,r.getCameraHeight)(t,e,n)/2:0},r.showLayer=function(t,e){if(t.hasLayer(e))return t.getLayer(e).show(!0)},r.hideLayer=function(t,e){if(t.hasLayer(e))return t.getLayer(e).show(!1)},r.layerIsVisible=function(t,e){return t.hasLayer(e)&&t.getLayer(e).isVisible()},r.setCameraRotation=function(t,e,n,s){if(t.hasLayer(n))return t.getLayer(n).setCameraRotation(e,s)},r.getCameraRotation=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraRotation(n):0},r.getCameraZoom=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).getCameraZoom(n):0},r.setCameraZoom=function(t,e,n,s){if(t.hasLayer(n))return t.getLayer(n).setCameraZoom(e,s)},r.centerCamera=function(t,e,n,s,o){if(!t.hasLayer(s)||e==null)return;let f=0,i=0;if(n&&!e.hasNoForces()){const u=e.getAverageForce(),a=e.getElapsedTime(t)/1e3;f=u.getX()*a,i=u.getY()*a}const g=t.getLayer(s);g.setCameraX(e.getCenterXInScene()+f,o),g.setCameraY(e.getCenterYInScene()+i,o)},r.centerCameraWithinLimits=function(t,e,n,s,o,f,i,g,u){(0,r.centerCamera)(t,e,i,g,u),(0,r.clampCamera)(t,n,s,o,f,g,u)},r.clampCamera=function(t,e,n,s,o,f,i){if(!t.hasLayer(f))return;const g=t.getLayer(f),u=g.getCameraWidth(i)/2,a=g.getCameraHeight(i)/2,m=e+u,c=s-u,h=n+a,d=o-a,E=m<c?L.evtTools.common.clamp(g.getCameraX(i),m,c):(m+c)/2,B=h<d?L.evtTools.common.clamp(g.getCameraY(i),h,d):(h+d)/2;g.setCameraX(E,i),g.setCameraY(B,i)},r.setLayerEffectDoubleParameter=function(t,e,n,s,o){if(t.hasLayer(e))return t.getLayer(e).setEffectDoubleParameter(n,s,o)},r.setLayerEffectStringParameter=function(t,e,n,s,o){if(t.hasLayer(e))return t.getLayer(e).setEffectStringParameter(n,s,o)},r.setLayerEffectBooleanParameter=function(t,e,n,s,o){if(t.hasLayer(e))return t.getLayer(e).setEffectBooleanParameter(n,s,o)},r.enableLayerEffect=function(t,e,n,s){t.hasLayer(e)&&t.getLayer(e).enableEffect(n,s)},r.layerEffectEnabled=function(t,e,n){return t.hasLayer(e)?t.getLayer(e).isEffectEnabled(n):!0},r.setLayerTimeScale=function(t,e,n){if(t.hasLayer(e))return t.getLayer(e).setTimeScale(n)},r.getLayerTimeScale=function(t,e){return t.hasLayer(e)?t.getLayer(e).getTimeScale():1},r.setLayerDefaultZOrder=function(t,e,n){if(t.hasLayer(e))return t.getLayer(e).setDefaultZOrder(n)},r.getLayerDefaultZOrder=function(t,e){return t.hasLayer(e)?t.getLayer(e).getDefaultZOrder():0},r.setLayerAmbientLightColor=function(t,e,n){if(!t.hasLayer(e)||!t.getLayer(e).isLightingLayer())return;const s=n.split(";");if(!(s.length<3))return t.getLayer(e).setClearColor(parseInt(s[0],10),parseInt(s[1],10),parseInt(s[2],10))}))(I=b.camera||={})})(x=L.evtTools||={})})(gdjs||={});
2
+ //# sourceMappingURL=cameratools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/events-tools/cameratools.ts"],
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export namespace evtTools {\n export namespace camera {\n export const setCameraX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n x: float,\n layer: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n instanceContainer.getLayer(layer).setCameraX(x, cameraId);\n };\n\n export const setCameraY = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n y: float,\n layer: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n instanceContainer.getLayer(layer).setCameraY(y, cameraId);\n };\n\n export const getCameraX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraX();\n };\n\n export const getCameraY = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraY();\n };\n\n export const getCameraWidth = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraWidth();\n };\n\n export const getCameraHeight = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraHeight();\n };\n\n export const getCameraBorderLeft = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return (\n getCameraX(instanceContainer, layer, cameraId) -\n getCameraWidth(instanceContainer, layer, cameraId) / 2\n );\n };\n\n export const getCameraBorderRight = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return (\n getCameraX(instanceContainer, layer, cameraId) +\n getCameraWidth(instanceContainer, layer, cameraId) / 2\n );\n };\n\n export const getCameraBorderTop = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return (\n getCameraY(instanceContainer, layer, cameraId) -\n getCameraHeight(instanceContainer, layer, cameraId) / 2\n );\n };\n\n export const getCameraBorderBottom = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return (\n getCameraY(instanceContainer, layer, cameraId) +\n getCameraHeight(instanceContainer, layer, cameraId) / 2\n );\n };\n\n export const showLayer = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer.getLayer(layer).show(true);\n };\n\n export const hideLayer = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer.getLayer(layer).show(false);\n };\n\n export const layerIsVisible = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string\n ): boolean {\n return (\n instanceContainer.hasLayer(layer) &&\n instanceContainer.getLayer(layer).isVisible()\n );\n };\n\n export const setCameraRotation = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n rotation: float,\n layer: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setCameraRotation(rotation, cameraId);\n };\n\n export const getCameraRotation = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraRotation(cameraId);\n };\n\n export const getCameraZoom = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n cameraId: integer\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getCameraZoom(cameraId);\n };\n\n export const setCameraZoom = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n newZoom: float,\n layer: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setCameraZoom(newZoom, cameraId);\n };\n\n export const centerCamera = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n object: gdjs.RuntimeObject | null,\n anticipateMove: boolean,\n layerName: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layerName) || object == null) {\n return;\n }\n let xOffset = 0;\n let yOffset = 0;\n if (anticipateMove && !object.hasNoForces()) {\n const objectAverageForce = object.getAverageForce();\n const elapsedTimeInSeconds =\n object.getElapsedTime(instanceContainer) / 1000;\n xOffset = objectAverageForce.getX() * elapsedTimeInSeconds;\n yOffset = objectAverageForce.getY() * elapsedTimeInSeconds;\n }\n const layer = instanceContainer.getLayer(layerName);\n layer.setCameraX(object.getCenterXInScene() + xOffset, cameraId);\n layer.setCameraY(object.getCenterYInScene() + yOffset, cameraId);\n };\n\n /**\n * @deprecated prefer using centerCamera and clampCamera.\n */\n export const centerCameraWithinLimits = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n object: gdjs.RuntimeObject | null,\n left: number,\n top: number,\n right: number,\n bottom: number,\n anticipateMove: boolean,\n layerName: string,\n cameraId: integer\n ) {\n centerCamera(\n instanceContainer,\n object,\n anticipateMove,\n layerName,\n cameraId\n );\n clampCamera(\n instanceContainer,\n left,\n top,\n right,\n bottom,\n layerName,\n cameraId\n );\n };\n\n export const clampCamera = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n left: float,\n top: float,\n right: float,\n bottom: float,\n layerName: string,\n cameraId: integer\n ) {\n if (!instanceContainer.hasLayer(layerName)) {\n return;\n }\n const layer = instanceContainer.getLayer(layerName);\n const cameraHalfWidth = layer.getCameraWidth(cameraId) / 2;\n const cameraHalfHeight = layer.getCameraHeight(cameraId) / 2;\n\n const centerLeftBound = left + cameraHalfWidth;\n const centerRightBound = right - cameraHalfWidth;\n const centerTopBound = top + cameraHalfHeight;\n const centerBottomBound = bottom - cameraHalfHeight;\n\n const cameraX =\n centerLeftBound < centerRightBound\n ? gdjs.evtTools.common.clamp(\n layer.getCameraX(cameraId),\n centerLeftBound,\n centerRightBound\n )\n : // Center on the bounds when they are too small to fit the viewport.\n (centerLeftBound + centerRightBound) / 2;\n const cameraY =\n centerTopBound < centerBottomBound\n ? gdjs.evtTools.common.clamp(\n layer.getCameraY(cameraId),\n centerTopBound,\n centerBottomBound\n )\n : // Center on the bounds when they are too small to fit the viewport.\n (centerTopBound + centerBottomBound) / 2;\n\n layer.setCameraX(cameraX, cameraId);\n layer.setCameraY(cameraY, cameraId);\n };\n\n /**\n * Update a layer effect parameter (with a number).\n * @param instanceContainer the container owning the layer\n * @param layer The name of the layer\n * @param effect The name of the effect\n * @param parameter The parameter to update\n * @param value The new value\n */\n export const setLayerEffectDoubleParameter = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n effect: string,\n parameter: string,\n value: float\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setEffectDoubleParameter(effect, parameter, value);\n };\n\n /**\n * Update a layer effect parameter (with a string).\n * @param instanceContainer the container owning the layer\n * @param layer The name of the layer\n * @param effect The name of the effect\n * @param parameter The parameter to update\n * @param value The new value\n */\n export const setLayerEffectStringParameter = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n effect: string,\n parameter: string,\n value: string\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setEffectStringParameter(effect, parameter, value);\n };\n\n /**\n * Enable or disable a layer effect parameter (boolean).\n * @param instanceContainer the container owning the layer\n * @param layer The name of the layer\n * @param effect The name of the effect\n * @param parameter The parameter to update\n * @param value The new value\n */\n export const setLayerEffectBooleanParameter = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n effect: string,\n parameter: string,\n value: boolean\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setEffectBooleanParameter(effect, parameter, value);\n };\n\n /**\n * Enable, or disable, an effect of a layer.\n * @param instanceContainer the container owning the layer\n * @param layer The name of the layer\n * @param effect The name of the effect\n * @param enabled true to enable, false to disable.\n */\n export const enableLayerEffect = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n effect: string,\n enabled: boolean\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n instanceContainer.getLayer(layer).enableEffect(effect, enabled);\n };\n\n /**\n * Check if an effect is enabled.\n * @param instanceContainer the container owning the layer\n * @param layer The name of the layer\n * @param effect The name of the effect\n * @return true if the effect is enabled, false otherwise.\n */\n export const layerEffectEnabled = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n effect: string\n ): boolean {\n if (!instanceContainer.hasLayer(layer)) {\n return true;\n }\n return instanceContainer.getLayer(layer).isEffectEnabled(effect);\n };\n\n export const setLayerTimeScale = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n timeScale: float\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer.getLayer(layer).setTimeScale(timeScale);\n };\n\n export const getLayerTimeScale = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 1;\n }\n return instanceContainer.getLayer(layer).getTimeScale();\n };\n\n export const setLayerDefaultZOrder = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n defaultZOrder: integer\n ) {\n if (!instanceContainer.hasLayer(layer)) {\n return;\n }\n return instanceContainer\n .getLayer(layer)\n .setDefaultZOrder(defaultZOrder);\n };\n\n export const getLayerDefaultZOrder = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string\n ): number {\n if (!instanceContainer.hasLayer(layer)) {\n return 0;\n }\n return instanceContainer.getLayer(layer).getDefaultZOrder();\n };\n\n /**\n * @param instanceContainer the container owning the layer\n * @param layerName The lighting layer with the ambient color.\n * @param rgbColor The color, in RGB format (\"128;200;255\").\n */\n export const setLayerAmbientLightColor = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layerName: string,\n rgbColor: string\n ) {\n if (\n !instanceContainer.hasLayer(layerName) ||\n !instanceContainer.getLayer(layerName).isLightingLayer()\n ) {\n return;\n }\n const colors = rgbColor.split(';');\n if (colors.length < 3) {\n return;\n }\n return instanceContainer\n .getLayer(layerName)\n .setClearColor(\n parseInt(colors[0], 10),\n parseInt(colors[1], 10),\n parseInt(colors[2], 10)\n );\n };\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["gdjs", "evtTools", "camera", "instanceContainer", "x", "layer", "cameraId", "y", "rotation", "newZoom", "object", "anticipateMove", "layerName", "xOffset", "yOffset", "objectAverageForce", "elapsedTimeInSeconds", "left", "top", "right", "bottom", "cameraHalfWidth", "cameraHalfHeight", "centerLeftBound", "centerRightBound", "centerTopBound", "centerBottomBound", "cameraX", "cameraY", "effect", "parameter", "value", "enabled", "timeScale", "defaultZOrder", "rgbColor", "colors"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(o=>{let u;(p=>{let s;(n=>{n.toNumber=function(t){return parseFloat(t)},n.toString=function(t){return""+t},n.logicalNegation=function(t){return!t},n.normalize=function(t,e,r){return e===r?r:(t-e)/(r-e)},n.clamp=function(t,e,r){return Math.min(Math.max(t,e),r)},n.acosh=function(t){return Math.log(t+Math.sqrt(t*t-1))},n.asinh=function(t){return Math.log(t+Math.sqrt(t*t+1))},n.atanh=function(t){return .5*Math.log((1+t)/(1-t))},n.cosh=function(t){return(Math.exp(t)+Math.exp(-t))/2},n.sinh=function(t){return(Math.exp(t)-Math.exp(-t))/2},n.tanh=function(t){return(Math.exp(t)-Math.exp(-t))/(Math.exp(t)+Math.exp(-t))},n.cot=function(t){return 1/Math.tan(t)},n.csc=function(t){return 1/Math.sin(t)},n.sec=function(t){return 1/Math.cos(t)},n.log10=function(t){return Math.log(t)/Math.LN10},n.log2=function(t){return Math.log(t)/Math.LN2},n.sign=function(t){return t===0?0:t>0?1:-1},n.cbrt=function(t){return Math.pow(t,.3333333333333333)},n.nthroot=function(t,e){return Math.pow(t,1/e)},n.mod=function(t,e){return t-e*Math.floor(t/e)},n.angleDifference=function(t,e){return o.evtTools.common.mod(o.evtTools.common.mod(t-e,360)+180,360)-180},n.angleBetweenPositions=function(t,e,r,i){return Math.atan2(i-e,r-t)*180/Math.PI},n.distanceBetweenPositions=function(t,e,r,i){return Math.sqrt((t-r)*(t-r)+(e-i)*(e-i))},n.lerp=function(t,e,r){return t+(e-t)*r},n.trunc=function(t){return t|0},n.getXFromAngleAndDistance=function(t,e){return e*Math.cos(o.toRad(t))},n.getYFromAngleAndDistance=function(t,e){return e*Math.sin(o.toRad(t))},n.roundTo=function(t,e){return!e||!Number.isInteger(e)?Math.round(t):Math.round(t*Math.pow(10,e))/Math.pow(10,e)},n.floorTo=function(t,e){return!e||!Number.isInteger(e)?Math.floor(t):Math.floor(t*Math.pow(10,e))/Math.pow(10,e)},n.ceilTo=function(t,e){return!e||!Number.isInteger(e)?Math.ceil(t):Math.ceil(t*Math.pow(10,e))/Math.pow(10,e)},n.pi=function(){return Math.PI},n.lerpAngle=function(t,e,r){return t+o.evtTools.common.angleDifference(e,t)*r},n.resolveAsyncEventsFunction=t=>{t&&t.task&&t.task.resolve&&t.task.resolve()};const c=()=>{if(typeof cc<"u"&&cc.sys)return cc.sys.isMobile;if(typeof Cocoon<"u"&&Cocoon.App)return!0;if(typeof window<"u"&&window.cordova)return!0;if(typeof window<"u"){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))||/iPad|iPhone|iPod/.test(navigator.platform))return!0;if(/MacIntel/.test(navigator.platform))return!!navigator.maxTouchPoints&&navigator.maxTouchPoints>2}return!1};let a=null;n.isMobile=()=>a!==null?a:a=c()})(s=p.common||={})})(u=o.evtTools||={})})(gdjs||={});
2
+ //# sourceMappingURL=commontools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/events-tools/commontools.ts"],
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export namespace evtTools {\n export namespace common {\n /**\n * Convert a string to a number.\n * @param str String to convert.\n * @returns The parsed number, or NaN if invalid.\n */\n export const toNumber = function (str: string): number {\n return parseFloat(str);\n };\n\n /**\n * Convert a number to a string.\n * @param num Value to convert to a string.\n * @returns The value as a string.\n */\n export const toString = function (num: number): string {\n //Using String literal is fastest than using toString according to\n //http://jsperf.com/number-to-string/2 and http://jsben.ch/#/ghQYR\n return '' + num;\n };\n\n /**\n * Negate the boolean.\n * @param bool The boolean to negate.\n * @returns The negated value.\n */\n export const logicalNegation = function (bool: boolean): boolean {\n return !bool;\n };\n\n /**\n * Normalize a value between `min` and `max` to a value between 0 and 1.\n * @param {number} val The value to normalize\n * @param {number} min The minimum\n * @param {number} max The maximum\n * @returns The normalized value between 0 and 1\n */\n export const normalize = function (\n val: float,\n min: float,\n max: float\n ): number {\n return min === max ? max : (val - min) / (max - min);\n };\n\n /**\n * Limit a value to a range.\n * @param x Value.\n * @param min The minimum value.\n * @param max The maximum value.\n * @returns The new value.\n */\n export const clamp = function (x: float, min: float, max: float): float {\n return Math.min(Math.max(x, min), max);\n };\n\n /**\n * Hyperbolic arc-cosine\n * @param arg Value.\n * @returns The hyperbolic arc-cosine for the value.\n */\n export const acosh = function (arg: integer): number {\n // http://kevin.vanzonneveld.net\n // + original by: Onno Marsman\n return Math.log(arg + Math.sqrt(arg * arg - 1));\n };\n\n /**\n * Hyperbolic arcsine\n * @param arg Value.\n * @returns The hyperbolic arcsine for the value.\n */\n export const asinh = function (arg: integer): number {\n // http://kevin.vanzonneveld.net\n // + original by: Onno Marsman\n return Math.log(arg + Math.sqrt(arg * arg + 1));\n };\n\n /**\n * Hyperbolic arctangent\n * @param arg Value.\n * @returns The hyperbolic arctangent for the value.\n */\n export const atanh = function (arg: integer): number {\n // http://kevin.vanzonneveld.net\n // + original by: Onno Marsman\n return 0.5 * Math.log((1 + arg) / (1 - arg));\n };\n\n /**\n * Hyperbolic cosine\n * @param arg Value.\n * @returns The hyperbolic cosine for the value.\n */\n export const cosh = function (arg: integer): number {\n return (Math.exp(arg) + Math.exp(-arg)) / 2;\n };\n\n /**\n * Hyperbolic sine\n * @param arg Value.\n * @returns The hyperbolic sine for the value.\n */\n export const sinh = function (arg: integer): number {\n return (Math.exp(arg) - Math.exp(-arg)) / 2;\n };\n\n /**\n * Hyperbolic tangent\n * @param arg Value.\n * @returns The hyperbolic tangent for the value.\n */\n export const tanh = function (arg: integer): number {\n return (\n (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg))\n );\n };\n\n /**\n * Cotangent\n * @param arg Value.\n * @returns The cotangent for the value.\n */\n export const cot = function (arg: integer): number {\n return 1 / Math.tan(arg);\n };\n\n /**\n * Cosecant\n * @param arg Value.\n * @returns The cosecant for the value.\n */\n export const csc = function (arg: integer): number {\n return 1 / Math.sin(arg);\n };\n\n /**\n * Secant\n * @param arg Value.\n * @returns The secant for the value.\n */\n export const sec = function (arg: integer): number {\n return 1 / Math.cos(arg);\n };\n\n /**\n * Base-10 logarithm\n * @param arg Value.\n * @returns The base-10 logarithm for the value.\n */\n export const log10 = function (arg: integer): number {\n return Math.log(arg) / Math.LN10;\n };\n\n /**\n * Base-2 logarithm\n * @param arg Value.\n * @returns The base-2 logarithm for the value.\n */\n export const log2 = function (arg: integer): number {\n return Math.log(arg) / Math.LN2;\n };\n\n /**\n * Returns the sign of the number. This checks if the value is positive, negative or zero.\n * @param arg Value.\n * @returns Return the sign for the value (1, -1 or 0).\n */\n export const sign = function (arg: integer): number {\n if (arg === 0) {\n return 0;\n }\n return arg > 0 ? +1 : -1;\n };\n\n /**\n * Cube root\n * @param x Value.\n * @returns Return the cube root for the value.\n */\n export const cbrt = function (x: float): number {\n return Math.pow(x, 1 / 3);\n };\n\n /**\n * N-th root\n * @param x Base value.\n * @param n Exponent value.\n * @returns Return the n-th root for the value.\n */\n export const nthroot = function (x: float, n: number): number {\n return Math.pow(x, 1 / n);\n };\n\n /**\n * Modulo operation (the remainder after dividing one number by another)\n * @param x Dividend value.\n * @param y Divisor value.\n * @returns Return the remainder for the values.\n */\n export const mod = function (x: float, y: float): number {\n return x - y * Math.floor(x / y);\n };\n\n /**\n * Returns the difference between two angles, in degrees.\n * @param angle1 First angle, in degrees.\n * @param angle2 Second angle, in degrees.\n * @returns Return the difference of the angles, in degrees.\n */\n export const angleDifference = function (\n angle1: number,\n angle2: number\n ): number {\n return (\n gdjs.evtTools.common.mod(\n gdjs.evtTools.common.mod(angle1 - angle2, 360.0) + 180.0,\n 360.0\n ) - 180.0\n );\n };\n\n /**\n * Returns the angle, in degrees, between two positions.\n * @param x1 First point X position.\n * @param y1 First point Y position.\n * @param x2 Second point X position.\n * @param y2 Second point Y position.\n * @returns The angle between the positions, in degrees.\n */\n export const angleBetweenPositions = function (\n x1: number,\n y1: number,\n x2: number,\n y2: number\n ): number {\n return (Math.atan2(y2 - y1, x2 - x1) * 180) / Math.PI;\n };\n\n /**\n * Returns the distance, in pixels, between two positions.\n * @param x1 First point X position.\n * @param y1 First point Y position.\n * @param x2 Second point X position.\n * @param y2 Second point Y position.\n * @returns The distance between the positions, in pixels.\n */\n export const distanceBetweenPositions = function (\n x1: number,\n y1: number,\n x2: number,\n y2: number\n ): number {\n return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n };\n\n /**\n * Runs a linear interpolation between a and b.\n * @param a Start value.\n * @param b End value.\n * @param x The interpolation value between 0 and 1.\n * @returns The interpolated value, now between a and b.\n */\n export const lerp = function (a: number, b: integer, x: float): number {\n return a + (b - a) * x;\n };\n\n /**\n * Truncate a number.\n * @param x Value.\n * @returns Return the value with all decimal places dropped.\n */\n export const trunc = function (x: float): number {\n return x | 0;\n };\n\n /**\n * Compute the X position when given an angle and distance relative to the origin (0;0).\n * This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates.\n * @param angle The angle, in degrees.\n * @param distance The distance from the object, in pixels.\n */\n export const getXFromAngleAndDistance = function (\n angle: float,\n distance: float\n ): number {\n return distance * Math.cos(gdjs.toRad(angle));\n };\n\n /**\n * Compute the Y position when given an angle and distance relative to the origin (0;0).\n * This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates.\n * @param angle The angle, in degrees.\n * @param distance The distance from the object, in pixels.\n */\n export const getYFromAngleAndDistance = function (\n angle: float,\n distance: float\n ): number {\n return distance * Math.sin(gdjs.toRad(angle));\n };\n\n /**\n * Rounds a number to the Nth decimal place\n * @param {float} value\n * @param {number} decimalPlace\n * @returns the rounded value\n */\n export const roundTo = function (\n value: float,\n decimalPlace: number\n ): number {\n if (!decimalPlace || !Number.isInteger(decimalPlace))\n return Math.round(value);\n return (\n Math.round(value * Math.pow(10, decimalPlace)) /\n Math.pow(10, decimalPlace)\n );\n };\n\n /**\n * Rounds down a number to the Nth decimal place\n * @param {float} value\n * @param {number} decimalPlace\n * @returns the rounded value\n */\n export const floorTo = function (\n value: float,\n decimalPlace: number\n ): number {\n if (!decimalPlace || !Number.isInteger(decimalPlace))\n return Math.floor(value);\n return (\n Math.floor(value * Math.pow(10, decimalPlace)) /\n Math.pow(10, decimalPlace)\n );\n };\n\n /**\n * Rounds up a number to the Nth decimal place\n * @param {float} value\n * @param {number} decimalPlace\n * @returns the rounded value\n */\n export const ceilTo = function (\n value: float,\n decimalPlace: number\n ): number {\n if (!decimalPlace || !Number.isInteger(decimalPlace))\n return Math.ceil(value);\n return (\n Math.ceil(value * Math.pow(10, decimalPlace)) /\n Math.pow(10, decimalPlace)\n );\n };\n\n /**\n * Pi 3.1415...\n * @returns the Pi number\n */\n export const pi = function (): number {\n return Math.PI;\n };\n\n /**\n * Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle.\n * @param angle1 Starting angle, in degrees.\n * @param angle2 Destination angle, in degrees.\n * @param x The interpolation value between 0 and 1.\n * @returns Return the interpolated angle, in degrees.\n */\n export const lerpAngle = function (\n angle1: float,\n angle2: float,\n x: float\n ): float {\n return (\n angle1 + gdjs.evtTools.common.angleDifference(angle2, angle1) * x\n );\n };\n\n export const resolveAsyncEventsFunction = (\n eventsFunctionContext: EventsFunctionContext\n ) => {\n if (\n !!eventsFunctionContext &&\n !!eventsFunctionContext.task &&\n !!eventsFunctionContext.task.resolve\n )\n eventsFunctionContext.task.resolve();\n };\n\n const checkIsMobile = (): boolean => {\n if (typeof cc !== 'undefined' && cc.sys) {\n return cc.sys.isMobile;\n }\n // @ts-expect-error ts-migrate(2304) FIXME: Cannot find name 'Cocoon'.\n else if (typeof Cocoon !== 'undefined' && Cocoon.App) {\n return true;\n } else if (typeof window !== 'undefined' && (window as any).cordova) {\n return true;\n } else if (typeof window !== 'undefined') {\n // Try to detect mobile device browsers.\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\n navigator.userAgent\n ) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n navigator.userAgent.substr(0, 4)\n )\n ) {\n return true;\n }\n\n // Try to detect iOS\n if (/iPad|iPhone|iPod/.test(navigator.platform)) {\n return true;\n } else {\n if (/MacIntel/.test(navigator.platform)) {\n // Work around for recent iPads that are \"desktop-class browsing\".\n // We can still detect them using their touchscreen, but this is a hack.\n // If mac laptops start to support touchscreens, this won't work anymore. Hence it's better\n // to test for the presence of a touchscreen if needed rather than checking if the device\n // is \"mobile\".\n return !!navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n }\n }\n }\n\n return false;\n };\n\n let cachedIsMobile: boolean | null = null;\n /**\n * Check if the game runs on a mobile device (iPhone, iPad, Android).\n * Note that the distinction between what is a mobile device and what is not\n * is becoming blurry. If you use this for mobile controls,\n * prefer to check if the device has touchscreen support.\n */\n export const isMobile = (): boolean => {\n if (cachedIsMobile !== null) {\n return cachedIsMobile;\n }\n return (cachedIsMobile = checkIsMobile());\n };\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["gdjs", "evtTools", "common", "str", "num", "bool", "val", "min", "max", "x", "arg", "n", "y", "angle1", "angle2", "x1", "y1", "x2", "y2", "a", "b", "angle", "distance", "value", "decimalPlace", "eventsFunctionContext", "checkIsMobile", "cachedIsMobile"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(o=>{let c;(i=>{let d;(n=>{n.lastTouchId=0,n.lastEndedTouchId=0,n.keysNameToCode={a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,Num0:48,Num1:49,Num2:50,Num3:51,Num4:52,Num5:53,Num6:54,Num7:55,Num8:56,Num9:57,Numpad0:96,Numpad1:97,Numpad2:98,Numpad3:99,Numpad4:100,Numpad5:101,Numpad6:102,Numpad7:103,Numpad8:104,Numpad9:105,LShift:1016,RShift:2016,LControl:1017,RControl:2017,LAlt:1018,RAlt:2018,LSystem:1091,RSystem:2091,SemiColon:186,Comma:188,Period:190,Quote:222,Slash:191,BackSlash:220,Equal:187,Dash:189,Menu:93,LBracket:219,RBracket:221,Tilde:192,Space:32,Back:8,Tab:9,Delete:46,Insert:45,Escape:27,PageUp:33,PageDown:34,End:35,Home:36,Return:13,NumpadPageUp:3033,NumpadPageDown:3034,NumpadEnd:3035,NumpadHome:3036,NumpadReturn:3013,Add:107,Subtract:109,Multiply:106,Divide:111,NumpadAdd:3107,NumpadSubtract:3109,NumpadMultiply:3106,NumpadDivide:3111,Left:37,Up:38,Right:39,Down:40,NumpadLeft:3037,NumpadUp:3038,NumpadRight:3039,NumpadDown:3040,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,Pause:19};const u={};for(const e in n.keysNameToCode)n.keysNameToCode.hasOwnProperty(e)&&(u[n.keysNameToCode[e]]=e);n.mouseButtonsNameToCode={Left:o.InputManager.MOUSE_LEFT_BUTTON,Right:o.InputManager.MOUSE_RIGHT_BUTTON,Middle:o.InputManager.MOUSE_MIDDLE_BUTTON,Back:o.InputManager.MOUSE_BACK_BUTTON,Forward:o.InputManager.MOUSE_FORWARD_BUTTON},n.isKeyPressed=function(e,t){return o.evtTools.input.keysNameToCode.hasOwnProperty(t)?e.getGame().getInputManager().isKeyPressed(o.evtTools.input.keysNameToCode[t]):!1},n.wasKeyReleased=function(e,t){return o.evtTools.input.keysNameToCode.hasOwnProperty(t)?e.getGame().getInputManager().wasKeyReleased(o.evtTools.input.keysNameToCode[t]):!1},n.lastPressedKey=function(e){const t=e.getGame().getInputManager().getLastPressedKey();return u.hasOwnProperty(t)?u[t]:""},n.anyKeyPressed=function(e){return e.getGame().getInputManager().anyKeyPressed()},n.anyKeyReleased=function(e){return e.getGame().getInputManager().anyKeyReleased()},n.isMouseButtonPressed=function(e,t){return o.evtTools.input.mouseButtonsNameToCode.hasOwnProperty(t)?e.getGame().getInputManager().isMouseButtonPressed(o.evtTools.input.mouseButtonsNameToCode[t]):!1},n.isMouseButtonReleased=function(e,t){return o.evtTools.input.mouseButtonsNameToCode.hasOwnProperty(t)?e.getGame().getInputManager().isMouseButtonReleased(o.evtTools.input.mouseButtonsNameToCode[t]):!1},n.hideCursor=function(e){e.getScene().getRenderer().hideCursor()},n.showCursor=function(e){e.getScene().getRenderer().showCursor()},n.getMouseWheelDelta=function(e){return e.getGame().getInputManager().getMouseWheelDelta()},n.isScrollingUp=function(e){return e.getGame().getInputManager().isScrollingUp()},n.isScrollingDown=function(e){return e.getGame().getInputManager().isScrollingDown()},n.getMouseX=function(e,t,r){return(0,n.getCursorX)(e,t,r)},n.getMouseY=function(e,t,r){return(0,n.getCursorY)(e,t,r)},n.getCursorX=function(e,t,r){const a=o.staticArray(o.evtTools.input.getCursorX);return e.getLayer(t).convertCoords(e.getGame().getInputManager().getCursorX(),e.getGame().getInputManager().getCursorY(),0,a)[0]},n.getCursorY=function(e,t,r){const a=o.staticArray(o.evtTools.input.getCursorY);return e.getLayer(t).convertCoords(e.getGame().getInputManager().getCursorX(),e.getGame().getInputManager().getCursorY(),0,a)[1]},n.getMouseOnlyCursorX=function(e,t,r){const a=o.staticArray(o.evtTools.input.getMouseOnlyCursorX);return e.getLayer(t).convertCoords(e.getGame().getInputManager().getMouseX(),e.getGame().getInputManager().getMouseY(),0,a)[0]},n.getMouseOnlyCursorY=function(e,t,r){const a=o.staticArray(o.evtTools.input.getMouseOnlyCursorY);return e.getLayer(t).convertCoords(e.getGame().getInputManager().getMouseX(),e.getGame().getInputManager().getMouseY(),0,a)[1]},n.isMouseInsideCanvas=function(e){return e.getGame().getInputManager().isMouseInsideCanvas()},n._cursorIsOnObject=function(e,t){return e.cursorOnObject(t)},n.cursorOnObject=function(e,t,r,a){return o.evtTools.object.pickObjectsIf(o.evtTools.input._cursorIsOnObject,e,a,t)},n.getTouchX=function(e,t,r,a){const g=o.staticArray(o.evtTools.input.getTouchX);return e.getLayer(r).convertCoords(e.getGame().getInputManager().getTouchX(t),e.getGame().getInputManager().getTouchY(t),0,g)[0]},n.getTouchY=(e,t,r,a)=>{const g=o.staticArray(o.evtTools.input.getTouchY);return e.getLayer(r).convertCoords(e.getGame().getInputManager().getTouchX(t),e.getGame().getInputManager().getTouchY(t),0,g)[1]},n.hasAnyTouchStarted=e=>{const t=e.getGame().getInputManager().getStartedTouchIdentifiers();return t.length>1||t.length>0&&t[0]!==o.InputManager.MOUSE_TOUCH_ID},n.getStartedTouchCount=e=>{const t=e.getGame().getInputManager().getStartedTouchIdentifiers();return t.length+(t.includes(o.InputManager.MOUSE_TOUCH_ID)?-1:0)},n.getStartedTouchIdentifier=(e,t)=>{const r=e.getGame().getInputManager().getStartedTouchIdentifiers(),a=r.indexOf(o.InputManager.MOUSE_TOUCH_ID);return a<0?r[t]:r[t<a?t:t+1]},n.hasAnyTouchOrMouseStarted=e=>e.getGame().getInputManager().getStartedTouchIdentifiers().length>0,n.getStartedTouchOrMouseCount=e=>e.getGame().getInputManager().getStartedTouchIdentifiers().length,n.getStartedTouchOrMouseIdentifier=(e,t)=>e.getGame().getInputManager().getStartedTouchIdentifiers()[t],n.hasTouchEnded=(e,t)=>e.getGame().getInputManager().hasTouchEnded(t),n.getLastTouchId=function(){return o.evtTools.input.lastTouchId||0},n.getLastEndedTouchId=function(){return o.evtTools.input.lastEndedTouchId||0},n.popStartedTouch=function(e){const t=e.getGame().getInputManager().popStartedTouch();return t!==void 0?(o.evtTools.input.lastTouchId=t,!0):!1},n.popEndedTouch=function(e){const t=e.getGame().getInputManager().popEndedTouch();return t!==void 0?(o.evtTools.input.lastEndedTouchId=t,!0):!1},n.touchSimulateMouse=function(e,t){e.getGame().getInputManager().touchSimulateMouse(t)}})(d=i.input||={})})(c=o.evtTools||={})})(gdjs||={});
2
+ //# sourceMappingURL=inputtools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/events-tools/inputtools.ts"],
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export namespace evtTools {\n export namespace input {\n /**\n * @deprecated\n */\n export let lastTouchId = 0;\n /**\n * @deprecated\n */\n export let lastEndedTouchId = 0;\n\n /**\n * Hashmap associated each name of a key to its location-aware keyCode.\n * @memberof gdjs.evtTools\n */\n export const keysNameToCode = {\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n Num0: 48,\n Num1: 49,\n Num2: 50,\n Num3: 51,\n Num4: 52,\n Num5: 53,\n Num6: 54,\n Num7: 55,\n Num8: 56,\n Num9: 57,\n Numpad0: 96,\n Numpad1: 97,\n Numpad2: 98,\n Numpad3: 99,\n Numpad4: 100,\n Numpad5: 101,\n Numpad6: 102,\n Numpad7: 103,\n Numpad8: 104,\n Numpad9: 105,\n LShift: 1016,\n RShift: 2016,\n LControl: 1017,\n RControl: 2017,\n LAlt: 1018,\n RAlt: 2018,\n LSystem: 1091,\n RSystem: 2091,\n SemiColon: 186,\n Comma: 188,\n Period: 190,\n Quote: 222,\n Slash: 191,\n BackSlash: 220,\n Equal: 187,\n Dash: 189,\n Menu: 93,\n LBracket: 219,\n RBracket: 221,\n Tilde: 192,\n Space: 32,\n Back: 8,\n Tab: 9,\n Delete: 46,\n Insert: 45,\n Escape: 27,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n Return: 13,\n NumpadPageUp: 3033,\n NumpadPageDown: 3034,\n NumpadEnd: 3035,\n NumpadHome: 3036,\n NumpadReturn: 3013,\n Add: 107,\n Subtract: 109,\n Multiply: 106,\n Divide: 111,\n NumpadAdd: 3107,\n NumpadSubtract: 3109,\n NumpadMultiply: 3106,\n NumpadDivide: 3111,\n Left: 37,\n Up: 38,\n Right: 39,\n Down: 40,\n NumpadLeft: 3037,\n NumpadUp: 3038,\n NumpadRight: 3039,\n NumpadDown: 3040,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n Pause: 19,\n };\n\n const keysCodeToName = {};\n for (const p in keysNameToCode) {\n if (keysNameToCode.hasOwnProperty(p)) {\n keysCodeToName[keysNameToCode[p]] = p;\n }\n }\n\n /**\n * A hashmap associates each name of a mouse button with its respective code.\n * @memberof gdjs.evtTools\n */\n export const mouseButtonsNameToCode = {\n Left: gdjs.InputManager.MOUSE_LEFT_BUTTON,\n Right: gdjs.InputManager.MOUSE_RIGHT_BUTTON,\n Middle: gdjs.InputManager.MOUSE_MIDDLE_BUTTON,\n Back: gdjs.InputManager.MOUSE_BACK_BUTTON,\n Forward: gdjs.InputManager.MOUSE_FORWARD_BUTTON,\n };\n\n /**\n * Return true if the specified key is pressed\n *\n */\n export const isKeyPressed = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n key: string\n ) {\n if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .isKeyPressed(gdjs.evtTools.input.keysNameToCode[key]);\n }\n return false;\n };\n\n /**\n * Return true if the specified key was just released\n *\n */\n export const wasKeyReleased = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n key: string\n ) {\n if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .wasKeyReleased(gdjs.evtTools.input.keysNameToCode[key]);\n }\n return false;\n };\n\n /**\n * Return the name of the last key pressed in the game\n */\n export const lastPressedKey = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n const keyCode = instanceContainer\n .getGame()\n .getInputManager()\n .getLastPressedKey();\n if (keysCodeToName.hasOwnProperty(keyCode)) {\n return keysCodeToName[keyCode];\n }\n return '';\n };\n\n export const anyKeyPressed = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer.getGame().getInputManager().anyKeyPressed();\n };\n\n export const anyKeyReleased = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer.getGame().getInputManager().anyKeyReleased();\n };\n\n export const isMouseButtonPressed = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n button: string\n ) {\n if (gdjs.evtTools.input.mouseButtonsNameToCode.hasOwnProperty(button)) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .isMouseButtonPressed(\n gdjs.evtTools.input.mouseButtonsNameToCode[button]\n );\n }\n return false;\n };\n\n export const isMouseButtonReleased = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n button: string\n ) {\n if (gdjs.evtTools.input.mouseButtonsNameToCode.hasOwnProperty(button)) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .isMouseButtonReleased(\n gdjs.evtTools.input.mouseButtonsNameToCode[button]\n );\n }\n return false;\n };\n\n export const hideCursor = function (\n instanceContainer: gdjs.RuntimeScene\n ) {\n instanceContainer.getScene().getRenderer().hideCursor();\n };\n\n export const showCursor = function (\n instanceContainer: gdjs.RuntimeScene\n ) {\n instanceContainer.getScene().getRenderer().showCursor();\n };\n\n export const getMouseWheelDelta = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .getMouseWheelDelta();\n };\n\n export const isScrollingUp = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer.getGame().getInputManager().isScrollingUp();\n };\n\n export const isScrollingDown = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer.getGame().getInputManager().isScrollingDown();\n };\n\n /**\n * @deprecated Use getCursorX instead.\n */\n export const getMouseX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n return getCursorX(instanceContainer, layer, camera);\n };\n\n /**\n * @deprecated Use getCursorY instead.\n */\n export const getMouseY = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n return getCursorY(instanceContainer, layer, camera);\n };\n\n export const getCursorX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getCursorX\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getCursorX(),\n instanceContainer.getGame().getInputManager().getCursorY(),\n 0,\n workingPoint\n )[0];\n };\n\n export const getCursorY = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getCursorY\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getCursorX(),\n instanceContainer.getGame().getInputManager().getCursorY(),\n 0,\n workingPoint\n )[1];\n };\n\n export const getMouseOnlyCursorX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getMouseOnlyCursorX\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getMouseX(),\n instanceContainer.getGame().getInputManager().getMouseY(),\n 0,\n workingPoint\n )[0];\n };\n\n export const getMouseOnlyCursorY = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: string,\n camera: integer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getMouseOnlyCursorY\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getMouseX(),\n instanceContainer.getGame().getInputManager().getMouseY(),\n 0,\n workingPoint\n )[1];\n };\n\n export const isMouseInsideCanvas = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return instanceContainer\n .getGame()\n .getInputManager()\n .isMouseInsideCanvas();\n };\n\n export const _cursorIsOnObject = function (\n obj: gdjs.RuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n return obj.cursorOnObject(instanceContainer);\n };\n\n export const cursorOnObject = function (\n objectsLists: Hashtable<gdjs.RuntimeObject[]>,\n instanceContainer: gdjs.RuntimeInstanceContainer,\n accurate: boolean,\n inverted: boolean\n ) {\n return gdjs.evtTools.object.pickObjectsIf(\n gdjs.evtTools.input._cursorIsOnObject,\n objectsLists,\n inverted,\n instanceContainer\n );\n };\n\n export const getTouchX = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n identifier: integer,\n layer: string,\n camera: integer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getTouchX\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getTouchX(identifier),\n instanceContainer.getGame().getInputManager().getTouchY(identifier),\n 0,\n workingPoint\n )[0];\n };\n\n export const getTouchY = (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n identifier: integer,\n layer: string,\n camera: integer\n ) => {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.evtTools.input.getTouchY\n ) as FloatPoint;\n return instanceContainer\n .getLayer(layer)\n .convertCoords(\n instanceContainer.getGame().getInputManager().getTouchX(identifier),\n instanceContainer.getGame().getInputManager().getTouchY(identifier),\n 0,\n workingPoint\n )[1];\n };\n\n /**\n * @deprecated\n */\n export const hasAnyTouchStarted = (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): boolean => {\n const startedTouchIdentifiers = instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers();\n return (\n startedTouchIdentifiers.length > 1 ||\n (startedTouchIdentifiers.length > 0 &&\n startedTouchIdentifiers[0] !== gdjs.InputManager.MOUSE_TOUCH_ID)\n );\n };\n\n /**\n * @deprecated\n */\n export const getStartedTouchCount = (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): integer => {\n const startedTouchIdentifiers = instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers();\n return (\n startedTouchIdentifiers.length +\n (startedTouchIdentifiers.includes(gdjs.InputManager.MOUSE_TOUCH_ID)\n ? -1\n : 0)\n );\n };\n\n /**\n * @deprecated\n */\n export const getStartedTouchIdentifier = (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n index: integer\n ): integer => {\n const startedTouchIdentifiers = instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers();\n const mouseIndex = startedTouchIdentifiers.indexOf(\n gdjs.InputManager.MOUSE_TOUCH_ID\n );\n return mouseIndex < 0\n ? startedTouchIdentifiers[index]\n : startedTouchIdentifiers[index < mouseIndex ? index : index + 1];\n };\n\n export const hasAnyTouchOrMouseStarted = (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): boolean => {\n return (\n instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers().length > 0\n );\n };\n\n export const getStartedTouchOrMouseCount = (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): integer => {\n return instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers().length;\n };\n\n export const getStartedTouchOrMouseIdentifier = (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n index: integer\n ): integer => {\n return instanceContainer\n .getGame()\n .getInputManager()\n .getStartedTouchIdentifiers()[index];\n };\n\n export const hasTouchEnded = (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n identifier: integer\n ): boolean => {\n return instanceContainer\n .getGame()\n .getInputManager()\n .hasTouchEnded(identifier);\n };\n\n /**\n * @deprecated\n */\n export const getLastTouchId = function () {\n return gdjs.evtTools.input.lastTouchId || 0;\n };\n\n /**\n * @deprecated\n */\n export const getLastEndedTouchId = function () {\n return gdjs.evtTools.input.lastEndedTouchId || 0;\n };\n\n /**\n * @deprecated\n */\n export const popStartedTouch = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n const startedTouchId = instanceContainer\n .getGame()\n .getInputManager()\n .popStartedTouch();\n if (startedTouchId !== undefined) {\n gdjs.evtTools.input.lastTouchId = startedTouchId;\n return true;\n }\n return false;\n };\n\n /**\n * @deprecated\n */\n export const popEndedTouch = function (\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n const endedTouchId = instanceContainer\n .getGame()\n .getInputManager()\n .popEndedTouch();\n if (endedTouchId !== undefined) {\n gdjs.evtTools.input.lastEndedTouchId = endedTouchId;\n return true;\n }\n return false;\n };\n\n export const touchSimulateMouse = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n enable: boolean\n ) {\n instanceContainer\n .getGame()\n .getInputManager()\n .touchSimulateMouse(enable);\n };\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["gdjs", "evtTools", "input", "keysCodeToName", "p", "instanceContainer", "key", "keyCode", "button", "layer", "camera", "workingPoint", "obj", "objectsLists", "accurate", "inverted", "identifier", "startedTouchIdentifiers", "index", "mouseIndex", "startedTouchId", "endedTouchId", "enable"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(g=>{let l;(p=>{let d;(r=>(r.sendAsyncRequest=function(n,s,i,o,c,a){const e=t=>{t instanceof ProgressEvent&&t.currentTarget&&t.currentTarget instanceof XMLHttpRequest&&t.currentTarget.status===0?a.setString("REQUEST_NOT_SENT"):a.setString(""+t)};try{const t=new XMLHttpRequest;t.onerror=e,t.ontimeout=e,t.onabort=e,t.onreadystatechange=()=>{t.readyState===4&&(t.status>=400&&e(""+t.status),c.setString(t.responseText))},t.open(i,n),t.setRequestHeader("Content-Type",o===""?"application/x-www-form-urlencoded":o),t.send(s)}catch(t){e(t)}},r.sendAwaitableAsyncRequest=(n,s,i,o,c,a)=>new g.PromiseTask(fetch(n,{body:i!=="GET"?s:void 0,method:i,headers:{"Content-Type":o||"application/x-www-form-urlencoded"}}).then(async e=>{const t=await e.text();e.status>=400&&a.setString(""+e.status),c.setString(t)},e=>{a.setString(""+e)})),r.sendDeprecatedSynchronousRequest=function(n,s,i,o,c,a){try{let e;if(typeof XMLHttpRequest<"u")e=new XMLHttpRequest;else{const t=["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0","Microsoft.XmlHttp"];for(let u=0,b=t.length;u<b;u++)try{e=new ActiveXObject(t[u]);break}catch{}}if(e===void 0)return;e.open(o,n+s,!1),e.setRequestHeader("Content-Type",c===""?"application/x-www-form-urlencoded":c),e.send(i),a.setString(e.responseText)}catch{}},r.enableMetrics=function(n,s){n.getGame().enableMetrics(s)},r.variableStructureToJSON=function(n){return JSON.stringify(n.toJSObject())},r.objectVariableStructureToJSON=function(n,s){return JSON.stringify(s.toJSObject())},r._objectToVariable=function(n,s){s.fromJSObject(n)},r.jsonToVariableStructure=function(n,s){s.fromJSON(n)},r.jsonToObjectVariableStructure=function(n,s,i){i.fromJSON(n)}))(d=p.network||={})})(l=g.evtTools||={})})(gdjs||={});
2
+ //# sourceMappingURL=networktools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/events-tools/networktools.ts"],
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export namespace evtTools {\n export namespace network {\n /**\n * Send an asynchronous request to the specified URL, with the specified (text)\n * body, method and contentType (defaults to `application/x-www-form-urlencoded`).\n * The result is stored in the specified response variable. Any error is stored in\n * the specified error variable.\n *\n * @param url The URL to send the request to.\n * @param body The content to be sent.\n * @param method The method to use (\"GET\", \"POST\", \"PUT\", \"HEAD\", \"DELETE\", \"PATCH\", \"OPTIONS\")\n * @param contentType The content type. Defaults to `application/x-www-form-urlencoded` if empty.\n * @param responseVar The variable where to store the response text.\n * @param errorVar The variable where to store the error message or status code (if status >= 400).\n */\n export const sendAsyncRequest = function (\n url: string,\n body: string,\n method: string,\n contentType: string,\n responseVar: gdjs.Variable,\n errorVar: gdjs.Variable\n ) {\n const onError = (err) => {\n if (\n err instanceof ProgressEvent &&\n err.currentTarget &&\n err.currentTarget instanceof XMLHttpRequest &&\n err.currentTarget.status === 0\n ) {\n errorVar.setString('REQUEST_NOT_SENT');\n } else {\n errorVar.setString('' + err);\n }\n };\n try {\n const request = new XMLHttpRequest();\n request.onerror = onError;\n request.ontimeout = onError;\n request.onabort = onError;\n request.onreadystatechange = () => {\n /* \"DONE\" */\n if (request.readyState === 4) {\n if (request.status >= 400) {\n onError('' + request.status);\n }\n responseVar.setString(request.responseText);\n }\n };\n request.open(method, url);\n request.setRequestHeader(\n 'Content-Type',\n contentType === ''\n ? 'application/x-www-form-urlencoded'\n : contentType\n );\n request.send(body);\n } catch (err) {\n onError(err);\n }\n };\n\n export const sendAwaitableAsyncRequest = (\n url: string,\n body: string,\n method: string,\n contentType: string,\n responseVar: gdjs.Variable,\n errorVar: gdjs.Variable\n ) => {\n return new gdjs.PromiseTask(\n fetch(url, {\n body: method !== 'GET' ? body : undefined,\n method,\n headers: {\n 'Content-Type':\n contentType || 'application/x-www-form-urlencoded',\n },\n }).then(\n async (response) => {\n const result = await response.text();\n if (response.status >= 400) {\n errorVar.setString('' + response.status);\n }\n responseVar.setString(result);\n },\n (error) => {\n errorVar.setString('' + error);\n }\n )\n );\n };\n\n /**\n * @deprecated\n */\n export const sendDeprecatedSynchronousRequest = function (\n host,\n uri,\n body,\n method,\n contentType,\n responseVar\n ) {\n try {\n let xhr;\n if (typeof XMLHttpRequest !== 'undefined') {\n xhr = new XMLHttpRequest();\n } else {\n const versions = [\n 'MSXML2.XmlHttp.5.0',\n 'MSXML2.XmlHttp.4.0',\n 'MSXML2.XmlHttp.3.0',\n 'MSXML2.XmlHttp.2.0',\n 'Microsoft.XmlHttp',\n ];\n for (let i = 0, len = versions.length; i < len; i++) {\n try {\n xhr = new ActiveXObject(versions[i]);\n break;\n } catch (e) {}\n }\n }\n\n // end for\n if (xhr === undefined) {\n return;\n }\n xhr.open(method, host + uri, false);\n xhr.setRequestHeader(\n 'Content-Type',\n contentType === ''\n ? 'application/x-www-form-urlencoded'\n : contentType\n );\n xhr.send(body);\n responseVar.setString(xhr.responseText);\n } catch (e) {}\n };\n\n export const enableMetrics = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n enable: boolean\n ) {\n instanceContainer.getGame().enableMetrics(enable);\n };\n\n /**\n * Convert a variable to JSON.\n * @param variable The variable to convert to JSON\n * @returns The JSON string representing the variable\n *\n * @deprecated Use `JSON.stringify(variable.toJSObject())` instead.\n */\n export const variableStructureToJSON = function (\n variable: gdjs.Variable\n ): string {\n return JSON.stringify(variable.toJSObject());\n };\n\n /**\n * @deprecated Use `JSON.stringify(variable.toJSObject())` instead.\n */\n export const objectVariableStructureToJSON = function (\n object: gdjs.RuntimeObject,\n variable: gdjs.Variable\n ): string {\n return JSON.stringify(variable.toJSObject());\n };\n\n /**\n * @deprecated Use `variable.fromJSObject` instead.\n */\n export const _objectToVariable = function (\n obj: any,\n variable: gdjs.Variable\n ) {\n variable.fromJSObject(obj);\n };\n\n /**\n * Parse the given JSON and fill the content of the variable with it.\n *\n * @param jsonStr The JSON string\n * @param variable The variable where to put the parsed JSON\n * @returns true if JSON was properly parsed\n *\n * @deprecated Use `variable.fromJSON` instead.\n */\n export const jsonToVariableStructure = function (\n jsonStr: string,\n variable: gdjs.Variable\n ): void {\n variable.fromJSON(jsonStr);\n };\n\n /**\n * @deprecated Use `variable.fromJSON` instead.\n */\n export const jsonToObjectVariableStructure = function (\n jsonStr: string,\n object: gdjs.RuntimeObject,\n variable: gdjs.Variable\n ) {\n variable.fromJSON(jsonStr);\n };\n }\n }\n}\n"],
5
+ "mappings": "AAKA,IAAU,MAAAA,GAAV,CACS,IAAUC,MAAV,CACE,IAAUC,OAcFA,EAAA,iBAAmB,SAC9BC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,MAAMC,EAAWC,GAAQ,CAErBA,aAAe,eACfA,EAAI,eACJA,EAAI,yBAAyB,gBAC7BA,EAAI,cAAc,SAAW,EAE7BF,EAAS,UAAU,kBAAkB,EAErCA,EAAS,UAAU,GAAKE,CAAG,CAE/B,EACA,GAAI,CACF,MAAMC,EAAU,IAAI,eACpBA,EAAQ,QAAUF,EAClBE,EAAQ,UAAYF,EACpBE,EAAQ,QAAUF,EAClBE,EAAQ,mBAAqB,IAAM,CAE7BA,EAAQ,aAAe,IACrBA,EAAQ,QAAU,KACpBF,EAAQ,GAAKE,EAAQ,MAAM,EAE7BJ,EAAY,UAAUI,EAAQ,YAAY,EAE9C,EACAA,EAAQ,KAAKN,EAAQF,CAAG,EACxBQ,EAAQ,iBACN,eACAL,IAAgB,GACZ,oCACAA,CACN,EACAK,EAAQ,KAAKP,CAAI,CACnB,OAASM,EAAK,CACZD,EAAQC,CAAG,CACb,CACF,EAEaR,EAAA,0BAA4B,CACvCC,EACAC,EACAC,EACAC,EACAC,EACAC,IAEO,IAAIR,EAAK,YACd,MAAMG,EAAK,CACT,KAAME,IAAW,MAAQD,EAAO,OAChC,OAAAC,EACA,QAAS,CACP,eACEC,GAAe,mCACnB,CACF,CAAC,EAAE,KACD,MAAOM,GAAa,CAClB,MAAMC,EAAS,MAAMD,EAAS,KAAK,EAC/BA,EAAS,QAAU,KACrBJ,EAAS,UAAU,GAAKI,EAAS,MAAM,EAEzCL,EAAY,UAAUM,CAAM,CAC9B,EACCC,GAAU,CACTN,EAAS,UAAU,GAAKM,CAAK,CAC/B,CACF,CACF,EAMWZ,EAAA,iCAAmC,SAC9Ca,EACAC,EACAZ,EACAC,EACAC,EACAC,EACA,CACA,GAAI,CACF,IAAIU,EACJ,GAAI,OAAO,eAAmB,IAC5BA,EAAM,IAAI,mBACL,CACL,MAAMC,EAAW,CACf,qBACA,qBACA,qBACA,qBACA,mBACF,EACA,QAASC,EAAI,EAAGC,EAAMF,EAAS,OAAQC,EAAIC,EAAKD,IAC9C,GAAI,CACFF,EAAM,IAAI,cAAcC,EAASC,CAAC,CAAC,EACnC,KACF,MAAY,CAAC,CAEjB,CAGA,GAAIF,IAAQ,OACV,OAEFA,EAAI,KAAKZ,EAAQU,EAAOC,EAAK,EAAK,EAClCC,EAAI,iBACF,eACAX,IAAgB,GACZ,oCACAA,CACN,EACAW,EAAI,KAAKb,CAAI,EACbG,EAAY,UAAUU,EAAI,YAAY,CACxC,MAAY,CAAC,CACf,EAEaf,EAAA,cAAgB,SAC3BmB,EACAC,EACA,CACAD,EAAkB,QAAQ,EAAE,cAAcC,CAAM,CAClD,EASapB,EAAA,wBAA0B,SACrCqB,EACQ,CACR,OAAO,KAAK,UAAUA,EAAS,WAAW,CAAC,CAC7C,EAKarB,EAAA,8BAAgC,SAC3CsB,EACAD,EACQ,CACR,OAAO,KAAK,UAAUA,EAAS,WAAW,CAAC,CAC7C,EAKarB,EAAA,kBAAoB,SAC/BuB,EACAF,EACA,CACAA,EAAS,aAAaE,CAAG,CAC3B,EAWavB,EAAA,wBAA0B,SACrCwB,EACAH,EACM,CACNA,EAAS,SAASG,CAAO,CAC3B,EAKaxB,EAAA,8BAAgC,SAC3CwB,EACAF,EACAD,EACA,CACAA,EAAS,SAASG,CAAO,CAC3B,IA5MexB,EAAAD,EAAA,gBADFA,EAAAD,EAAA,iBADT",
6
+ "names": ["gdjs", "evtTools", "network", "url", "body", "method", "contentType", "responseVar", "errorVar", "onError", "err", "request", "response", "result", "error", "host", "uri", "xhr", "versions", "i", "len", "instanceContainer", "enable", "variable", "object", "obj", "jsonStr"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(c=>{let x;(p=>{let C;(g=>(g.pickOnly=function(s,t){for(const e in s.items)if(s.items.hasOwnProperty(e)){const n=s.items[e];n.indexOf(t)===-1?n.length=0:(n.length=0,n.push(t))}},g.twoListsTest=function(s,t,e,n,o){let u=!1;const i=c.staticArray(c.evtTools.object.twoListsTest);t.values(i);const f=c.staticArray2(c.evtTools.object.twoListsTest);e.values(f);for(let a=0,b=i.length;a<b;++a){let r=i[a];for(let l=0,O=r.length;l<O;++l)r[l].pick=!1}for(let a=0,b=f.length;a<b;++a){let r=f[a];for(let l=0,O=r.length;l<O;++l)r[l].pick=!1}for(let a=0,b=i.length;a<b;++a){const r=i[a];for(let l=0,O=r.length;l<O;++l){let d=!1;for(let k=0,L=f.length;k<L;++k){const T=f[k];for(let h=0,R=T.length;h<R;++h)r[l].pick&&T[h].pick||r[l].id!==T[h].id&&s(r[l],T[h],o)&&(n||(u=!0,r[l].pick=!0,T[h].pick=!0),d=!0)}!d&&n&&(u=!0,r[l].pick=!0)}}for(let a=0,b=i.length;a<b;++a){let r=i[a],l=0;for(let O=0,d=r.length;O<d;++O){let k=r[O];r[O].pick&&(r[l]=k,l++)}r.length=l}if(!n)for(let a=0,b=f.length;a<b;++a){let r=f[a],l=0;for(let O=0,d=r.length;O<d;++O){let k=r[O];r[O].pick&&(r[l]=k,l++)}r.length=l}return u},g.pickObjectsIf=function(s,t,e,n){let o=!1;const u=c.staticArray(c.evtTools.object.pickObjectsIf);t.values(u);for(let i=0,f=u.length;i<f;++i){const a=u[i];for(let b=0,r=a.length;b<r;++b){const l=a[b];e^s(l,n)?(o=!0,l.pick=!0):l.pick=!1}}for(let i=0,f=u.length;i<f;++i)c.evtTools.object.filterPickedObjectsList(u[i]);return o},g.filterPickedObjectsList=function(s){let t=0;for(let e=0,n=s.length;e<n;++e){const o=s[e];o.pick&&(s[t]=o,t++)}s.length=t},g.hitBoxesCollisionTest=function(s,t,e,n,o){return c.evtTools.object.twoListsTest(c.RuntimeObject.collisionTest,s,t,e,o)},g._distanceBetweenObjects=function(s,t,e){return s.getSqDistanceToObject(t)<=e},g.distanceTest=function(s,t,e,n){return c.evtTools.object.twoListsTest(c.evtTools.object._distanceBetweenObjects,s,t,n,e*e)},g._movesToward=function(s,t,e){if(s.hasNoForces())return!1;let n=Math.atan2(t.getDrawableY()+t.getCenterY()-(s.getDrawableY()+s.getCenterY()),t.getDrawableX()+t.getCenterX()-(s.getDrawableX()+s.getCenterX()));return n*=57.295827908797776,Math.abs(c.evtTools.common.angleDifference(s.getAverageForce().getAngle(),n))<=e/2},g.movesTowardTest=function(s,t,e,n){return c.evtTools.object.twoListsTest(c.evtTools.object._movesToward,s,t,n,e)},g._turnedToward=function(s,t,e){let n=Math.atan2(t.getDrawableY()+t.getCenterY()-(s.getDrawableY()+s.getCenterY()),t.getDrawableX()+t.getCenterX()-(s.getDrawableX()+s.getCenterX()));return n*=57.295827908797776,Math.abs(c.evtTools.common.angleDifference(s.getAngle(),n))<=e/2},g.turnedTowardTest=function(s,t,e,n){return c.evtTools.object.twoListsTest(c.evtTools.object._turnedToward,s,t,n,e)},g.pickAllObjects=function(s,t){for(const e in t.items)if(t.items.hasOwnProperty(e)){const n=s.getObjects(e),o=t.items[e];o.length=0,o.push.apply(o,n)}return!0},g.pickRandomObject=function(s,t){let e=0;for(let i in t.items)if(t.items.hasOwnProperty(i)){let f=t.items[i];e+=f.length}if(e===0)return!1;let n=Math.floor(Math.random()*e);n>=e&&(n=e-1);let o=0,u=null;for(let i in t.items)if(t.items.hasOwnProperty(i)){let f=t.items[i];if(n-o<f.length){u=f[n-o];break}o+=f.length}return c.evtTools.object.pickOnly(t,u),!0},g.pickNearestObject=function(s,t,e,n){let o=null,u=0,i=!0;const f=c.staticArray(c.evtTools.object.pickNearestObject);s.values(f);for(let a=0,b=f.length;a<b;++a){const r=f[a];for(let l=0;l<r.length;++l){const O=r[l],d=O.getSqDistanceToPosition(t,e);(i||d<u^n)&&(u=d,o=O),i=!1}}return o?(c.evtTools.object.pickOnly(s,o),!0):!1},g.raycastObject=function(s,t,e,n,o,u,i,f){return c.evtTools.object.raycastObjectToPosition(s,t,e,t+o*Math.cos(n*Math.PI/180),e+o*Math.sin(n*Math.PI/180),u,i,f)},g.raycastObjectToPosition=function(s,t,e,n,o,u,i,f){let a=null,b=f?0:(n-t)*(n-t)+(o-e)*(o-e),r=0,l=0;const O=c.staticArray(c.evtTools.object.raycastObjectToPosition);s.values(O);for(let d=0;d<O.length;d++){const k=O[d];for(let L=0;L<k.length;L++){const T=k[L],h=T.raycastTest(t,e,n,o,!f);h.collision&&(!f&&h.closeSqDist<=b?(b=h.closeSqDist,a=T,r=h.closeX,l=h.closeY):f&&h.farSqDist>=b&&(b=h.farSqDist,a=T,r=h.farX,l=h.farY))}}return a?(c.evtTools.object.pickOnly(s,a),u.setNumber(r),i.setNumber(l),!0):!1},g.doCreateObjectOnScene=function(s,t,e,n,o,u){const i=s.createObject(t),f=s.getLayer(u);return i!==null&&(i.setPosition(n,o),i.setLayer(u),i.setZOrder(f.getDefaultZOrder()),e.containsKey(t)&&e.get(t).push(i)),i},g.createObjectOnScene=function(s,t,e,n,o){return c.evtTools.object.doCreateObjectOnScene(s,t.firstKey(),t,e,n,o)},g.createObjectFromGroupOnScene=function(s,t,e,n,o,u){c.evtTools.object.doCreateObjectOnScene(s,e,t,n,o,u)},g.getPickedInstancesCount=s=>{let t=0;const e=c.staticArray(c.evtTools.object.getPickedInstancesCount);s.values(e);for(let n=0,o=e.length;n<o;++n)t+=e[n].length;return t},g.getSceneInstancesCount=(s,t)=>{let e=0;const n=c.staticArray(c.evtTools.object.getSceneInstancesCount);t.keys(n);const o=new Set(n);for(const u of o)e+=s.getInstancesCountOnScene(u);return e},g.pickedObjectsCount=g.getPickedInstancesCount))(C=p.object||={})})(x=c.evtTools||={});class w{objectsLists=new Map;callbacks=new Map;parent=null;static from(p){const j=new w;return j.parent=p,j}getOrCreateList(p){return this.objectsLists.has(p)||this.objectsLists.set(p,[]),this.objectsLists.get(p)}getObjects(p){return!this.objectsLists.has(p)&&this.parent?this.parent.getObjects(p):this.objectsLists.get(p)||[]}addObject(p,j){const m=this.getOrCreateList(p);if(m.includes(j))return;m.push(j);const v=()=>this.removeObject(p,j);this.callbacks.set(j,v),j.registerDestroyCallback(v)}removeObject(p,j){const m=this.getOrCreateList(p),v=m.indexOf(j);v!==-1&&(m.splice(v,1),j.unregisterDestroyCallback(this.callbacks.get(j)),this.callbacks.delete(j))}}c.LongLivedObjectsList=w})(gdjs||={});
2
+ //# sourceMappingURL=objecttools.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../GDevelop/GDJS/Runtime/events-tools/objecttools.ts"],
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export namespace evtTools {\n export namespace object {\n /**\n * Keep only the specified object in the lists of picked objects.\n *\n * @param objectsLists The lists of objects to trim\n * @param runtimeObject The object to keep in the lists\n */\n export const pickOnly = function (\n objectsLists: ObjectsLists,\n runtimeObject: gdjs.RuntimeObject\n ) {\n for (const listName in objectsLists.items) {\n if (objectsLists.items.hasOwnProperty(listName)) {\n const list = objectsLists.items[listName];\n\n //Be sure not to lose the reference to the original array\n if (list.indexOf(runtimeObject) === -1) {\n list.length = 0;\n } else {\n list.length = 0;\n\n //Be sure not to lose the reference to the original array\n list.push(runtimeObject);\n }\n }\n }\n };\n\n /**\n * Do a test on two tables of objects so as to pick only the pair of objects for which the test is true.\n *\n * Note that the predicate method is not called strictly for each pair: When considering a pair of objects, if\n * these objects have already been marked as picked, the predicate method won't be called again.\n *\n * Cost (Worst case, predicate being always false):\n * Cost(Setting property 'picked' of NbObjList1+NbObjList2 objects to false)\n * + Cost(predicate)*NbObjList1*NbObjList2\n * + Cost(Testing NbObjList1+NbObjList2 booleans)\n * + Cost(Removing NbObjList1+NbObjList2 objects from all the lists)\n *\n * Cost (Best case, predicate being always true):\n * Cost(Setting property 'picked' of NbObjList1+NbObjList2 objects to false)\n * + Cost(predicate)*(NbObjList1+NbObjList2)\n * + Cost(Testing NbObjList1+NbObjList2 booleans)\n *\n *\n * @param predicate The predicate function is called with the two objects to compare, and an optional argument `extraArg`\n * @param objectsLists1 The first lists of objects\n * @param objectsLists2 The second lists of objects\n * @param inverted If `inverted` == true, only the objects of the first table are filtered.\n * @param extraArg (optional) This argument should be used to avoid declaring the predicate as a closure that would be created and destroyed at each call to twoListsTest (potentially multiple time per frame).\n */\n export const twoListsTest = function (\n predicate: (\n object1: gdjs.RuntimeObject,\n object2: gdjs.RuntimeObject,\n extraArg: any\n ) => boolean,\n objectsLists1: ObjectsLists,\n objectsLists2: ObjectsLists,\n inverted: boolean,\n extraArg: any\n ) {\n let isTrue = false;\n const objects1Lists = gdjs.staticArray(\n gdjs.evtTools.object.twoListsTest\n );\n objectsLists1.values(objects1Lists);\n const objects2Lists = gdjs.staticArray2(\n gdjs.evtTools.object.twoListsTest\n );\n objectsLists2.values(objects2Lists);\n for (let i = 0, leni = objects1Lists.length; i < leni; ++i) {\n let arr = objects1Lists[i];\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n arr[k].pick = false;\n }\n }\n for (let i = 0, leni = objects2Lists.length; i < leni; ++i) {\n let arr = objects2Lists[i];\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n arr[k].pick = false;\n }\n }\n\n //Launch the function for each object of the first list with each object\n //of the second list.\n for (let i = 0, leni = objects1Lists.length; i < leni; ++i) {\n const arr1 = objects1Lists[i];\n for (let k = 0, lenk = arr1.length; k < lenk; ++k) {\n let atLeastOneObject = false;\n for (let j = 0, lenj = objects2Lists.length; j < lenj; ++j) {\n const arr2 = objects2Lists[j];\n for (let l = 0, lenl = arr2.length; l < lenl; ++l) {\n if (arr1[k].pick && arr2[l].pick) {\n continue;\n }\n\n //Avoid unnecessary costly call to predicate.\n if (\n arr1[k].id !== arr2[l].id &&\n predicate(arr1[k], arr2[l], extraArg)\n ) {\n if (!inverted) {\n isTrue = true;\n\n //Pick the objects\n arr1[k].pick = true;\n arr2[l].pick = true;\n }\n atLeastOneObject = true;\n }\n }\n }\n if (!atLeastOneObject && inverted) {\n //For example, the object is not overlapping any other object.\n isTrue = true;\n arr1[k].pick = true;\n }\n }\n }\n\n //Trim not picked objects from lists.\n for (let i = 0, leni = objects1Lists.length; i < leni; ++i) {\n let arr = objects1Lists[i];\n let finalSize = 0;\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n let obj = arr[k];\n if (arr[k].pick) {\n arr[finalSize] = obj;\n finalSize++;\n }\n }\n arr.length = finalSize;\n }\n if (!inverted) {\n for (let i = 0, leni = objects2Lists.length; i < leni; ++i) {\n let arr = objects2Lists[i];\n let finalSize = 0;\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n let obj = arr[k];\n if (arr[k].pick) {\n arr[finalSize] = obj;\n finalSize++;\n }\n }\n arr.length = finalSize;\n }\n }\n return isTrue;\n };\n\n /**\n * Filter objects to keep only the one that fullfil the predicate\n *\n * Objects that do not fullfil the predicate are removed from objects lists.\n *\n * @param predicate The function applied to each object: must return true if the object fulfill the predicate.\n * @param objectsLists The lists of objects to trim\n * @param negatePredicate If set to true, the result of the predicate is negated.\n * @param extraArg Argument passed to the predicate (along with the object). Useful for avoiding relying on temporary closures.\n * @return true if at least one object fulfill the predicate.\n */\n export const pickObjectsIf = function (\n predicate: Function,\n objectsLists: ObjectsLists,\n negatePredicate: boolean,\n extraArg: any\n ): boolean {\n let isTrue = false;\n const lists = gdjs.staticArray(gdjs.evtTools.object.pickObjectsIf);\n objectsLists.values(lists);\n\n // Pick only objects that are fulfilling the predicate.\n for (let i = 0, leni = lists.length; i < leni; ++i) {\n const arr = lists[i];\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n const object = arr[k];\n // @ts-ignore\n if (negatePredicate ^ predicate(object, extraArg)) {\n isTrue = true;\n object.pick = true;\n } else {\n object.pick = false;\n }\n }\n }\n\n // Trim not picked objects from lists.\n for (let i = 0, leni = lists.length; i < leni; ++i) {\n gdjs.evtTools.object.filterPickedObjectsList(lists[i]);\n }\n return isTrue;\n };\n\n /**\n * Filter in-place the specified array to remove objects for which\n * `pick` property is set to false.\n */\n export const filterPickedObjectsList = function (\n arr: gdjs.RuntimeObject[]\n ) {\n let finalSize = 0;\n for (let k = 0, lenk = arr.length; k < lenk; ++k) {\n const obj = arr[k];\n if (obj.pick) {\n arr[finalSize] = obj;\n finalSize++;\n }\n }\n arr.length = finalSize;\n };\n\n export const hitBoxesCollisionTest = function (\n objectsLists1: ObjectsLists,\n objectsLists2: ObjectsLists,\n inverted: boolean,\n instanceContainer: gdjs.RuntimeInstanceContainer,\n ignoreTouchingEdges: boolean\n ) {\n return gdjs.evtTools.object.twoListsTest(\n gdjs.RuntimeObject.collisionTest,\n objectsLists1,\n objectsLists2,\n inverted,\n ignoreTouchingEdges\n );\n };\n\n export const _distanceBetweenObjects = function (obj1, obj2, distance) {\n return obj1.getSqDistanceToObject(obj2) <= distance;\n };\n\n export const distanceTest = function (\n objectsLists1: ObjectsLists,\n objectsLists2: ObjectsLists,\n distance: float,\n inverted: boolean\n ) {\n return gdjs.evtTools.object.twoListsTest(\n gdjs.evtTools.object._distanceBetweenObjects,\n objectsLists1,\n objectsLists2,\n inverted,\n distance * distance\n );\n };\n\n export const _movesToward = function (obj1, obj2, tolerance) {\n if (obj1.hasNoForces()) {\n return false;\n }\n let objAngle = Math.atan2(\n obj2.getDrawableY() +\n obj2.getCenterY() -\n (obj1.getDrawableY() + obj1.getCenterY()),\n obj2.getDrawableX() +\n obj2.getCenterX() -\n (obj1.getDrawableX() + obj1.getCenterX())\n );\n objAngle *= 180 / 3.14159;\n return (\n Math.abs(\n gdjs.evtTools.common.angleDifference(\n obj1.getAverageForce().getAngle(),\n objAngle\n )\n ) <=\n tolerance / 2\n );\n };\n\n export const movesTowardTest = function (\n objectsLists1: ObjectsLists,\n objectsLists2: ObjectsLists,\n tolerance: float,\n inverted: boolean\n ) {\n return gdjs.evtTools.object.twoListsTest(\n gdjs.evtTools.object._movesToward,\n objectsLists1,\n objectsLists2,\n inverted,\n tolerance\n );\n };\n\n export const _turnedToward = function (obj1, obj2, tolerance) {\n let objAngle = Math.atan2(\n obj2.getDrawableY() +\n obj2.getCenterY() -\n (obj1.getDrawableY() + obj1.getCenterY()),\n obj2.getDrawableX() +\n obj2.getCenterX() -\n (obj1.getDrawableX() + obj1.getCenterX())\n );\n objAngle *= 180 / 3.14159;\n return (\n Math.abs(\n gdjs.evtTools.common.angleDifference(obj1.getAngle(), objAngle)\n ) <=\n tolerance / 2\n );\n };\n\n export const turnedTowardTest = function (\n objectsLists1,\n objectsLists2,\n tolerance,\n inverted\n ) {\n return gdjs.evtTools.object.twoListsTest(\n gdjs.evtTools.object._turnedToward,\n objectsLists1,\n objectsLists2,\n inverted,\n tolerance\n );\n };\n\n export const pickAllObjects = function (objectsContext, objectsLists) {\n for (const name in objectsLists.items) {\n if (objectsLists.items.hasOwnProperty(name)) {\n const allObjects = objectsContext.getObjects(name);\n const objectsList = objectsLists.items[name];\n objectsList.length = 0;\n objectsList.push.apply(objectsList, allObjects);\n }\n }\n return true;\n };\n\n export const pickRandomObject = function (\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectsLists: ObjectsLists\n ) {\n // Compute one many objects we have\n let objectsCount = 0;\n for (let listName in objectsLists.items) {\n if (objectsLists.items.hasOwnProperty(listName)) {\n let list = objectsLists.items[listName];\n objectsCount += list.length;\n }\n }\n if (objectsCount === 0) {\n return false;\n }\n\n // Pick one random object\n let index = Math.floor(Math.random() * objectsCount);\n if (index >= objectsCount) {\n index = objectsCount - 1;\n }\n\n //Should never happen.\n\n // Find the object\n let startIndex = 0;\n let theChosenOne: gdjs.RuntimeObject | null = null;\n for (let listName in objectsLists.items) {\n if (objectsLists.items.hasOwnProperty(listName)) {\n let list = objectsLists.items[listName];\n if (index - startIndex < list.length) {\n theChosenOne = list[index - startIndex];\n break;\n }\n startIndex += list.length;\n }\n }\n // @ts-ignore\n gdjs.evtTools.object.pickOnly(objectsLists, theChosenOne);\n return true;\n };\n\n export const pickNearestObject = function (objectsLists, x, y, inverted) {\n let bestObject = null;\n let best = 0;\n let first = true;\n const lists = gdjs.staticArray(gdjs.evtTools.object.pickNearestObject);\n objectsLists.values(lists);\n for (let i = 0, len = lists.length; i < len; ++i) {\n const list = lists[i];\n for (let j = 0; j < list.length; ++j) {\n const object = list[j];\n const distance = object.getSqDistanceToPosition(x, y);\n // @ts-ignore\n if (first || (distance < best) ^ inverted) {\n best = distance;\n bestObject = object;\n }\n first = false;\n }\n }\n if (!bestObject) {\n return false;\n }\n gdjs.evtTools.object.pickOnly(objectsLists, bestObject);\n return true;\n };\n\n export const raycastObject = function (\n objectsLists: ObjectsLists,\n x: float,\n y: float,\n angle: float,\n dist: float,\n varX: gdjs.Variable,\n varY: gdjs.Variable,\n inverted: boolean\n ) {\n return gdjs.evtTools.object.raycastObjectToPosition(\n objectsLists,\n x,\n y,\n x + dist * Math.cos((angle * Math.PI) / 180.0),\n y + dist * Math.sin((angle * Math.PI) / 180.0),\n varX,\n varY,\n inverted\n );\n };\n\n export const raycastObjectToPosition = function (\n objectsLists: ObjectsLists,\n x: float,\n y: float,\n endX: float,\n endY: float,\n varX: gdjs.Variable,\n varY: gdjs.Variable,\n inverted: boolean\n ) {\n let matchObject: gdjs.RuntimeObject | null = null;\n let testSqDist = inverted\n ? 0\n : (endX - x) * (endX - x) + (endY - y) * (endY - y);\n let resultX = 0;\n let resultY = 0;\n const lists: RuntimeObject[][] = gdjs.staticArray(\n gdjs.evtTools.object.raycastObjectToPosition\n );\n objectsLists.values(lists);\n for (let i = 0; i < lists.length; i++) {\n const list = lists[i];\n for (let j = 0; j < list.length; j++) {\n const object = list[j];\n const result = object.raycastTest(x, y, endX, endY, !inverted);\n if (result.collision) {\n if (!inverted && result.closeSqDist <= testSqDist) {\n testSqDist = result.closeSqDist;\n matchObject = object;\n resultX = result.closeX;\n resultY = result.closeY;\n } else {\n if (inverted && result.farSqDist >= testSqDist) {\n testSqDist = result.farSqDist;\n matchObject = object;\n resultX = result.farX;\n resultY = result.farY;\n }\n }\n }\n }\n }\n if (!matchObject) {\n return false;\n }\n gdjs.evtTools.object.pickOnly(objectsLists, matchObject);\n varX.setNumber(resultX);\n varY.setNumber(resultY);\n return true;\n };\n\n /**\n * Do the work of creating a new object\n */\n export const doCreateObjectOnScene = function (\n objectsContext: EventsFunctionContext | gdjs.RuntimeScene,\n objectName: string,\n objectsLists: ObjectsLists,\n x: float,\n y: float,\n layerName: string\n ): gdjs.RuntimeObject | null {\n // objectsContext will either be the gdjs.RuntimeScene or, in an events function, the\n // eventsFunctionContext. We can't directly use runtimeScene because the object name could\n // be different than the real object name (this is the case in a function. The eventsFunctionContext\n // will take care of this in createObject).\n const obj = objectsContext.createObject(objectName);\n const layer = objectsContext.getLayer(layerName);\n if (obj !== null) {\n //Do some extra setup\n obj.setPosition(x, y);\n obj.setLayer(layerName);\n obj.setZOrder(layer.getDefaultZOrder());\n\n //Let the new object be picked by next actions/conditions.\n if (objectsLists.containsKey(objectName)) {\n objectsLists.get(objectName).push(obj);\n }\n }\n return obj;\n };\n\n /**\n * Allows events to create a new object on a scene.\n */\n export const createObjectOnScene = function (\n objectsContext: EventsFunctionContext | gdjs.RuntimeScene,\n objectsLists: ObjectsLists,\n x: float,\n y: float,\n layerName: string\n ): gdjs.RuntimeObject | null {\n return gdjs.evtTools.object.doCreateObjectOnScene(\n objectsContext,\n objectsLists.firstKey() as string,\n objectsLists,\n x,\n y,\n layerName\n );\n };\n\n /**\n * Allows events to create a new object on a scene.\n */\n export const createObjectFromGroupOnScene = function (\n objectsContext: EventsFunctionContext | gdjs.RuntimeScene,\n objectsLists: ObjectsLists,\n objectName: string,\n x: float,\n y: float,\n layerName: string\n ) {\n gdjs.evtTools.object.doCreateObjectOnScene(\n objectsContext,\n objectName,\n objectsLists,\n x,\n y,\n layerName\n );\n };\n\n /**\n * Return the number of instances in the specified lists of objects.\n */\n export const getPickedInstancesCount = (objectsLists: ObjectsLists) => {\n let count = 0;\n const lists = gdjs.staticArray(\n gdjs.evtTools.object.getPickedInstancesCount\n );\n objectsLists.values(lists);\n for (let i = 0, len = lists.length; i < len; ++i) {\n count += lists[i].length;\n }\n return count;\n };\n\n /**\n * Return the number of instances of the specified objects living on the scene.\n */\n export const getSceneInstancesCount = (\n objectsContext: EventsFunctionContext | gdjs.RuntimeScene,\n objectsLists: ObjectsLists\n ) => {\n let count = 0;\n\n const objectNames = gdjs.staticArray(\n gdjs.evtTools.object.getSceneInstancesCount\n );\n objectsLists.keys(objectNames);\n\n const uniqueObjectNames = new Set(objectNames);\n for (const objectName of uniqueObjectNames) {\n count += objectsContext.getInstancesCountOnScene(objectName);\n }\n return count;\n };\n\n /** @deprecated */\n export const pickedObjectsCount = getPickedInstancesCount;\n }\n }\n\n /**\n * A container for objects lists that should last more than the current frame.\n * It automatically removes objects that were destroyed from the objects lists.\n */\n export class LongLivedObjectsList {\n private objectsLists = new Map<string, Array<RuntimeObject>>();\n private callbacks = new Map<RuntimeObject, () => void>();\n private parent: LongLivedObjectsList | null = null;\n\n /**\n * Create a new container for objects lists, inheriting from another one. This is\n * useful should we get the objects that have not been saved in this context (using\n * `addObject`) but saved in a parent context.\n * This avoids to save all object lists every time we create a new `LongLivedObjectsList`,\n * despite not all objects lists being used.\n *\n * @param parent\n * @returns\n */\n static from(parent: LongLivedObjectsList): LongLivedObjectsList {\n const newList = new LongLivedObjectsList();\n newList.parent = parent;\n return newList;\n }\n\n private getOrCreateList(objectName: string): RuntimeObject[] {\n if (!this.objectsLists.has(objectName))\n this.objectsLists.set(objectName, []);\n return this.objectsLists.get(objectName)!;\n }\n\n getObjects(objectName: string): RuntimeObject[] {\n if (!this.objectsLists.has(objectName) && this.parent)\n return this.parent.getObjects(objectName);\n return this.objectsLists.get(objectName) || [];\n }\n\n addObject(objectName: string, runtimeObject: gdjs.RuntimeObject): void {\n const list = this.getOrCreateList(objectName);\n if (list.includes(runtimeObject)) return;\n list.push(runtimeObject);\n\n // Register callbacks for when the object is destroyed\n const onDestroy = () => this.removeObject(objectName, runtimeObject);\n this.callbacks.set(runtimeObject, onDestroy);\n runtimeObject.registerDestroyCallback(onDestroy);\n }\n\n removeObject(objectName: string, runtimeObject: gdjs.RuntimeObject): void {\n const list = this.getOrCreateList(objectName);\n const index = list.indexOf(runtimeObject);\n if (index === -1) return;\n list.splice(index, 1);\n\n // Properly remove callbacks to not leak the object\n runtimeObject.unregisterDestroyCallback(\n this.callbacks.get(runtimeObject)!\n );\n this.callbacks.delete(runtimeObject);\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["gdjs", "evtTools", "object", "objectsLists", "runtimeObject", "listName", "list", "predicate", "objectsLists1", "objectsLists2", "inverted", "extraArg", "isTrue", "objects1Lists", "objects2Lists", "i", "leni", "arr", "k", "lenk", "arr1", "atLeastOneObject", "j", "lenj", "arr2", "l", "lenl", "finalSize", "obj", "negatePredicate", "lists", "instanceContainer", "ignoreTouchingEdges", "obj1", "obj2", "distance", "tolerance", "objAngle", "objectsContext", "name", "allObjects", "objectsList", "objectsCount", "index", "startIndex", "theChosenOne", "x", "y", "bestObject", "best", "first", "len", "angle", "dist", "varX", "varY", "endX", "endY", "matchObject", "testSqDist", "resultX", "resultY", "result", "objectName", "layerName", "layer", "count", "objectNames", "uniqueObjectNames", "LongLivedObjectsList", "parent", "newList", "onDestroy"]
7
+ }