gdcore-tools 2.0.0-beta3 → 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 (321) 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.d.cts +5 -0
  311. package/dist/lib/libGD.wasm +0 -0
  312. package/dist/loaders.cjs +2 -1
  313. package/dist/loaders.d.cts +2 -0
  314. package/gd.d.ts +217 -223
  315. package/package.json +8 -6
  316. package/src/index.js +2 -0
  317. package/types/index.d.ts +2 -2
  318. package/types/open_project.d.ts +4 -4
  319. package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js.map +0 -7
  320. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +0 -2
  321. package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/A_RuntimeObject3DRenderer.ts"],
4
- "sourcesContent": ["namespace gdjs {\n export abstract class RuntimeObject3DRenderer {\n protected _object: gdjs.RuntimeObject3D;\n private _threeObject3D: THREE.Object3D;\n\n constructor(\n runtimeObject: gdjs.RuntimeObject3D,\n instanceContainer: gdjs.RuntimeInstanceContainer,\n threeObject3D: THREE.Object3D\n ) {\n this._object = runtimeObject;\n this._threeObject3D = threeObject3D;\n this._threeObject3D.rotation.order = 'ZYX';\n\n instanceContainer\n .getLayer('')\n .getRenderer()\n .add3DRendererObject(this._threeObject3D);\n }\n\n get3DRendererObject() {\n return this._threeObject3D;\n }\n\n updatePosition() {\n this._threeObject3D.position.set(\n this._object.x + this._object.getWidth() / 2,\n this._object.y + this._object.getHeight() / 2,\n this._object.getZ() + this._object.getDepth() / 2\n );\n }\n\n updateRotation() {\n this._threeObject3D.rotation.set(\n gdjs.toRad(this._object.getRotationX()),\n gdjs.toRad(this._object.getRotationY()),\n gdjs.toRad(this._object.angle)\n );\n }\n\n updateSize() {\n const object = this._object;\n this._threeObject3D.scale.set(\n object.isFlippedX() ? -object.getWidth() : object.getWidth(),\n object.isFlippedY() ? -object.getHeight() : object.getHeight(),\n object.isFlippedZ() ? -object.getDepth() : object.getDepth()\n );\n this.updatePosition();\n }\n\n updateVisibility() {\n this._threeObject3D.visible = !this._object.isHidden();\n }\n }\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACS,OAAuC,CAI5C,YACE,EACA,EACA,EACA,CACA,KAAK,QAAU,EACf,KAAK,eAAiB,EACtB,KAAK,eAAe,SAAS,MAAQ,MAErC,EACG,SAAS,IACT,cACA,oBAAoB,KAAK,gBAG9B,qBAAsB,CACpB,MAAO,MAAK,eAGd,gBAAiB,CACf,KAAK,eAAe,SAAS,IAC3B,KAAK,QAAQ,EAAI,KAAK,QAAQ,WAAa,EAC3C,KAAK,QAAQ,EAAI,KAAK,QAAQ,YAAc,EAC5C,KAAK,QAAQ,OAAS,KAAK,QAAQ,WAAa,GAIpD,gBAAiB,CACf,KAAK,eAAe,SAAS,IAC3B,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,QAI5B,YAAa,CACX,KAAM,GAAS,KAAK,QACpB,KAAK,eAAe,MAAM,IACxB,EAAO,aAAe,CAAC,EAAO,WAAa,EAAO,WAClD,EAAO,aAAe,CAAC,EAAO,YAAc,EAAO,YACnD,EAAO,aAAe,CAAC,EAAO,WAAa,EAAO,YAEpD,KAAK,iBAGP,kBAAmB,CACjB,KAAK,eAAe,QAAU,CAAC,KAAK,QAAQ,YAlDzC,EAAe,4BADd",
4
+ "sourcesContent": ["namespace gdjs {\n export abstract class RuntimeObject3DRenderer {\n protected _object: gdjs.RuntimeObject3D;\n private _threeObject3D: THREE.Object3D;\n\n constructor(\n runtimeObject: gdjs.RuntimeObject3D,\n instanceContainer: gdjs.RuntimeInstanceContainer,\n threeObject3D: THREE.Object3D\n ) {\n this._object = runtimeObject;\n this._threeObject3D = threeObject3D;\n this._threeObject3D.rotation.order = 'ZYX';\n\n instanceContainer\n .getLayer('')\n .getRenderer()\n .add3DRendererObject(this._threeObject3D);\n }\n\n get3DRendererObject() {\n return this._threeObject3D;\n }\n\n updatePosition() {\n this._threeObject3D.position.set(\n this._object.getX() + this._object.getWidth() / 2,\n this._object.getY() + this._object.getHeight() / 2,\n this._object.getZ() + this._object.getDepth() / 2\n );\n }\n\n updateRotation() {\n this._threeObject3D.rotation.set(\n gdjs.toRad(this._object.getRotationX()),\n gdjs.toRad(this._object.getRotationY()),\n gdjs.toRad(this._object.angle)\n );\n }\n\n updateSize() {\n const object = this._object;\n this._threeObject3D.scale.set(\n object.isFlippedX() ? -object.getWidth() : object.getWidth(),\n object.isFlippedY() ? -object.getHeight() : object.getHeight(),\n object.isFlippedZ() ? -object.getDepth() : object.getDepth()\n );\n this.updatePosition();\n }\n\n updateVisibility() {\n this._threeObject3D.visible = !this._object.isHidden();\n }\n }\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACS,OAAuC,CAI5C,YACE,EACA,EACA,EACA,CACA,KAAK,QAAU,EACf,KAAK,eAAiB,EACtB,KAAK,eAAe,SAAS,MAAQ,MAErC,EACG,SAAS,IACT,cACA,oBAAoB,KAAK,gBAG9B,qBAAsB,CACpB,MAAO,MAAK,eAGd,gBAAiB,CACf,KAAK,eAAe,SAAS,IAC3B,KAAK,QAAQ,OAAS,KAAK,QAAQ,WAAa,EAChD,KAAK,QAAQ,OAAS,KAAK,QAAQ,YAAc,EACjD,KAAK,QAAQ,OAAS,KAAK,QAAQ,WAAa,GAIpD,gBAAiB,CACf,KAAK,eAAe,SAAS,IAC3B,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,QAI5B,YAAa,CACX,KAAM,GAAS,KAAK,QACpB,KAAK,eAAe,MAAM,IACxB,EAAO,aAAe,CAAC,EAAO,WAAa,EAAO,WAClD,EAAO,aAAe,CAAC,EAAO,YAAc,EAAO,YACnD,EAAO,aAAe,CAAC,EAAO,WAAa,EAAO,YAEpD,KAAK,iBAGP,kBAAmB,CACjB,KAAK,eAAe,QAAU,CAAC,KAAK,QAAQ,YAlDzC,EAAe,4BADd",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::AmbientLight",new class{makeFilter(i,n){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.light=new THREE.AmbientLight,this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,t){return this._isEnabled===t?!0:t?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){const t=e.get3DRendererObject();return t?(t.add(this.light),this._isEnabled=!0,!0):!1}removeEffect(e){const t=e.get3DRendererObject();return t?(t.remove(this.light),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,t){e==="intensity"&&(this.light.intensity=t)}getDoubleParameter(e){return e==="intensity"?this.light.intensity:0}updateStringParameter(e,t){e==="color"&&this.light.color.setHex(r.PixiFiltersTools.rgbOrHexToHexNumber(t))}updateColorParameter(e,t){e==="color"&&this.light.color.setHex(t)}getColorParameter(e){return e==="color"?this.light.color.getHex():0}updateBooleanParameter(e,t){}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(i){i.PixiFiltersTools.registerFilterCreator("Scene3D::AmbientLight",new class{makeFilter(r,n){return typeof THREE=="undefined"?new i.PixiFiltersTools.EmptyFilter:new class{constructor(){this.light=new THREE.AmbientLight,this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,t){return this._isEnabled===t?!0:t?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){const t=e.get3DRendererObject();return t?(t.add(this.light),this._isEnabled=!0,!0):!1}removeEffect(e){const t=e.get3DRendererObject();return t?(t.remove(this.light),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,t){e==="intensity"&&(this.light.intensity=t)}getDoubleParameter(e){return e==="intensity"?this.light.intensity:0}updateStringParameter(e,t){e==="color"&&this.light.color.setHex(i.PixiFiltersTools.rgbOrHexToHexNumber(t))}updateColorParameter(e,t){e==="color"&&this.light.color.setHex(t)}getColorParameter(e){return e==="color"?this.light.color.getHex():0}updateBooleanParameter(e,t){}getNetworkSyncData(){return{i:this.light.intensity,c:this.light.color.getHex()}}updateFromNetworkSyncData(e){this.light.intensity=e.i,this.light.color.setHex(e.c)}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=AmbientLight.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/AmbientLight.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::AmbientLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n light: THREE.AmbientLight;\n _isEnabled: boolean;\n\n constructor() {\n this.light = new THREE.AmbientLight();\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this.light);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this.light);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this.light.intensity = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this.light.intensity;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.light.color.setHex(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,wBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,MAAQ,GAAI,OAAM,aACvB,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,IAAI,KAAK,OACf,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,OAAO,KAAK,OAClB,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,aACpB,MAAK,MAAM,UAAY,GAG3B,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,YACb,KAAK,MAAM,UAEb,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OACf,EAAK,iBAAiB,oBAAoB,IAIhD,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OAAO,GAG5B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,MAAM,MAAM,SAEnB,EAET,uBAAuB,EAAuB,EAAsB,SAvFpE",
4
+ "sourcesContent": ["namespace gdjs {\n interface AmbientLightFilterNetworkSyncData {\n i: number;\n c: number;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::AmbientLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n light: THREE.AmbientLight;\n _isEnabled: boolean;\n\n constructor() {\n this.light = new THREE.AmbientLight();\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this.light);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this.light);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this.light.intensity = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this.light.intensity;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.light.color.setHex(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n getNetworkSyncData(): AmbientLightFilterNetworkSyncData {\n return {\n i: this.light.intensity,\n c: this.light.color.getHex(),\n };\n }\n updateFromNetworkSyncData(data: AmbientLightFilterNetworkSyncData) {\n this.light.intensity = data.i;\n this.light.color.setHex(data.c);\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAKE,EAAK,iBAAiB,sBACpB,wBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,MAAQ,GAAI,OAAM,aACvB,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,IAAI,KAAK,OACf,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,OAAO,KAAK,OAClB,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,aACpB,MAAK,MAAM,UAAY,GAG3B,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,YACb,KAAK,MAAM,UAEb,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OACf,EAAK,iBAAiB,oBAAoB,IAIhD,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OAAO,GAG5B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,MAAM,MAAM,SAEnB,EAET,uBAAuB,EAAuB,EAAsB,EACpE,oBAAwD,CACtD,MAAO,CACL,EAAG,KAAK,MAAM,UACd,EAAG,KAAK,MAAM,MAAM,UAGxB,0BAA0B,EAAyC,CACjE,KAAK,MAAM,UAAY,EAAK,EAC5B,KAAK,MAAM,MAAM,OAAO,EAAK,UApG/B",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(e){class a extends e.RuntimeBehavior{constructor(t,o,n){super(t,o,n);this.object=n}updateFromBehaviorData(t,o){return!0}onDeActivate(){}onDestroy(){}doStepPreEvents(t){}doStepPostEvents(t){}setZ(t){this.object.setZ(t)}getZ(){return this.object.getZ()}getCenterZInScene(){return this.object.getCenterZInScene()}setCenterZInScene(t){this.object.setCenterZInScene(t)}setRotationX(t){this.object.setRotationX(t)}setRotationY(t){this.object.setRotationY(t)}getRotationX(){return this.object.getRotationX()}getRotationY(){return this.object.getRotationY()}turnAroundX(t){this.object.turnAroundX(t)}turnAroundY(t){this.object.turnAroundY(t)}turnAroundZ(t){this.object.turnAroundZ(t)}getDepth(){return this.object.getDepth()}setDepth(t){this.object.setDepth(t)}setScaleZ(t){this.object.setScaleZ(t)}getScaleZ(){return this.object.getScaleZ()}flipZ(t){this.object.flipZ(t)}isFlippedZ(){return this.object.isFlippedZ()}}e.Base3DBehavior=a,e.registerBehavior("Scene3D::Base3DBehavior",e.Base3DBehavior)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(e){let a;(function(t){t.is3D=o=>o.getZ&&o.setZ})(a=e.Base3DHandler||(e.Base3DHandler={}));class r extends e.RuntimeBehavior{constructor(t,o,n){super(t,o,n);this.object=n}updateFromBehaviorData(t,o){return!0}onDeActivate(){}onDestroy(){}doStepPreEvents(t){}doStepPostEvents(t){}setZ(t){this.object.setZ(t)}getZ(){return this.object.getZ()}getCenterZInScene(){return this.object.getCenterZInScene()}setCenterZInScene(t){this.object.setCenterZInScene(t)}setRotationX(t){this.object.setRotationX(t)}setRotationY(t){this.object.setRotationY(t)}getRotationX(){return this.object.getRotationX()}getRotationY(){return this.object.getRotationY()}turnAroundX(t){this.object.turnAroundX(t)}turnAroundY(t){this.object.turnAroundY(t)}turnAroundZ(t){this.object.turnAroundZ(t)}getDepth(){return this.object.getDepth()}setDepth(t){this.object.setDepth(t)}setScaleZ(t){this.object.setScaleZ(t)}getScaleZ(){return this.object.getScaleZ()}flipZ(t){this.object.flipZ(t)}isFlippedZ(){return this.object.isFlippedZ()}getUnrotatedAABBMinZ(){return this.object.getUnrotatedAABBMinZ()}getUnrotatedAABBMaxZ(){return this.object.getUnrotatedAABBMaxZ()}}e.Base3DBehavior=r,e.registerBehavior("Scene3D::Base3DBehavior",e.Base3DBehavior)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=Base3DBehavior.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/Base3DBehavior.ts"],
4
- "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2023 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export interface Base3DHandler {\n /**\n * Set the object position on the Z axis.\n */\n setZ(z: float): void;\n\n /**\n * Get the object position on the Z axis.\n */\n getZ(): float;\n\n /**\n * Return the Z position of the object center, **relative to the scene origin**.\n */\n getCenterZInScene(): float;\n\n /**\n * Change the object center Z position in the scene.\n * @param z The new Z position of the center in the scene.\n */\n setCenterZInScene(z: float): void;\n\n /**\n * Set the object rotation on the X axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n *\n * @param angle the rotation angle on the X axis in degree\n */\n setRotationX(angle: float): void;\n\n /**\n * Set the object rotation on the Y axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n *\n * @param angle the rotation angle on the Y axis in degree\n */\n setRotationY(angle: float): void;\n\n /**\n * Get the object rotation on the X axis in degree.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationX(): float;\n\n /**\n * Get the object rotation on the Y axis in degree.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationY(): float;\n\n /**\n * Turn the object around the scene X axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundX(deltaAngle: float): void;\n\n /**\n * Turn the object around the scene Y axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundY(deltaAngle: float): void;\n\n /**\n * Turn the object around the scene Z axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundZ(deltaAngle: float): void;\n\n /**\n * Get the object size on the Z axis (called \"depth\").\n */\n getDepth(): float;\n\n /**\n * Set the object size on the Z axis (called \"depth\").\n */\n setDepth(depth: float): void;\n\n /**\n * Change the scale on Z axis of the object (changing its depth).\n *\n * @param newScale The new scale (must be greater than 0).\n */\n setScaleZ(newScale: number): void;\n\n /**\n * Get the scale of the object on Z axis.\n *\n * @return the scale of the object on Z axis\n */\n getScaleZ(): float;\n\n flipZ(enable: boolean): void;\n\n isFlippedZ(): boolean;\n }\n\n /**\n * A behavior that forwards the Base3D interface to its object.\n */\n export class Base3DBehavior\n extends gdjs.RuntimeBehavior\n implements Base3DHandler {\n private object: gdjs.RuntimeObject & Base3DHandler;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject & Base3DHandler\n ) {\n super(instanceContainer, behaviorData, owner);\n this.object = owner;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n // Nothing to update.\n return true;\n }\n\n onDeActivate() {}\n\n onDestroy() {}\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n setZ(z: float): void {\n this.object.setZ(z);\n }\n\n getZ(): float {\n return this.object.getZ();\n }\n\n getCenterZInScene(): number {\n return this.object.getCenterZInScene();\n }\n\n setCenterZInScene(z: number): void {\n this.object.setCenterZInScene(z);\n }\n\n setRotationX(angle: float): void {\n this.object.setRotationX(angle);\n }\n\n setRotationY(angle: float): void {\n this.object.setRotationY(angle);\n }\n\n getRotationX(): float {\n return this.object.getRotationX();\n }\n\n getRotationY(): float {\n return this.object.getRotationY();\n }\n\n turnAroundX(deltaAngle: float): void {\n this.object.turnAroundX(deltaAngle);\n }\n\n turnAroundY(deltaAngle: float): void {\n this.object.turnAroundY(deltaAngle);\n }\n\n turnAroundZ(deltaAngle: float): void {\n this.object.turnAroundZ(deltaAngle);\n }\n\n getDepth(): float {\n return this.object.getDepth();\n }\n\n setDepth(depth: float): void {\n this.object.setDepth(depth);\n }\n\n setScaleZ(newScale: number): void {\n this.object.setScaleZ(newScale);\n }\n\n getScaleZ(): float {\n return this.object.getScaleZ();\n }\n\n flipZ(enable: boolean): void {\n this.object.flipZ(enable);\n }\n\n isFlippedZ(): boolean {\n return this.object.isFlippedZ();\n }\n }\n\n gdjs.registerBehavior('Scene3D::Base3DBehavior', gdjs.Base3DBehavior);\n}\n"],
5
- "mappings": "AAKA,GAAU,MAAV,UAAU,EAAV,CAyGS,eACG,GAAK,eACY,CAGzB,YACE,EACA,EACA,EACA,CACA,MAAM,EAAmB,EAAc,GACvC,KAAK,OAAS,EAGhB,uBAAuB,EAAiB,EAA0B,CAEhE,MAAO,GAGT,cAAe,EAEf,WAAY,EAEZ,gBAAgB,EAAkD,EAElE,iBAAiB,EAAkD,EAEnE,KAAK,EAAgB,CACnB,KAAK,OAAO,KAAK,GAGnB,MAAc,CACZ,MAAO,MAAK,OAAO,OAGrB,mBAA4B,CAC1B,MAAO,MAAK,OAAO,oBAGrB,kBAAkB,EAAiB,CACjC,KAAK,OAAO,kBAAkB,GAGhC,aAAa,EAAoB,CAC/B,KAAK,OAAO,aAAa,GAG3B,aAAa,EAAoB,CAC/B,KAAK,OAAO,aAAa,GAG3B,cAAsB,CACpB,MAAO,MAAK,OAAO,eAGrB,cAAsB,CACpB,MAAO,MAAK,OAAO,eAGrB,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,UAAkB,CAChB,MAAO,MAAK,OAAO,WAGrB,SAAS,EAAoB,CAC3B,KAAK,OAAO,SAAS,GAGvB,UAAU,EAAwB,CAChC,KAAK,OAAO,UAAU,GAGxB,WAAmB,CACjB,MAAO,MAAK,OAAO,YAGrB,MAAM,EAAuB,CAC3B,KAAK,OAAO,MAAM,GAGpB,YAAsB,CACpB,MAAO,MAAK,OAAO,cA5FhB,EAAM,iBAgGb,EAAK,iBAAiB,0BAA2B,EAAK,kBAzM9C",
4
+ "sourcesContent": ["/*\n * GDevelop JS Platform\n * Copyright 2013-2023 Florian Rival (Florian.Rival@gmail.com). All rights reserved.\n * This project is released under the MIT License.\n */\nnamespace gdjs {\n export interface Base3DHandler {\n /**\n * Set the object position on the Z axis.\n */\n setZ(z: float): void;\n\n /**\n * Get the object position on the Z axis.\n */\n getZ(): float;\n\n /**\n * Return the Z position of the object center, **relative to the scene origin**.\n */\n getCenterZInScene(): float;\n\n /**\n * Change the object center Z position in the scene.\n * @param z The new Z position of the center in the scene.\n */\n setCenterZInScene(z: float): void;\n\n /**\n * Set the object rotation on the X axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n *\n * @param angle the rotation angle on the X axis in degree\n */\n setRotationX(angle: float): void;\n\n /**\n * Set the object rotation on the Y axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n *\n * @param angle the rotation angle on the Y axis in degree\n */\n setRotationY(angle: float): void;\n\n /**\n * Get the object rotation on the X axis in degree.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationX(): float;\n\n /**\n * Get the object rotation on the Y axis in degree.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationY(): float;\n\n /**\n * Turn the object around the scene X axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundX(deltaAngle: float): void;\n\n /**\n * Turn the object around the scene Y axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundY(deltaAngle: float): void;\n\n /**\n * Turn the object around the scene Z axis at its center.\n * @param deltaAngle the rotation angle in degree\n */\n turnAroundZ(deltaAngle: float): void;\n\n /**\n * Get the object size on the Z axis (called \"depth\").\n */\n getDepth(): float;\n\n /**\n * Set the object size on the Z axis (called \"depth\").\n */\n setDepth(depth: float): void;\n\n /**\n * Change the scale on Z axis of the object (changing its depth).\n *\n * @param newScale The new scale (must be greater than 0).\n */\n setScaleZ(newScale: number): void;\n\n /**\n * Get the scale of the object on Z axis.\n *\n * @return the scale of the object on Z axis\n */\n getScaleZ(): float;\n\n flipZ(enable: boolean): void;\n\n isFlippedZ(): boolean;\n\n /**\n * Return the bottom Z of the object.\n * Rotations around X and Y are not taken into account.\n */\n getUnrotatedAABBMinZ(): number;\n\n /**\n * Return the top Z of the object.\n * Rotations around X and Y are not taken into account.\n */\n getUnrotatedAABBMaxZ(): number;\n }\n\n export namespace Base3DHandler {\n export const is3D = (\n object: gdjs.RuntimeObject\n ): object is gdjs.RuntimeObject & gdjs.Base3DHandler => {\n //@ts-ignore We are checking if the methods are present.\n return object.getZ && object.setZ;\n };\n }\n\n /**\n * A behavior that forwards the Base3D interface to its object.\n */\n export class Base3DBehavior\n extends gdjs.RuntimeBehavior\n implements Base3DHandler {\n private object: gdjs.RuntimeObject & Base3DHandler;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject & Base3DHandler\n ) {\n super(instanceContainer, behaviorData, owner);\n this.object = owner;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n // Nothing to update.\n return true;\n }\n\n onDeActivate() {}\n\n onDestroy() {}\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n setZ(z: float): void {\n this.object.setZ(z);\n }\n\n getZ(): float {\n return this.object.getZ();\n }\n\n getCenterZInScene(): number {\n return this.object.getCenterZInScene();\n }\n\n setCenterZInScene(z: number): void {\n this.object.setCenterZInScene(z);\n }\n\n setRotationX(angle: float): void {\n this.object.setRotationX(angle);\n }\n\n setRotationY(angle: float): void {\n this.object.setRotationY(angle);\n }\n\n getRotationX(): float {\n return this.object.getRotationX();\n }\n\n getRotationY(): float {\n return this.object.getRotationY();\n }\n\n turnAroundX(deltaAngle: float): void {\n this.object.turnAroundX(deltaAngle);\n }\n\n turnAroundY(deltaAngle: float): void {\n this.object.turnAroundY(deltaAngle);\n }\n\n turnAroundZ(deltaAngle: float): void {\n this.object.turnAroundZ(deltaAngle);\n }\n\n getDepth(): float {\n return this.object.getDepth();\n }\n\n setDepth(depth: float): void {\n this.object.setDepth(depth);\n }\n\n setScaleZ(newScale: number): void {\n this.object.setScaleZ(newScale);\n }\n\n getScaleZ(): float {\n return this.object.getScaleZ();\n }\n\n flipZ(enable: boolean): void {\n this.object.flipZ(enable);\n }\n\n isFlippedZ(): boolean {\n return this.object.isFlippedZ();\n }\n\n getUnrotatedAABBMinZ(): number {\n return this.object.getUnrotatedAABBMinZ();\n }\n\n getUnrotatedAABBMaxZ(): number {\n return this.object.getUnrotatedAABBMaxZ();\n }\n }\n\n gdjs.registerBehavior('Scene3D::Base3DBehavior', gdjs.Base3DBehavior);\n}\n"],
5
+ "mappings": "AAKA,GAAU,MAAV,UAAU,EAAV,CAkHS,GAAU,GAAV,UAAU,EAAV,CACE,AAAM,OAAO,AAClB,GAGO,EAAO,MAAQ,EAAO,OALhB,yCAYV,eACG,GAAK,eACY,CAGzB,YACE,EACA,EACA,EACA,CACA,MAAM,EAAmB,EAAc,GACvC,KAAK,OAAS,EAGhB,uBAAuB,EAAiB,EAA0B,CAEhE,MAAO,GAGT,cAAe,EAEf,WAAY,EAEZ,gBAAgB,EAAkD,EAElE,iBAAiB,EAAkD,EAEnE,KAAK,EAAgB,CACnB,KAAK,OAAO,KAAK,GAGnB,MAAc,CACZ,MAAO,MAAK,OAAO,OAGrB,mBAA4B,CAC1B,MAAO,MAAK,OAAO,oBAGrB,kBAAkB,EAAiB,CACjC,KAAK,OAAO,kBAAkB,GAGhC,aAAa,EAAoB,CAC/B,KAAK,OAAO,aAAa,GAG3B,aAAa,EAAoB,CAC/B,KAAK,OAAO,aAAa,GAG3B,cAAsB,CACpB,MAAO,MAAK,OAAO,eAGrB,cAAsB,CACpB,MAAO,MAAK,OAAO,eAGrB,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,YAAY,EAAyB,CACnC,KAAK,OAAO,YAAY,GAG1B,UAAkB,CAChB,MAAO,MAAK,OAAO,WAGrB,SAAS,EAAoB,CAC3B,KAAK,OAAO,SAAS,GAGvB,UAAU,EAAwB,CAChC,KAAK,OAAO,UAAU,GAGxB,WAAmB,CACjB,MAAO,MAAK,OAAO,YAGrB,MAAM,EAAuB,CAC3B,KAAK,OAAO,MAAM,GAGpB,YAAsB,CACpB,MAAO,MAAK,OAAO,aAGrB,sBAA+B,CAC7B,MAAO,MAAK,OAAO,uBAGrB,sBAA+B,CAC7B,MAAO,MAAK,OAAO,wBApGhB,EAAM,iBAwGb,EAAK,iBAAiB,0BAA2B,EAAK,kBAtO9C",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(s){s.PixiFiltersTools.registerFilterCreator("Scene3D::Bloom",new class{makeFilter(t,a){return typeof THREE=="undefined"?new s.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.UnrealBloomPass(new THREE.Vector2(256,256),1,0,0),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,r){return this._isEnabled===r?!0:r?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof s.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof s.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,r){e==="strength"&&(this.shaderPass.strength=r),e==="radius"&&(this.shaderPass.radius=r),e==="threshold"&&(this.shaderPass.threshold=r)}getDoubleParameter(e){return e==="strength"?this.shaderPass.strength:e==="radius"?this.shaderPass.radius:e==="threshold"?this.shaderPass.threshold:0}updateStringParameter(e,r){}updateColorParameter(e,r){}getColorParameter(e){return 0}updateBooleanParameter(e,r){}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::Bloom",new class{makeFilter(t,a){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.UnrealBloomPass(new THREE.Vector2(256,256),1,0,0),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,s){return this._isEnabled===s?!0:s?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof r.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof r.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,s){e==="strength"&&(this.shaderPass.strength=s),e==="radius"&&(this.shaderPass.radius=s),e==="threshold"&&(this.shaderPass.threshold=s)}getDoubleParameter(e){return e==="strength"?this.shaderPass.strength:e==="radius"?this.shaderPass.radius:e==="threshold"?this.shaderPass.threshold:0}updateStringParameter(e,s){}updateColorParameter(e,s){}getColorParameter(e){return 0}updateBooleanParameter(e,s){}getNetworkSyncData(){return{s:this.shaderPass.strength,r:this.shaderPass.radius,t:this.shaderPass.threshold}}updateFromNetworkSyncData(e){this.shaderPass.strength=e.s,this.shaderPass.radius=e.r,this.shaderPass.threshold=e.t}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=BloomEffect.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/BloomEffect.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::Bloom',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.UnrealBloomPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.UnrealBloomPass(\n new THREE.Vector2(256, 256),\n 1,\n 0,\n 0\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'strength') {\n this.shaderPass.strength = value;\n }\n if (parameterName === 'radius') {\n this.shaderPass.radius = value;\n }\n if (parameterName === 'threshold') {\n this.shaderPass.threshold = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'strength') {\n return this.shaderPass.strength;\n }\n if (parameterName === 'radius') {\n return this.shaderPass.radius;\n }\n if (parameterName === 'threshold') {\n return this.shaderPass.threshold;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,iBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,gBACjC,GAAI,OAAM,QAAQ,IAAK,KACvB,EACA,EACA,GAEF,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,MAAK,WAAW,SAAW,GAEzB,IAAkB,UACpB,MAAK,WAAW,OAAS,GAEvB,IAAkB,aACpB,MAAK,WAAW,UAAY,GAGhC,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,WACb,KAAK,WAAW,SAErB,IAAkB,SACb,KAAK,WAAW,OAErB,IAAkB,YACb,KAAK,WAAW,UAElB,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,SAnFpE",
4
+ "sourcesContent": ["namespace gdjs {\n interface BloomFilterNetworkSyncData {\n s: number;\n r: number;\n t: number;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::Bloom',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.UnrealBloomPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.UnrealBloomPass(\n new THREE.Vector2(256, 256),\n 1,\n 0,\n 0\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'strength') {\n this.shaderPass.strength = value;\n }\n if (parameterName === 'radius') {\n this.shaderPass.radius = value;\n }\n if (parameterName === 'threshold') {\n this.shaderPass.threshold = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'strength') {\n return this.shaderPass.strength;\n }\n if (parameterName === 'radius') {\n return this.shaderPass.radius;\n }\n if (parameterName === 'threshold') {\n return this.shaderPass.threshold;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n getNetworkSyncData(): BloomFilterNetworkSyncData {\n return {\n s: this.shaderPass.strength,\n r: this.shaderPass.radius,\n t: this.shaderPass.threshold,\n };\n }\n updateFromNetworkSyncData(data: BloomFilterNetworkSyncData) {\n this.shaderPass.strength = data.s;\n this.shaderPass.radius = data.r;\n this.shaderPass.threshold = data.t;\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAME,EAAK,iBAAiB,sBACpB,iBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,gBACjC,GAAI,OAAM,QAAQ,IAAK,KACvB,EACA,EACA,GAEF,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,MAAK,WAAW,SAAW,GAEzB,IAAkB,UACpB,MAAK,WAAW,OAAS,GAEvB,IAAkB,aACpB,MAAK,WAAW,UAAY,GAGhC,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,WACb,KAAK,WAAW,SAErB,IAAkB,SACb,KAAK,WAAW,OAErB,IAAkB,YACb,KAAK,WAAW,UAElB,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,EACpE,oBAAiD,CAC/C,MAAO,CACL,EAAG,KAAK,WAAW,SACnB,EAAG,KAAK,WAAW,OACnB,EAAG,KAAK,WAAW,WAGvB,0BAA0B,EAAkC,CAC1D,KAAK,WAAW,SAAW,EAAK,EAChC,KAAK,WAAW,OAAS,EAAK,EAC9B,KAAK,WAAW,UAAY,EAAK,SAnGnC",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::BrightnessAndContrast",new class{makeFilter(t,a){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.ShaderPass(THREE_ADDONS.BrightnessContrastShader),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,s){return this._isEnabled===s?!0:s?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof r.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof r.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,s){e==="brightness"&&(this.shaderPass.uniforms[e].value=s),e==="contrast"&&(this.shaderPass.uniforms[e].value=s)}getDoubleParameter(e){return e==="brightness"?this.shaderPass.uniforms[e].value:e==="contrast"?this.shaderPass.uniforms[e].value:0}updateStringParameter(e,s){}updateColorParameter(e,s){}getColorParameter(e){return 0}updateBooleanParameter(e,s){}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::BrightnessAndContrast",new class{makeFilter(t,a){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.ShaderPass(THREE_ADDONS.BrightnessContrastShader),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,s){return this._isEnabled===s?!0:s?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof r.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof r.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,s){e==="brightness"&&(this.shaderPass.uniforms[e].value=s),e==="contrast"&&(this.shaderPass.uniforms[e].value=s)}getDoubleParameter(e){return e==="brightness"?this.shaderPass.uniforms[e].value:e==="contrast"?this.shaderPass.uniforms[e].value:0}updateStringParameter(e,s){}updateColorParameter(e,s){}getColorParameter(e){return 0}updateBooleanParameter(e,s){}getNetworkSyncData(){return{b:this.shaderPass.uniforms.brightness.value,c:this.shaderPass.uniforms.contrast.value}}updateFromNetworkSyncData(e){this.shaderPass.uniforms.brightness.value=e.b,this.shaderPass.uniforms.contrast.value=e.c}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=BrightnessAndContrastEffect.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/BrightnessAndContrastEffect.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::BrightnessAndContrast',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.ShaderPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.ShaderPass(\n THREE_ADDONS.BrightnessContrastShader\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'brightness') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n if (parameterName === 'contrast') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'brightness') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n if (parameterName === 'contrast') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,iCACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,WACjC,aAAa,0BAEf,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,cACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAE9C,IAAkB,YACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAGpD,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,aACb,KAAK,WAAW,SAAS,GAAe,MAE7C,IAAkB,WACb,KAAK,WAAW,SAAS,GAAe,MAE1C,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,SA1EpE",
4
+ "sourcesContent": ["namespace gdjs {\n interface BrightnessAndContrastFilterNetworkSyncData {\n b: number;\n c: number;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::BrightnessAndContrast',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.ShaderPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.ShaderPass(\n THREE_ADDONS.BrightnessContrastShader\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'brightness') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n if (parameterName === 'contrast') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'brightness') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n if (parameterName === 'contrast') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n getNetworkSyncData(): BrightnessAndContrastFilterNetworkSyncData {\n return {\n b: this.shaderPass.uniforms.brightness.value,\n c: this.shaderPass.uniforms.contrast.value,\n };\n }\n updateFromNetworkSyncData(\n data: BrightnessAndContrastFilterNetworkSyncData\n ) {\n this.shaderPass.uniforms.brightness.value = data.b;\n this.shaderPass.uniforms.contrast.value = data.c;\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAKE,EAAK,iBAAiB,sBACpB,iCACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,WACjC,aAAa,0BAEf,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,cACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAE9C,IAAkB,YACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAGpD,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,aACb,KAAK,WAAW,SAAS,GAAe,MAE7C,IAAkB,WACb,KAAK,WAAW,SAAS,GAAe,MAE1C,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,EACpE,oBAAiE,CAC/D,MAAO,CACL,EAAG,KAAK,WAAW,SAAS,WAAW,MACvC,EAAG,KAAK,WAAW,SAAS,SAAS,OAGzC,0BACE,EACA,CACA,KAAK,WAAW,SAAS,WAAW,MAAQ,EAAK,EACjD,KAAK,WAAW,SAAS,SAAS,MAAQ,EAAK,SAzFjD",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,23 @@
1
+ cmake_minimum_required(VERSION 3.5)
2
+
3
+ project(Scene3D)
4
+ gd_add_extension_includes()
5
+
6
+ # Defines
7
+ #
8
+ gd_add_extension_definitions(Scene3D)
9
+
10
+ # The targets
11
+ #
12
+ include_directories(.)
13
+ file(
14
+ GLOB
15
+ source_files
16
+ *.cpp
17
+ *.h)
18
+ gd_add_clang_utils(Scene3D "${source_files}")
19
+ gd_add_extension_target(Scene3D "${source_files}")
20
+
21
+ # Linker files for the IDE extension
22
+ #
23
+ gd_extension_link_libraries(Scene3D)
@@ -1,2 +1,2 @@
1
- var gdjs;(function(c){const i={front:0,back:1,left:2,right:3,top:4,bottom:5};class o extends c.RuntimeObject3D{constructor(t,e){super(t,e);this._materialType=c.Cube3DRuntimeObject.MaterialType.Basic;this._shouldUseTransparentTexture=e.content.enableTextureTransparency||!1,this._facesOrientation=e.content.facesOrientation||"Y",this._visibleFacesBitmask=0,e.content.frontFaceVisible&&(this._visibleFacesBitmask|=1<<i.front),e.content.backFaceVisible&&(this._visibleFacesBitmask|=1<<i.back),e.content.leftFaceVisible&&(this._visibleFacesBitmask|=1<<i.left),e.content.rightFaceVisible&&(this._visibleFacesBitmask|=1<<i.right),e.content.topFaceVisible&&(this._visibleFacesBitmask|=1<<i.top),e.content.bottomFaceVisible&&(this._visibleFacesBitmask|=1<<i.bottom),this._textureRepeatFacesBitmask=0,e.content.frontFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.front),e.content.backFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.back),e.content.leftFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.left),e.content.rightFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.right),e.content.topFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.top),e.content.bottomFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.bottom),this._backFaceUpThroughWhichAxisRotation=e.content.backFaceUpThroughWhichAxisRotation||"X",this._faceResourceNames=[e.content.frontFaceResourceName,e.content.backFaceResourceName,e.content.leftFaceResourceName,e.content.rightFaceResourceName,e.content.topFaceResourceName,e.content.bottomFaceResourceName],this._materialType=this._convertMaterialType(e.content.materialType),this._renderer=new c.Cube3DRuntimeObjectRenderer(this,t),this.onCreated()}setFaceVisibility(t,e){const s=i[t];s!==void 0&&e!==this.isFaceAtIndexVisible(s)&&(e?this._visibleFacesBitmask|=1<<s:this._visibleFacesBitmask&=~(1<<s),this._renderer.updateFace(s))}setRepeatTextureOnFace(t,e){const s=i[t];s!==void 0&&e!==this.shouldRepeatTextureOnFaceAtIndex(s)&&(e?this._textureRepeatFacesBitmask|=1<<s:this._textureRepeatFacesBitmask&=~(1<<s),this._renderer.updateFace(s))}isFaceVisible(t){const e=i[t];return e===void 0?!1:this.isFaceAtIndexVisible(e)}isFaceAtIndexVisible(t){return(this._visibleFacesBitmask&1<<t)!=0}shouldRepeatTextureOnFaceAtIndex(t){return(this._textureRepeatFacesBitmask&1<<t)!=0}setFaceResourceName(t,e){const s=i[t];s!==void 0&&this._faceResourceNames[s]!==e&&(this._faceResourceNames[s]=e,this._renderer.updateFace(s))}getFaceAtIndexResourceName(t){return this._faceResourceNames[t]}getRenderer(){return this._renderer}getBackFaceUpThroughWhichAxisRotation(){return this._backFaceUpThroughWhichAxisRotation}setBackFaceUpThroughWhichAxisRotation(t){this._backFaceUpThroughWhichAxisRotation=t,this._renderer.updateFace(i.back)}getFacesOrientation(){return this._facesOrientation}setFacesOrientation(t){this._facesOrientation=t,this._renderer.updateFace(i.left),this._renderer.updateFace(i.right),this._renderer.updateFace(i.top)}updateFromObjectData(t,e){return super.updateFromObjectData(t,e),t.content.frontFaceVisible!==e.content.frontFaceVisible&&this.setFaceVisibility("front",e.content.frontFaceVisible),t.content.backFaceVisible!==e.content.backFaceVisible&&this.setFaceVisibility("back",e.content.backFaceVisible),t.content.leftFaceVisible!==e.content.leftFaceVisible&&this.setFaceVisibility("left",e.content.leftFaceVisible),t.content.rightFaceVisible!==e.content.rightFaceVisible&&this.setFaceVisibility("right",e.content.rightFaceVisible),t.content.topFaceVisible!==e.content.topFaceVisible&&this.setFaceVisibility("top",e.content.topFaceVisible),t.content.bottomFaceVisible!==e.content.bottomFaceVisible&&this.setFaceVisibility("bottom",e.content.bottomFaceVisible),t.content.frontFaceResourceName!==e.content.frontFaceResourceName&&this.setFaceResourceName("front",e.content.frontFaceResourceName),t.content.backFaceResourceName!==e.content.backFaceResourceName&&this.setFaceResourceName("back",e.content.backFaceResourceName),t.content.leftFaceResourceName!==e.content.leftFaceResourceName&&this.setFaceResourceName("left",e.content.leftFaceResourceName),t.content.rightFaceResourceName!==e.content.rightFaceResourceName&&this.setFaceResourceName("right",e.content.rightFaceResourceName),t.content.topFaceResourceName!==e.content.topFaceResourceName&&this.setFaceResourceName("top",e.content.topFaceResourceName),t.content.bottomFaceResourceName!==e.content.bottomFaceResourceName&&this.setFaceResourceName("bottom",e.content.bottomFaceResourceName),t.content.frontFaceResourceRepeat!==e.content.frontFaceResourceRepeat&&this.setRepeatTextureOnFace("front",e.content.frontFaceResourceRepeat),t.content.backFaceResourceRepeat!==e.content.backFaceResourceRepeat&&this.setRepeatTextureOnFace("back",e.content.backFaceResourceRepeat),t.content.leftFaceResourceRepeat!==e.content.leftFaceResourceRepeat&&this.setRepeatTextureOnFace("left",e.content.leftFaceResourceRepeat),t.content.rightFaceResourceRepeat!==e.content.rightFaceResourceRepeat&&this.setRepeatTextureOnFace("right",e.content.rightFaceResourceRepeat),t.content.topFaceResourceRepeat!==e.content.topFaceResourceRepeat&&this.setRepeatTextureOnFace("top",e.content.topFaceResourceRepeat),t.content.bottomFaceResourceRepeat!==e.content.bottomFaceResourceRepeat&&this.setRepeatTextureOnFace("bottom",e.content.bottomFaceResourceRepeat),t.content.backFaceUpThroughWhichAxisRotation!==e.content.backFaceUpThroughWhichAxisRotation&&this.setBackFaceUpThroughWhichAxisRotation(e.content.backFaceUpThroughWhichAxisRotation),t.content.facesOrientation!==e.content.facesOrientation&&this.setFacesOrientation(e.content.facesOrientation),t.content.materialType!==e.content.materialType&&this.setMaterialType(e.content.materialType),!0}shouldUseTransparentTexture(){return this._shouldUseTransparentTexture}_convertMaterialType(t){return t==="StandardWithoutMetalness"?c.Cube3DRuntimeObject.MaterialType.StandardWithoutMetalness:c.Cube3DRuntimeObject.MaterialType.Basic}setMaterialType(t){const e=this._convertMaterialType(t);this._materialType!==e&&(this._materialType=e,this._renderer._updateMaterials())}}c.Cube3DRuntimeObject=o,function(t){let r;(function(n){n[n.Basic=0]="Basic",n[n.StandardWithoutMetalness=1]="StandardWithoutMetalness"})(r=t.MaterialType||(t.MaterialType={}))}(o=c.Cube3DRuntimeObject||(c.Cube3DRuntimeObject={})),c.registerObject("Scene3D::Cube3DObject",c.Cube3DRuntimeObject)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(c){const i={front:0,back:1,left:2,right:3,top:4,bottom:5};class a extends c.RuntimeObject3D{constructor(t,e){super(t,e);this._materialType=c.Cube3DRuntimeObject.MaterialType.Basic;this._shouldUseTransparentTexture=e.content.enableTextureTransparency||!1,this._facesOrientation=e.content.facesOrientation||"Y",this._visibleFacesBitmask=0,e.content.frontFaceVisible&&(this._visibleFacesBitmask|=1<<i.front),e.content.backFaceVisible&&(this._visibleFacesBitmask|=1<<i.back),e.content.leftFaceVisible&&(this._visibleFacesBitmask|=1<<i.left),e.content.rightFaceVisible&&(this._visibleFacesBitmask|=1<<i.right),e.content.topFaceVisible&&(this._visibleFacesBitmask|=1<<i.top),e.content.bottomFaceVisible&&(this._visibleFacesBitmask|=1<<i.bottom),this._textureRepeatFacesBitmask=0,e.content.frontFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.front),e.content.backFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.back),e.content.leftFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.left),e.content.rightFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.right),e.content.topFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.top),e.content.bottomFaceResourceRepeat&&(this._textureRepeatFacesBitmask|=1<<i.bottom),this._backFaceUpThroughWhichAxisRotation=e.content.backFaceUpThroughWhichAxisRotation||"X",this._faceResourceNames=[e.content.frontFaceResourceName,e.content.backFaceResourceName,e.content.leftFaceResourceName,e.content.rightFaceResourceName,e.content.topFaceResourceName,e.content.bottomFaceResourceName],this._materialType=this._convertMaterialType(e.content.materialType),this._renderer=new c.Cube3DRuntimeObjectRenderer(this,t),this.onCreated()}setFaceVisibility(t,e){const s=i[t];s!==void 0&&e!==this.isFaceAtIndexVisible(s)&&(e?this._visibleFacesBitmask|=1<<s:this._visibleFacesBitmask&=~(1<<s),this._renderer.updateFace(s))}setRepeatTextureOnFace(t,e){const s=i[t];s!==void 0&&e!==this.shouldRepeatTextureOnFaceAtIndex(s)&&(e?this._textureRepeatFacesBitmask|=1<<s:this._textureRepeatFacesBitmask&=~(1<<s),this._renderer.updateFace(s))}isFaceVisible(t){const e=i[t];return e===void 0?!1:this.isFaceAtIndexVisible(e)}isFaceAtIndexVisible(t){return(this._visibleFacesBitmask&1<<t)!=0}shouldRepeatTextureOnFaceAtIndex(t){return(this._textureRepeatFacesBitmask&1<<t)!=0}setFaceResourceName(t,e){const s=i[t];s!==void 0&&this._faceResourceNames[s]!==e&&(this._faceResourceNames[s]=e,this._renderer.updateFace(s))}getFaceAtIndexResourceName(t){return this._faceResourceNames[t]}getRenderer(){return this._renderer}getBackFaceUpThroughWhichAxisRotation(){return this._backFaceUpThroughWhichAxisRotation}setBackFaceUpThroughWhichAxisRotation(t){this._backFaceUpThroughWhichAxisRotation=t,this._renderer.updateFace(i.back)}getFacesOrientation(){return this._facesOrientation}setFacesOrientation(t){this._facesOrientation=t,this._renderer.updateFace(i.left),this._renderer.updateFace(i.right),this._renderer.updateFace(i.top)}updateFromObjectData(t,e){return super.updateFromObjectData(t,e),t.content.frontFaceVisible!==e.content.frontFaceVisible&&this.setFaceVisibility("front",e.content.frontFaceVisible),t.content.backFaceVisible!==e.content.backFaceVisible&&this.setFaceVisibility("back",e.content.backFaceVisible),t.content.leftFaceVisible!==e.content.leftFaceVisible&&this.setFaceVisibility("left",e.content.leftFaceVisible),t.content.rightFaceVisible!==e.content.rightFaceVisible&&this.setFaceVisibility("right",e.content.rightFaceVisible),t.content.topFaceVisible!==e.content.topFaceVisible&&this.setFaceVisibility("top",e.content.topFaceVisible),t.content.bottomFaceVisible!==e.content.bottomFaceVisible&&this.setFaceVisibility("bottom",e.content.bottomFaceVisible),t.content.frontFaceResourceName!==e.content.frontFaceResourceName&&this.setFaceResourceName("front",e.content.frontFaceResourceName),t.content.backFaceResourceName!==e.content.backFaceResourceName&&this.setFaceResourceName("back",e.content.backFaceResourceName),t.content.leftFaceResourceName!==e.content.leftFaceResourceName&&this.setFaceResourceName("left",e.content.leftFaceResourceName),t.content.rightFaceResourceName!==e.content.rightFaceResourceName&&this.setFaceResourceName("right",e.content.rightFaceResourceName),t.content.topFaceResourceName!==e.content.topFaceResourceName&&this.setFaceResourceName("top",e.content.topFaceResourceName),t.content.bottomFaceResourceName!==e.content.bottomFaceResourceName&&this.setFaceResourceName("bottom",e.content.bottomFaceResourceName),t.content.frontFaceResourceRepeat!==e.content.frontFaceResourceRepeat&&this.setRepeatTextureOnFace("front",e.content.frontFaceResourceRepeat),t.content.backFaceResourceRepeat!==e.content.backFaceResourceRepeat&&this.setRepeatTextureOnFace("back",e.content.backFaceResourceRepeat),t.content.leftFaceResourceRepeat!==e.content.leftFaceResourceRepeat&&this.setRepeatTextureOnFace("left",e.content.leftFaceResourceRepeat),t.content.rightFaceResourceRepeat!==e.content.rightFaceResourceRepeat&&this.setRepeatTextureOnFace("right",e.content.rightFaceResourceRepeat),t.content.topFaceResourceRepeat!==e.content.topFaceResourceRepeat&&this.setRepeatTextureOnFace("top",e.content.topFaceResourceRepeat),t.content.bottomFaceResourceRepeat!==e.content.bottomFaceResourceRepeat&&this.setRepeatTextureOnFace("bottom",e.content.bottomFaceResourceRepeat),t.content.backFaceUpThroughWhichAxisRotation!==e.content.backFaceUpThroughWhichAxisRotation&&this.setBackFaceUpThroughWhichAxisRotation(e.content.backFaceUpThroughWhichAxisRotation),t.content.facesOrientation!==e.content.facesOrientation&&this.setFacesOrientation(e.content.facesOrientation),t.content.materialType!==e.content.materialType&&this.setMaterialType(e.content.materialType),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),mt:this._materialType,fo:this._facesOrientation,bfu:this._backFaceUpThroughWhichAxisRotation,vfb:this._visibleFacesBitmask,trfb:this._textureRepeatFacesBitmask,frn:this._faceResourceNames}}updateFromNetworkSyncData(t){if(super.updateFromNetworkSyncData(t),t.mt!==void 0&&(this._materialType=t.mt),t.fo!==void 0&&this._facesOrientation!==t.fo&&this.setFacesOrientation(t.fo),t.bfu!==void 0&&this._backFaceUpThroughWhichAxisRotation!==t.bfu&&this.setBackFaceUpThroughWhichAxisRotation(t.bfu),t.vfb!==void 0&&this._visibleFacesBitmask!==t.vfb){this._visibleFacesBitmask=t.vfb;for(let e=0;e<this._faceResourceNames.length;e++)this._renderer.updateFace(e)}if(t.trfb!==void 0&&this._textureRepeatFacesBitmask!==t.trfb){this._textureRepeatFacesBitmask=t.trfb;for(let e=0;e<this._faceResourceNames.length;e++)this._renderer.updateFace(e)}if(t.frn!==void 0&&!this._faceResourceNames.every((e,s)=>e===t.frn[s])){this._faceResourceNames=t.frn;for(let e=0;e<this._faceResourceNames.length;e++)this._renderer.updateFace(e)}}shouldUseTransparentTexture(){return this._shouldUseTransparentTexture}_convertMaterialType(t){return t==="StandardWithoutMetalness"?c.Cube3DRuntimeObject.MaterialType.StandardWithoutMetalness:c.Cube3DRuntimeObject.MaterialType.Basic}setMaterialType(t){const e=this._convertMaterialType(t);this._materialType!==e&&(this._materialType=e,this._renderer._updateMaterials())}}c.Cube3DRuntimeObject=a,function(t){let n;(function(r){r[r.Basic=0]="Basic",r[r.StandardWithoutMetalness=1]="StandardWithoutMetalness"})(n=t.MaterialType||(t.MaterialType={}))}(a=c.Cube3DRuntimeObject||(c.Cube3DRuntimeObject={})),c.registerObject("Scene3D::Cube3DObject",c.Cube3DRuntimeObject)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=Cube3DRuntimeObject.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/Cube3DRuntimeObject.ts"],
4
- "sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.Cube3DRuntimeObject} */\n export interface Cube3DObjectData extends Object3DData {\n /** The base parameters of the Cube3D object */\n content: Object3DDataContent & {\n enableTextureTransparency: boolean;\n facesOrientation: 'Y' | 'Z';\n frontFaceResourceName: string;\n backFaceResourceName: string;\n backFaceUpThroughWhichAxisRotation: 'X' | 'Y';\n leftFaceResourceName: string;\n rightFaceResourceName: string;\n topFaceResourceName: string;\n bottomFaceResourceName: string;\n frontFaceResourceRepeat: boolean;\n backFaceResourceRepeat: boolean;\n leftFaceResourceRepeat: boolean;\n rightFaceResourceRepeat: boolean;\n topFaceResourceRepeat: boolean;\n bottomFaceResourceRepeat: boolean;\n frontFaceVisible: boolean;\n backFaceVisible: boolean;\n leftFaceVisible: boolean;\n rightFaceVisible: boolean;\n topFaceVisible: boolean;\n bottomFaceVisible: boolean;\n materialType: 'Basic' | 'StandardWithoutMetalness';\n };\n }\n\n type FaceName = 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';\n const faceNameToBitmaskIndex = {\n front: 0,\n back: 1,\n left: 2,\n right: 3,\n top: 4,\n bottom: 5,\n };\n\n /**\n * Shows a 3D box object.\n */\n export class Cube3DRuntimeObject extends gdjs.RuntimeObject3D {\n private _renderer: Cube3DRuntimeObjectRenderer;\n private _facesOrientation: 'Y' | 'Z';\n private _backFaceUpThroughWhichAxisRotation: 'X' | 'Y';\n private _shouldUseTransparentTexture: boolean;\n // `_rotationZ` is `angle` from `gdjs.RuntimeObject`.\n private _visibleFacesBitmask: integer;\n private _textureRepeatFacesBitmask: integer;\n private _faceResourceNames: [\n string,\n string,\n string,\n string,\n string,\n string\n ];\n _materialType: gdjs.Cube3DRuntimeObject.MaterialType =\n gdjs.Cube3DRuntimeObject.MaterialType.Basic;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: Cube3DObjectData\n ) {\n super(instanceContainer, objectData);\n this._shouldUseTransparentTexture =\n objectData.content.enableTextureTransparency || false;\n this._facesOrientation = objectData.content.facesOrientation || 'Y';\n this._visibleFacesBitmask = 0;\n if (objectData.content.frontFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['front'];\n if (objectData.content.backFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['back'];\n if (objectData.content.leftFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['left'];\n if (objectData.content.rightFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['right'];\n if (objectData.content.topFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['top'];\n if (objectData.content.bottomFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['bottom'];\n this._textureRepeatFacesBitmask = 0;\n if (objectData.content.frontFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['front'];\n if (objectData.content.backFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['back'];\n if (objectData.content.leftFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['left'];\n if (objectData.content.rightFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['right'];\n if (objectData.content.topFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['top'];\n if (objectData.content.bottomFaceResourceRepeat)\n this._textureRepeatFacesBitmask |=\n 1 << faceNameToBitmaskIndex['bottom'];\n this._backFaceUpThroughWhichAxisRotation =\n objectData.content.backFaceUpThroughWhichAxisRotation || 'X';\n this._faceResourceNames = [\n objectData.content.frontFaceResourceName,\n objectData.content.backFaceResourceName,\n objectData.content.leftFaceResourceName,\n objectData.content.rightFaceResourceName,\n objectData.content.topFaceResourceName,\n objectData.content.bottomFaceResourceName,\n ];\n this._materialType = this._convertMaterialType(\n objectData.content.materialType\n );\n\n this._renderer = new gdjs.Cube3DRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n /**\n * Sets the visibility of a face of the 3D box.\n *\n * @param faceName - The name of the face to set visibility for.\n * @param value - The visibility value to set.\n */\n setFaceVisibility(faceName: FaceName, enable: boolean) {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (enable === this.isFaceAtIndexVisible(faceIndex)) {\n return;\n }\n\n if (enable) {\n this._visibleFacesBitmask |= 1 << faceIndex;\n } else {\n this._visibleFacesBitmask &= ~(1 << faceIndex);\n }\n this._renderer.updateFace(faceIndex);\n }\n\n /**\n * Sets the texture repeat of a face of the 3D box.\n *\n * @param faceName - The name of the face to set visibility for.\n * @param value - The visibility value to set.\n */\n setRepeatTextureOnFace(faceName: FaceName, enable: boolean) {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (enable === this.shouldRepeatTextureOnFaceAtIndex(faceIndex)) {\n return;\n }\n\n if (enable) {\n this._textureRepeatFacesBitmask |= 1 << faceIndex;\n } else {\n this._textureRepeatFacesBitmask &= ~(1 << faceIndex);\n }\n this._renderer.updateFace(faceIndex);\n }\n\n isFaceVisible(faceName: FaceName): boolean {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return false;\n }\n\n return this.isFaceAtIndexVisible(faceIndex);\n }\n\n /** @internal */\n isFaceAtIndexVisible(faceIndex): boolean {\n return (this._visibleFacesBitmask & (1 << faceIndex)) !== 0;\n }\n\n /** @internal */\n shouldRepeatTextureOnFaceAtIndex(faceIndex): boolean {\n return (this._textureRepeatFacesBitmask & (1 << faceIndex)) !== 0;\n }\n\n setFaceResourceName(faceName: FaceName, resourceName: string): void {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (this._faceResourceNames[faceIndex] === resourceName) {\n return;\n }\n\n this._faceResourceNames[faceIndex] = resourceName;\n this._renderer.updateFace(faceIndex);\n }\n\n /** @internal */\n getFaceAtIndexResourceName(faceIndex: integer): string {\n return this._faceResourceNames[faceIndex];\n }\n\n getRenderer(): gdjs.RuntimeObject3DRenderer {\n return this._renderer;\n }\n\n getBackFaceUpThroughWhichAxisRotation(): 'X' | 'Y' {\n return this._backFaceUpThroughWhichAxisRotation;\n }\n\n setBackFaceUpThroughWhichAxisRotation(axis: 'X' | 'Y'): void {\n this._backFaceUpThroughWhichAxisRotation = axis;\n this._renderer.updateFace(faceNameToBitmaskIndex['back']);\n }\n\n getFacesOrientation(): 'Y' | 'Z' {\n return this._facesOrientation;\n }\n\n setFacesOrientation(orientation: 'Y' | 'Z'): void {\n this._facesOrientation = orientation;\n this._renderer.updateFace(faceNameToBitmaskIndex['left']);\n this._renderer.updateFace(faceNameToBitmaskIndex['right']);\n this._renderer.updateFace(faceNameToBitmaskIndex['top']);\n // Bottom texture should not change based on that setting.\n }\n\n updateFromObjectData(\n oldObjectData: Cube3DObjectData,\n newObjectData: Cube3DObjectData\n ): boolean {\n super.updateFromObjectData(oldObjectData, newObjectData);\n if (\n oldObjectData.content.frontFaceVisible !==\n newObjectData.content.frontFaceVisible\n ) {\n this.setFaceVisibility('front', newObjectData.content.frontFaceVisible);\n }\n if (\n oldObjectData.content.backFaceVisible !==\n newObjectData.content.backFaceVisible\n ) {\n this.setFaceVisibility('back', newObjectData.content.backFaceVisible);\n }\n if (\n oldObjectData.content.leftFaceVisible !==\n newObjectData.content.leftFaceVisible\n ) {\n this.setFaceVisibility('left', newObjectData.content.leftFaceVisible);\n }\n if (\n oldObjectData.content.rightFaceVisible !==\n newObjectData.content.rightFaceVisible\n ) {\n this.setFaceVisibility('right', newObjectData.content.rightFaceVisible);\n }\n if (\n oldObjectData.content.topFaceVisible !==\n newObjectData.content.topFaceVisible\n ) {\n this.setFaceVisibility('top', newObjectData.content.topFaceVisible);\n }\n if (\n oldObjectData.content.bottomFaceVisible !==\n newObjectData.content.bottomFaceVisible\n ) {\n this.setFaceVisibility(\n 'bottom',\n newObjectData.content.bottomFaceVisible\n );\n }\n if (\n oldObjectData.content.frontFaceResourceName !==\n newObjectData.content.frontFaceResourceName\n ) {\n this.setFaceResourceName(\n 'front',\n newObjectData.content.frontFaceResourceName\n );\n }\n if (\n oldObjectData.content.backFaceResourceName !==\n newObjectData.content.backFaceResourceName\n ) {\n this.setFaceResourceName(\n 'back',\n newObjectData.content.backFaceResourceName\n );\n }\n if (\n oldObjectData.content.leftFaceResourceName !==\n newObjectData.content.leftFaceResourceName\n ) {\n this.setFaceResourceName(\n 'left',\n newObjectData.content.leftFaceResourceName\n );\n }\n if (\n oldObjectData.content.rightFaceResourceName !==\n newObjectData.content.rightFaceResourceName\n ) {\n this.setFaceResourceName(\n 'right',\n newObjectData.content.rightFaceResourceName\n );\n }\n if (\n oldObjectData.content.topFaceResourceName !==\n newObjectData.content.topFaceResourceName\n ) {\n this.setFaceResourceName(\n 'top',\n newObjectData.content.topFaceResourceName\n );\n }\n if (\n oldObjectData.content.bottomFaceResourceName !==\n newObjectData.content.bottomFaceResourceName\n ) {\n this.setFaceResourceName(\n 'bottom',\n newObjectData.content.bottomFaceResourceName\n );\n }\n if (\n oldObjectData.content.frontFaceResourceRepeat !==\n newObjectData.content.frontFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'front',\n newObjectData.content.frontFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.backFaceResourceRepeat !==\n newObjectData.content.backFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'back',\n newObjectData.content.backFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.leftFaceResourceRepeat !==\n newObjectData.content.leftFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'left',\n newObjectData.content.leftFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.rightFaceResourceRepeat !==\n newObjectData.content.rightFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'right',\n newObjectData.content.rightFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.topFaceResourceRepeat !==\n newObjectData.content.topFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'top',\n newObjectData.content.topFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.bottomFaceResourceRepeat !==\n newObjectData.content.bottomFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'bottom',\n newObjectData.content.bottomFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.backFaceUpThroughWhichAxisRotation !==\n newObjectData.content.backFaceUpThroughWhichAxisRotation\n ) {\n this.setBackFaceUpThroughWhichAxisRotation(\n newObjectData.content.backFaceUpThroughWhichAxisRotation\n );\n }\n if (\n oldObjectData.content.facesOrientation !==\n newObjectData.content.facesOrientation\n ) {\n this.setFacesOrientation(newObjectData.content.facesOrientation);\n }\n if (\n oldObjectData.content.materialType !==\n newObjectData.content.materialType\n ) {\n this.setMaterialType(newObjectData.content.materialType);\n }\n\n return true;\n }\n\n /**\n * Return true if the texture transparency should be enabled.\n */\n shouldUseTransparentTexture(): boolean {\n return this._shouldUseTransparentTexture;\n }\n\n _convertMaterialType(\n materialTypeString: string\n ): gdjs.Cube3DRuntimeObject.MaterialType {\n if (materialTypeString === 'StandardWithoutMetalness') {\n return gdjs.Cube3DRuntimeObject.MaterialType.StandardWithoutMetalness;\n } else {\n return gdjs.Cube3DRuntimeObject.MaterialType.Basic;\n }\n }\n\n setMaterialType(materialTypeString: string) {\n const newMaterialType = this._convertMaterialType(materialTypeString);\n if (this._materialType === newMaterialType) {\n return;\n }\n\n this._materialType = newMaterialType;\n this._renderer._updateMaterials();\n }\n }\n\n export namespace Cube3DRuntimeObject {\n export enum MaterialType {\n Basic,\n StandardWithoutMetalness,\n }\n }\n gdjs.registerObject('Scene3D::Cube3DObject', gdjs.Cube3DRuntimeObject);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.Cube3DRuntimeObject} */\n export interface Cube3DObjectData extends Object3DData {\n /** The base parameters of the Cube3D object */\n content: Object3DDataContent & {\n enableTextureTransparency: boolean;\n facesOrientation: 'Y' | 'Z';\n frontFaceResourceName: string;\n backFaceResourceName: string;\n backFaceUpThroughWhichAxisRotation: 'X' | 'Y';\n leftFaceResourceName: string;\n rightFaceResourceName: string;\n topFaceResourceName: string;\n bottomFaceResourceName: string;\n frontFaceResourceRepeat: boolean;\n backFaceResourceRepeat: boolean;\n leftFaceResourceRepeat: boolean;\n rightFaceResourceRepeat: boolean;\n topFaceResourceRepeat: boolean;\n bottomFaceResourceRepeat: boolean;\n frontFaceVisible: boolean;\n backFaceVisible: boolean;\n leftFaceVisible: boolean;\n rightFaceVisible: boolean;\n topFaceVisible: boolean;\n bottomFaceVisible: boolean;\n materialType: 'Basic' | 'StandardWithoutMetalness';\n };\n }\n\n type FaceName = 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';\n const faceNameToBitmaskIndex = {\n front: 0,\n back: 1,\n left: 2,\n right: 3,\n top: 4,\n bottom: 5,\n };\n\n type Cube3DObjectNetworkSyncDataType = {\n fo: 'Y' | 'Z';\n bfu: 'X' | 'Y';\n vfb: integer;\n trfb: integer;\n frn: [string, string, string, string, string, string];\n mt: number;\n };\n\n type Cube3DObjectNetworkSyncData = Object3DNetworkSyncData &\n Cube3DObjectNetworkSyncDataType;\n\n /**\n * Shows a 3D box object.\n */\n export class Cube3DRuntimeObject extends gdjs.RuntimeObject3D {\n private _renderer: Cube3DRuntimeObjectRenderer;\n private _facesOrientation: 'Y' | 'Z';\n private _backFaceUpThroughWhichAxisRotation: 'X' | 'Y';\n private _shouldUseTransparentTexture: boolean;\n // `_rotationZ` is `angle` from `gdjs.RuntimeObject`.\n private _visibleFacesBitmask: integer;\n private _textureRepeatFacesBitmask: integer;\n private _faceResourceNames: [\n string,\n string,\n string,\n string,\n string,\n string\n ];\n _materialType: gdjs.Cube3DRuntimeObject.MaterialType =\n gdjs.Cube3DRuntimeObject.MaterialType.Basic;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: Cube3DObjectData\n ) {\n super(instanceContainer, objectData);\n this._shouldUseTransparentTexture =\n objectData.content.enableTextureTransparency || false;\n this._facesOrientation = objectData.content.facesOrientation || 'Y';\n this._visibleFacesBitmask = 0;\n if (objectData.content.frontFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['front'];\n if (objectData.content.backFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['back'];\n if (objectData.content.leftFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['left'];\n if (objectData.content.rightFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['right'];\n if (objectData.content.topFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['top'];\n if (objectData.content.bottomFaceVisible)\n this._visibleFacesBitmask |= 1 << faceNameToBitmaskIndex['bottom'];\n this._textureRepeatFacesBitmask = 0;\n if (objectData.content.frontFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['front'];\n if (objectData.content.backFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['back'];\n if (objectData.content.leftFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['left'];\n if (objectData.content.rightFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['right'];\n if (objectData.content.topFaceResourceRepeat)\n this._textureRepeatFacesBitmask |= 1 << faceNameToBitmaskIndex['top'];\n if (objectData.content.bottomFaceResourceRepeat)\n this._textureRepeatFacesBitmask |=\n 1 << faceNameToBitmaskIndex['bottom'];\n this._backFaceUpThroughWhichAxisRotation =\n objectData.content.backFaceUpThroughWhichAxisRotation || 'X';\n this._faceResourceNames = [\n objectData.content.frontFaceResourceName,\n objectData.content.backFaceResourceName,\n objectData.content.leftFaceResourceName,\n objectData.content.rightFaceResourceName,\n objectData.content.topFaceResourceName,\n objectData.content.bottomFaceResourceName,\n ];\n this._materialType = this._convertMaterialType(\n objectData.content.materialType\n );\n\n this._renderer = new gdjs.Cube3DRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n /**\n * Sets the visibility of a face of the 3D box.\n *\n * @param faceName - The name of the face to set visibility for.\n * @param value - The visibility value to set.\n */\n setFaceVisibility(faceName: FaceName, enable: boolean) {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (enable === this.isFaceAtIndexVisible(faceIndex)) {\n return;\n }\n\n if (enable) {\n this._visibleFacesBitmask |= 1 << faceIndex;\n } else {\n this._visibleFacesBitmask &= ~(1 << faceIndex);\n }\n this._renderer.updateFace(faceIndex);\n }\n\n /**\n * Sets the texture repeat of a face of the 3D box.\n *\n * @param faceName - The name of the face to set visibility for.\n * @param value - The visibility value to set.\n */\n setRepeatTextureOnFace(faceName: FaceName, enable: boolean) {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (enable === this.shouldRepeatTextureOnFaceAtIndex(faceIndex)) {\n return;\n }\n\n if (enable) {\n this._textureRepeatFacesBitmask |= 1 << faceIndex;\n } else {\n this._textureRepeatFacesBitmask &= ~(1 << faceIndex);\n }\n this._renderer.updateFace(faceIndex);\n }\n\n isFaceVisible(faceName: FaceName): boolean {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return false;\n }\n\n return this.isFaceAtIndexVisible(faceIndex);\n }\n\n /** @internal */\n isFaceAtIndexVisible(faceIndex): boolean {\n return (this._visibleFacesBitmask & (1 << faceIndex)) !== 0;\n }\n\n /** @internal */\n shouldRepeatTextureOnFaceAtIndex(faceIndex): boolean {\n return (this._textureRepeatFacesBitmask & (1 << faceIndex)) !== 0;\n }\n\n setFaceResourceName(faceName: FaceName, resourceName: string): void {\n const faceIndex = faceNameToBitmaskIndex[faceName];\n if (faceIndex === undefined) {\n return;\n }\n if (this._faceResourceNames[faceIndex] === resourceName) {\n return;\n }\n\n this._faceResourceNames[faceIndex] = resourceName;\n this._renderer.updateFace(faceIndex);\n }\n\n /** @internal */\n getFaceAtIndexResourceName(faceIndex: integer): string {\n return this._faceResourceNames[faceIndex];\n }\n\n getRenderer(): gdjs.RuntimeObject3DRenderer {\n return this._renderer;\n }\n\n getBackFaceUpThroughWhichAxisRotation(): 'X' | 'Y' {\n return this._backFaceUpThroughWhichAxisRotation;\n }\n\n setBackFaceUpThroughWhichAxisRotation(axis: 'X' | 'Y'): void {\n this._backFaceUpThroughWhichAxisRotation = axis;\n this._renderer.updateFace(faceNameToBitmaskIndex['back']);\n }\n\n getFacesOrientation(): 'Y' | 'Z' {\n return this._facesOrientation;\n }\n\n setFacesOrientation(orientation: 'Y' | 'Z'): void {\n this._facesOrientation = orientation;\n this._renderer.updateFace(faceNameToBitmaskIndex['left']);\n this._renderer.updateFace(faceNameToBitmaskIndex['right']);\n this._renderer.updateFace(faceNameToBitmaskIndex['top']);\n // Bottom texture should not change based on that setting.\n }\n\n updateFromObjectData(\n oldObjectData: Cube3DObjectData,\n newObjectData: Cube3DObjectData\n ): boolean {\n super.updateFromObjectData(oldObjectData, newObjectData);\n if (\n oldObjectData.content.frontFaceVisible !==\n newObjectData.content.frontFaceVisible\n ) {\n this.setFaceVisibility('front', newObjectData.content.frontFaceVisible);\n }\n if (\n oldObjectData.content.backFaceVisible !==\n newObjectData.content.backFaceVisible\n ) {\n this.setFaceVisibility('back', newObjectData.content.backFaceVisible);\n }\n if (\n oldObjectData.content.leftFaceVisible !==\n newObjectData.content.leftFaceVisible\n ) {\n this.setFaceVisibility('left', newObjectData.content.leftFaceVisible);\n }\n if (\n oldObjectData.content.rightFaceVisible !==\n newObjectData.content.rightFaceVisible\n ) {\n this.setFaceVisibility('right', newObjectData.content.rightFaceVisible);\n }\n if (\n oldObjectData.content.topFaceVisible !==\n newObjectData.content.topFaceVisible\n ) {\n this.setFaceVisibility('top', newObjectData.content.topFaceVisible);\n }\n if (\n oldObjectData.content.bottomFaceVisible !==\n newObjectData.content.bottomFaceVisible\n ) {\n this.setFaceVisibility(\n 'bottom',\n newObjectData.content.bottomFaceVisible\n );\n }\n if (\n oldObjectData.content.frontFaceResourceName !==\n newObjectData.content.frontFaceResourceName\n ) {\n this.setFaceResourceName(\n 'front',\n newObjectData.content.frontFaceResourceName\n );\n }\n if (\n oldObjectData.content.backFaceResourceName !==\n newObjectData.content.backFaceResourceName\n ) {\n this.setFaceResourceName(\n 'back',\n newObjectData.content.backFaceResourceName\n );\n }\n if (\n oldObjectData.content.leftFaceResourceName !==\n newObjectData.content.leftFaceResourceName\n ) {\n this.setFaceResourceName(\n 'left',\n newObjectData.content.leftFaceResourceName\n );\n }\n if (\n oldObjectData.content.rightFaceResourceName !==\n newObjectData.content.rightFaceResourceName\n ) {\n this.setFaceResourceName(\n 'right',\n newObjectData.content.rightFaceResourceName\n );\n }\n if (\n oldObjectData.content.topFaceResourceName !==\n newObjectData.content.topFaceResourceName\n ) {\n this.setFaceResourceName(\n 'top',\n newObjectData.content.topFaceResourceName\n );\n }\n if (\n oldObjectData.content.bottomFaceResourceName !==\n newObjectData.content.bottomFaceResourceName\n ) {\n this.setFaceResourceName(\n 'bottom',\n newObjectData.content.bottomFaceResourceName\n );\n }\n if (\n oldObjectData.content.frontFaceResourceRepeat !==\n newObjectData.content.frontFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'front',\n newObjectData.content.frontFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.backFaceResourceRepeat !==\n newObjectData.content.backFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'back',\n newObjectData.content.backFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.leftFaceResourceRepeat !==\n newObjectData.content.leftFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'left',\n newObjectData.content.leftFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.rightFaceResourceRepeat !==\n newObjectData.content.rightFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'right',\n newObjectData.content.rightFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.topFaceResourceRepeat !==\n newObjectData.content.topFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'top',\n newObjectData.content.topFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.bottomFaceResourceRepeat !==\n newObjectData.content.bottomFaceResourceRepeat\n ) {\n this.setRepeatTextureOnFace(\n 'bottom',\n newObjectData.content.bottomFaceResourceRepeat\n );\n }\n if (\n oldObjectData.content.backFaceUpThroughWhichAxisRotation !==\n newObjectData.content.backFaceUpThroughWhichAxisRotation\n ) {\n this.setBackFaceUpThroughWhichAxisRotation(\n newObjectData.content.backFaceUpThroughWhichAxisRotation\n );\n }\n if (\n oldObjectData.content.facesOrientation !==\n newObjectData.content.facesOrientation\n ) {\n this.setFacesOrientation(newObjectData.content.facesOrientation);\n }\n if (\n oldObjectData.content.materialType !==\n newObjectData.content.materialType\n ) {\n this.setMaterialType(newObjectData.content.materialType);\n }\n\n return true;\n }\n\n getNetworkSyncData(): Cube3DObjectNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n mt: this._materialType,\n fo: this._facesOrientation,\n bfu: this._backFaceUpThroughWhichAxisRotation,\n vfb: this._visibleFacesBitmask,\n trfb: this._textureRepeatFacesBitmask,\n frn: this._faceResourceNames,\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: Cube3DObjectNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n\n if (networkSyncData.mt !== undefined) {\n this._materialType = networkSyncData.mt;\n }\n if (networkSyncData.fo !== undefined) {\n if (this._facesOrientation !== networkSyncData.fo) {\n this.setFacesOrientation(networkSyncData.fo);\n }\n }\n if (networkSyncData.bfu !== undefined) {\n if (this._backFaceUpThroughWhichAxisRotation !== networkSyncData.bfu) {\n this.setBackFaceUpThroughWhichAxisRotation(networkSyncData.bfu);\n }\n }\n if (networkSyncData.vfb !== undefined) {\n // If it is different, update all the faces.\n if (this._visibleFacesBitmask !== networkSyncData.vfb) {\n this._visibleFacesBitmask = networkSyncData.vfb;\n for (let i = 0; i < this._faceResourceNames.length; i++) {\n this._renderer.updateFace(i);\n }\n }\n }\n if (networkSyncData.trfb !== undefined) {\n // If it is different, update all the faces.\n if (this._textureRepeatFacesBitmask !== networkSyncData.trfb) {\n this._textureRepeatFacesBitmask = networkSyncData.trfb;\n for (let i = 0; i < this._faceResourceNames.length; i++) {\n this._renderer.updateFace(i);\n }\n }\n }\n if (networkSyncData.frn !== undefined) {\n // If one element is different, update all the faces.\n if (\n !this._faceResourceNames.every(\n (value, index) => value === networkSyncData.frn[index]\n )\n ) {\n this._faceResourceNames = networkSyncData.frn;\n // Update all faces. (Could optimize to only update the changed ones)\n for (let i = 0; i < this._faceResourceNames.length; i++) {\n this._renderer.updateFace(i);\n }\n }\n }\n }\n\n /**\n * Return true if the texture transparency should be enabled.\n */\n shouldUseTransparentTexture(): boolean {\n return this._shouldUseTransparentTexture;\n }\n\n _convertMaterialType(\n materialTypeString: string\n ): gdjs.Cube3DRuntimeObject.MaterialType {\n if (materialTypeString === 'StandardWithoutMetalness') {\n return gdjs.Cube3DRuntimeObject.MaterialType.StandardWithoutMetalness;\n } else {\n return gdjs.Cube3DRuntimeObject.MaterialType.Basic;\n }\n }\n\n setMaterialType(materialTypeString: string) {\n const newMaterialType = this._convertMaterialType(materialTypeString);\n if (this._materialType === newMaterialType) {\n return;\n }\n\n this._materialType = newMaterialType;\n this._renderer._updateMaterials();\n }\n }\n\n export namespace Cube3DRuntimeObject {\n export enum MaterialType {\n Basic,\n StandardWithoutMetalness,\n }\n }\n gdjs.registerObject('Scene3D::Cube3DObject', gdjs.Cube3DRuntimeObject);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,2 @@
1
+ var gdjs;(function(r){class n extends r.CustomRuntimeObject{constructor(t,i){super(t,i);this._z=0;this._minZ=0;this._maxZ=0;this._scaleZ=1;this._flippedZ=!1;this._rotationX=0;this._rotationY=0;this._customCenterZ=0;this._renderer.reinitialize(this,t)}_createRender(){const t=this._runtimeScene;return new r.CustomRuntimeObject3DRenderer(this,this._instanceContainer,t)}_reinitializeRenderer(){this.getRenderer().reinitialize(this,this.getParent())}getRenderer(){return super.getRenderer()}get3DRendererObject(){return this.getRenderer().get3DRendererObject()}extraInitializationFromInitialInstance(t){super.extraInitializationFromInitialInstance(t),t.depth!==void 0&&this.setDepth(t.depth)}setZ(t){t!==this._z&&(this._z=t,this.getRenderer().updatePosition())}getZ(){return this._z}getDrawableZ(){return this._isUntransformedHitBoxesDirty&&this._updateUntransformedHitBoxes(),this._z+this._minZ}getCenterZ(){return this.getDepth()/2}getCenterZInScene(){return this.getDrawableZ()+this.getCenterZ()}setCenterZInScene(t){this.setZ(t+this._z-(this.getDrawableZ()+this.getCenterZ()))}getUnrotatedAABBMinZ(){return this.getDrawableZ()}getUnrotatedAABBMaxZ(){return this.getDrawableZ()+this.getDepth()}setRotationX(t){this._rotationX=t,this.getRenderer().updateRotation()}setRotationY(t){this._rotationY=t,this.getRenderer().updateRotation()}getRotationX(){return this._rotationX}getRotationY(){return this._rotationY}turnAroundX(t){const i=r.CustomRuntimeObject3D._temporaryVector;i.set(1,0,0);const e=this.get3DRendererObject();e.rotateOnWorldAxis(i,r.toRad(t)),this._rotationX=r.toDegrees(e.rotation.x),this._rotationY=r.toDegrees(e.rotation.y),this.setAngle(r.toDegrees(e.rotation.z))}turnAroundY(t){const i=r.CustomRuntimeObject3D._temporaryVector;i.set(0,1,0);const e=this.get3DRendererObject();e.rotateOnWorldAxis(i,r.toRad(t)),this._rotationX=r.toDegrees(e.rotation.x),this._rotationY=r.toDegrees(e.rotation.y),this.setAngle(r.toDegrees(e.rotation.z))}turnAroundZ(t){const i=r.CustomRuntimeObject3D._temporaryVector;i.set(0,0,1);const e=this.get3DRendererObject();e.rotateOnWorldAxis(i,r.toRad(t)),this._rotationX=r.toDegrees(e.rotation.x),this._rotationY=r.toDegrees(e.rotation.y),this.setAngle(r.toDegrees(e.rotation.z))}getUnscaledDepth(){return this._isUntransformedHitBoxesDirty&&this._updateUntransformedHitBoxes(),this._maxZ-this._minZ}_updateUntransformedHitBoxes(){super._updateUntransformedHitBoxes();let t=Number.MAX_VALUE,i=-Number.MAX_VALUE;for(const e of this._instanceContainer.getAdhocListOfAllInstances())!e.isIncludedInParentCollisionMask()||!r.Base3DHandler.is3D(e)||(t=Math.min(t,e.getUnrotatedAABBMinZ()),i=Math.max(i,e.getUnrotatedAABBMaxZ()));t===Number.MAX_VALUE&&(t=0,i=1),this._minZ=t,this._maxZ=i}getUnscaledCenterZ(){return this.hasCustomRotationCenter()?this._customCenterZ:(this._isUntransformedHitBoxesDirty&&this._updateUntransformedHitBoxes(),(this._minZ+this._maxZ)/2)}setRotationCenter3D(t,i,e){this._customCenterZ=e,this.setRotationCenter(t,i)}getDepth(){return this.getUnscaledDepth()*this.getScaleZ()}setDepth(t){const i=this.getUnscaledDepth();i!==0&&this.setScaleZ(t/i)}setScale(t){super.setScale(t),this.setScaleZ(t)}setScaleZ(t){t<0&&(t=0),t!==Math.abs(this._scaleZ)&&(this._scaleZ=t*(this._flippedZ?-1:1),this.getRenderer().updateSize())}getScale(){const t=this.getScaleX(),i=this.getScaleY(),e=this.getScaleZ();return t===i&&t===e?t:Math.pow(t*i*e,1/3)}getScaleZ(){return Math.abs(this._scaleZ)}flipZ(t){t!==this._flippedZ&&(this._flippedZ=t,this.getRenderer().updateSize())}isFlippedZ(){return this._flippedZ}}n._temporaryVector=new THREE.Vector3,r.CustomRuntimeObject3D=n})(gdjs||(gdjs={}));
2
+ //# sourceMappingURL=CustomRuntimeObject3D.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../GDevelop/Extensions/3D/CustomRuntimeObject3D.ts"],
4
+ "sourcesContent": ["namespace gdjs {\n export interface Object3DDataContent {\n width: float;\n height: float;\n depth: float;\n }\n /** Base parameters for {@link gdjs.RuntimeObject3D} */\n export interface Object3DData extends ObjectData {\n /** The base parameters of the RuntimeObject3D */\n content: Object3DDataContent;\n }\n\n /**\n * Base class for 3D custom objects.\n */\n export class CustomRuntimeObject3D\n extends gdjs.CustomRuntimeObject\n implements gdjs.Base3DHandler {\n /**\n * Position on the Z axis.\n */\n private _z: float = 0;\n private _minZ: float = 0;\n private _maxZ: float = 0;\n private _scaleZ: float = 1;\n private _flippedZ: boolean = false;\n /**\n * Euler angle with the `ZYX` order.\n *\n * Note that `_rotationZ` is `angle` from `gdjs.RuntimeObject`.\n */\n private _rotationX: float = 0;\n /**\n * Euler angle with the `ZYX` order.\n *\n * Note that `_rotationZ` is `angle` from `gdjs.RuntimeObject`.\n */\n private _rotationY: float = 0;\n private _customCenterZ: float = 0;\n private static _temporaryVector = new THREE.Vector3();\n\n constructor(\n parent: gdjs.RuntimeInstanceContainer,\n objectData: Object3DData & CustomObjectConfiguration\n ) {\n super(parent, objectData);\n this._renderer.reinitialize(this, parent);\n }\n\n protected _createRender() {\n const parent = this._runtimeScene;\n return new gdjs.CustomRuntimeObject3DRenderer(\n this,\n this._instanceContainer,\n parent\n );\n }\n\n protected _reinitializeRenderer(): void {\n this.getRenderer().reinitialize(this, this.getParent());\n }\n\n getRenderer(): gdjs.CustomRuntimeObject3DRenderer {\n return super.getRenderer() as gdjs.CustomRuntimeObject3DRenderer;\n }\n\n get3DRendererObject() {\n // It can't be null because Three.js is always loaded\n // when a custom 3D object is used.\n return this.getRenderer().get3DRendererObject()!;\n }\n\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n super.extraInitializationFromInitialInstance(initialInstanceData);\n if (initialInstanceData.depth !== undefined)\n this.setDepth(initialInstanceData.depth);\n }\n\n /**\n * Set the object position on the Z axis.\n */\n setZ(z: float): void {\n if (z === this._z) return;\n this._z = z;\n this.getRenderer().updatePosition();\n }\n\n /**\n * Get the object position on the Z axis.\n */\n getZ(): float {\n return this._z;\n }\n\n /**\n * Get the Z position of the rendered object.\n *\n * For most objects, this will returns the same value as getZ(). But if the\n * object has an origin that is not the same as the point (0,0,0) of the\n * object displayed, getDrawableZ will differ.\n *\n * @return The Z position of the rendered object.\n */\n getDrawableZ(): float {\n if (this._isUntransformedHitBoxesDirty) {\n this._updateUntransformedHitBoxes();\n }\n return this._z + this._minZ;\n }\n\n /**\n * Return the Z position of the object center, **relative to the object Z\n * position** (`getDrawableX`).\n *\n * Use `getCenterZInScene` to get the position of the center in the scene.\n *\n * @return the Z position of the object center, relative to\n * `getDrawableZ()`.\n */\n getCenterZ(): float {\n return this.getDepth() / 2;\n }\n\n getCenterZInScene(): float {\n return this.getDrawableZ() + this.getCenterZ();\n }\n\n setCenterZInScene(z: float): void {\n this.setZ(z + this._z - (this.getDrawableZ() + this.getCenterZ()));\n }\n\n /**\n * Return the bottom Z of the object.\n * Rotations around X and Y are not taken into account.\n */\n getUnrotatedAABBMinZ(): number {\n return this.getDrawableZ();\n }\n\n /**\n * Return the top Z of the object.\n * Rotations around X and Y are not taken into account.\n */\n getUnrotatedAABBMaxZ(): number {\n return this.getDrawableZ() + this.getDepth();\n }\n\n /**\n * Set the object rotation on the X axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n setRotationX(angle: float): void {\n this._rotationX = angle;\n this.getRenderer().updateRotation();\n }\n\n /**\n * Set the object rotation on the Y axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n setRotationY(angle: float): void {\n this._rotationY = angle;\n this.getRenderer().updateRotation();\n }\n\n /**\n * Get the object rotation on the X axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationX(): float {\n return this._rotationX;\n }\n\n /**\n * Get the object rotation on the Y axis.\n *\n * This is an Euler angle. Objects use the `ZYX` order.\n */\n getRotationY(): float {\n return this._rotationY;\n }\n\n /**\n * Turn the object around the scene x axis at its center.\n * @param deltaAngle the rotation angle\n */\n turnAroundX(deltaAngle: float): void {\n const axisX = gdjs.CustomRuntimeObject3D._temporaryVector;\n axisX.set(1, 0, 0);\n\n const mesh = this.get3DRendererObject();\n mesh.rotateOnWorldAxis(axisX, gdjs.toRad(deltaAngle));\n this._rotationX = gdjs.toDegrees(mesh.rotation.x);\n this._rotationY = gdjs.toDegrees(mesh.rotation.y);\n this.setAngle(gdjs.toDegrees(mesh.rotation.z));\n }\n\n /**\n * Turn the object around the scene y axis at its center.\n * @param deltaAngle the rotation angle\n */\n turnAroundY(deltaAngle: float): void {\n const axisY = gdjs.CustomRuntimeObject3D._temporaryVector;\n axisY.set(0, 1, 0);\n\n const mesh = this.get3DRendererObject();\n mesh.rotateOnWorldAxis(axisY, gdjs.toRad(deltaAngle));\n this._rotationX = gdjs.toDegrees(mesh.rotation.x);\n this._rotationY = gdjs.toDegrees(mesh.rotation.y);\n this.setAngle(gdjs.toDegrees(mesh.rotation.z));\n }\n\n /**\n * Turn the object around the scene z axis at its center.\n * @param deltaAngle the rotation angle\n */\n turnAroundZ(deltaAngle: float): void {\n const axisZ = gdjs.CustomRuntimeObject3D._temporaryVector;\n axisZ.set(0, 0, 1);\n\n const mesh = this.get3DRendererObject();\n mesh.rotateOnWorldAxis(axisZ, gdjs.toRad(deltaAngle));\n this._rotationX = gdjs.toDegrees(mesh.rotation.x);\n this._rotationY = gdjs.toDegrees(mesh.rotation.y);\n this.setAngle(gdjs.toDegrees(mesh.rotation.z));\n }\n\n /**\n * @return the internal width of the object according to its children.\n */\n getUnscaledDepth(): float {\n if (this._isUntransformedHitBoxesDirty) {\n this._updateUntransformedHitBoxes();\n }\n return this._maxZ - this._minZ;\n }\n\n _updateUntransformedHitBoxes(): void {\n super._updateUntransformedHitBoxes();\n\n let minZ = Number.MAX_VALUE;\n let maxZ = -Number.MAX_VALUE;\n for (const childInstance of this._instanceContainer.getAdhocListOfAllInstances()) {\n if (!childInstance.isIncludedInParentCollisionMask()) {\n continue;\n }\n if (!gdjs.Base3DHandler.is3D(childInstance)) {\n continue;\n }\n minZ = Math.min(minZ, childInstance.getUnrotatedAABBMinZ());\n maxZ = Math.max(maxZ, childInstance.getUnrotatedAABBMaxZ());\n }\n if (minZ === Number.MAX_VALUE) {\n // The unscaled size can't be 0 because setWidth and setHeight wouldn't\n // have any effect.\n minZ = 0;\n maxZ = 1;\n }\n this._minZ = minZ;\n this._maxZ = maxZ;\n }\n\n /**\n * @returns the center Z from the local origin (0;0).\n */\n getUnscaledCenterZ(): float {\n if (this.hasCustomRotationCenter()) {\n return this._customCenterZ;\n }\n if (this._isUntransformedHitBoxesDirty) {\n this._updateUntransformedHitBoxes();\n }\n return (this._minZ + this._maxZ) / 2;\n }\n\n /**\n * The center of rotation is defined relatively to the origin (the object\n * position).\n * This avoids the center to move when children push the bounds.\n *\n * When no custom center is defined, it will move\n * to stay at the center of the children bounds.\n *\n * @param x coordinate of the custom center\n * @param y coordinate of the custom center\n */\n setRotationCenter3D(x: float, y: float, z: float) {\n this._customCenterZ = z;\n this.setRotationCenter(x, y);\n }\n\n /**\n * Get the object size on the Z axis (called \"depth\").\n */\n getDepth(): float {\n return this.getUnscaledDepth() * this.getScaleZ();\n }\n\n /**\n * Set the object size on the Z axis (called \"depth\").\n */\n setDepth(depth: float): void {\n const unscaledDepth = this.getUnscaledDepth();\n if (unscaledDepth !== 0) {\n this.setScaleZ(depth / unscaledDepth);\n }\n }\n\n /**\n * Change the scale on X, Y and Z axis of the object.\n *\n * @param newScale The new scale (must be greater than 0).\n */\n setScale(newScale: number): void {\n super.setScale(newScale);\n this.setScaleZ(newScale);\n }\n\n /**\n * Change the scale on Z axis of the object (changing its height).\n *\n * @param newScale The new scale (must be greater than 0).\n */\n setScaleZ(newScale: number): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (newScale === Math.abs(this._scaleZ)) {\n return;\n }\n this._scaleZ = newScale * (this._flippedZ ? -1 : 1);\n this.getRenderer().updateSize();\n }\n\n /**\n * Get the scale of the object (or the geometric average of X, Y and Z scale in case they are different).\n *\n * @return the scale of the object (or the geometric average of X, Y and Z scale in case they are different).\n */\n getScale(): number {\n const scaleX = this.getScaleX();\n const scaleY = this.getScaleY();\n const scaleZ = this.getScaleZ();\n return scaleX === scaleY && scaleX === scaleZ\n ? scaleX\n : Math.pow(scaleX * scaleY * scaleZ, 1 / 3);\n }\n\n /**\n * Get the scale of the object on Z axis.\n *\n * @return the scale of the object on Z axis\n */\n getScaleZ(): float {\n return Math.abs(this._scaleZ);\n }\n\n flipZ(enable: boolean) {\n if (enable === this._flippedZ) {\n return;\n }\n this._flippedZ = enable;\n this.getRenderer().updateSize();\n }\n\n isFlippedZ(): boolean {\n return this._flippedZ;\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ var gdjs;(function(a){class u{constructor(e,t,i){this._isContainerDirty=!0;this._object=e,this._instanceContainer=t,this._threeGroup=new THREE.Group,this._threeGroup.rotation.order="ZYX";const r=i.getLayer("");r&&r.getRenderer().add3DRendererObject(this._threeGroup)}get3DRendererObject(){return this._threeGroup}getRendererObject(){return null}reinitialize(e,t){this._object=e,this._isContainerDirty=!0;const i=t.getLayer("");i&&i.getRenderer().add3DRendererObject(this._threeGroup)}_updateThreeGroup(){const e=this.get3DRendererObject(),t=this._object.getScaleX(),i=this._object.getScaleY(),r=this._object.getScaleZ(),n=this._object.getUnscaledCenterX()*t,s=this._object.getUnscaledCenterY()*i,o=this._object.getUnscaledCenterZ()*r;e.rotation.set(a.toRad(this._object.getRotationX()),a.toRad(this._object.getRotationY()),a.toRad(this._object.angle)),e.position.set(this._object.isFlippedX()?n:-n,this._object.isFlippedY()?s:-s,this._object.isFlippedZ()?o:-o),e.position.applyEuler(e.rotation),e.position.x+=this._object.getX()+n,e.position.y+=this._object.getY()+s,e.position.z+=this._object.getZ()+o,e.scale.set(this._object.isFlippedX()?-t:t,this._object.isFlippedY()?-i:i,this._object.isFlippedZ()?-r:r),e.visible=!this._object.hidden,this._isContainerDirty=!1}ensureUpToDate(){this._isContainerDirty&&this._updateThreeGroup()}update(){this._isContainerDirty=!0}updateX(){this._isContainerDirty=!0}updateY(){this._isContainerDirty=!0}updateAngle(){this._isContainerDirty=!0}updatePosition(){this._isContainerDirty=!0}updateRotation(){this._isContainerDirty=!0}updateSize(){this._isContainerDirty=!0}updateVisibility(){this._threeGroup.visible=!this._object.hidden}updateOpacity(){}setLayerIndex(e,t){}static getAnimationFrameTextureManager(e){return e._threeAnimationFrameTextureManager||(e._threeAnimationFrameTextureManager=new c(e)),e._threeAnimationFrameTextureManager}}a.CustomRuntimeObject3DRenderer=u;class c{constructor(e){this._imageManager=e}getAnimationFrameTexture(e){return this._imageManager.getThreeMaterial(e,{useTransparentTexture:!0,forceBasicMaterial:!0})}getAnimationFrameWidth(e){const t=e.map;return t?t.image.width:0}getAnimationFrameHeight(e){const t=e.map;return t?t.image.height:0}}})(gdjs||(gdjs={}));
2
+ //# sourceMappingURL=CustomRuntimeObject3DRenderer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../GDevelop/Extensions/3D/CustomRuntimeObject3DRenderer.ts"],
4
+ "sourcesContent": ["namespace gdjs {\n export interface PixiImageManager {\n _threeAnimationFrameTextureManager: ThreeAnimationFrameTextureManager;\n }\n /**\n * The renderer for a {@link gdjs.CustomRuntimeObject3D} using Three.js.\n */\n export class CustomRuntimeObject3DRenderer\n implements gdjs.RuntimeInstanceContainerRenderer {\n _object: gdjs.CustomRuntimeObject3D;\n _instanceContainer: gdjs.CustomRuntimeObjectInstanceContainer;\n _isContainerDirty: boolean = true;\n _threeGroup: THREE.Group;\n\n constructor(\n object: gdjs.CustomRuntimeObject3D,\n instanceContainer: gdjs.CustomRuntimeObjectInstanceContainer,\n parent: gdjs.RuntimeInstanceContainer\n ) {\n this._object = object;\n this._instanceContainer = instanceContainer;\n\n this._threeGroup = new THREE.Group();\n this._threeGroup.rotation.order = 'ZYX';\n\n const layer = parent.getLayer('');\n if (layer) {\n layer.getRenderer().add3DRendererObject(this._threeGroup);\n }\n }\n\n get3DRendererObject(): THREE.Object3D {\n return this._threeGroup;\n }\n\n getRendererObject() {\n return null;\n }\n\n reinitialize(\n object: gdjs.CustomRuntimeObject3D,\n parent: gdjs.RuntimeInstanceContainer\n ) {\n this._object = object;\n this._isContainerDirty = true;\n const layer = parent.getLayer('');\n if (layer) {\n layer.getRenderer().add3DRendererObject(this._threeGroup);\n }\n }\n\n _updateThreeGroup() {\n const threeObject3D = this.get3DRendererObject();\n\n const scaleX = this._object.getScaleX();\n const scaleY = this._object.getScaleY();\n const scaleZ = this._object.getScaleZ();\n const pivotX = this._object.getUnscaledCenterX() * scaleX;\n const pivotY = this._object.getUnscaledCenterY() * scaleY;\n const pivotZ = this._object.getUnscaledCenterZ() * scaleZ;\n\n threeObject3D.rotation.set(\n gdjs.toRad(this._object.getRotationX()),\n gdjs.toRad(this._object.getRotationY()),\n gdjs.toRad(this._object.angle)\n );\n\n threeObject3D.position.set(\n this._object.isFlippedX() ? pivotX : -pivotX,\n this._object.isFlippedY() ? pivotY : -pivotY,\n this._object.isFlippedZ() ? pivotZ : -pivotZ\n );\n threeObject3D.position.applyEuler(threeObject3D.rotation);\n threeObject3D.position.x += this._object.getX() + pivotX;\n threeObject3D.position.y += this._object.getY() + pivotY;\n threeObject3D.position.z += this._object.getZ() + pivotZ;\n\n threeObject3D.scale.set(\n this._object.isFlippedX() ? -scaleX : scaleX,\n this._object.isFlippedY() ? -scaleY : scaleY,\n this._object.isFlippedZ() ? -scaleZ : scaleZ\n );\n\n threeObject3D.visible = !this._object.hidden;\n\n this._isContainerDirty = false;\n }\n\n /**\n * Call this to make sure the object is ready to be rendered.\n */\n ensureUpToDate() {\n if (this._isContainerDirty) {\n this._updateThreeGroup();\n }\n }\n\n update(): void {\n this._isContainerDirty = true;\n }\n\n updateX(): void {\n this._isContainerDirty = true;\n }\n\n updateY(): void {\n this._isContainerDirty = true;\n }\n\n updateAngle(): void {\n this._isContainerDirty = true;\n }\n\n updatePosition() {\n this._isContainerDirty = true;\n }\n\n updateRotation() {\n this._isContainerDirty = true;\n }\n\n updateSize() {\n this._isContainerDirty = true;\n }\n\n updateVisibility(): void {\n this._threeGroup.visible = !this._object.hidden;\n }\n\n updateOpacity(): void {\n // Opacity is not handled by 3D custom objects.\n }\n\n setLayerIndex(layer: gdjs.RuntimeLayer, index: float): void {\n // Layers are not handled for 3D custom objects.\n }\n\n static getAnimationFrameTextureManager(\n imageManager: gdjs.PixiImageManager\n ): ThreeAnimationFrameTextureManager {\n if (!imageManager._threeAnimationFrameTextureManager) {\n imageManager._threeAnimationFrameTextureManager = new ThreeAnimationFrameTextureManager(\n imageManager\n );\n }\n return imageManager._threeAnimationFrameTextureManager;\n }\n }\n\n class ThreeAnimationFrameTextureManager\n implements gdjs.AnimationFrameTextureManager<THREE.Material> {\n private _imageManager: gdjs.PixiImageManager;\n\n constructor(imageManager: gdjs.PixiImageManager) {\n this._imageManager = imageManager;\n }\n\n getAnimationFrameTexture(imageName: string) {\n return this._imageManager.getThreeMaterial(imageName, {\n useTransparentTexture: true,\n forceBasicMaterial: true,\n });\n }\n\n getAnimationFrameWidth(material: THREE.Material) {\n const map = (material as\n | THREE.MeshBasicMaterial\n | THREE.MeshStandardMaterial).map;\n return map ? map.image.width : 0;\n }\n\n getAnimationFrameHeight(material: THREE.Material) {\n const map = (material as\n | THREE.MeshBasicMaterial\n | THREE.MeshStandardMaterial).map;\n return map ? map.image.height : 0;\n }\n }\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAOS,OAC4C,CAMjD,YACE,EACA,EACA,EACA,CAPF,uBAA6B,GAQ3B,KAAK,QAAU,EACf,KAAK,mBAAqB,EAE1B,KAAK,YAAc,GAAI,OAAM,MAC7B,KAAK,YAAY,SAAS,MAAQ,MAElC,KAAM,GAAQ,EAAO,SAAS,IAC9B,AAAI,GACF,EAAM,cAAc,oBAAoB,KAAK,aAIjD,qBAAsC,CACpC,MAAO,MAAK,YAGd,mBAAoB,CAClB,MAAO,MAGT,aACE,EACA,EACA,CACA,KAAK,QAAU,EACf,KAAK,kBAAoB,GACzB,KAAM,GAAQ,EAAO,SAAS,IAC9B,AAAI,GACF,EAAM,cAAc,oBAAoB,KAAK,aAIjD,mBAAoB,CAClB,KAAM,GAAgB,KAAK,sBAErB,EAAS,KAAK,QAAQ,YACtB,EAAS,KAAK,QAAQ,YACtB,EAAS,KAAK,QAAQ,YACtB,EAAS,KAAK,QAAQ,qBAAuB,EAC7C,EAAS,KAAK,QAAQ,qBAAuB,EAC7C,EAAS,KAAK,QAAQ,qBAAuB,EAEnD,EAAc,SAAS,IACrB,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,gBACxB,EAAK,MAAM,KAAK,QAAQ,QAG1B,EAAc,SAAS,IACrB,KAAK,QAAQ,aAAe,EAAS,CAAC,EACtC,KAAK,QAAQ,aAAe,EAAS,CAAC,EACtC,KAAK,QAAQ,aAAe,EAAS,CAAC,GAExC,EAAc,SAAS,WAAW,EAAc,UAChD,EAAc,SAAS,GAAK,KAAK,QAAQ,OAAS,EAClD,EAAc,SAAS,GAAK,KAAK,QAAQ,OAAS,EAClD,EAAc,SAAS,GAAK,KAAK,QAAQ,OAAS,EAElD,EAAc,MAAM,IAClB,KAAK,QAAQ,aAAe,CAAC,EAAS,EACtC,KAAK,QAAQ,aAAe,CAAC,EAAS,EACtC,KAAK,QAAQ,aAAe,CAAC,EAAS,GAGxC,EAAc,QAAU,CAAC,KAAK,QAAQ,OAEtC,KAAK,kBAAoB,GAM3B,gBAAiB,CACf,AAAI,KAAK,mBACP,KAAK,oBAIT,QAAe,CACb,KAAK,kBAAoB,GAG3B,SAAgB,CACd,KAAK,kBAAoB,GAG3B,SAAgB,CACd,KAAK,kBAAoB,GAG3B,aAAoB,CAClB,KAAK,kBAAoB,GAG3B,gBAAiB,CACf,KAAK,kBAAoB,GAG3B,gBAAiB,CACf,KAAK,kBAAoB,GAG3B,YAAa,CACX,KAAK,kBAAoB,GAG3B,kBAAyB,CACvB,KAAK,YAAY,QAAU,CAAC,KAAK,QAAQ,OAG3C,eAAsB,EAItB,cAAc,EAA0B,EAAoB,QAIrD,iCACL,EACmC,CACnC,MAAK,GAAa,oCAChB,GAAa,mCAAqC,GAAI,GACpD,IAGG,EAAa,oCA1IjB,EAAM,gCA8Ib,OAC+D,CAG7D,YAAY,EAAqC,CAC/C,KAAK,cAAgB,EAGvB,yBAAyB,EAAmB,CAC1C,MAAO,MAAK,cAAc,iBAAiB,EAAW,CACpD,sBAAuB,GACvB,mBAAoB,KAIxB,uBAAuB,EAA0B,CAC/C,KAAM,GAAO,EAEmB,IAChC,MAAO,GAAM,EAAI,MAAM,MAAQ,EAGjC,wBAAwB,EAA0B,CAChD,KAAM,GAAO,EAEmB,IAChC,MAAO,GAAM,EAAI,MAAM,OAAS,MA/K5B",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(i){i.PixiFiltersTools.registerFilterCreator("Scene3D::DirectionalLight",new class{makeFilter(o,r){return typeof THREE=="undefined"?new i.PixiFiltersTools.EmptyFilter:new class{constructor(){this._isEnabled=!1;this.top="Y-";this.elevation=45;this.rotation=0;this.light=new THREE.DirectionalLight,this.light.position.set(1,0,0),this.rotationObject=new THREE.Group,this.rotationObject.add(this.light),this.updateRotation()}isEnabled(t){return this._isEnabled}setEnabled(t,e){return this._isEnabled===e?!0:e?this.applyEffect(t):this.removeEffect(t)}applyEffect(t){const e=t.get3DRendererObject();return e?(e.add(this.rotationObject),this._isEnabled=!0,!0):!1}removeEffect(t){const e=t.get3DRendererObject();return e?(e.remove(this.rotationObject),this._isEnabled=!1,!0):!1}updatePreRender(t){}updateDoubleParameter(t,e){t==="intensity"?this.light.intensity=e:t==="elevation"?(this.elevation=e,this.updateRotation()):t==="rotation"&&(this.rotation=e,this.updateRotation())}getDoubleParameter(t){return t==="intensity"?this.light.intensity:t==="elevation"?this.elevation:t==="rotation"?this.rotation:0}updateStringParameter(t,e){t==="color"&&(this.light.color=new THREE.Color(i.PixiFiltersTools.rgbOrHexToHexNumber(e))),t==="top"&&(this.top=e,this.updateRotation())}updateColorParameter(t,e){t==="color"&&this.light.color.setHex(e)}getColorParameter(t){return t==="color"?this.light.color.getHex():0}updateBooleanParameter(t,e){}updateRotation(){this.top==="Z+"?(this.rotationObject.rotation.z=i.toRad(this.rotation),this.rotationObject.rotation.y=-i.toRad(this.elevation)):(this.rotationObject.rotation.y=i.toRad(this.rotation-90),this.rotationObject.rotation.z=-i.toRad(this.elevation))}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(i){i.PixiFiltersTools.registerFilterCreator("Scene3D::DirectionalLight",new class{makeFilter(o,r){return typeof THREE=="undefined"?new i.PixiFiltersTools.EmptyFilter:new class{constructor(){this._isEnabled=!1;this.top="Y-";this.elevation=45;this.rotation=0;this.light=new THREE.DirectionalLight,this.light.position.set(1,0,0),this.rotationObject=new THREE.Group,this.rotationObject.add(this.light),this.updateRotation()}isEnabled(t){return this._isEnabled}setEnabled(t,e){return this._isEnabled===e?!0:e?this.applyEffect(t):this.removeEffect(t)}applyEffect(t){const e=t.get3DRendererObject();return e?(e.add(this.rotationObject),this._isEnabled=!0,!0):!1}removeEffect(t){const e=t.get3DRendererObject();return e?(e.remove(this.rotationObject),this._isEnabled=!1,!0):!1}updatePreRender(t){}updateDoubleParameter(t,e){t==="intensity"?this.light.intensity=e:t==="elevation"?(this.elevation=e,this.updateRotation()):t==="rotation"&&(this.rotation=e,this.updateRotation())}getDoubleParameter(t){return t==="intensity"?this.light.intensity:t==="elevation"?this.elevation:t==="rotation"?this.rotation:0}updateStringParameter(t,e){t==="color"&&(this.light.color=new THREE.Color(i.PixiFiltersTools.rgbOrHexToHexNumber(e))),t==="top"&&(this.top=e,this.updateRotation())}updateColorParameter(t,e){t==="color"&&this.light.color.setHex(e)}getColorParameter(t){return t==="color"?this.light.color.getHex():0}updateBooleanParameter(t,e){}updateRotation(){this.top==="Z+"?(this.rotationObject.rotation.z=i.toRad(this.rotation),this.rotationObject.rotation.y=-i.toRad(this.elevation)):(this.rotationObject.rotation.y=i.toRad(this.rotation-90),this.rotationObject.rotation.z=-i.toRad(this.elevation))}getNetworkSyncData(){return{i:this.light.intensity,c:this.light.color.getHex(),e:this.elevation,r:this.rotation,t:this.top}}updateFromNetworkSyncData(t){this.light.intensity=t.i,this.light.color.setHex(t.c),this.elevation=t.e,this.rotation=t.r,this.top=t.t,this.updateRotation()}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=DirectionalLight.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/DirectionalLight.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::DirectionalLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n light: THREE.DirectionalLight;\n rotationObject: THREE.Group;\n _isEnabled: boolean = false;\n top: string = 'Y-';\n elevation: float = 45;\n rotation: float = 0;\n\n constructor() {\n this.light = new THREE.DirectionalLight();\n this.light.position.set(1, 0, 0);\n this.rotationObject = new THREE.Group();\n this.rotationObject.add(this.light);\n this.updateRotation();\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this.rotationObject);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this.rotationObject);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this.light.intensity = value;\n } else if (parameterName === 'elevation') {\n this.elevation = value;\n this.updateRotation();\n } else if (parameterName === 'rotation') {\n this.rotation = value;\n this.updateRotation();\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this.light.intensity;\n } else if (parameterName === 'elevation') {\n return this.elevation;\n } else if (parameterName === 'rotation') {\n return this.rotation;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.light.color = new THREE.Color(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n if (parameterName === 'top') {\n this.top = value;\n this.updateRotation();\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n updateRotation() {\n if (this.top === 'Z+') {\n // 0\u00B0 is a light from the right of the screen.\n this.rotationObject.rotation.z = gdjs.toRad(this.rotation);\n this.rotationObject.rotation.y = -gdjs.toRad(this.elevation);\n } else {\n // 0\u00B0 becomes a light from Z+.\n this.rotationObject.rotation.y = gdjs.toRad(this.rotation - 90);\n this.rotationObject.rotation.z = -gdjs.toRad(this.elevation);\n }\n }\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,4BACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAQxD,aAAc,CALd,gBAAsB,GACtB,SAAc,KACd,eAAmB,GACnB,cAAkB,EAGhB,KAAK,MAAQ,GAAI,OAAM,iBACvB,KAAK,MAAM,SAAS,IAAI,EAAG,EAAG,GAC9B,KAAK,eAAiB,GAAI,OAAM,MAChC,KAAK,eAAe,IAAI,KAAK,OAC7B,KAAK,iBAGP,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,IAAI,KAAK,gBACf,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,OAAO,KAAK,gBAClB,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,KAAK,MAAM,UAAY,EAClB,AAAI,IAAkB,YAC3B,MAAK,UAAY,EACjB,KAAK,kBACI,IAAkB,YAC3B,MAAK,SAAW,EAChB,KAAK,kBAGT,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,YACb,KAAK,MAAM,UACT,IAAkB,YACpB,KAAK,UACH,IAAkB,WACpB,KAAK,SAEP,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,MAAK,MAAM,MAAQ,GAAI,OAAM,MAC3B,EAAK,iBAAiB,oBAAoB,KAG1C,IAAkB,OACpB,MAAK,IAAM,EACX,KAAK,kBAGT,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OAAO,GAG5B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,MAAM,MAAM,SAEnB,EAET,uBAAuB,EAAuB,EAAsB,EACpE,gBAAiB,CACf,AAAI,KAAK,MAAQ,KAEf,MAAK,eAAe,SAAS,EAAI,EAAK,MAAM,KAAK,UACjD,KAAK,eAAe,SAAS,EAAI,CAAC,EAAK,MAAM,KAAK,YAGlD,MAAK,eAAe,SAAS,EAAI,EAAK,MAAM,KAAK,SAAW,IAC5D,KAAK,eAAe,SAAS,EAAI,CAAC,EAAK,MAAM,KAAK,mBArHtD",
4
+ "sourcesContent": ["namespace gdjs {\n interface DirectionalLightFilterNetworkSyncData {\n i: number;\n c: number;\n e: number;\n r: number;\n t: string;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::DirectionalLight',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n light: THREE.DirectionalLight;\n rotationObject: THREE.Group;\n _isEnabled: boolean = false;\n top: string = 'Y-';\n elevation: float = 45;\n rotation: float = 0;\n\n constructor() {\n this.light = new THREE.DirectionalLight();\n this.light.position.set(1, 0, 0);\n this.rotationObject = new THREE.Group();\n this.rotationObject.add(this.light);\n this.updateRotation();\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.add(this.rotationObject);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene) {\n return false;\n }\n scene.remove(this.rotationObject);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'intensity') {\n this.light.intensity = value;\n } else if (parameterName === 'elevation') {\n this.elevation = value;\n this.updateRotation();\n } else if (parameterName === 'rotation') {\n this.rotation = value;\n this.updateRotation();\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'intensity') {\n return this.light.intensity;\n } else if (parameterName === 'elevation') {\n return this.elevation;\n } else if (parameterName === 'rotation') {\n return this.rotation;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.light.color = new THREE.Color(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n if (parameterName === 'top') {\n this.top = value;\n this.updateRotation();\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.light.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.light.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n updateRotation() {\n if (this.top === 'Z+') {\n // 0\u00B0 is a light from the right of the screen.\n this.rotationObject.rotation.z = gdjs.toRad(this.rotation);\n this.rotationObject.rotation.y = -gdjs.toRad(this.elevation);\n } else {\n // 0\u00B0 becomes a light from Z+.\n this.rotationObject.rotation.y = gdjs.toRad(this.rotation - 90);\n this.rotationObject.rotation.z = -gdjs.toRad(this.elevation);\n }\n }\n getNetworkSyncData(): DirectionalLightFilterNetworkSyncData {\n return {\n i: this.light.intensity,\n c: this.light.color.getHex(),\n e: this.elevation,\n r: this.rotation,\n t: this.top,\n };\n }\n updateFromNetworkSyncData(syncData: any): void {\n this.light.intensity = syncData.i;\n this.light.color.setHex(syncData.c);\n this.elevation = syncData.e;\n this.rotation = syncData.r;\n this.top = syncData.t;\n this.updateRotation();\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAQE,EAAK,iBAAiB,sBACpB,4BACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAQxD,aAAc,CALd,gBAAsB,GACtB,SAAc,KACd,eAAmB,GACnB,cAAkB,EAGhB,KAAK,MAAQ,GAAI,OAAM,iBACvB,KAAK,MAAM,SAAS,IAAI,EAAG,EAAG,GAC9B,KAAK,eAAiB,GAAI,OAAM,MAChC,KAAK,eAAe,IAAI,KAAK,OAC7B,KAAK,iBAGP,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,IAAI,KAAK,gBACf,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAK,GAGL,GAAM,OAAO,KAAK,gBAClB,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,KAAK,MAAM,UAAY,EAClB,AAAI,IAAkB,YAC3B,MAAK,UAAY,EACjB,KAAK,kBACI,IAAkB,YAC3B,MAAK,SAAW,EAChB,KAAK,kBAGT,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,YACb,KAAK,MAAM,UACT,IAAkB,YACpB,KAAK,UACH,IAAkB,WACpB,KAAK,SAEP,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,MAAK,MAAM,MAAQ,GAAI,OAAM,MAC3B,EAAK,iBAAiB,oBAAoB,KAG1C,IAAkB,OACpB,MAAK,IAAM,EACX,KAAK,kBAGT,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,MAAM,MAAM,OAAO,GAG5B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,MAAM,MAAM,SAEnB,EAET,uBAAuB,EAAuB,EAAsB,EACpE,gBAAiB,CACf,AAAI,KAAK,MAAQ,KAEf,MAAK,eAAe,SAAS,EAAI,EAAK,MAAM,KAAK,UACjD,KAAK,eAAe,SAAS,EAAI,CAAC,EAAK,MAAM,KAAK,YAGlD,MAAK,eAAe,SAAS,EAAI,EAAK,MAAM,KAAK,SAAW,IAC5D,KAAK,eAAe,SAAS,EAAI,CAAC,EAAK,MAAM,KAAK,YAGtD,oBAA4D,CAC1D,MAAO,CACL,EAAG,KAAK,MAAM,UACd,EAAG,KAAK,MAAM,MAAM,SACpB,EAAG,KAAK,UACR,EAAG,KAAK,SACR,EAAG,KAAK,KAGZ,0BAA0B,EAAqB,CAC7C,KAAK,MAAM,UAAY,EAAS,EAChC,KAAK,MAAM,MAAM,OAAO,EAAS,GACjC,KAAK,UAAY,EAAS,EAC1B,KAAK,SAAW,EAAS,EACzB,KAAK,IAAM,EAAS,EACpB,KAAK,wBA9IP",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::ExponentialFog",new class{makeFilter(n,o){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.fog=new THREE.FogExp2(16777215)}isEnabled(e){const t=e.get3DRendererObject();return t?t.fog===this.fog:!1}setEnabled(e,t){return t?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){const t=e.get3DRendererObject();return!t||t.fog===void 0?!1:(t.fog=this.fog,!0)}removeEffect(e){const t=e.get3DRendererObject();return!t||t.fog===void 0?!1:(t.fog=null,!0)}updatePreRender(e){}updateDoubleParameter(e,t){e==="density"&&(this.fog.density=t)}getDoubleParameter(e){return e==="density"?this.fog.density:0}updateStringParameter(e,t){e==="color"&&(this.fog.color=new THREE.Color(r.PixiFiltersTools.rgbOrHexToHexNumber(t)))}updateColorParameter(e,t){e==="color"&&this.fog.color.setHex(t)}getColorParameter(e){return e==="color"?this.fog.color.getHex():0}updateBooleanParameter(e,t){}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(r){r.PixiFiltersTools.registerFilterCreator("Scene3D::ExponentialFog",new class{makeFilter(o,n){return typeof THREE=="undefined"?new r.PixiFiltersTools.EmptyFilter:new class{constructor(){this.fog=new THREE.FogExp2(16777215)}isEnabled(e){const t=e.get3DRendererObject();return t?t.fog===this.fog:!1}setEnabled(e,t){return t?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){const t=e.get3DRendererObject();return!t||t.fog===void 0?!1:(t.fog=this.fog,!0)}removeEffect(e){const t=e.get3DRendererObject();return!t||t.fog===void 0?!1:(t.fog=null,!0)}updatePreRender(e){}updateDoubleParameter(e,t){e==="density"&&(this.fog.density=t)}getDoubleParameter(e){return e==="density"?this.fog.density:0}updateStringParameter(e,t){e==="color"&&(this.fog.color=new THREE.Color(r.PixiFiltersTools.rgbOrHexToHexNumber(t)))}updateColorParameter(e,t){e==="color"&&this.fog.color.setHex(t)}getColorParameter(e){return e==="color"?this.fog.color.getHex():0}updateBooleanParameter(e,t){}getNetworkSyncData(){return{d:this.fog.density,c:this.fog.color.getHex()}}updateFromNetworkSyncData(e){this.fog.density=e.d,this.fog.color.setHex(e.c)}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=ExponentialFog.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/ExponentialFog.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::ExponentialFog',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n fog: THREE.FogExp2;\n\n constructor() {\n this.fog = new THREE.FogExp2(0xffffff);\n }\n\n isEnabled(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n return scene ? scene.fog === this.fog : false;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene || scene.fog === undefined) {\n return false;\n }\n scene.fog = this.fog;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene || scene.fog === undefined) {\n return false;\n }\n scene.fog = null;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'density') {\n this.fog.density = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'density') {\n return this.fog.density;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.fog.color = new THREE.Color(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.fog.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.fog.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,0BACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAGxD,aAAc,CACZ,KAAK,IAAM,GAAI,OAAM,QAAQ,UAG/B,UAAU,EAAgC,CACxC,KAAM,GAAQ,EAAO,sBAIrB,MAAO,GAAQ,EAAM,MAAQ,KAAK,IAAM,GAE1C,WAAW,EAAuB,EAA2B,CAC3D,MAAI,GACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAI,CAAC,GAAS,EAAM,MAAQ,OACnB,GAET,GAAM,IAAM,KAAK,IACV,IAET,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAI,CAAC,GAAS,EAAM,MAAQ,OACnB,GAET,GAAM,IAAM,KACL,IAET,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,WACpB,MAAK,IAAI,QAAU,GAGvB,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,UACb,KAAK,IAAI,QAEX,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,MAAK,IAAI,MAAQ,GAAI,OAAM,MACzB,EAAK,iBAAiB,oBAAoB,KAIhD,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,IAAI,MAAM,OAAO,GAG1B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,IAAI,MAAM,SAEjB,EAET,uBAAuB,EAAuB,EAAsB,SApFpE",
4
+ "sourcesContent": ["namespace gdjs {\n interface ExponentialFogFilterNetworkSyncData {\n d: number;\n c: number;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::ExponentialFog',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n fog: THREE.FogExp2;\n\n constructor() {\n this.fog = new THREE.FogExp2(0xffffff);\n }\n\n isEnabled(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n return scene ? scene.fog === this.fog : false;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene || scene.fog === undefined) {\n return false;\n }\n scene.fog = this.fog;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n const scene = target.get3DRendererObject() as\n | THREE.Scene\n | null\n | undefined;\n if (!scene || scene.fog === undefined) {\n return false;\n }\n scene.fog = null;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'density') {\n this.fog.density = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'density') {\n return this.fog.density;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {\n if (parameterName === 'color') {\n this.fog.color = new THREE.Color(\n gdjs.PixiFiltersTools.rgbOrHexToHexNumber(value)\n );\n }\n }\n updateColorParameter(parameterName: string, value: number): void {\n if (parameterName === 'color') {\n this.fog.color.setHex(value);\n }\n }\n getColorParameter(parameterName: string): number {\n if (parameterName === 'color') {\n return this.fog.color.getHex();\n }\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n getNetworkSyncData(): ExponentialFogFilterNetworkSyncData {\n return {\n d: this.fog.density,\n c: this.fog.color.getHex(),\n };\n }\n updateFromNetworkSyncData(\n syncData: ExponentialFogFilterNetworkSyncData\n ): void {\n this.fog.density = syncData.d;\n this.fog.color.setHex(syncData.c);\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAKE,EAAK,iBAAiB,sBACpB,0BACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAGxD,aAAc,CACZ,KAAK,IAAM,GAAI,OAAM,QAAQ,UAG/B,UAAU,EAAgC,CACxC,KAAM,GAAQ,EAAO,sBAIrB,MAAO,GAAQ,EAAM,MAAQ,KAAK,IAAM,GAE1C,WAAW,EAAuB,EAA2B,CAC3D,MAAI,GACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,KAAM,GAAQ,EAAO,sBAIrB,MAAI,CAAC,GAAS,EAAM,MAAQ,OACnB,GAET,GAAM,IAAM,KAAK,IACV,IAET,aAAa,EAAgC,CAC3C,KAAM,GAAQ,EAAO,sBAIrB,MAAI,CAAC,GAAS,EAAM,MAAQ,OACnB,GAET,GAAM,IAAM,KACL,IAET,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,WACpB,MAAK,IAAI,QAAU,GAGvB,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,UACb,KAAK,IAAI,QAEX,EAET,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,SACpB,MAAK,IAAI,MAAQ,GAAI,OAAM,MACzB,EAAK,iBAAiB,oBAAoB,KAIhD,qBAAqB,EAAuB,EAAqB,CAC/D,AAAI,IAAkB,SACpB,KAAK,IAAI,MAAM,OAAO,GAG1B,kBAAkB,EAA+B,CAC/C,MAAI,KAAkB,QACb,KAAK,IAAI,MAAM,SAEjB,EAET,uBAAuB,EAAuB,EAAsB,EACpE,oBAA0D,CACxD,MAAO,CACL,EAAG,KAAK,IAAI,QACZ,EAAG,KAAK,IAAI,MAAM,UAGtB,0BACE,EACM,CACN,KAAK,IAAI,QAAU,EAAS,EAC5B,KAAK,IAAI,MAAM,OAAO,EAAS,UAnGjC",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(s){s.PixiFiltersTools.registerFilterCreator("Scene3D::Exposure",new class{makeFilter(t,a){return typeof THREE=="undefined"?new s.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.ShaderPass(THREE_ADDONS.ExposureShader),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,r){return this._isEnabled===r?!0:r?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof s.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof s.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,r){e==="exposure"&&(this.shaderPass.uniforms[e].value=r)}getDoubleParameter(e){return e==="exposure"?this.shaderPass.uniforms[e].value:0}updateStringParameter(e,r){}updateColorParameter(e,r){}getColorParameter(e){return 0}updateBooleanParameter(e,r){}}}})})(gdjs||(gdjs={}));
1
+ var gdjs;(function(t){t.PixiFiltersTools.registerFilterCreator("Scene3D::Exposure",new class{makeFilter(s,a){return typeof THREE=="undefined"?new t.PixiFiltersTools.EmptyFilter:new class{constructor(){this.shaderPass=new THREE_ADDONS.ShaderPass(THREE_ADDONS.ExposureShader),this._isEnabled=!1}isEnabled(e){return this._isEnabled}setEnabled(e,r){return this._isEnabled===r?!0:r?this.applyEffect(e):this.removeEffect(e)}applyEffect(e){return e instanceof t.Layer?(e.getRenderer().addPostProcessingPass(this.shaderPass),this._isEnabled=!0,!0):!1}removeEffect(e){return e instanceof t.Layer?(e.getRenderer().removePostProcessingPass(this.shaderPass),this._isEnabled=!1,!0):!1}updatePreRender(e){}updateDoubleParameter(e,r){e==="exposure"&&(this.shaderPass.uniforms[e].value=r)}getDoubleParameter(e){return e==="exposure"?this.shaderPass.uniforms[e].value:0}updateStringParameter(e,r){}updateColorParameter(e,r){}getColorParameter(e){return 0}updateBooleanParameter(e,r){}getNetworkSyncData(){return{e:this.shaderPass.uniforms.exposure.value}}updateFromNetworkSyncData(e){this.shaderPass.uniforms.exposure.value=e.e}}}})})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=ExposureEffect.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/3D/ExposureEffect.ts"],
4
- "sourcesContent": ["namespace gdjs {\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::Exposure',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.ShaderPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.ShaderPass(\n THREE_ADDONS.ExposureShader\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'exposure') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'exposure') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n })();\n }\n })()\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,EAAK,iBAAiB,sBACpB,oBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,WACjC,aAAa,gBAEf,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAGpD,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,WACb,KAAK,WAAW,SAAS,GAAe,MAE1C,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,SApEpE",
4
+ "sourcesContent": ["namespace gdjs {\n interface ExposureFilterNetworkSyncData {\n e: number;\n }\n gdjs.PixiFiltersTools.registerFilterCreator(\n 'Scene3D::Exposure',\n new (class implements gdjs.PixiFiltersTools.FilterCreator {\n makeFilter(\n target: EffectsTarget,\n effectData: EffectData\n ): gdjs.PixiFiltersTools.Filter {\n if (typeof THREE === 'undefined') {\n return new gdjs.PixiFiltersTools.EmptyFilter();\n }\n return new (class implements gdjs.PixiFiltersTools.Filter {\n shaderPass: THREE_ADDONS.ShaderPass;\n _isEnabled: boolean;\n\n constructor() {\n this.shaderPass = new THREE_ADDONS.ShaderPass(\n THREE_ADDONS.ExposureShader\n );\n this._isEnabled = false;\n }\n\n isEnabled(target: EffectsTarget): boolean {\n return this._isEnabled;\n }\n setEnabled(target: EffectsTarget, enabled: boolean): boolean {\n if (this._isEnabled === enabled) {\n return true;\n }\n if (enabled) {\n return this.applyEffect(target);\n } else {\n return this.removeEffect(target);\n }\n }\n applyEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().addPostProcessingPass(this.shaderPass);\n this._isEnabled = true;\n return true;\n }\n removeEffect(target: EffectsTarget): boolean {\n if (!(target instanceof gdjs.Layer)) {\n return false;\n }\n target.getRenderer().removePostProcessingPass(this.shaderPass);\n this._isEnabled = false;\n return true;\n }\n updatePreRender(target: gdjs.EffectsTarget): any {}\n updateDoubleParameter(parameterName: string, value: number): void {\n if (parameterName === 'exposure') {\n this.shaderPass.uniforms[parameterName].value = value;\n }\n }\n getDoubleParameter(parameterName: string): number {\n if (parameterName === 'exposure') {\n return this.shaderPass.uniforms[parameterName].value;\n }\n return 0;\n }\n updateStringParameter(parameterName: string, value: string): void {}\n updateColorParameter(parameterName: string, value: number): void {}\n getColorParameter(parameterName: string): number {\n return 0;\n }\n updateBooleanParameter(parameterName: string, value: boolean): void {}\n getNetworkSyncData(): ExposureFilterNetworkSyncData {\n return { e: this.shaderPass.uniforms.exposure.value };\n }\n updateFromNetworkSyncData(\n syncData: ExposureFilterNetworkSyncData\n ): void {\n this.shaderPass.uniforms.exposure.value = syncData.e;\n }\n })();\n }\n })()\n );\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIE,EAAK,iBAAiB,sBACpB,oBACA,GAAK,MAAqD,CACxD,WACE,EACA,EAC8B,CAC9B,MAAI,OAAO,QAAU,YACZ,GAAI,GAAK,iBAAiB,YAE5B,GAAK,MAA8C,CAIxD,aAAc,CACZ,KAAK,WAAa,GAAI,cAAa,WACjC,aAAa,gBAEf,KAAK,WAAa,GAGpB,UAAU,EAAgC,CACxC,MAAO,MAAK,WAEd,WAAW,EAAuB,EAA2B,CAC3D,MAAI,MAAK,aAAe,EACf,GAEL,EACK,KAAK,YAAY,GAEjB,KAAK,aAAa,GAG7B,YAAY,EAAgC,CAC1C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,sBAAsB,KAAK,YAChD,KAAK,WAAa,GACX,IAJE,GAMX,aAAa,EAAgC,CAC3C,MAAM,aAAkB,GAAK,MAG7B,GAAO,cAAc,yBAAyB,KAAK,YACnD,KAAK,WAAa,GACX,IAJE,GAMX,gBAAgB,EAAiC,EACjD,sBAAsB,EAAuB,EAAqB,CAChE,AAAI,IAAkB,YACpB,MAAK,WAAW,SAAS,GAAe,MAAQ,GAGpD,mBAAmB,EAA+B,CAChD,MAAI,KAAkB,WACb,KAAK,WAAW,SAAS,GAAe,MAE1C,EAET,sBAAsB,EAAuB,EAAqB,EAClE,qBAAqB,EAAuB,EAAqB,EACjE,kBAAkB,EAA+B,CAC/C,MAAO,GAET,uBAAuB,EAAuB,EAAsB,EACpE,oBAAoD,CAClD,MAAO,CAAE,EAAG,KAAK,WAAW,SAAS,SAAS,OAEhD,0BACE,EACM,CACN,KAAK,WAAW,SAAS,SAAS,MAAQ,EAAS,SA9ErD",
6
6
  "names": []
7
7
  }