gdcore-tools 2.0.0-beta2 → 2.0.0-beta4

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 (320) hide show
  1. package/dist/Runtime/AsyncTasksManager.js +2 -2
  2. package/dist/Runtime/AsyncTasksManager.js.map +2 -2
  3. package/dist/Runtime/Cordova/config.xml +23 -1
  4. package/dist/Runtime/Cordova/www/LICENSE.GDevelop.txt +2 -0
  5. package/dist/Runtime/Cordova/www/index.html +1 -1
  6. package/dist/Runtime/CustomRuntimeObject.js +1 -1
  7. package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
  8. package/dist/Runtime/CustomRuntimeObject2D.js +2 -0
  9. package/dist/Runtime/CustomRuntimeObject2D.js.map +7 -0
  10. package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +1 -1
  11. package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +2 -2
  12. package/dist/Runtime/Electron/LICENSE.GDevelop.txt +2 -0
  13. package/dist/Runtime/Electron/package.json +3 -0
  14. package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +1 -1
  15. package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +2 -2
  16. package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +1 -1
  17. package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +2 -2
  18. package/dist/Runtime/Extensions/3D/AmbientLight.js +1 -1
  19. package/dist/Runtime/Extensions/3D/AmbientLight.js.map +2 -2
  20. package/dist/Runtime/Extensions/3D/Base3DBehavior.js +1 -1
  21. package/dist/Runtime/Extensions/3D/Base3DBehavior.js.map +2 -2
  22. package/dist/Runtime/Extensions/3D/BloomEffect.js +1 -1
  23. package/dist/Runtime/Extensions/3D/BloomEffect.js.map +2 -2
  24. package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js +1 -1
  25. package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js.map +2 -2
  26. package/dist/Runtime/Extensions/3D/CMakeLists.txt +23 -0
  27. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +1 -1
  28. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +2 -2
  29. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js +2 -0
  30. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js.map +7 -0
  31. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js +2 -0
  32. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js.map +7 -0
  33. package/dist/Runtime/Extensions/3D/DirectionalLight.js +1 -1
  34. package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +2 -2
  35. package/dist/Runtime/Extensions/3D/ExponentialFog.js +1 -1
  36. package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +2 -2
  37. package/dist/Runtime/Extensions/3D/ExposureEffect.js +1 -1
  38. package/dist/Runtime/Extensions/3D/ExposureEffect.js.map +2 -2
  39. package/dist/Runtime/Extensions/3D/HemisphereLight.js +1 -1
  40. package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +2 -2
  41. package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js +1 -1
  42. package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js.map +2 -2
  43. package/dist/Runtime/Extensions/3D/JsExtension.js +56 -24
  44. package/dist/Runtime/Extensions/3D/LinearFog.js +1 -1
  45. package/dist/Runtime/Extensions/3D/LinearFog.js.map +2 -2
  46. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +1 -1
  47. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +2 -2
  48. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +1 -1
  49. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +2 -2
  50. package/dist/Runtime/Extensions/AdMob/JsExtension.js +11 -10
  51. package/dist/Runtime/Extensions/AdMob/admobtools.js +1 -1
  52. package/dist/Runtime/Extensions/AdMob/admobtools.js.map +2 -2
  53. package/dist/Runtime/Extensions/AnchorBehavior/CMakeLists.txt +23 -0
  54. package/dist/Runtime/Extensions/BBText/JsExtension.js +20 -11
  55. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +1 -1
  56. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
  57. package/dist/Runtime/Extensions/BitmapText/JsExtension.js +2 -8
  58. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +1 -1
  59. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
  60. package/dist/Runtime/Extensions/CMakeLists.txt +35 -0
  61. package/dist/Runtime/Extensions/CMakeUtils.txt +81 -0
  62. package/dist/Runtime/Extensions/DestroyOutsideBehavior/CMakeLists.txt +23 -0
  63. package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +2 -2
  64. package/dist/Runtime/Extensions/DialogueTree/bondage.js/version.txt +5 -0
  65. package/dist/Runtime/Extensions/DraggableBehavior/CMakeLists.txt +23 -0
  66. package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +1 -1
  67. package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +2 -2
  68. package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +1 -1
  69. package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +2 -2
  70. package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +1 -1
  71. package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +2 -2
  72. package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +1 -1
  73. package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +2 -2
  74. package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +1 -1
  75. package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +2 -2
  76. package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +1 -1
  77. package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +2 -2
  78. package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +1 -1
  79. package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +2 -2
  80. package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +1 -1
  81. package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +2 -2
  82. package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +1 -1
  83. package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +2 -2
  84. package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +1 -1
  85. package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +2 -2
  86. package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +1 -1
  87. package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +2 -2
  88. package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +1 -1
  89. package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +2 -2
  90. package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +1 -1
  91. package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +2 -2
  92. package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +1 -1
  93. package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +2 -2
  94. package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +1 -1
  95. package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +2 -2
  96. package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +1 -1
  97. package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +2 -2
  98. package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +1 -1
  99. package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +2 -2
  100. package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +1 -1
  101. package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +2 -2
  102. package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js +1 -1
  103. package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js.map +2 -2
  104. package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +1 -1
  105. package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +2 -2
  106. package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +2 -2
  107. package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +2 -2
  108. package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js +1 -1
  109. package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js.map +2 -2
  110. package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +2 -2
  111. package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +2 -2
  112. package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +1 -1
  113. package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +2 -2
  114. package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +1 -1
  115. package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +2 -2
  116. package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +1 -1
  117. package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +2 -2
  118. package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +1 -1
  119. package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +2 -2
  120. package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +1 -1
  121. package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +2 -2
  122. package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +1 -1
  123. package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +2 -2
  124. package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +1 -1
  125. package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +2 -2
  126. package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +1 -1
  127. package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +2 -2
  128. package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js +1 -1
  129. package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js.map +2 -2
  130. package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +1 -1
  131. package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +2 -2
  132. package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +1 -1
  133. package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +2 -2
  134. package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +1 -1
  135. package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +2 -2
  136. package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +2 -11
  137. package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +1 -1
  138. package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +2 -2
  139. package/dist/Runtime/Extensions/FileSystem/JsExtension.js +22 -0
  140. package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +1 -1
  141. package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +2 -2
  142. package/dist/Runtime/Extensions/Firebase/A_firebasejs/NOTICE.txt +6 -0
  143. package/dist/Runtime/Extensions/Inventory/CMakeLists.txt +23 -0
  144. package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +13 -4
  145. package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +42 -1
  146. package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +1 -1
  147. package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +2 -2
  148. package/dist/Runtime/Extensions/Lighting/JsExtension.js +2 -11
  149. package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +1 -1
  150. package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +2 -2
  151. package/dist/Runtime/Extensions/LinkedObjects/CMakeLists.txt +23 -0
  152. package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +1 -1
  153. package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +2 -2
  154. package/dist/Runtime/Extensions/Multiplayer/JsExtension.js +1130 -0
  155. package/dist/Runtime/Extensions/Multiplayer/messageManager.js +2 -0
  156. package/dist/Runtime/Extensions/Multiplayer/messageManager.js.map +7 -0
  157. package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js +2 -0
  158. package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js.map +7 -0
  159. package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js +2 -0
  160. package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js.map +7 -0
  161. package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js +2 -0
  162. package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js.map +7 -0
  163. package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js +2 -0
  164. package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js.map +7 -0
  165. package/dist/Runtime/Extensions/Multiplayer/peer.js +10 -0
  166. package/dist/Runtime/Extensions/Multiplayer/peer.js.map +1 -0
  167. package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js +2 -0
  168. package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js.map +7 -0
  169. package/dist/Runtime/Extensions/Multiplayer/peerjs.d.ts +509 -0
  170. package/dist/Runtime/Extensions/P2P/A_peer.js +8 -2
  171. package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -1
  172. package/dist/Runtime/Extensions/P2P/B_p2ptools.js +1 -1
  173. package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +2 -2
  174. package/dist/Runtime/Extensions/P2P/JsExtension.js +27 -0
  175. package/dist/Runtime/Extensions/PanelSpriteObject/CMakeLists.txt +23 -0
  176. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +1 -1
  177. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +2 -2
  178. package/dist/Runtime/Extensions/ParticleSystem/CMakeLists.txt +23 -0
  179. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +1 -1
  180. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +2 -2
  181. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +1 -1
  182. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +2 -2
  183. package/dist/Runtime/Extensions/PathfindingBehavior/CMakeLists.txt +23 -0
  184. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +1 -1
  185. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +2 -2
  186. package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +47 -4
  187. package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +1 -1
  188. package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +2 -2
  189. package/dist/Runtime/Extensions/PhysicsBehavior/CMakeLists.txt +23 -0
  190. package/dist/Runtime/Extensions/PlatformBehavior/CMakeLists.txt +23 -0
  191. package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +1 -1
  192. package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +2 -2
  193. package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +1 -1
  194. package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +2 -2
  195. package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +6 -3
  196. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +4 -4
  197. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +2 -2
  198. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +1 -1
  199. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +2 -2
  200. package/dist/Runtime/Extensions/PrimitiveDrawing/CMakeLists.txt +23 -0
  201. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +1 -1
  202. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +2 -2
  203. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +1 -1
  204. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +2 -2
  205. package/dist/Runtime/Extensions/Shopify/CMakeLists.txt +26 -0
  206. package/dist/Runtime/Extensions/Spine/CMakeLists.txt +20 -0
  207. package/dist/Runtime/Extensions/Spine/JsExtension.js +11 -2
  208. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js +1 -1
  209. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js.map +2 -2
  210. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js +1 -1
  211. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js.map +2 -2
  212. package/dist/Runtime/Extensions/Spine/pixi-spine/Spine-Runtimes-License-Agreement.txt +11 -0
  213. package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js +5 -3
  214. package/dist/Runtime/Extensions/Spine/spineruntimeobject.js +1 -1
  215. package/dist/Runtime/Extensions/Spine/spineruntimeobject.js.map +2 -2
  216. package/dist/Runtime/Extensions/SystemInfo/CMakeLists.txt +23 -0
  217. package/dist/Runtime/Extensions/TextEntryObject/CMakeLists.txt +23 -0
  218. package/dist/Runtime/Extensions/TextInput/JsExtension.js +3 -10
  219. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +1 -1
  220. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +2 -2
  221. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +1 -1
  222. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +2 -2
  223. package/dist/Runtime/Extensions/TextObject/CMakeLists.txt +23 -0
  224. package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +1 -1
  225. package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +2 -2
  226. package/dist/Runtime/Extensions/TileMap/JsExtension.js +834 -23
  227. package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +1 -1
  228. package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +2 -2
  229. package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +1 -1
  230. package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +2 -2
  231. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +2 -0
  232. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +1 -1
  233. package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +1 -1
  234. package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +12 -0
  235. package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -1
  236. package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +119 -5
  237. package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -1
  238. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +25 -0
  239. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -1
  240. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +16 -1
  241. package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -1
  242. package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js +2 -0
  243. package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js.map +7 -0
  244. package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +1 -1
  245. package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +2 -2
  246. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +1 -1
  247. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +2 -2
  248. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +1 -1
  249. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +2 -2
  250. package/dist/Runtime/Extensions/TiledSpriteObject/CMakeLists.txt +23 -0
  251. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +1 -1
  252. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +2 -2
  253. package/dist/Runtime/Extensions/TopDownMovementBehavior/CMakeLists.txt +23 -0
  254. package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +1 -1
  255. package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +2 -2
  256. package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +2 -2
  257. package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +1 -1
  258. package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +2 -2
  259. package/dist/Runtime/Extensions/Video/JsExtension.js +2 -11
  260. package/dist/Runtime/Extensions/Video/videoruntimeobject.js +1 -1
  261. package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +2 -2
  262. package/dist/Runtime/RuntimeInstanceContainer.js +1 -1
  263. package/dist/Runtime/RuntimeInstanceContainer.js.map +2 -2
  264. package/dist/Runtime/SpriteAnimator.js +2 -0
  265. package/dist/Runtime/SpriteAnimator.js.map +7 -0
  266. package/dist/Runtime/debugger-client/hot-reloader.js +1 -1
  267. package/dist/Runtime/debugger-client/hot-reloader.js.map +2 -2
  268. package/dist/Runtime/events-tools/objecttools.js +1 -1
  269. package/dist/Runtime/events-tools/objecttools.js.map +2 -2
  270. package/dist/Runtime/events-tools/runtimescenetools.js +1 -1
  271. package/dist/Runtime/events-tools/runtimescenetools.js.map +2 -2
  272. package/dist/Runtime/force.js +1 -1
  273. package/dist/Runtime/force.js.map +2 -2
  274. package/dist/Runtime/object-capabilities/TextContainerBehavior.js.map +1 -1
  275. package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js +2 -0
  276. package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js.map +7 -0
  277. package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +1 -1
  278. package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +2 -2
  279. package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +2 -2
  280. package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +2 -2
  281. package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +1 -1
  282. package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +2 -2
  283. package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +2 -2
  284. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +1 -1
  285. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +2 -2
  286. package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +1 -1
  287. package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +2 -2
  288. package/dist/Runtime/polygon.js +1 -1
  289. package/dist/Runtime/polygon.js.map +2 -2
  290. package/dist/Runtime/runtimebehavior.js +1 -1
  291. package/dist/Runtime/runtimebehavior.js.map +2 -2
  292. package/dist/Runtime/runtimegame.js +1 -1
  293. package/dist/Runtime/runtimegame.js.map +2 -2
  294. package/dist/Runtime/runtimeobject.js +1 -1
  295. package/dist/Runtime/runtimeobject.js.map +2 -2
  296. package/dist/Runtime/runtimescene.js +1 -1
  297. package/dist/Runtime/runtimescene.js.map +2 -2
  298. package/dist/Runtime/scenestack.js +1 -1
  299. package/dist/Runtime/scenestack.js.map +2 -2
  300. package/dist/Runtime/spriteruntimeobject.js +1 -1
  301. package/dist/Runtime/spriteruntimeobject.js.map +2 -2
  302. package/dist/Runtime/timer.js +1 -1
  303. package/dist/Runtime/timer.js.map +2 -2
  304. package/dist/Runtime/types/project-data.d.ts +115 -0
  305. package/dist/Runtime/variable.js +1 -1
  306. package/dist/Runtime/variable.js.map +2 -2
  307. package/dist/Runtime/variablescontainer.js +1 -1
  308. package/dist/Runtime/variablescontainer.js.map +2 -2
  309. package/dist/lib/libGD.cjs +2 -1
  310. package/dist/lib/libGD.wasm +0 -0
  311. package/dist/loaders.cjs +2 -1
  312. package/gd.d.ts +217 -223
  313. package/package.json +15 -7
  314. package/src/index.js +2 -0
  315. package/src/open_project.js +1 -1
  316. package/types/index.d.ts +2 -2
  317. package/types/open_project.d.ts +5 -5
  318. package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js.map +0 -7
  319. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +0 -2
  320. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +0 -7
@@ -0,0 +1,1130 @@
1
+ //@ts-check
2
+ /// <reference path="../JsExtensionTypes.d.ts" />
3
+ /**
4
+ * This is a declaration of an extension for GDevelop 5.
5
+ *
6
+ * ℹ️ Changes in this file are watched and automatically imported if the editor
7
+ * is running. You can also manually run `node import-GDJS-Runtime.js` (in newIDE/app/scripts).
8
+ *
9
+ * The file must be named "JsExtension.js", otherwise GDevelop won't load it.
10
+ * ⚠️ If you make a change and the extension is not loaded, open the developer console
11
+ * and search for any errors.
12
+ *
13
+ * More information on https://github.com/4ian/GDevelop/blob/master/newIDE/README-extensions.md
14
+ */
15
+
16
+ /** @type {ExtensionModule} */
17
+ module.exports = {
18
+ createExtension: function (_, gd) {
19
+ const extension = new gd.PlatformExtension();
20
+ extension
21
+ .setExtensionInformation(
22
+ 'Multiplayer',
23
+ _('Multiplayer'),
24
+ _('Allow players to connect to lobbies and play together.'),
25
+ 'Florian Rival',
26
+ 'Open source (MIT License)'
27
+ )
28
+ .setExtensionHelpPath('/all-features/multiplayer')
29
+ .setCategory('Players');
30
+ extension
31
+ .addInstructionOrExpressionGroupMetadata(_('Multiplayer'))
32
+ .setIcon('JsPlatform/Extensions/multiplayer.svg');
33
+
34
+ extension
35
+ .addAction(
36
+ 'OpenGameLobbies',
37
+ _('Open Game Lobbies'),
38
+ _(
39
+ 'Open the game lobbies window, where players can join lobbies or see the one they are in.'
40
+ ),
41
+ _('Open the game lobbies'),
42
+ _('Lobbies'),
43
+ 'JsPlatform/Extensions/multiplayer.svg',
44
+ 'JsPlatform/Extensions/multiplayer.svg'
45
+ )
46
+ .addCodeOnlyParameter('currentScene', '')
47
+ .setHelpPath('/all-features/multiplayer')
48
+ .getCodeExtraInformation()
49
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
50
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
51
+ .addIncludeFile(
52
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
53
+ )
54
+ .addIncludeFile(
55
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
56
+ )
57
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
58
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
59
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
60
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
61
+ .setFunctionName('gdjs.multiplayer.openLobbiesWindow');
62
+
63
+ extension
64
+ .addAction(
65
+ 'ShowLobbiesWindowCloseAction',
66
+ _('Allow players to close the lobbies window'),
67
+ _('Allow players to close the lobbies window. Allowed by default.'),
68
+ _('Allow players to close the lobbies window: _PARAM1_'),
69
+ _('Lobbies'),
70
+ 'JsPlatform/Extensions/multiplayer.svg',
71
+ 'JsPlatform/Extensions/multiplayer.svg'
72
+ )
73
+ .addCodeOnlyParameter('currentScene', '')
74
+ .addParameter('yesorno', _('Show close button'), '', false)
75
+ .setHelpPath('/all-features/multiplayer')
76
+ .getCodeExtraInformation()
77
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
78
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
79
+ .addIncludeFile(
80
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
81
+ )
82
+ .addIncludeFile(
83
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
84
+ )
85
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
86
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
87
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
88
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
89
+ .setFunctionName('gdjs.multiplayer.showLobbiesCloseButton');
90
+
91
+ extension
92
+ .addAction(
93
+ 'EndLobbyGame',
94
+ _('End Lobby Game'),
95
+ _(
96
+ 'End the lobby game. This will trigger the "Lobby game has just ended" condition.'
97
+ ),
98
+ _('End the lobby game'),
99
+ _('Lobbies'),
100
+ 'JsPlatform/Extensions/multiplayer.svg',
101
+ 'JsPlatform/Extensions/multiplayer.svg'
102
+ )
103
+ .setHelpPath('/all-features/multiplayer')
104
+ .getCodeExtraInformation()
105
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
106
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
107
+ .addIncludeFile(
108
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
109
+ )
110
+ .addIncludeFile(
111
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
112
+ )
113
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
114
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
115
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
116
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
117
+ .setFunctionName('gdjs.multiplayer.endLobbyGame');
118
+
119
+ extension
120
+ .addAction(
121
+ 'LeaveGameLobby',
122
+ _('Leave Game Lobby'),
123
+ _(
124
+ 'Leave the current game lobby. This will trigger the "Player has left" condition on the other players, and the "Lobby game has ended" condition on the player leaving.'
125
+ ),
126
+ _('Leave the game lobby'),
127
+ _('Lobbies'),
128
+ 'JsPlatform/Extensions/multiplayer.svg',
129
+ 'JsPlatform/Extensions/multiplayer.svg'
130
+ )
131
+ .setHelpPath('/all-features/multiplayer')
132
+ .getCodeExtraInformation()
133
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
134
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
135
+ .addIncludeFile(
136
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
137
+ )
138
+ .addIncludeFile(
139
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
140
+ )
141
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
142
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
143
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
144
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
145
+ .setFunctionName('gdjs.multiplayer.leaveGameLobby');
146
+
147
+ extension
148
+ .addAction(
149
+ 'SendMessage',
150
+ _('Send custom message to other players'),
151
+ _(
152
+ "Send a custom message to other players in the lobby, with an automatic retry system if it hasn't been received. Use with the condition 'Message has been received' to know when the message has been properly processed by the host."
153
+ ),
154
+ _('Send message _PARAM0_ to other players with content _PARAM1_'),
155
+ _('Advanced'),
156
+ 'JsPlatform/Extensions/multiplayer.svg',
157
+ 'JsPlatform/Extensions/multiplayer.svg'
158
+ )
159
+ .setHelpPath('/all-features/multiplayer')
160
+ .addParameter('string', _('Message name'), '', false)
161
+ .addParameter('string', _('Message content'), '', false)
162
+ .getCodeExtraInformation()
163
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
164
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
165
+ .addIncludeFile(
166
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
167
+ )
168
+ .addIncludeFile(
169
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
170
+ )
171
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
172
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
173
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
174
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
175
+ .setFunctionName('gdjs.multiplayerMessageManager.sendCustomMessage');
176
+
177
+ extension
178
+ .addAction(
179
+ 'SendVariableMessage',
180
+ _('Send custom message to other players with a variable'),
181
+ _(
182
+ "Send a custom message to other players in the lobby containing a variable, with an automatic retry system if it hasn't been received. Use with the condition 'Message has been received' to know when the message has been properly processed by the host."
183
+ ),
184
+ _('Send message _PARAM0_ to other players with variable _PARAM1_'),
185
+ _('Advanced'),
186
+ 'JsPlatform/Extensions/multiplayer.svg',
187
+ 'JsPlatform/Extensions/multiplayer.svg'
188
+ )
189
+ .setHelpPath('/all-features/multiplayer')
190
+ .addParameter('string', _('Message name'), '', false)
191
+ .addParameter('variable', _('Variable'), '', false)
192
+ .getCodeExtraInformation()
193
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
194
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
195
+ .addIncludeFile(
196
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
197
+ )
198
+ .addIncludeFile(
199
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
200
+ )
201
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
202
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
203
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
204
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
205
+ .setFunctionName(
206
+ 'gdjs.multiplayerMessageManager.sendVariableCustomMessage'
207
+ );
208
+
209
+ extension
210
+ .addAction(
211
+ 'GetMessageVariable',
212
+ _('Get message variable'),
213
+ _(
214
+ "Store the data of the specified message in a variable. Use with the condition 'Message has been received' to know when the message has been properly processed by the host."
215
+ ),
216
+ _('Save message _PARAM0_ data in _PARAM1_'),
217
+ _('Advanced'),
218
+ 'JsPlatform/Extensions/multiplayer.svg',
219
+ 'JsPlatform/Extensions/multiplayer.svg'
220
+ )
221
+ .setHelpPath('/all-features/multiplayer')
222
+ .addParameter('string', _('Message name'), '', false)
223
+ .addParameter('variable', _('Variable'), '', false)
224
+ .getCodeExtraInformation()
225
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
226
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
227
+ .addIncludeFile(
228
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
229
+ )
230
+ .addIncludeFile(
231
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
232
+ )
233
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
234
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
235
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
236
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
237
+ .setFunctionName(
238
+ 'gdjs.multiplayerMessageManager.getVariableCustomMessageData'
239
+ );
240
+
241
+ extension
242
+ .addCondition(
243
+ 'IsLobbiesWindowOpen',
244
+ _('Lobbies window is open'),
245
+ _('Check if the lobbies window is open.'),
246
+ _('Lobbies window is open'),
247
+ _('Lobbies'),
248
+ 'JsPlatform/Extensions/multiplayer.svg',
249
+ 'JsPlatform/Extensions/multiplayer.svg'
250
+ )
251
+ .addCodeOnlyParameter('currentScene', '')
252
+ .getCodeExtraInformation()
253
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
254
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
255
+ .addIncludeFile(
256
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
257
+ )
258
+ .addIncludeFile(
259
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
260
+ )
261
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
262
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
263
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
264
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
265
+ .setFunctionName('gdjs.multiplayer.isLobbiesWindowOpen');
266
+
267
+ extension
268
+ .addCondition(
269
+ 'HasLobbyGameJustStarted',
270
+ _('Lobby game has just started'),
271
+ _('Check if the lobby game has just started.'),
272
+ _('Lobby game has started'),
273
+ _('Lobbies'),
274
+ 'JsPlatform/Extensions/multiplayer.svg',
275
+ 'JsPlatform/Extensions/multiplayer.svg'
276
+ )
277
+ .getCodeExtraInformation()
278
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
279
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
280
+ .addIncludeFile(
281
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
282
+ )
283
+ .addIncludeFile(
284
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
285
+ )
286
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
287
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
288
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
289
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
290
+ .setFunctionName('gdjs.multiplayer.hasLobbyGameJustStarted');
291
+
292
+ extension
293
+ .addCondition(
294
+ 'IsLobbyGameRunning',
295
+ _('Lobby game is running'),
296
+ _('Check if the lobby game is running.'),
297
+ _('Lobby game is running'),
298
+ _('Lobbies'),
299
+ 'JsPlatform/Extensions/multiplayer.svg',
300
+ 'JsPlatform/Extensions/multiplayer.svg'
301
+ )
302
+ .getCodeExtraInformation()
303
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
304
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
305
+ .addIncludeFile(
306
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
307
+ )
308
+ .addIncludeFile(
309
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
310
+ )
311
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
312
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
313
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
314
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
315
+ .setFunctionName('gdjs.multiplayer.isLobbyGameRunning');
316
+
317
+ extension
318
+ .addCondition(
319
+ 'HasLobbyGameJustEnded',
320
+ _('Lobby game has just ended'),
321
+ _('Check if the lobby game has just ended.'),
322
+ _('Lobby game has ended'),
323
+ _('Lobbies'),
324
+ 'JsPlatform/Extensions/multiplayer.svg',
325
+ 'JsPlatform/Extensions/multiplayer.svg'
326
+ )
327
+ .getCodeExtraInformation()
328
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
329
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
330
+ .addIncludeFile(
331
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
332
+ )
333
+ .addIncludeFile(
334
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
335
+ )
336
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
337
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
338
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
339
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
340
+ .setFunctionName('gdjs.multiplayer.hasLobbyGameJustEnded');
341
+
342
+ extension
343
+ .addCondition(
344
+ 'HasMessageBeenReceived',
345
+ _('Custom message has been received from another player'),
346
+ _(
347
+ 'Check if a custom message has been received from another player. Will be true only for one frame.'
348
+ ),
349
+ _('Message _PARAM0_ has been received'),
350
+ _('Advanced'),
351
+ 'JsPlatform/Extensions/multiplayer.svg',
352
+ 'JsPlatform/Extensions/multiplayer.svg'
353
+ )
354
+ .addParameter('string', _('Message name'), '', false)
355
+ .getCodeExtraInformation()
356
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
357
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
358
+ .addIncludeFile(
359
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
360
+ )
361
+ .addIncludeFile(
362
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
363
+ )
364
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
365
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
366
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
367
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
368
+ .setFunctionName(
369
+ 'gdjs.multiplayerMessageManager.hasCustomMessageBeenReceived'
370
+ );
371
+
372
+ extension
373
+ .addCondition(
374
+ 'IsPlayerHost',
375
+ _('Player is host'),
376
+ _('Check if the player is the host. (Player 1 is the host)'),
377
+ _('Player is host'),
378
+ _('Lobbies'),
379
+ 'JsPlatform/Extensions/multiplayer.svg',
380
+ 'JsPlatform/Extensions/multiplayer.svg'
381
+ )
382
+ .getCodeExtraInformation()
383
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
384
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
385
+ .addIncludeFile(
386
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
387
+ )
388
+ .addIncludeFile(
389
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
390
+ )
391
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
392
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
393
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
394
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
395
+ .setFunctionName('gdjs.multiplayer.isPlayerHost');
396
+
397
+ extension
398
+ .addCondition(
399
+ 'HasAnyPlayerLeft',
400
+ _('Any player has left'),
401
+ _('Check if any player has left the lobby.'),
402
+ _('Any player has left'),
403
+ _('Lobbies'),
404
+ 'JsPlatform/Extensions/multiplayer.svg',
405
+ 'JsPlatform/Extensions/multiplayer.svg'
406
+ )
407
+ .getCodeExtraInformation()
408
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
409
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
410
+ .addIncludeFile(
411
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
412
+ )
413
+ .addIncludeFile(
414
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
415
+ )
416
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
417
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
418
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
419
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
420
+ .setFunctionName('gdjs.multiplayerMessageManager.hasAnyPlayerJustLeft');
421
+
422
+ extension
423
+ .addCondition(
424
+ 'HasPlayerLeft',
425
+ _('Player has left'),
426
+ _('Check if the player has left the lobby.'),
427
+ _('Player _PARAM0_ has left'),
428
+ _('Lobbies'),
429
+ 'JsPlatform/Extensions/multiplayer.svg',
430
+ 'JsPlatform/Extensions/multiplayer.svg'
431
+ )
432
+ .getCodeExtraInformation()
433
+ .addParameter('number', _('Player number'), '', false)
434
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
435
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
436
+ .addIncludeFile(
437
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
438
+ )
439
+ .addIncludeFile(
440
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
441
+ )
442
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
443
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
444
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
445
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
446
+ .setFunctionName('gdjs.multiplayerMessageManager.hasPlayerJustLeft');
447
+
448
+ extension
449
+ .addExpression(
450
+ 'LastLeftPlayerNumber',
451
+ _('Last left player number'),
452
+ _('Returns the number of the player that has just left the lobby.'),
453
+ _('Lobbies'),
454
+ 'JsPlatform/Extensions/multiplayer.svg'
455
+ )
456
+ .getCodeExtraInformation()
457
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
458
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
459
+ .addIncludeFile(
460
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
461
+ )
462
+ .addIncludeFile(
463
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
464
+ )
465
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
466
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
467
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
468
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
469
+ .setFunctionName(
470
+ 'gdjs.multiplayerMessageManager.getLatestPlayerWhoJustLeft'
471
+ );
472
+
473
+ extension
474
+ .addCondition(
475
+ 'HasAnyPlayerJoined',
476
+ _('Any player has joined'),
477
+ _('Check if any player has joined the lobby.'),
478
+ _('Any player has joined'),
479
+ _('Lobbies'),
480
+ 'JsPlatform/Extensions/multiplayer.svg',
481
+ 'JsPlatform/Extensions/multiplayer.svg'
482
+ )
483
+ .getCodeExtraInformation()
484
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
485
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
486
+ .addIncludeFile(
487
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
488
+ )
489
+ .addIncludeFile(
490
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
491
+ )
492
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
493
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
494
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
495
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
496
+ .setFunctionName('gdjs.multiplayerMessageManager.hasAnyPlayerJustJoined');
497
+
498
+ extension
499
+ .addCondition(
500
+ 'HasPlayerJoined',
501
+ _('Player has joined'),
502
+ _('Check if the player has joined the lobby.'),
503
+ _('Player _PARAM0_ has joined'),
504
+ _('Lobbies'),
505
+ 'JsPlatform/Extensions/multiplayer.svg',
506
+ 'JsPlatform/Extensions/multiplayer.svg'
507
+ )
508
+ .getCodeExtraInformation()
509
+ .addParameter('number', _('Player number'), '', false)
510
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
511
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
512
+ .addIncludeFile(
513
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
514
+ )
515
+ .addIncludeFile(
516
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
517
+ )
518
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
519
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
520
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
521
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
522
+ .setFunctionName('gdjs.multiplayerMessageManager.hasPlayerJustJoined');
523
+
524
+ extension
525
+ .addExpression(
526
+ 'LastJoinedPlayerNumber',
527
+ _('Last joined player number'),
528
+ _('Returns the number of the player that has just joined the lobby.'),
529
+ _('Lobbies'),
530
+ 'JsPlatform/Extensions/multiplayer.svg'
531
+ )
532
+ .getCodeExtraInformation()
533
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
534
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
535
+ .addIncludeFile(
536
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
537
+ )
538
+ .addIncludeFile(
539
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
540
+ )
541
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
542
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
543
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
544
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
545
+ .setFunctionName(
546
+ 'gdjs.multiplayerMessageManager.getLatestPlayerWhoJustJoined'
547
+ );
548
+
549
+ extension
550
+ .addStrExpression(
551
+ 'MessageData',
552
+ _('Message data'),
553
+ _(
554
+ 'Returns the data received when the specified message was received from another player.'
555
+ ),
556
+ _('Advanced'),
557
+ 'JsPlatform/Extensions/multiplayer.svg'
558
+ )
559
+ .addParameter('string', _('Message name'), '', false)
560
+ .getCodeExtraInformation()
561
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
562
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
563
+ .addIncludeFile(
564
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
565
+ )
566
+ .addIncludeFile(
567
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
568
+ )
569
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
570
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
571
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
572
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
573
+ .setFunctionName('gdjs.multiplayerMessageManager.getCustomMessageData');
574
+
575
+ extension
576
+ .addExpression(
577
+ 'MessageSender',
578
+ _('Message sender'),
579
+ _('Returns the player number of the sender of the specified message.'),
580
+ _('Advanced'),
581
+ 'JsPlatform/Extensions/multiplayer.svg'
582
+ )
583
+ .addParameter('string', _('Message name'), '', false)
584
+ .getCodeExtraInformation()
585
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
586
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
587
+ .addIncludeFile(
588
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
589
+ )
590
+ .addIncludeFile(
591
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
592
+ )
593
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
594
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
595
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
596
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
597
+ .setFunctionName('gdjs.multiplayerMessageManager.getCustomMessageSender');
598
+
599
+ extension
600
+ .addExpressionAndCondition(
601
+ 'number',
602
+ 'PlayersInLobbyCount',
603
+ _('Number of players in lobby'),
604
+ _('the number of players in the lobby'),
605
+ _('the number of players in the lobby'),
606
+ _('Lobbies'),
607
+ 'JsPlatform/Extensions/multiplayer.svg'
608
+ )
609
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
610
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
611
+ .addIncludeFile(
612
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
613
+ )
614
+ .addIncludeFile(
615
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
616
+ )
617
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
618
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
619
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
620
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
621
+ .useStandardParameters('number', gd.ParameterOptions.makeNewOptions())
622
+ .setFunctionName('gdjs.multiplayer.getPlayersInLobbyCount');
623
+
624
+ extension
625
+ .addCondition(
626
+ 'IsPlayerConnected',
627
+ _('Player is connected'),
628
+ _('Check if the specified player is connected to the lobby.'),
629
+ _('Player _PARAM0_ is connected'),
630
+ _('Lobbies'),
631
+ 'JsPlatform/Extensions/multiplayer.svg',
632
+ 'JsPlatform/Extensions/multiplayer.svg'
633
+ )
634
+ .addParameter(
635
+ 'number',
636
+ _('The position of the player in the lobby (1, 2, ...)'),
637
+ '',
638
+ false
639
+ )
640
+ .setHelpPath('/all-features/multiplayer')
641
+ .getCodeExtraInformation()
642
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
643
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
644
+ .addIncludeFile(
645
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
646
+ )
647
+ .addIncludeFile(
648
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
649
+ )
650
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
651
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
652
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
653
+ .setFunctionName('gdjs.multiplayer.isPlayerConnected');
654
+
655
+ extension
656
+ .addExpressionAndCondition(
657
+ 'number',
658
+ 'CurrentPlayerNumber',
659
+ _('Current player number in lobby'),
660
+ _('the current player number in the lobby (1, 2, ...)'),
661
+ _('the current player number in the lobby'),
662
+ _('Lobbies'),
663
+ 'JsPlatform/Extensions/multiplayer.svg'
664
+ )
665
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
666
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
667
+ .addIncludeFile(
668
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
669
+ )
670
+ .addIncludeFile(
671
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
672
+ )
673
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
674
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
675
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
676
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
677
+ .useStandardParameters('number', gd.ParameterOptions.makeNewOptions())
678
+ .setFunctionName('gdjs.multiplayer.getCurrentPlayerNumber');
679
+
680
+ extension
681
+ .addStrExpression(
682
+ 'PlayerUsername',
683
+ _('Player username in lobby'),
684
+ _('Get the username of the player in the lobby.'),
685
+ _('Lobbies'),
686
+ 'JsPlatform/Extensions/multiplayer.svg'
687
+ )
688
+ .addParameter(
689
+ 'number',
690
+ _('The position of the player in the lobby (1, 2, ...)'),
691
+ '',
692
+ false
693
+ )
694
+ .getCodeExtraInformation()
695
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
696
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
697
+ .addIncludeFile(
698
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
699
+ )
700
+ .addIncludeFile(
701
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
702
+ )
703
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
704
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
705
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
706
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
707
+ .setFunctionName('gdjs.multiplayer.getPlayerUsername');
708
+
709
+ extension
710
+ .addStrExpression(
711
+ 'CurrentPlayerUsername',
712
+ _('Current player username in lobby'),
713
+ _('Get the username of the current player in the lobby.'),
714
+ _('Lobbies'),
715
+ 'JsPlatform/Extensions/multiplayer.svg'
716
+ )
717
+ .getCodeExtraInformation()
718
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
719
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
720
+ .addIncludeFile(
721
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
722
+ )
723
+ .addIncludeFile(
724
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
725
+ )
726
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
727
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
728
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
729
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
730
+ .setFunctionName('gdjs.multiplayer.getCurrentPlayerUsername');
731
+
732
+ extension
733
+ .addExpression(
734
+ 'PlayerPing',
735
+ _('Player ping in lobby'),
736
+ _('Get the ping of the player in the lobby.'),
737
+ _('Lobbies'),
738
+ 'JsPlatform/Extensions/multiplayer.svg'
739
+ )
740
+ .addParameter(
741
+ 'number',
742
+ _('The position of the player in the lobby (1, 2, ...)'),
743
+ '',
744
+ false
745
+ )
746
+ .getCodeExtraInformation()
747
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
748
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
749
+ .addIncludeFile(
750
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
751
+ )
752
+ .addIncludeFile(
753
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
754
+ )
755
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
756
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
757
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
758
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
759
+ .setFunctionName('gdjs.multiplayerMessageManager.getPlayerPing');
760
+
761
+ extension
762
+ .addExpression(
763
+ 'CurrentPlayerPing',
764
+ _('Current player ping in lobby'),
765
+ _('Get the ping of the current player in the lobby.'),
766
+ _('Lobbies'),
767
+ 'JsPlatform/Extensions/multiplayer.svg'
768
+ )
769
+ .getCodeExtraInformation()
770
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
771
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
772
+ .addIncludeFile(
773
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
774
+ )
775
+ .addIncludeFile(
776
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
777
+ )
778
+ .addIncludeFile('Extensions/Multiplayer/multiplayercomponents.js')
779
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
780
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
781
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
782
+ .setFunctionName('gdjs.multiplayerMessageManager.getCurrentPlayerPing');
783
+
784
+ extension
785
+ .addExpressionAndConditionAndAction(
786
+ 'number',
787
+ 'PlayerVariableOwnership',
788
+ _('Player variable ownership'),
789
+ _('the player owning the variable'),
790
+ _('the player owning the variable _PARAM1_'),
791
+ _('Variables'),
792
+ 'JsPlatform/Extensions/multiplayer.svg'
793
+ )
794
+ .addCodeOnlyParameter('currentScene', '')
795
+ .addParameter('variable', _('Variable'), '', false)
796
+ .useStandardParameters(
797
+ 'number',
798
+ gd.ParameterOptions.makeNewOptions().setDescription(_('Player number'))
799
+ )
800
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
801
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
802
+ .addIncludeFile(
803
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
804
+ )
805
+ .addIncludeFile(
806
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
807
+ )
808
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
809
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
810
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
811
+ .setFunctionName(
812
+ 'gdjs.multiplayerVariablesManager.setPlayerVariableOwnership'
813
+ )
814
+ .setGetter('gdjs.multiplayerVariablesManager.getPlayerVariableOwnership');
815
+
816
+ extension
817
+ .addAction(
818
+ 'TakeVariableOwnership',
819
+ _('Take ownership of variable'),
820
+ _(
821
+ 'Take the ownership of the variable. It will then be synchronized to other players, with the current player as the owner.'
822
+ ),
823
+ _('Take ownership of _PARAM1_'),
824
+ _('Variables'),
825
+ 'JsPlatform/Extensions/multiplayer.svg',
826
+ 'JsPlatform/Extensions/multiplayer.svg'
827
+ )
828
+ .addCodeOnlyParameter('currentScene', '')
829
+ .addParameter('variable', _('Variable'), '', false)
830
+ .setHelpPath('/all-features/multiplayer')
831
+ .getCodeExtraInformation()
832
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
833
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
834
+ .addIncludeFile(
835
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
836
+ )
837
+ .addIncludeFile(
838
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
839
+ )
840
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
841
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
842
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
843
+ .setFunctionName(
844
+ 'gdjs.multiplayerVariablesManager.takeVariableOwnership'
845
+ );
846
+
847
+ extension
848
+ .addAction(
849
+ 'RemoveVariableOwnership',
850
+ _('Remove ownership of variable'),
851
+ _(
852
+ 'Remove the ownership of the variable. It will still be synchronized to other players, but the host owns it.'
853
+ ),
854
+ _('Remove ownership of _PARAM1_'),
855
+ _('Variables'),
856
+ 'JsPlatform/Extensions/multiplayer.svg',
857
+ 'JsPlatform/Extensions/multiplayer.svg'
858
+ )
859
+ .addCodeOnlyParameter('currentScene', '')
860
+ .addParameter('variable', _('Variable'), '', false)
861
+ .setHelpPath('/all-features/multiplayer')
862
+ .getCodeExtraInformation()
863
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
864
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
865
+ .addIncludeFile(
866
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
867
+ )
868
+ .addIncludeFile(
869
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
870
+ )
871
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
872
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
873
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
874
+ .setFunctionName(
875
+ 'gdjs.multiplayerVariablesManager.removeVariableOwnership'
876
+ );
877
+
878
+ extension
879
+ .addAction(
880
+ 'DisableVariableSynchronization',
881
+ _('Disable variable synchronization'),
882
+ _(
883
+ 'Disable synchronization of the variable over the network. It will not be sent to other players anymore.'
884
+ ),
885
+ _('Disable synchronization of _PARAM1_'),
886
+ _('Variables'),
887
+ 'JsPlatform/Extensions/multiplayer.svg',
888
+ 'JsPlatform/Extensions/multiplayer.svg'
889
+ )
890
+ .addCodeOnlyParameter('currentScene', '')
891
+ .addParameter('variable', _('Variable'), '', false)
892
+ .setHelpPath('/all-features/multiplayer')
893
+ .getCodeExtraInformation()
894
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
895
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
896
+ .addIncludeFile(
897
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
898
+ )
899
+ .addIncludeFile(
900
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
901
+ )
902
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
903
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
904
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
905
+ .setFunctionName(
906
+ 'gdjs.multiplayerVariablesManager.disableVariableSynchronization'
907
+ );
908
+
909
+ // Multiplayer object behavior
910
+ const multiplayerObjectBehavior = new gd.BehaviorJsImplementation();
911
+
912
+ multiplayerObjectBehavior.updateProperty = function (
913
+ behaviorContent,
914
+ propertyName,
915
+ newValue
916
+ ) {
917
+ if (propertyName === 'actionOnPlayerDisconnect') {
918
+ behaviorContent
919
+ .getChild('actionOnPlayerDisconnect')
920
+ .setStringValue(newValue);
921
+ return true;
922
+ }
923
+ if (propertyName === 'playerNumber') {
924
+ const numberValue = newValue === 'Host' ? 0 : parseInt(newValue, 10);
925
+ behaviorContent.getChild('playerNumber').setIntValue(numberValue);
926
+ return true;
927
+ }
928
+
929
+ return false;
930
+ };
931
+
932
+ multiplayerObjectBehavior.getProperties = function (behaviorContent) {
933
+ const behaviorProperties = new gd.MapStringPropertyDescriptor();
934
+
935
+ const playerNumberNumberValue = behaviorContent
936
+ .getChild('playerNumber')
937
+ .getIntValue();
938
+ const playerNumberStringValue =
939
+ playerNumberNumberValue === 0 ? 'Host' : `${playerNumberNumberValue}`;
940
+
941
+ behaviorProperties
942
+ .getOrCreate('playerNumber')
943
+ .setValue(playerNumberStringValue)
944
+ .setType('Choice')
945
+ .setLabel(_('Player owning the object'))
946
+ .setDescription(
947
+ _(
948
+ 'Who is synchronizing the object to the players. If this is an object controlled by a player, then assign the player number. Otherwise just leave "Host" and the host of the game will synchronize the object to the players. (Note: you can change the ownership of the object during the game with corresponding actions).'
949
+ )
950
+ )
951
+ .addExtraInfo('Host')
952
+ .addExtraInfo('1')
953
+ .addExtraInfo('2')
954
+ .addExtraInfo('3')
955
+ .addExtraInfo('4')
956
+ .addExtraInfo('5')
957
+ .addExtraInfo('6')
958
+ .addExtraInfo('7')
959
+ .addExtraInfo('8');
960
+
961
+ behaviorProperties
962
+ .getOrCreate('actionOnPlayerDisconnect')
963
+ .setValue(
964
+ behaviorContent.getChild('actionOnPlayerDisconnect').getStringValue()
965
+ )
966
+ .setType('Choice')
967
+ .setLabel(_('Action when player disconnects'))
968
+ .setAdvanced(true)
969
+ .addExtraInfo('DestroyObject')
970
+ .addExtraInfo('GiveOwnershipToHost')
971
+ .addExtraInfo('DoNothing');
972
+
973
+ return behaviorProperties;
974
+ };
975
+
976
+ multiplayerObjectBehavior.initializeContent = function (behaviorContent) {
977
+ behaviorContent.addChild('playerNumber').setIntValue(0);
978
+ behaviorContent
979
+ .addChild('actionOnPlayerDisconnect')
980
+ .setStringValue('DestroyObject');
981
+ };
982
+
983
+ const sharedData = new gd.BehaviorsSharedData();
984
+
985
+ const behavior = extension
986
+ .addBehavior(
987
+ 'MultiplayerObjectBehavior',
988
+ _('Multiplayer object'),
989
+ 'MultiplayerObject',
990
+ _(
991
+ 'Allow the object to be synchronized with other players in the lobby.'
992
+ ),
993
+ '',
994
+ 'JsPlatform/Extensions/multiplayer.svg',
995
+ 'MultiplayerObjectBehavior',
996
+ // @ts-ignore - TODO: Fix multiplayerBehavior being a BehaviorJsImplementation instead of an Behavior
997
+ multiplayerObjectBehavior,
998
+ sharedData
999
+ )
1000
+ .setIncludeFile('Extensions/Multiplayer/peer.js')
1001
+ .addIncludeFile('Extensions/Multiplayer/peerJsHelper.js')
1002
+ .addIncludeFile(
1003
+ 'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
1004
+ )
1005
+ .addIncludeFile(
1006
+ 'Extensions/PlayerAuthentication/playerauthenticationtools.js'
1007
+ )
1008
+ .addIncludeFile('Extensions/Multiplayer/messageManager.js')
1009
+ .addIncludeFile('Extensions/Multiplayer/multiplayerVariablesManager.js')
1010
+ .addIncludeFile('Extensions/Multiplayer/multiplayertools.js')
1011
+ .addIncludeFile(
1012
+ 'Extensions/Multiplayer/multiplayerobjectruntimebehavior.js'
1013
+ );
1014
+
1015
+ behavior
1016
+ .addExpressionAndConditionAndAction(
1017
+ 'number',
1018
+ 'PlayerObjectOwnership',
1019
+ _('Player object ownership'),
1020
+ _('the player owning the object'),
1021
+ _('the player owning the instance'),
1022
+ _('Multiplayer'),
1023
+ 'JsPlatform/Extensions/multiplayer.svg'
1024
+ )
1025
+ .addParameter('object', _('Object'), '', false)
1026
+ .addParameter('behavior', _('Behavior'), 'MultiplayerObjectBehavior')
1027
+ .useStandardParameters(
1028
+ 'number',
1029
+ gd.ParameterOptions.makeNewOptions().setDescription(_('Player number'))
1030
+ )
1031
+ .markAsAdvanced()
1032
+ .setFunctionName('setPlayerObjectOwnership')
1033
+ .setGetter('getPlayerObjectOwnership');
1034
+
1035
+ behavior
1036
+ .addScopedCondition(
1037
+ 'IsObjectOwnedByCurrentPlayer',
1038
+ _('Is object owned by current player'),
1039
+ _(
1040
+ 'Check if the object is owned by the current player, as a player or the host.'
1041
+ ),
1042
+ _('Object _PARAM0_ is owned by current player'),
1043
+ _('Multiplayer'),
1044
+ 'JsPlatform/Extensions/multiplayer.svg',
1045
+ 'JsPlatform/Extensions/multiplayer.svg'
1046
+ )
1047
+ .addParameter('object', _('Object'), '', false)
1048
+ .addParameter(
1049
+ 'behavior',
1050
+ _('Behavior'),
1051
+ 'MultiplayerObjectBehavior',
1052
+ false
1053
+ )
1054
+ .markAsAdvanced()
1055
+ .setFunctionName('isObjectOwnedByCurrentPlayer');
1056
+
1057
+ behavior
1058
+ .addScopedAction(
1059
+ 'TakeObjectOwnership',
1060
+ _('Take ownership of object'),
1061
+ _(
1062
+ 'Take the ownership of the object. It will then be synchronized to other players, with the current player as the owner.'
1063
+ ),
1064
+ _('Take ownership of _PARAM0_'),
1065
+ _('Multiplayer'),
1066
+ 'JsPlatform/Extensions/multiplayer.svg',
1067
+ 'JsPlatform/Extensions/multiplayer.svg'
1068
+ )
1069
+ .addParameter('object', _('Object'), '', false)
1070
+ .addParameter(
1071
+ 'behavior',
1072
+ _('Behavior'),
1073
+ 'MultiplayerObjectBehavior',
1074
+ false
1075
+ )
1076
+ .markAsAdvanced()
1077
+ .setFunctionName('takeObjectOwnership');
1078
+
1079
+ behavior
1080
+ .addScopedAction(
1081
+ 'RemoveObjectOwnership',
1082
+ _('Remove object ownership'),
1083
+ _(
1084
+ 'Remove the ownership of the object from the player. It will still be synchronized to other players, but the host owns it.'
1085
+ ),
1086
+ _('Remove ownership of _PARAM0_'),
1087
+ _('Multiplayer'),
1088
+ 'JsPlatform/Extensions/multiplayer.svg',
1089
+ 'JsPlatform/Extensions/multiplayer.svg'
1090
+ )
1091
+ .addParameter('object', _('Object'), '', false)
1092
+ .addParameter(
1093
+ 'behavior',
1094
+ _('Behavior'),
1095
+ 'MultiplayerObjectBehavior',
1096
+ false
1097
+ )
1098
+ .markAsAdvanced()
1099
+ .setFunctionName('removeObjectOwnership');
1100
+
1101
+ behavior
1102
+ .addScopedAction(
1103
+ 'EnableBehaviorSynchronization',
1104
+ _('Enable (or disable) the synchronization of a behavior'),
1105
+ _(
1106
+ "Enable or disable the synchronization of a behavior over the network. If disabled, the behavior's current state will not be sent to other players anymore."
1107
+ ),
1108
+ _('Enable synchronization of _PARAM2_ for _PARAM0_: _PARAM3_'),
1109
+ _('Multiplayer'),
1110
+ 'JsPlatform/Extensions/multiplayer.svg',
1111
+ 'JsPlatform/Extensions/multiplayer.svg'
1112
+ )
1113
+ .addParameter('object', _('Object'), '', false)
1114
+ .addParameter(
1115
+ 'behavior',
1116
+ _('Multiplayer behavior'),
1117
+ 'MultiplayerObjectBehavior',
1118
+ false
1119
+ )
1120
+ .addParameter('behavior', _('Object behavior'), '', false)
1121
+ .addParameter('yesorno', _('Enable synchronization'), '', false)
1122
+ .markAsAdvanced()
1123
+ .setFunctionName('enableBehaviorSynchronization');
1124
+
1125
+ return extension;
1126
+ },
1127
+ runExtensionSanityTests: function (gd, extension) {
1128
+ return [];
1129
+ },
1130
+ };