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,2 +1,2 @@
1
- var gdjs;(function(n){class s extends n.RuntimeObject{constructor(e,i){super(e,i);this._opacity=255;this._scaleX=1;this._scaleY=1;this._flippedX=!1;this._flippedY=!1;this._currentAnimationIndex=-1;this._animationSpeedScale=1;this._animationPaused=!1;this._isPausedFrameDirty=!1;this._animations=i.content.animations,this._originalScale=i.content.scale,this.spineResourceName=i.content.spineResourceName,this._animationMixingDuration=.1,this._renderer=new n.SpineRuntimeObjectRenderer(this,e),this.setAnimationIndex(0),this._renderer.updateAnimation(0),this.onCreated()}update(e){if(this._animationPaused){this._isPausedFrameDirty&&(this._renderer.updateAnimation(0),this.invalidateHitboxes(),this._isPausedFrameDirty=!1);return}const i=this.getElapsedTime()/1e3;this._renderer.updateAnimation(i*this._animationSpeedScale),this.invalidateHitboxes()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(e,i){return super.updateFromObjectData(e,i),e.content.scale!==i.content.scale&&(this._originalScale=i.content.scale,this._renderer.updateScale(),this.invalidateHitboxes()),!0}extraInitializationFromInitialInstance(e){const i=e.numberProperties.find(t=>t.name==="animation"),a=i?i.value:this._currentAnimationIndex;this.setAnimationIndexWithMixing(a,0),e.customSize&&(this.setSize(e.width,e.height),this.invalidateHitboxes())}getDrawableX(){const e=this._renderer.getOriginOffset();return this.getX()+e.x}getDrawableY(){const e=this._renderer.getOriginOffset();return this.getY()+e.y}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setX(e){super.setX(e),this._renderer.updatePosition()}setY(e){super.setY(e),this._renderer.updatePosition()}setAngle(e){super.setAngle(e),this._renderer.updateAngle()}setOpacity(e){this._opacity=Math.max(0,Math.min(255,e)),this._renderer.updateOpacity()}getOpacity(){return this._opacity}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}setWidth(e){const i=this._renderer.getUnscaledWidth();i!==0&&this.setScaleX(e/i)}setHeight(e){const i=this._renderer.getUnscaledHeight();i!==0&&this.setScaleY(e/i)}setSize(e,i){this.setWidth(e),this.setHeight(i)}setScale(e){e<0&&(e=0),!(e===Math.abs(this._scaleX)&&e===Math.abs(this._scaleY))&&(this._scaleX=e*(this._flippedX?-1:1),this._scaleY=e*(this._flippedY?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}setScaleX(e){e<0&&(e=0),e!==Math.abs(this._scaleX)&&(this._scaleX=e*(this._flippedX?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}setScaleY(e){e<0&&(e=0),e!==Math.abs(this._scaleY)&&(this._scaleY=e*(this._flippedY?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}getScale(){const e=Math.abs(this._scaleX),i=Math.abs(this._scaleY);return e===i?e:Math.sqrt(e*i)}getScaleY(){return Math.abs(this._scaleY)}getScaleX(){return Math.abs(this._scaleX)}isFlippedX(){return this._flippedX}isFlippedY(){return this._flippedY}flipX(e){e!==this._flippedX&&(this._scaleX*=-1,this._flippedX=e,this.invalidateHitboxes(),this._renderer.updateScale())}flipY(e){e!==this._flippedY&&(this._scaleY*=-1,this._flippedY=e,this.invalidateHitboxes(),this._renderer.updateScale())}setAnimationIndex(e){this.setAnimationIndexWithMixing(e,this._animationMixingDuration)}setAnimationIndexWithMixing(e,i){if(this._animations.length===0||this._currentAnimationIndex===e||!this.isAnimationIndex(e))return;const a=this._animations[this._currentAnimationIndex],t=this._animations[e];this._currentAnimationIndex=e,a&&this._renderer.setMixing(a.source,t.source,i),this._renderer.setAnimation(t.source,t.loop),this._isPausedFrameDirty=!0}setAnimationName(e){this.setAnimationNameWithMixing(e,this._animationMixingDuration)}setAnimationNameWithMixing(e,i){this.setAnimationIndexWithMixing(this.getAnimationIndexFor(e),i)}getAnimationIndexFor(e){return this._animations.findIndex(i=>i.name===e)}getAnimationMixingDuration(){return this._animationMixingDuration}setAnimationMixingDuration(e){this._animationMixingDuration=e}getAnimationIndex(){return this._currentAnimationIndex}getAnimationName(){return this.isAnimationIndex(this._currentAnimationIndex)?this._animations[this._currentAnimationIndex].name:""}isAnimationIndex(e){return Number.isInteger(e)&&e>=0&&e<this._animations.length}hasAnimationEnded(){return this._renderer.isAnimationComplete()}isAnimationPaused(){return this._animationPaused}pauseAnimation(){this._animationPaused=!0}resumeAnimation(){this._animationPaused=!1}getAnimationSpeedScale(){return this._animationSpeedScale}setAnimationSpeedScale(e){this._animationSpeedScale=e}getAnimationElapsedTime(){return this._animations.length===0?0:this._renderer.getAnimationElapsedTime()}setAnimationElapsedTime(e){this._animations.length!==0&&(this._renderer.setAnimationElapsedTime(e),this._isPausedFrameDirty=!0)}getAnimationDuration(){return this._animations.length===0?0:this._renderer.getAnimationDuration(this._animations[this._currentAnimationIndex].source)}}n.SpineRuntimeObject=s,n.registerObject("SpineObject::SpineObject",n.SpineRuntimeObject)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(n){class a extends n.RuntimeObject{constructor(i,e){super(i,e);this._opacity=255;this._scaleX=1;this._scaleY=1;this._flippedX=!1;this._flippedY=!1;this._currentAnimationIndex=-1;this._animationSpeedScale=1;this._animationPaused=!1;this._isPausedFrameDirty=!1;this._animations=e.content.animations,this._originalScale=e.content.scale,this.spineResourceName=e.content.spineResourceName,this._animationMixingDuration=.1,this._renderer=new n.SpineRuntimeObjectRenderer(this,i),this.setAnimationIndex(0),this._renderer.updateAnimation(0),this.onCreated()}update(i){if(this._animationPaused){this._isPausedFrameDirty&&(this._renderer.updateAnimation(0),this.invalidateHitboxes(),this._isPausedFrameDirty=!1);return}const e=this.getElapsedTime()/1e3;this._renderer.updateAnimation(e*this._animationSpeedScale),this.invalidateHitboxes()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(i,e){return super.updateFromObjectData(i,e),i.content.scale!==e.content.scale&&(this._originalScale=e.content.scale,this._renderer.updateScale(),this.invalidateHitboxes()),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),opa:this._opacity,wid:this.getWidth(),hei:this.getHeight(),scaX:this.getScaleX(),scaY:this.getScaleY(),flipX:this.isFlippedX(),flipY:this.isFlippedY(),ani:this.getAnimationIndex(),anmd:this.getAnimationMixingDuration(),anp:this.isAnimationPaused(),anss:this.getAnimationSpeedScale(),anet:this.getAnimationElapsedTime()}}updateFromNetworkSyncData(i){super.updateFromNetworkSyncData(i),i.opa!==void 0&&i.opa!==this._opacity&&this.setOpacity(i.opa),i.wid!==void 0&&i.wid!==this.getWidth()&&this.setWidth(i.wid),i.hei!==void 0&&i.hei!==this.getHeight()&&this.setHeight(i.hei),i.scaX!==void 0&&i.scaX!==this.getScaleX()&&this.setScaleX(i.scaX),i.scaY!==void 0&&i.scaY!==this.getScaleY()&&this.setScaleY(i.scaY),i.flipX!==void 0&&i.flipX!==this.isFlippedX()&&this.flipX(i.flipX),i.flipY!==void 0&&i.flipY!==this.isFlippedY()&&this.flipY(i.flipY),i.ani!==void 0&&i.ani!==this.getAnimationIndex()&&this.setAnimationIndex(i.ani),i.anmd!==void 0&&i.anmd!==this.getAnimationMixingDuration()&&this.setAnimationMixingDuration(i.anmd),i.anp!==void 0&&i.anp!==this.isAnimationPaused()&&(i.anp?this.pauseAnimation():this.resumeAnimation()),i.anss!==void 0&&i.anss!==this.getAnimationSpeedScale()&&this.setAnimationSpeedScale(i.anss),i.anet!==void 0&&i.anet!==this.getAnimationElapsedTime()&&this.setAnimationElapsedTime(i.anet)}extraInitializationFromInitialInstance(i){const e=i.numberProperties.find(t=>t.name==="animation"),s=e?e.value:this._currentAnimationIndex;this.setAnimationIndexWithMixing(s,0),i.customSize&&(this.setSize(i.width,i.height),this.invalidateHitboxes())}getDrawableX(){const i=this._renderer.getOriginOffset();return this.getX()+i.x}getDrawableY(){const i=this._renderer.getOriginOffset();return this.getY()+i.y}getCenterX(){return-this._renderer.getOriginOffset().x}getCenterY(){return-this._renderer.getOriginOffset().y}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setX(i){super.setX(i),this._renderer.updatePosition()}setY(i){super.setY(i),this._renderer.updatePosition()}setAngle(i){super.setAngle(i),this._renderer.updateAngle()}setOpacity(i){this._opacity=Math.max(0,Math.min(255,i)),this._renderer.updateOpacity()}getOpacity(){return this._opacity}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}setWidth(i){const e=this._renderer.getUnscaledWidth();e!==0&&this.setScaleX(i/e)}setHeight(i){const e=this._renderer.getUnscaledHeight();e!==0&&this.setScaleY(i/e)}setSize(i,e){this.setWidth(i),this.setHeight(e)}setScale(i){i<0&&(i=0),!(i===Math.abs(this._scaleX)&&i===Math.abs(this._scaleY))&&(this._scaleX=i*(this._flippedX?-1:1),this._scaleY=i*(this._flippedY?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}setScaleX(i){i<0&&(i=0),i!==Math.abs(this._scaleX)&&(this._scaleX=i*(this._flippedX?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}setScaleY(i){i<0&&(i=0),i!==Math.abs(this._scaleY)&&(this._scaleY=i*(this._flippedY?-1:1),this._renderer.updateScale(),this.invalidateHitboxes())}getScale(){const i=Math.abs(this._scaleX),e=Math.abs(this._scaleY);return i===e?i:Math.sqrt(i*e)}getScaleY(){return Math.abs(this._scaleY)}getScaleX(){return Math.abs(this._scaleX)}isFlippedX(){return this._flippedX}isFlippedY(){return this._flippedY}flipX(i){i!==this._flippedX&&(this._scaleX*=-1,this._flippedX=i,this.invalidateHitboxes(),this._renderer.updateScale())}flipY(i){i!==this._flippedY&&(this._scaleY*=-1,this._flippedY=i,this.invalidateHitboxes(),this._renderer.updateScale())}setAnimationIndex(i){this.setAnimationIndexWithMixing(i,this._animationMixingDuration)}setAnimationIndexWithMixing(i,e){if(this._animations.length===0||this._currentAnimationIndex===i||!this.isAnimationIndex(i))return;const s=this._animations[this._currentAnimationIndex],t=this._animations[i];this._currentAnimationIndex=i,s&&this._renderer.setMixing(s.source,t.source,e),this._renderer.setAnimation(t.source,t.loop),this._isPausedFrameDirty=!0}setAnimationName(i){this.setAnimationNameWithMixing(i,this._animationMixingDuration)}setAnimationNameWithMixing(i,e){this.setAnimationIndexWithMixing(this.getAnimationIndexFor(i),e)}getAnimationIndexFor(i){return this._animations.findIndex(e=>e.name===i)}getAnimationMixingDuration(){return this._animationMixingDuration}setAnimationMixingDuration(i){this._animationMixingDuration=i}getAnimationIndex(){return this._currentAnimationIndex}getAnimationName(){return this.isAnimationIndex(this._currentAnimationIndex)?this._animations[this._currentAnimationIndex].name:""}isAnimationIndex(i){return Number.isInteger(i)&&i>=0&&i<this._animations.length}hasAnimationEnded(){return this._renderer.isAnimationComplete()}isAnimationPaused(){return this._animationPaused}pauseAnimation(){this._animationPaused=!0}resumeAnimation(){this._animationPaused=!1}getAnimationSpeedScale(){return this._animationSpeedScale}setAnimationSpeedScale(i){this._animationSpeedScale=i}getAnimationElapsedTime(){return this._animations.length===0?0:this._renderer.getAnimationElapsedTime()}setAnimationElapsedTime(i){this._animations.length!==0&&(this._renderer.setAnimationElapsedTime(i),this._isPausedFrameDirty=!0)}getAnimationDuration(){return this._animations.length===0?0:this._renderer.getAnimationDuration(this._animations[this._currentAnimationIndex].source)}}n.SpineRuntimeObject=a,n.registerObject("SpineObject::SpineObject",n.SpineRuntimeObject)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=spineruntimeobject.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/Spine/spineruntimeobject.ts"],
4
- "sourcesContent": ["namespace gdjs {\n type SpineAnimation = { name: string; source: string; loop: boolean };\n\n export type SpineObjectDataType = {\n content: {\n opacity: float;\n scale: float;\n timeScale: float;\n spineResourceName: string;\n animations: SpineAnimation[];\n };\n };\n export type SpineObjectData = ObjectData & SpineObjectDataType;\n\n export class SpineRuntimeObject\n extends gdjs.RuntimeObject\n implements\n gdjs.Resizable,\n gdjs.Scalable,\n gdjs.Animatable,\n gdjs.OpacityHandler {\n private _opacity: float = 255;\n private _scaleX: number = 1;\n private _scaleY: number = 1;\n _originalScale: number;\n private _flippedX: boolean = false;\n private _flippedY: boolean = false;\n private _animations: SpineAnimation[];\n private _currentAnimationIndex = -1;\n private _animationSpeedScale: float = 1;\n private _animationPaused: boolean = false;\n private _isPausedFrameDirty = false;\n /** The duration in second for the smooth transition between 2 animations */\n private _animationMixingDuration: number;\n private _renderer: gdjs.SpineRuntimeObjectPixiRenderer;\n\n readonly spineResourceName: string;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param objectData The object data used to initialize the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: SpineObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._animations = objectData.content.animations;\n this._originalScale = objectData.content.scale;\n this.spineResourceName = objectData.content.spineResourceName;\n this._animationMixingDuration = 0.1;\n this._renderer = new gdjs.SpineRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this.setAnimationIndex(0);\n this._renderer.updateAnimation(0);\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n update(instanceContainer: gdjs.RuntimeInstanceContainer): void {\n if (this._animationPaused) {\n if (this._isPausedFrameDirty) {\n this._renderer.updateAnimation(0);\n this.invalidateHitboxes();\n this._isPausedFrameDirty = false;\n }\n return;\n }\n const elapsedTime = this.getElapsedTime() / 1000;\n this._renderer.updateAnimation(elapsedTime * this._animationSpeedScale);\n this.invalidateHitboxes();\n }\n\n getRendererObject(): pixi_spine.Spine | PIXI.Container {\n return this._renderer.getRendererObject();\n }\n\n updateFromObjectData(\n oldObjectData: SpineObjectData,\n newObjectData: SpineObjectData\n ): boolean {\n super.updateFromObjectData(oldObjectData, newObjectData);\n\n if (oldObjectData.content.scale !== newObjectData.content.scale) {\n this._originalScale = newObjectData.content.scale;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n return true;\n }\n\n extraInitializationFromInitialInstance(\n initialInstanceData: InstanceData\n ): void {\n const animationData = initialInstanceData.numberProperties.find(\n (data) => data.name === 'animation'\n );\n const animationIndex = animationData\n ? animationData.value\n : this._currentAnimationIndex;\n\n this.setAnimationIndexWithMixing(animationIndex, 0);\n\n if (initialInstanceData.customSize) {\n this.setSize(initialInstanceData.width, initialInstanceData.height);\n this.invalidateHitboxes();\n }\n }\n\n getDrawableX(): number {\n const originOffset = this._renderer.getOriginOffset();\n\n return this.getX() + originOffset.x;\n }\n\n getDrawableY(): number {\n const originOffset = this._renderer.getOriginOffset();\n\n return this.getY() + originOffset.y;\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n setOpacity(opacity: float): void {\n this._opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this._opacity;\n }\n\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n getHeight(): float {\n return this._renderer.getHeight();\n }\n\n setWidth(newWidth: float): void {\n const unscaledWidth = this._renderer.getUnscaledWidth();\n if (unscaledWidth !== 0) {\n this.setScaleX(newWidth / unscaledWidth);\n }\n }\n\n setHeight(newHeight: float): void {\n const unscaledHeight = this._renderer.getUnscaledHeight();\n if (unscaledHeight !== 0) {\n this.setScaleY(newHeight / unscaledHeight);\n }\n }\n\n setSize(newWidth: number, newHeight: number): void {\n this.setWidth(newWidth);\n this.setHeight(newHeight);\n }\n\n setScale(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (\n newScale === Math.abs(this._scaleX) &&\n newScale === Math.abs(this._scaleY)\n ) {\n return;\n }\n this._scaleX = newScale * (this._flippedX ? -1 : 1);\n this._scaleY = newScale * (this._flippedY ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleX(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (newScale === Math.abs(this._scaleX)) {\n return;\n }\n this._scaleX = newScale * (this._flippedX ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleY(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (newScale === Math.abs(this._scaleY)) {\n return;\n }\n this._scaleY = newScale * (this._flippedY ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = Math.abs(this._scaleX);\n const scaleY = Math.abs(this._scaleY);\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n getScaleY(): float {\n return Math.abs(this._scaleY);\n }\n\n getScaleX(): float {\n return Math.abs(this._scaleX);\n }\n\n isFlippedX(): boolean {\n return this._flippedX;\n }\n\n isFlippedY(): boolean {\n return this._flippedY;\n }\n\n flipX(enable: boolean) {\n if (enable !== this._flippedX) {\n this._scaleX *= -1;\n this._flippedX = enable;\n this.invalidateHitboxes();\n this._renderer.updateScale();\n }\n }\n\n flipY(enable: boolean) {\n if (enable !== this._flippedY) {\n this._scaleY *= -1;\n this._flippedY = enable;\n this.invalidateHitboxes();\n this._renderer.updateScale();\n }\n }\n\n setAnimationIndex(animationIndex: number): void {\n this.setAnimationIndexWithMixing(\n animationIndex,\n this._animationMixingDuration\n );\n }\n\n setAnimationIndexWithMixing(\n animationIndex: number,\n mixingDuration: number\n ): void {\n if (\n this._animations.length === 0 ||\n this._currentAnimationIndex === animationIndex ||\n !this.isAnimationIndex(animationIndex)\n ) {\n return;\n }\n const previousAnimation = this._animations[this._currentAnimationIndex];\n const newAnimation = this._animations[animationIndex];\n this._currentAnimationIndex = animationIndex;\n\n if (previousAnimation) {\n this._renderer.setMixing(\n previousAnimation.source,\n newAnimation.source,\n mixingDuration\n );\n }\n this._renderer.setAnimation(newAnimation.source, newAnimation.loop);\n this._isPausedFrameDirty = true;\n }\n\n setAnimationName(animationName: string): void {\n this.setAnimationNameWithMixing(\n animationName,\n this._animationMixingDuration\n );\n }\n\n setAnimationNameWithMixing(\n animationName: string,\n mixingDuration: number\n ): void {\n this.setAnimationIndexWithMixing(\n this.getAnimationIndexFor(animationName),\n mixingDuration\n );\n }\n\n getAnimationIndexFor(animationName: string): number {\n return this._animations.findIndex(\n (animation) => animation.name === animationName\n );\n }\n\n /**\n * Return the duration in second for the smooth transition between 2 animations.\n */\n getAnimationMixingDuration(): number {\n return this._animationMixingDuration;\n }\n\n /**\n * Change the duration in second for the smooth transition between 2 animations.\n */\n setAnimationMixingDuration(animationMixingDuration: number): void {\n this._animationMixingDuration = animationMixingDuration;\n }\n\n getAnimationIndex(): number {\n return this._currentAnimationIndex;\n }\n\n getAnimationName(): string {\n return this.isAnimationIndex(this._currentAnimationIndex)\n ? this._animations[this._currentAnimationIndex].name\n : '';\n }\n\n isAnimationIndex(animationIndex: number): boolean {\n return (\n Number.isInteger(animationIndex) &&\n animationIndex >= 0 &&\n animationIndex < this._animations.length\n );\n }\n\n hasAnimationEnded(): boolean {\n return this._renderer.isAnimationComplete();\n }\n\n isAnimationPaused() {\n return this._animationPaused;\n }\n\n pauseAnimation() {\n this._animationPaused = true;\n }\n\n resumeAnimation() {\n this._animationPaused = false;\n }\n\n getAnimationSpeedScale() {\n return this._animationSpeedScale;\n }\n\n setAnimationSpeedScale(ratio: float): void {\n this._animationSpeedScale = ratio;\n }\n\n getAnimationElapsedTime(): number {\n if (this._animations.length === 0) {\n return 0;\n }\n return this._renderer.getAnimationElapsedTime();\n }\n\n setAnimationElapsedTime(time: number): void {\n if (this._animations.length === 0) {\n return;\n }\n this._renderer.setAnimationElapsedTime(time);\n this._isPausedFrameDirty = true;\n }\n\n getAnimationDuration(): number {\n if (this._animations.length === 0) {\n return 0;\n }\n return this._renderer.getAnimationDuration(\n this._animations[this._currentAnimationIndex].source\n );\n }\n }\n\n gdjs.registerObject('SpineObject::SpineObject', gdjs.SpineRuntimeObject);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["namespace gdjs {\n type SpineAnimation = { name: string; source: string; loop: boolean };\n\n export type SpineObjectDataType = {\n content: {\n opacity: float;\n scale: float;\n timeScale: float;\n spineResourceName: string;\n animations: SpineAnimation[];\n };\n };\n export type SpineObjectData = ObjectData & SpineObjectDataType;\n\n export type SpineNetworkSyncDataType = {\n opa: float;\n wid: float;\n hei: float;\n scaX: float;\n scaY: float;\n flipX: boolean;\n flipY: boolean;\n ani: number;\n anmd: number;\n anp: boolean;\n anss: float;\n anet: number;\n };\n\n export type SpineNetworkSyncData = ObjectNetworkSyncData &\n SpineNetworkSyncDataType;\n\n export class SpineRuntimeObject\n extends gdjs.RuntimeObject\n implements\n gdjs.Resizable,\n gdjs.Scalable,\n gdjs.Animatable,\n gdjs.OpacityHandler {\n private _opacity: float = 255;\n private _scaleX: number = 1;\n private _scaleY: number = 1;\n _originalScale: number;\n private _flippedX: boolean = false;\n private _flippedY: boolean = false;\n private _animations: SpineAnimation[];\n private _currentAnimationIndex = -1;\n private _animationSpeedScale: float = 1;\n private _animationPaused: boolean = false;\n private _isPausedFrameDirty = false;\n /** The duration in second for the smooth transition between 2 animations */\n private _animationMixingDuration: number;\n private _renderer: gdjs.SpineRuntimeObjectPixiRenderer;\n\n readonly spineResourceName: string;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param objectData The object data used to initialize the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: SpineObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._animations = objectData.content.animations;\n this._originalScale = objectData.content.scale;\n this.spineResourceName = objectData.content.spineResourceName;\n this._animationMixingDuration = 0.1;\n this._renderer = new gdjs.SpineRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this.setAnimationIndex(0);\n this._renderer.updateAnimation(0);\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n update(instanceContainer: gdjs.RuntimeInstanceContainer): void {\n if (this._animationPaused) {\n if (this._isPausedFrameDirty) {\n this._renderer.updateAnimation(0);\n this.invalidateHitboxes();\n this._isPausedFrameDirty = false;\n }\n return;\n }\n const elapsedTime = this.getElapsedTime() / 1000;\n this._renderer.updateAnimation(elapsedTime * this._animationSpeedScale);\n this.invalidateHitboxes();\n }\n\n getRendererObject(): pixi_spine.Spine | PIXI.Container {\n return this._renderer.getRendererObject();\n }\n\n updateFromObjectData(\n oldObjectData: SpineObjectData,\n newObjectData: SpineObjectData\n ): boolean {\n super.updateFromObjectData(oldObjectData, newObjectData);\n\n if (oldObjectData.content.scale !== newObjectData.content.scale) {\n this._originalScale = newObjectData.content.scale;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n return true;\n }\n\n getNetworkSyncData(): SpineNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n opa: this._opacity,\n wid: this.getWidth(),\n hei: this.getHeight(),\n scaX: this.getScaleX(),\n scaY: this.getScaleY(),\n flipX: this.isFlippedX(),\n flipY: this.isFlippedY(),\n ani: this.getAnimationIndex(),\n anmd: this.getAnimationMixingDuration(),\n anp: this.isAnimationPaused(),\n anss: this.getAnimationSpeedScale(),\n anet: this.getAnimationElapsedTime(),\n };\n }\n\n updateFromNetworkSyncData(syncData: SpineNetworkSyncData): void {\n super.updateFromNetworkSyncData(syncData);\n\n if (syncData.opa !== undefined && syncData.opa !== this._opacity) {\n this.setOpacity(syncData.opa);\n }\n if (syncData.wid !== undefined && syncData.wid !== this.getWidth()) {\n this.setWidth(syncData.wid);\n }\n if (syncData.hei !== undefined && syncData.hei !== this.getHeight()) {\n this.setHeight(syncData.hei);\n }\n if (syncData.scaX !== undefined && syncData.scaX !== this.getScaleX()) {\n this.setScaleX(syncData.scaX);\n }\n if (syncData.scaY !== undefined && syncData.scaY !== this.getScaleY()) {\n this.setScaleY(syncData.scaY);\n }\n if (\n syncData.flipX !== undefined &&\n syncData.flipX !== this.isFlippedX()\n ) {\n this.flipX(syncData.flipX);\n }\n if (\n syncData.flipY !== undefined &&\n syncData.flipY !== this.isFlippedY()\n ) {\n this.flipY(syncData.flipY);\n }\n if (\n syncData.ani !== undefined &&\n syncData.ani !== this.getAnimationIndex()\n ) {\n this.setAnimationIndex(syncData.ani);\n }\n if (\n syncData.anmd !== undefined &&\n syncData.anmd !== this.getAnimationMixingDuration()\n ) {\n this.setAnimationMixingDuration(syncData.anmd);\n }\n if (\n syncData.anp !== undefined &&\n syncData.anp !== this.isAnimationPaused()\n ) {\n syncData.anp ? this.pauseAnimation() : this.resumeAnimation();\n }\n if (\n syncData.anss !== undefined &&\n syncData.anss !== this.getAnimationSpeedScale()\n ) {\n this.setAnimationSpeedScale(syncData.anss);\n }\n if (\n syncData.anet !== undefined &&\n syncData.anet !== this.getAnimationElapsedTime()\n ) {\n this.setAnimationElapsedTime(syncData.anet);\n }\n }\n\n extraInitializationFromInitialInstance(\n initialInstanceData: InstanceData\n ): void {\n const animationData = initialInstanceData.numberProperties.find(\n (data) => data.name === 'animation'\n );\n const animationIndex = animationData\n ? animationData.value\n : this._currentAnimationIndex;\n\n this.setAnimationIndexWithMixing(animationIndex, 0);\n\n if (initialInstanceData.customSize) {\n this.setSize(initialInstanceData.width, initialInstanceData.height);\n this.invalidateHitboxes();\n }\n }\n\n getDrawableX(): number {\n const originOffset = this._renderer.getOriginOffset();\n\n return this.getX() + originOffset.x;\n }\n\n getDrawableY(): number {\n const originOffset = this._renderer.getOriginOffset();\n\n return this.getY() + originOffset.y;\n }\n\n getCenterX(): float {\n const originOffset = this._renderer.getOriginOffset();\n return -originOffset.x;\n }\n\n getCenterY(): float {\n const originOffset = this._renderer.getOriginOffset();\n return -originOffset.y;\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n setOpacity(opacity: float): void {\n this._opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this._opacity;\n }\n\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n getHeight(): float {\n return this._renderer.getHeight();\n }\n\n setWidth(newWidth: float): void {\n const unscaledWidth = this._renderer.getUnscaledWidth();\n if (unscaledWidth !== 0) {\n this.setScaleX(newWidth / unscaledWidth);\n }\n }\n\n setHeight(newHeight: float): void {\n const unscaledHeight = this._renderer.getUnscaledHeight();\n if (unscaledHeight !== 0) {\n this.setScaleY(newHeight / unscaledHeight);\n }\n }\n\n setSize(newWidth: number, newHeight: number): void {\n this.setWidth(newWidth);\n this.setHeight(newHeight);\n }\n\n setScale(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (\n newScale === Math.abs(this._scaleX) &&\n newScale === Math.abs(this._scaleY)\n ) {\n return;\n }\n this._scaleX = newScale * (this._flippedX ? -1 : 1);\n this._scaleY = newScale * (this._flippedY ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleX(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (newScale === Math.abs(this._scaleX)) {\n return;\n }\n this._scaleX = newScale * (this._flippedX ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleY(newScale: float): void {\n if (newScale < 0) {\n newScale = 0;\n }\n if (newScale === Math.abs(this._scaleY)) {\n return;\n }\n this._scaleY = newScale * (this._flippedY ? -1 : 1);\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = Math.abs(this._scaleX);\n const scaleY = Math.abs(this._scaleY);\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n getScaleY(): float {\n return Math.abs(this._scaleY);\n }\n\n getScaleX(): float {\n return Math.abs(this._scaleX);\n }\n\n isFlippedX(): boolean {\n return this._flippedX;\n }\n\n isFlippedY(): boolean {\n return this._flippedY;\n }\n\n flipX(enable: boolean) {\n if (enable !== this._flippedX) {\n this._scaleX *= -1;\n this._flippedX = enable;\n this.invalidateHitboxes();\n this._renderer.updateScale();\n }\n }\n\n flipY(enable: boolean) {\n if (enable !== this._flippedY) {\n this._scaleY *= -1;\n this._flippedY = enable;\n this.invalidateHitboxes();\n this._renderer.updateScale();\n }\n }\n\n setAnimationIndex(animationIndex: number): void {\n this.setAnimationIndexWithMixing(\n animationIndex,\n this._animationMixingDuration\n );\n }\n\n setAnimationIndexWithMixing(\n animationIndex: number,\n mixingDuration: number\n ): void {\n if (\n this._animations.length === 0 ||\n this._currentAnimationIndex === animationIndex ||\n !this.isAnimationIndex(animationIndex)\n ) {\n return;\n }\n const previousAnimation = this._animations[this._currentAnimationIndex];\n const newAnimation = this._animations[animationIndex];\n this._currentAnimationIndex = animationIndex;\n\n if (previousAnimation) {\n this._renderer.setMixing(\n previousAnimation.source,\n newAnimation.source,\n mixingDuration\n );\n }\n this._renderer.setAnimation(newAnimation.source, newAnimation.loop);\n this._isPausedFrameDirty = true;\n }\n\n setAnimationName(animationName: string): void {\n this.setAnimationNameWithMixing(\n animationName,\n this._animationMixingDuration\n );\n }\n\n setAnimationNameWithMixing(\n animationName: string,\n mixingDuration: number\n ): void {\n this.setAnimationIndexWithMixing(\n this.getAnimationIndexFor(animationName),\n mixingDuration\n );\n }\n\n getAnimationIndexFor(animationName: string): number {\n return this._animations.findIndex(\n (animation) => animation.name === animationName\n );\n }\n\n /**\n * Return the duration in second for the smooth transition between 2 animations.\n */\n getAnimationMixingDuration(): number {\n return this._animationMixingDuration;\n }\n\n /**\n * Change the duration in second for the smooth transition between 2 animations.\n */\n setAnimationMixingDuration(animationMixingDuration: number): void {\n this._animationMixingDuration = animationMixingDuration;\n }\n\n getAnimationIndex(): number {\n return this._currentAnimationIndex;\n }\n\n getAnimationName(): string {\n return this.isAnimationIndex(this._currentAnimationIndex)\n ? this._animations[this._currentAnimationIndex].name\n : '';\n }\n\n isAnimationIndex(animationIndex: number): boolean {\n return (\n Number.isInteger(animationIndex) &&\n animationIndex >= 0 &&\n animationIndex < this._animations.length\n );\n }\n\n hasAnimationEnded(): boolean {\n return this._renderer.isAnimationComplete();\n }\n\n isAnimationPaused() {\n return this._animationPaused;\n }\n\n pauseAnimation() {\n this._animationPaused = true;\n }\n\n resumeAnimation() {\n this._animationPaused = false;\n }\n\n getAnimationSpeedScale() {\n return this._animationSpeedScale;\n }\n\n setAnimationSpeedScale(ratio: float): void {\n this._animationSpeedScale = ratio;\n }\n\n getAnimationElapsedTime(): number {\n if (this._animations.length === 0) {\n return 0;\n }\n return this._renderer.getAnimationElapsedTime();\n }\n\n setAnimationElapsedTime(time: number): void {\n if (this._animations.length === 0) {\n return;\n }\n this._renderer.setAnimationElapsedTime(time);\n this._isPausedFrameDirty = true;\n }\n\n getAnimationDuration(): number {\n if (this._animations.length === 0) {\n return 0;\n }\n return this._renderer.getAnimationDuration(\n this._animations[this._currentAnimationIndex].source\n );\n }\n }\n\n gdjs.registerObject('SpineObject::SpineObject', gdjs.SpineRuntimeObject);\n}\n"],
5
+ "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAgCS,eACG,GAAK,aAKS,CAsBtB,YACE,EACA,EACA,CACA,MAAM,EAAmB,GAzBnB,cAAkB,IAClB,aAAkB,EAClB,aAAkB,EAElB,eAAqB,GACrB,eAAqB,GAErB,4BAAyB,GACzB,0BAA8B,EAC9B,sBAA4B,GAC5B,yBAAsB,GAiB5B,KAAK,YAAc,EAAW,QAAQ,WACtC,KAAK,eAAiB,EAAW,QAAQ,MACzC,KAAK,kBAAoB,EAAW,QAAQ,kBAC5C,KAAK,yBAA2B,GAChC,KAAK,UAAY,GAAI,GAAK,2BACxB,KACA,GAEF,KAAK,kBAAkB,GACvB,KAAK,UAAU,gBAAgB,GAG/B,KAAK,YAGP,OAAO,EAAwD,CAC7D,GAAI,KAAK,iBAAkB,CACzB,AAAI,KAAK,qBACP,MAAK,UAAU,gBAAgB,GAC/B,KAAK,qBACL,KAAK,oBAAsB,IAE7B,OAEF,KAAM,GAAc,KAAK,iBAAmB,IAC5C,KAAK,UAAU,gBAAgB,EAAc,KAAK,sBAClD,KAAK,qBAGP,mBAAuD,CACrD,MAAO,MAAK,UAAU,oBAGxB,qBACE,EACA,EACS,CACT,aAAM,qBAAqB,EAAe,GAEtC,EAAc,QAAQ,QAAU,EAAc,QAAQ,OACxD,MAAK,eAAiB,EAAc,QAAQ,MAC5C,KAAK,UAAU,cACf,KAAK,sBAGA,GAGT,oBAA2C,CACzC,MAAO,IACF,MAAM,qBACT,IAAK,KAAK,SACV,IAAK,KAAK,WACV,IAAK,KAAK,YACV,KAAM,KAAK,YACX,KAAM,KAAK,YACX,MAAO,KAAK,aACZ,MAAO,KAAK,aACZ,IAAK,KAAK,oBACV,KAAM,KAAK,6BACX,IAAK,KAAK,oBACV,KAAM,KAAK,yBACX,KAAM,KAAK,2BAIf,0BAA0B,EAAsC,CAC9D,MAAM,0BAA0B,GAE5B,EAAS,MAAQ,QAAa,EAAS,MAAQ,KAAK,UACtD,KAAK,WAAW,EAAS,KAEvB,EAAS,MAAQ,QAAa,EAAS,MAAQ,KAAK,YACtD,KAAK,SAAS,EAAS,KAErB,EAAS,MAAQ,QAAa,EAAS,MAAQ,KAAK,aACtD,KAAK,UAAU,EAAS,KAEtB,EAAS,OAAS,QAAa,EAAS,OAAS,KAAK,aACxD,KAAK,UAAU,EAAS,MAEtB,EAAS,OAAS,QAAa,EAAS,OAAS,KAAK,aACxD,KAAK,UAAU,EAAS,MAGxB,EAAS,QAAU,QACnB,EAAS,QAAU,KAAK,cAExB,KAAK,MAAM,EAAS,OAGpB,EAAS,QAAU,QACnB,EAAS,QAAU,KAAK,cAExB,KAAK,MAAM,EAAS,OAGpB,EAAS,MAAQ,QACjB,EAAS,MAAQ,KAAK,qBAEtB,KAAK,kBAAkB,EAAS,KAGhC,EAAS,OAAS,QAClB,EAAS,OAAS,KAAK,8BAEvB,KAAK,2BAA2B,EAAS,MAGzC,EAAS,MAAQ,QACjB,EAAS,MAAQ,KAAK,qBAEtB,GAAS,IAAM,KAAK,iBAAmB,KAAK,mBAG5C,EAAS,OAAS,QAClB,EAAS,OAAS,KAAK,0BAEvB,KAAK,uBAAuB,EAAS,MAGrC,EAAS,OAAS,QAClB,EAAS,OAAS,KAAK,2BAEvB,KAAK,wBAAwB,EAAS,MAI1C,uCACE,EACM,CACN,KAAM,GAAgB,EAAoB,iBAAiB,KACzD,AAAC,GAAS,EAAK,OAAS,aAEpB,EAAiB,EACnB,EAAc,MACd,KAAK,uBAET,KAAK,4BAA4B,EAAgB,GAE7C,EAAoB,YACtB,MAAK,QAAQ,EAAoB,MAAO,EAAoB,QAC5D,KAAK,sBAIT,cAAuB,CACrB,KAAM,GAAe,KAAK,UAAU,kBAEpC,MAAO,MAAK,OAAS,EAAa,EAGpC,cAAuB,CACrB,KAAM,GAAe,KAAK,UAAU,kBAEpC,MAAO,MAAK,OAAS,EAAa,EAGpC,YAAoB,CAElB,MAAO,CAAC,AADa,KAAK,UAAU,kBACf,EAGvB,YAAoB,CAElB,MAAO,CAAC,AADa,KAAK,UAAU,kBACf,EAGvB,aAAoB,CAClB,MAAM,cACN,KAAK,UAAU,YAGjB,KAAK,EAAgB,CACnB,MAAM,KAAK,GACX,KAAK,UAAU,iBAGjB,KAAK,EAAgB,CACnB,MAAM,KAAK,GACX,KAAK,UAAU,iBAGjB,SAAS,EAAoB,CAC3B,MAAM,SAAS,GACf,KAAK,UAAU,cAGjB,WAAW,EAAsB,CAC/B,KAAK,SAAW,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IAC1C,KAAK,UAAU,gBAGjB,YAAoB,CAClB,MAAO,MAAK,SAGd,UAAkB,CAChB,MAAO,MAAK,UAAU,WAGxB,WAAmB,CACjB,MAAO,MAAK,UAAU,YAGxB,SAAS,EAAuB,CAC9B,KAAM,GAAgB,KAAK,UAAU,mBACrC,AAAI,IAAkB,GACpB,KAAK,UAAU,EAAW,GAI9B,UAAU,EAAwB,CAChC,KAAM,GAAiB,KAAK,UAAU,oBACtC,AAAI,IAAmB,GACrB,KAAK,UAAU,EAAY,GAI/B,QAAQ,EAAkB,EAAyB,CACjD,KAAK,SAAS,GACd,KAAK,UAAU,GAGjB,SAAS,EAAuB,CAI9B,AAHI,EAAW,GACb,GAAW,GAGX,MAAa,KAAK,IAAI,KAAK,UAC3B,IAAa,KAAK,IAAI,KAAK,WAI7B,MAAK,QAAU,EAAY,MAAK,UAAY,GAAK,GACjD,KAAK,QAAU,EAAY,MAAK,UAAY,GAAK,GACjD,KAAK,UAAU,cACf,KAAK,sBAGP,UAAU,EAAuB,CAI/B,AAHI,EAAW,GACb,GAAW,GAET,IAAa,KAAK,IAAI,KAAK,UAG/B,MAAK,QAAU,EAAY,MAAK,UAAY,GAAK,GACjD,KAAK,UAAU,cACf,KAAK,sBAGP,UAAU,EAAuB,CAI/B,AAHI,EAAW,GACb,GAAW,GAET,IAAa,KAAK,IAAI,KAAK,UAG/B,MAAK,QAAU,EAAY,MAAK,UAAY,GAAK,GACjD,KAAK,UAAU,cACf,KAAK,sBAQP,UAAkB,CAChB,KAAM,GAAS,KAAK,IAAI,KAAK,SACvB,EAAS,KAAK,IAAI,KAAK,SAC7B,MAAO,KAAW,EAAS,EAAS,KAAK,KAAK,EAAS,GAGzD,WAAmB,CACjB,MAAO,MAAK,IAAI,KAAK,SAGvB,WAAmB,CACjB,MAAO,MAAK,IAAI,KAAK,SAGvB,YAAsB,CACpB,MAAO,MAAK,UAGd,YAAsB,CACpB,MAAO,MAAK,UAGd,MAAM,EAAiB,CACrB,AAAI,IAAW,KAAK,WAClB,MAAK,SAAW,GAChB,KAAK,UAAY,EACjB,KAAK,qBACL,KAAK,UAAU,eAInB,MAAM,EAAiB,CACrB,AAAI,IAAW,KAAK,WAClB,MAAK,SAAW,GAChB,KAAK,UAAY,EACjB,KAAK,qBACL,KAAK,UAAU,eAInB,kBAAkB,EAA8B,CAC9C,KAAK,4BACH,EACA,KAAK,0BAIT,4BACE,EACA,EACM,CACN,GACE,KAAK,YAAY,SAAW,GAC5B,KAAK,yBAA2B,GAChC,CAAC,KAAK,iBAAiB,GAEvB,OAEF,KAAM,GAAoB,KAAK,YAAY,KAAK,wBAC1C,EAAe,KAAK,YAAY,GACtC,KAAK,uBAAyB,EAE1B,GACF,KAAK,UAAU,UACb,EAAkB,OAClB,EAAa,OACb,GAGJ,KAAK,UAAU,aAAa,EAAa,OAAQ,EAAa,MAC9D,KAAK,oBAAsB,GAG7B,iBAAiB,EAA6B,CAC5C,KAAK,2BACH,EACA,KAAK,0BAIT,2BACE,EACA,EACM,CACN,KAAK,4BACH,KAAK,qBAAqB,GAC1B,GAIJ,qBAAqB,EAA+B,CAClD,MAAO,MAAK,YAAY,UACtB,AAAC,GAAc,EAAU,OAAS,GAOtC,4BAAqC,CACnC,MAAO,MAAK,yBAMd,2BAA2B,EAAuC,CAChE,KAAK,yBAA2B,EAGlC,mBAA4B,CAC1B,MAAO,MAAK,uBAGd,kBAA2B,CACzB,MAAO,MAAK,iBAAiB,KAAK,wBAC9B,KAAK,YAAY,KAAK,wBAAwB,KAC9C,GAGN,iBAAiB,EAAiC,CAChD,MACE,QAAO,UAAU,IACjB,GAAkB,GAClB,EAAiB,KAAK,YAAY,OAItC,mBAA6B,CAC3B,MAAO,MAAK,UAAU,sBAGxB,mBAAoB,CAClB,MAAO,MAAK,iBAGd,gBAAiB,CACf,KAAK,iBAAmB,GAG1B,iBAAkB,CAChB,KAAK,iBAAmB,GAG1B,wBAAyB,CACvB,MAAO,MAAK,qBAGd,uBAAuB,EAAoB,CACzC,KAAK,qBAAuB,EAG9B,yBAAkC,CAChC,MAAI,MAAK,YAAY,SAAW,EACvB,EAEF,KAAK,UAAU,0BAGxB,wBAAwB,EAAoB,CAC1C,AAAI,KAAK,YAAY,SAAW,GAGhC,MAAK,UAAU,wBAAwB,GACvC,KAAK,oBAAsB,IAG7B,sBAA+B,CAC7B,MAAI,MAAK,YAAY,SAAW,EACvB,EAEF,KAAK,UAAU,qBACpB,KAAK,YAAY,KAAK,wBAAwB,SA3d7C,EAAM,qBAgeb,EAAK,eAAe,2BAA4B,EAAK,sBAhgB7C",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,23 @@
1
+ cmake_minimum_required(VERSION 3.5)
2
+
3
+ project(SystemInfo)
4
+ gd_add_extension_includes()
5
+
6
+ # Defines
7
+ #
8
+ gd_add_extension_definitions(SystemInfo)
9
+
10
+ # The targets
11
+ #
12
+ include_directories(.)
13
+ file(
14
+ GLOB
15
+ source_files
16
+ *.cpp
17
+ *.h)
18
+ gd_add_clang_utils(SystemInfo "${source_files}")
19
+ gd_add_extension_target(SystemInfo "${source_files}")
20
+
21
+ # Linker files for the IDE extension
22
+ #
23
+ gd_extension_link_libraries(SystemInfo)
@@ -0,0 +1,23 @@
1
+ cmake_minimum_required(VERSION 3.5)
2
+
3
+ project(TextEntryObject)
4
+ gd_add_extension_includes()
5
+
6
+ # Defines
7
+ #
8
+ gd_add_extension_definitions(TextEntryObject)
9
+
10
+ # The targets
11
+ #
12
+ include_directories(.)
13
+ file(
14
+ GLOB
15
+ source_files
16
+ *.cpp
17
+ *.h)
18
+ gd_add_clang_utils(TextEntryObject "${source_files}")
19
+ gd_add_extension_target(TextEntryObject "${source_files}")
20
+
21
+ # Linker files for the IDE extension
22
+ #
23
+ gd_extension_link_libraries(TextEntryObject)
@@ -226,9 +226,7 @@ module.exports = {
226
226
  objectContent,
227
227
  instance,
228
228
  propertyName,
229
- newValue,
230
- project,
231
- layout
229
+ newValue
232
230
  ) {
233
231
  if (propertyName === 'initialValue') {
234
232
  instance.setRawStringProperty('initialValue', newValue);
@@ -242,9 +240,7 @@ module.exports = {
242
240
  };
243
241
  textInputObject.getInitialInstanceProperties = function (
244
242
  content,
245
- instance,
246
- project,
247
- layout
243
+ instance
248
244
  ) {
249
245
  const instanceProperties = new gd.MapStringPropertyDescriptor();
250
246
 
@@ -371,7 +367,7 @@ module.exports = {
371
367
  'res/actions/font24.png',
372
368
  'res/actions/font.png'
373
369
  )
374
- .addParameter('object', _('Bitmap text'), 'TextInputObject', false)
370
+ .addParameter('object', _('Text input'), 'TextInputObject', false)
375
371
  .addParameter('fontResource', _('Font resource name'), '', false)
376
372
  .getCodeExtraInformation()
377
373
  .setFunctionName('setFontResourceName');
@@ -401,7 +397,6 @@ module.exports = {
401
397
  'telephone number',
402
398
  'url',
403
399
  'search',
404
- 'email',
405
400
  ])
406
401
  )
407
402
  )
@@ -643,7 +638,6 @@ module.exports = {
643
638
  class RenderedTextInputObjectInstance extends RenderedInstance {
644
639
  constructor(
645
640
  project,
646
- layout,
647
641
  instance,
648
642
  associatedObjectConfiguration,
649
643
  pixiContainer,
@@ -651,7 +645,6 @@ module.exports = {
651
645
  ) {
652
646
  super(
653
647
  project,
654
- layout,
655
648
  instance,
656
649
  associatedObjectConfiguration,
657
650
  pixiContainer,
@@ -1,2 +1,2 @@
1
- var gdjs;(function(a){const m={text:"text",email:"email",password:"password",number:"number","telephone number":"tel",url:"url",search:"search"},n=(o,e)=>"rgba("+o[0]+","+o[1]+","+o[2]+","+e/255+")";class s{constructor(e,t){this._input=null;this._object=e,this._instanceContainer=t,this._runtimeGame=this._instanceContainer.getGame(),this._createElement()}_createElement(){if(this._input)throw new Error("Tried to recreate an input while it already exists.");const e=this._object.getInputType()==="text area";this._input=document.createElement(e?"textarea":"input"),this._input.style.border="1px solid black",this._input.autocomplete="off",this._input.style.borderRadius="0px",this._input.style.backgroundColor="white",this._input.style.position="absolute",this._input.style.resize="none",this._input.style.outline="none",this._input.style.pointerEvents="auto",this._input.style.display="none",this._input.style.boxSizing="border-box",this._input.addEventListener("input",()=>{!this._input||this._object.onRendererInputValueChanged(this._input.value)}),this._input.addEventListener("touchstart",()=>{!this._input||document.activeElement!==this._input&&this._input.focus()}),this.updateString(),this.updateFont(),this.updatePlaceholder(),this.updateOpacity(),this.updateInputType(),this.updateTextColor(),this.updateFillColorAndOpacity(),this.updateBorderColorAndOpacity(),this.updateBorderWidth(),this.updateDisabled(),this.updateReadOnly(),this._runtimeGame.getRenderer().getDomElementContainer().appendChild(this._input)}_destroyElement(){!this._input||(this._input.remove(),this._input=null)}onScenePaused(){this._destroyElement()}onSceneResumed(){this._createElement()}onDestroy(){this._destroyElement()}updatePreRender(){if(!this._input)return;if(this._object.isHidden()){this._input.style.display="none";return}const e=this._instanceContainer.getLayer(this._object.getLayer());if(!e.isVisible()){this._input.style.display="none";return}const t=a.staticArray(s.prototype.updatePreRender),i=this._instanceContainer.getGame(),r=i.getRenderer(),u=e.convertInverseCoords(this._object.x,this._object.y,0,t),p=u[0],h=u[1],l=e.convertInverseCoords(this._object.x+this._object.getWidth(),this._object.y+this._object.getHeight(),0,t),c=l[0],d=l[1];if(c<0||d<0||p>i.getGameResolutionWidth()||h>i.getGameResolutionHeight()){this._input.style.display="none";return}t[0]=p,t[1]=h,r.convertCanvasToDomElementContainerCoords(t,t);const _=t[0],y=t[1];t[0]=c,t[1]=d,r.convertCanvasToDomElementContainerCoords(t,t);const g=t[0],b=t[1],f=g-_,C=b-y;this._input.style.left=_+"px",this._input.style.top=y+"px",this._input.style.width=f+"px",this._input.style.height=C+"px",this._input.style.transform="rotate3d(0,0,1,"+this._object.getAngle()%360+"deg)",this._input.style.fontSize=this._object.getFontSize()*r.getCanvasToDomElementContainerHeightScale()+"px",this._input.style.display="initial"}updateString(){!this._input||(this._input.value=this._object.getString())}updatePlaceholder(){!this._input||(this._input.placeholder=this._object.getPlaceholder())}updateFont(){!this._input||(this._input.style.fontFamily=this._instanceContainer.getGame().getFontManager().getFontFamily(this._object.getFontResourceName()))}updateOpacity(){!this._input||(this._input.style.opacity=""+this._object.getOpacity()/255)}updateInputType(){if(!this._input)return;const e=this._input instanceof HTMLTextAreaElement,t=this._object.getInputType()==="text area";e!==t&&(this._destroyElement(),this._createElement());const i=m[this._object.getInputType()]||"text";this._input.setAttribute("type",i)}updateTextColor(){!this._input||(this._input.style.color=n(this._object._getRawTextColor(),255))}updateFillColorAndOpacity(){!this._input||(this._input.style.backgroundColor=n(this._object._getRawFillColor(),this._object.getFillOpacity()))}updateBorderColorAndOpacity(){!this._input||(this._input.style.borderColor=n(this._object._getRawBorderColor(),this._object.getBorderOpacity()))}updateBorderWidth(){!this._input||(this._input.style.borderWidth=this._object.getBorderWidth()+"px")}updateDisabled(){!this._input||(this._input.disabled=this._object.isDisabled())}updateReadOnly(){!this._input||(this._input.readOnly=this._object.isReadOnly())}isFocused(){return this._input===document.activeElement}focus(){!this._input||this._input.focus()}}a.TextInputRuntimeObjectRenderer=s})(gdjs||(gdjs={}));
1
+ var gdjs;(function(a){const m={text:"text",email:"email",password:"password",number:"number","telephone number":"tel",url:"url",search:"search"},n=(o,e)=>"rgba("+o[0]+","+o[1]+","+o[2]+","+e/255+")";class s{constructor(e,t){this._input=null;this._object=e,this._instanceContainer=t,this._runtimeGame=this._instanceContainer.getGame(),this._createElement()}_createElement(){if(this._input)throw new Error("Tried to recreate an input while it already exists.");const e=this._object.getInputType()==="text area";this._input=document.createElement(e?"textarea":"input"),this._input.style.border="1px solid black",this._input.autocomplete="off",this._input.style.borderRadius="0px",this._input.style.backgroundColor="white",this._input.style.position="absolute",this._input.style.resize="none",this._input.style.outline="none",this._input.style.pointerEvents="auto",this._input.style.display="none",this._input.style.boxSizing="border-box",this._input.addEventListener("input",()=>{!this._input||this._object.onRendererInputValueChanged(this._input.value)}),this._input.addEventListener("touchstart",()=>{!this._input||document.activeElement!==this._input&&this._input.focus()}),this.updateString(),this.updateFont(),this.updatePlaceholder(),this.updateOpacity(),this.updateInputType(),this.updateTextColor(),this.updateFillColorAndOpacity(),this.updateBorderColorAndOpacity(),this.updateBorderWidth(),this.updateDisabled(),this.updateReadOnly(),this._runtimeGame.getRenderer().getDomElementContainer().appendChild(this._input)}_destroyElement(){!this._input||(this._input.remove(),this._input=null)}onScenePaused(){this._destroyElement()}onSceneResumed(){this._input||this._createElement()}onDestroy(){this._destroyElement()}updatePreRender(){if(!this._input)return;if(this._object.isHidden()){this._input.style.display="none";return}const e=this._instanceContainer.getLayer(this._object.getLayer());if(!e.isVisible()){this._input.style.display="none";return}const t=a.staticArray(s.prototype.updatePreRender),i=this._instanceContainer.getGame(),r=i.getRenderer(),u=e.convertInverseCoords(this._object.x,this._object.y,0,t),p=u[0],h=u[1],l=e.convertInverseCoords(this._object.x+this._object.getWidth(),this._object.y+this._object.getHeight(),0,t),c=l[0],d=l[1];if(c<0||d<0||p>i.getGameResolutionWidth()||h>i.getGameResolutionHeight()){this._input.style.display="none";return}t[0]=p,t[1]=h,r.convertCanvasToDomElementContainerCoords(t,t);const _=t[0],y=t[1];t[0]=c,t[1]=d,r.convertCanvasToDomElementContainerCoords(t,t);const g=t[0],b=t[1],f=g-_,C=b-y;this._input.style.left=_+"px",this._input.style.top=y+"px",this._input.style.width=f+"px",this._input.style.height=C+"px",this._input.style.transform="rotate3d(0,0,1,"+this._object.getAngle()%360+"deg)",this._input.style.fontSize=this._object.getFontSize()*r.getCanvasToDomElementContainerHeightScale()+"px",this._input.style.display="initial"}updateString(){!this._input||(this._input.value=this._object.getString())}updatePlaceholder(){!this._input||(this._input.placeholder=this._object.getPlaceholder())}updateFont(){!this._input||(this._input.style.fontFamily=this._instanceContainer.getGame().getFontManager().getFontFamily(this._object.getFontResourceName()))}updateOpacity(){!this._input||(this._input.style.opacity=""+this._object.getOpacity()/255)}updateInputType(){if(!this._input)return;const e=this._input instanceof HTMLTextAreaElement,t=this._object.getInputType()==="text area";e!==t&&(this._destroyElement(),this._createElement());const i=m[this._object.getInputType()]||"text";this._input.setAttribute("type",i)}updateTextColor(){!this._input||(this._input.style.color=n(this._object._getRawTextColor(),255))}updateFillColorAndOpacity(){!this._input||(this._input.style.backgroundColor=n(this._object._getRawFillColor(),this._object.getFillOpacity()))}updateBorderColorAndOpacity(){!this._input||(this._input.style.borderColor=n(this._object._getRawBorderColor(),this._object.getBorderOpacity()))}updateBorderWidth(){!this._input||(this._input.style.borderWidth=this._object.getBorderWidth()+"px")}updateDisabled(){!this._input||(this._input.disabled=this._object.isDisabled())}updateReadOnly(){!this._input||(this._input.readOnly=this._object.isReadOnly())}isFocused(){return this._input===document.activeElement}focus(){!this._input||this._input.focus()}}a.TextInputRuntimeObjectRenderer=s})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=textinputruntimeobject-pixi-renderer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/TextInput/textinputruntimeobject-pixi-renderer.ts"],
4
- "sourcesContent": ["namespace gdjs {\n const userFriendlyToHtmlInputTypes = {\n text: 'text',\n email: 'email',\n password: 'password',\n number: 'number',\n 'telephone number': 'tel',\n url: 'url',\n search: 'search',\n };\n\n const formatRgbAndOpacityToCssRgba = (\n rgbColor: [float, float, float],\n opacity: float\n ) => {\n return (\n 'rgba(' +\n rgbColor[0] +\n ',' +\n rgbColor[1] +\n ',' +\n rgbColor[2] +\n ',' +\n opacity / 255 +\n ')'\n );\n };\n\n class TextInputRuntimeObjectPixiRenderer {\n private _object: gdjs.TextInputRuntimeObject;\n private _input: HTMLInputElement | HTMLTextAreaElement | null = null;\n private _instanceContainer: gdjs.RuntimeInstanceContainer;\n private _runtimeGame: gdjs.RuntimeGame;\n\n constructor(\n runtimeObject: gdjs.TextInputRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n this._instanceContainer = instanceContainer;\n this._runtimeGame = this._instanceContainer.getGame();\n\n this._createElement();\n }\n\n _createElement() {\n if (!!this._input)\n throw new Error('Tried to recreate an input while it already exists.');\n\n const isTextArea = this._object.getInputType() === 'text area';\n this._input = document.createElement(isTextArea ? 'textarea' : 'input');\n this._input.style.border = '1px solid black';\n this._input.autocomplete = 'off';\n this._input.style.borderRadius = '0px';\n this._input.style.backgroundColor = 'white';\n this._input.style.position = 'absolute';\n this._input.style.resize = 'none';\n this._input.style.outline = 'none';\n this._input.style.pointerEvents = 'auto'; // Element can be clicked/touched.\n this._input.style.display = 'none'; // Hide while object is being set up.\n this._input.style.boxSizing = 'border-box'; // Important for iOS, because border is added to width/height.\n\n this._input.addEventListener('input', () => {\n if (!this._input) return;\n\n this._object.onRendererInputValueChanged(this._input.value);\n });\n this._input.addEventListener('touchstart', () => {\n if (!this._input) return;\n\n // Focus directly when touching the input on touchscreens.\n if (document.activeElement !== this._input) this._input.focus();\n });\n\n this.updateString();\n this.updateFont();\n this.updatePlaceholder();\n this.updateOpacity();\n this.updateInputType();\n this.updateTextColor();\n this.updateFillColorAndOpacity();\n this.updateBorderColorAndOpacity();\n this.updateBorderWidth();\n this.updateDisabled();\n this.updateReadOnly();\n\n this._runtimeGame\n .getRenderer()\n .getDomElementContainer()!\n .appendChild(this._input);\n }\n\n _destroyElement() {\n if (!this._input) return;\n this._input.remove();\n this._input = null;\n }\n\n onScenePaused() {\n // This is the only renderer that uses a DOM element. PixiJS renderers\n // usually don't need to know if a scene is paused/resumed,\n // because their renderers are then not used (not part of the other scene graphs).\n // For this object, we need to remove the DOM element whenever it must\n // be not rendered.\n this._destroyElement();\n }\n\n onSceneResumed() {\n this._createElement();\n }\n\n onDestroy() {\n this._destroyElement();\n }\n\n updatePreRender() {\n if (!this._input) return;\n\n // Hide the input entirely if the object is hidden.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n if (this._object.isHidden()) {\n this._input.style.display = 'none';\n return;\n }\n\n // Hide the input entirely if the layer is not visible.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n const layer = this._instanceContainer.getLayer(this._object.getLayer());\n if (!layer.isVisible()) {\n this._input.style.display = 'none';\n return;\n }\n\n const workingPoint: FloatPoint = gdjs.staticArray(\n TextInputRuntimeObjectPixiRenderer.prototype.updatePreRender\n ) as FloatPoint;\n\n const runtimeGame = this._instanceContainer.getGame();\n const runtimeGameRenderer = runtimeGame.getRenderer();\n const topLeftCanvasCoordinates = layer.convertInverseCoords(\n this._object.x,\n this._object.y,\n 0,\n workingPoint\n );\n const canvasLeft = topLeftCanvasCoordinates[0];\n const canvasTop = topLeftCanvasCoordinates[1];\n\n const bottomRightCanvasCoordinates = layer.convertInverseCoords(\n this._object.x + this._object.getWidth(),\n this._object.y + this._object.getHeight(),\n 0,\n workingPoint\n );\n const canvasRight = bottomRightCanvasCoordinates[0];\n const canvasBottom = bottomRightCanvasCoordinates[1];\n\n // Hide the input entirely if not visible at all.\n const isOutsideCanvas =\n canvasRight < 0 ||\n canvasBottom < 0 ||\n canvasLeft > runtimeGame.getGameResolutionWidth() ||\n canvasTop > runtimeGame.getGameResolutionHeight();\n if (isOutsideCanvas) {\n this._input.style.display = 'none';\n return;\n }\n\n // Position the input on the container on top of the canvas.\n workingPoint[0] = canvasLeft;\n workingPoint[1] = canvasTop;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageLeft = workingPoint[0];\n const pageTop = workingPoint[1];\n\n workingPoint[0] = canvasRight;\n workingPoint[1] = canvasBottom;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageRight = workingPoint[0];\n const pageBottom = workingPoint[1];\n\n const widthInContainer = pageRight - pageLeft;\n const heightInContainer = pageBottom - pageTop;\n\n this._input.style.left = pageLeft + 'px';\n this._input.style.top = pageTop + 'px';\n this._input.style.width = widthInContainer + 'px';\n this._input.style.height = heightInContainer + 'px';\n this._input.style.transform =\n 'rotate3d(0,0,1,' + (this._object.getAngle() % 360) + 'deg)';\n\n // Automatically adjust the font size to follow the game scale.\n this._input.style.fontSize =\n this._object.getFontSize() *\n runtimeGameRenderer.getCanvasToDomElementContainerHeightScale() +\n 'px';\n\n // Display after the object is positioned.\n this._input.style.display = 'initial';\n }\n\n updateString() {\n if (!this._input) return;\n this._input.value = this._object.getString();\n }\n\n updatePlaceholder() {\n if (!this._input) return;\n this._input.placeholder = this._object.getPlaceholder();\n }\n\n updateFont() {\n if (!this._input) return;\n this._input.style.fontFamily = this._instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(this._object.getFontResourceName());\n }\n\n updateOpacity() {\n if (!this._input) return;\n this._input.style.opacity = '' + this._object.getOpacity() / 255;\n }\n\n updateInputType() {\n if (!this._input) return;\n\n const isTextArea = this._input instanceof HTMLTextAreaElement;\n const shouldBeTextArea = this._object.getInputType() === 'text area';\n if (isTextArea !== shouldBeTextArea) {\n this._destroyElement();\n this._createElement();\n }\n\n const newType =\n userFriendlyToHtmlInputTypes[this._object.getInputType()] || 'text';\n this._input.setAttribute('type', newType);\n }\n\n updateTextColor() {\n if (!this._input) return;\n\n this._input.style.color = formatRgbAndOpacityToCssRgba(\n this._object._getRawTextColor(),\n 255\n );\n }\n\n updateFillColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.backgroundColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawFillColor(),\n this._object.getFillOpacity()\n );\n }\n\n updateBorderColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.borderColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawBorderColor(),\n this._object.getBorderOpacity()\n );\n }\n updateBorderWidth() {\n if (!this._input) return;\n\n this._input.style.borderWidth = this._object.getBorderWidth() + 'px';\n }\n updateDisabled() {\n if (!this._input) return;\n\n this._input.disabled = this._object.isDisabled();\n }\n updateReadOnly() {\n if (!this._input) return;\n\n this._input.readOnly = this._object.isReadOnly();\n }\n\n isFocused() {\n return this._input === document.activeElement;\n }\n\n focus() {\n if (!this._input) return;\n\n this._input.focus();\n }\n }\n\n export const TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n export type TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,KAAM,GAA+B,CACnC,KAAM,OACN,MAAO,QACP,SAAU,WACV,OAAQ,SACR,mBAAoB,MACpB,IAAK,MACL,OAAQ,UAGJ,EAA+B,CACnC,EACA,IAGE,QACA,EAAS,GACT,IACA,EAAS,GACT,IACA,EAAS,GACT,IACA,EAAU,IACV,IAIJ,OAAyC,CAMvC,YACE,EACA,EACA,CAPM,YAAwD,KAQ9D,KAAK,QAAU,EACf,KAAK,mBAAqB,EAC1B,KAAK,aAAe,KAAK,mBAAmB,UAE5C,KAAK,iBAGP,gBAAiB,CACf,GAAM,KAAK,OACT,KAAM,IAAI,OAAM,uDAElB,KAAM,GAAa,KAAK,QAAQ,iBAAmB,YACnD,KAAK,OAAS,SAAS,cAAc,EAAa,WAAa,SAC/D,KAAK,OAAO,MAAM,OAAS,kBAC3B,KAAK,OAAO,aAAe,MAC3B,KAAK,OAAO,MAAM,aAAe,MACjC,KAAK,OAAO,MAAM,gBAAkB,QACpC,KAAK,OAAO,MAAM,SAAW,WAC7B,KAAK,OAAO,MAAM,OAAS,OAC3B,KAAK,OAAO,MAAM,QAAU,OAC5B,KAAK,OAAO,MAAM,cAAgB,OAClC,KAAK,OAAO,MAAM,QAAU,OAC5B,KAAK,OAAO,MAAM,UAAY,aAE9B,KAAK,OAAO,iBAAiB,QAAS,IAAM,CAC1C,AAAI,CAAC,KAAK,QAEV,KAAK,QAAQ,4BAA4B,KAAK,OAAO,SAEvD,KAAK,OAAO,iBAAiB,aAAc,IAAM,CAC/C,AAAI,CAAC,KAAK,QAGN,SAAS,gBAAkB,KAAK,QAAQ,KAAK,OAAO,UAG1D,KAAK,eACL,KAAK,aACL,KAAK,oBACL,KAAK,gBACL,KAAK,kBACL,KAAK,kBACL,KAAK,4BACL,KAAK,8BACL,KAAK,oBACL,KAAK,iBACL,KAAK,iBAEL,KAAK,aACF,cACA,yBACA,YAAY,KAAK,QAGtB,iBAAkB,CAChB,AAAI,CAAC,KAAK,QACV,MAAK,OAAO,SACZ,KAAK,OAAS,MAGhB,eAAgB,CAMd,KAAK,kBAGP,gBAAiB,CACf,KAAK,iBAGP,WAAY,CACV,KAAK,kBAGP,iBAAkB,CAChB,GAAI,CAAC,KAAK,OAAQ,OAKlB,GAAI,KAAK,QAAQ,WAAY,CAC3B,KAAK,OAAO,MAAM,QAAU,OAC5B,OAMF,KAAM,GAAQ,KAAK,mBAAmB,SAAS,KAAK,QAAQ,YAC5D,GAAI,CAAC,EAAM,YAAa,CACtB,KAAK,OAAO,MAAM,QAAU,OAC5B,OAGF,KAAM,GAA2B,EAAK,YACpC,EAAmC,UAAU,iBAGzC,EAAc,KAAK,mBAAmB,UACtC,EAAsB,EAAY,cAClC,EAA2B,EAAM,qBACrC,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,EACA,GAEI,EAAa,EAAyB,GACtC,EAAY,EAAyB,GAErC,EAA+B,EAAM,qBACzC,KAAK,QAAQ,EAAI,KAAK,QAAQ,WAC9B,KAAK,QAAQ,EAAI,KAAK,QAAQ,YAC9B,EACA,GAEI,EAAc,EAA6B,GAC3C,EAAe,EAA6B,GAQlD,GAJE,EAAc,GACd,EAAe,GACf,EAAa,EAAY,0BACzB,EAAY,EAAY,0BACL,CACnB,KAAK,OAAO,MAAM,QAAU,OAC5B,OAIF,EAAa,GAAK,EAClB,EAAa,GAAK,EAClB,EAAoB,yCAClB,EACA,GAEF,KAAM,GAAW,EAAa,GACxB,EAAU,EAAa,GAE7B,EAAa,GAAK,EAClB,EAAa,GAAK,EAClB,EAAoB,yCAClB,EACA,GAEF,KAAM,GAAY,EAAa,GACzB,EAAa,EAAa,GAE1B,EAAmB,EAAY,EAC/B,EAAoB,EAAa,EAEvC,KAAK,OAAO,MAAM,KAAO,EAAW,KACpC,KAAK,OAAO,MAAM,IAAM,EAAU,KAClC,KAAK,OAAO,MAAM,MAAQ,EAAmB,KAC7C,KAAK,OAAO,MAAM,OAAS,EAAoB,KAC/C,KAAK,OAAO,MAAM,UAChB,kBAAqB,KAAK,QAAQ,WAAa,IAAO,OAGxD,KAAK,OAAO,MAAM,SAChB,KAAK,QAAQ,cACX,EAAoB,4CACtB,KAGF,KAAK,OAAO,MAAM,QAAU,UAG9B,cAAe,CACb,AAAI,CAAC,KAAK,QACV,MAAK,OAAO,MAAQ,KAAK,QAAQ,aAGnC,mBAAoB,CAClB,AAAI,CAAC,KAAK,QACV,MAAK,OAAO,YAAc,KAAK,QAAQ,kBAGzC,YAAa,CACX,AAAI,CAAC,KAAK,QACV,MAAK,OAAO,MAAM,WAAa,KAAK,mBACjC,UACA,iBACA,cAAc,KAAK,QAAQ,wBAGhC,eAAgB,CACd,AAAI,CAAC,KAAK,QACV,MAAK,OAAO,MAAM,QAAU,GAAK,KAAK,QAAQ,aAAe,KAG/D,iBAAkB,CAChB,GAAI,CAAC,KAAK,OAAQ,OAElB,KAAM,GAAa,KAAK,iBAAkB,qBACpC,EAAmB,KAAK,QAAQ,iBAAmB,YACzD,AAAI,IAAe,GACjB,MAAK,kBACL,KAAK,kBAGP,KAAM,GACJ,EAA6B,KAAK,QAAQ,iBAAmB,OAC/D,KAAK,OAAO,aAAa,OAAQ,GAGnC,iBAAkB,CAChB,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,MAAM,MAAQ,EACxB,KAAK,QAAQ,mBACb,MAIJ,2BAA4B,CAC1B,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,MAAM,gBAAkB,EAClC,KAAK,QAAQ,mBACb,KAAK,QAAQ,mBAIjB,6BAA8B,CAC5B,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,MAAM,YAAc,EAC9B,KAAK,QAAQ,qBACb,KAAK,QAAQ,qBAGjB,mBAAoB,CAClB,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,MAAM,YAAc,KAAK,QAAQ,iBAAmB,MAElE,gBAAiB,CACf,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,SAAW,KAAK,QAAQ,cAEtC,gBAAiB,CACf,AAAI,CAAC,KAAK,QAEV,MAAK,OAAO,SAAW,KAAK,QAAQ,cAGtC,WAAY,CACV,MAAO,MAAK,SAAW,SAAS,cAGlC,OAAQ,CACN,AAAI,CAAC,KAAK,QAEV,KAAK,OAAO,SAIT,AAAM,iCAAiC,IA5StC",
4
+ "sourcesContent": ["namespace gdjs {\n const userFriendlyToHtmlInputTypes = {\n text: 'text',\n email: 'email',\n password: 'password',\n number: 'number',\n 'telephone number': 'tel',\n url: 'url',\n search: 'search',\n };\n\n const formatRgbAndOpacityToCssRgba = (\n rgbColor: [float, float, float],\n opacity: float\n ) => {\n return (\n 'rgba(' +\n rgbColor[0] +\n ',' +\n rgbColor[1] +\n ',' +\n rgbColor[2] +\n ',' +\n opacity / 255 +\n ')'\n );\n };\n\n class TextInputRuntimeObjectPixiRenderer {\n private _object: gdjs.TextInputRuntimeObject;\n private _input: HTMLInputElement | HTMLTextAreaElement | null = null;\n private _instanceContainer: gdjs.RuntimeInstanceContainer;\n private _runtimeGame: gdjs.RuntimeGame;\n\n constructor(\n runtimeObject: gdjs.TextInputRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n this._instanceContainer = instanceContainer;\n this._runtimeGame = this._instanceContainer.getGame();\n\n this._createElement();\n }\n\n _createElement() {\n if (!!this._input)\n throw new Error('Tried to recreate an input while it already exists.');\n\n const isTextArea = this._object.getInputType() === 'text area';\n this._input = document.createElement(isTextArea ? 'textarea' : 'input');\n this._input.style.border = '1px solid black';\n this._input.autocomplete = 'off';\n this._input.style.borderRadius = '0px';\n this._input.style.backgroundColor = 'white';\n this._input.style.position = 'absolute';\n this._input.style.resize = 'none';\n this._input.style.outline = 'none';\n this._input.style.pointerEvents = 'auto'; // Element can be clicked/touched.\n this._input.style.display = 'none'; // Hide while object is being set up.\n this._input.style.boxSizing = 'border-box'; // Important for iOS, because border is added to width/height.\n\n this._input.addEventListener('input', () => {\n if (!this._input) return;\n\n this._object.onRendererInputValueChanged(this._input.value);\n });\n this._input.addEventListener('touchstart', () => {\n if (!this._input) return;\n\n // Focus directly when touching the input on touchscreens.\n if (document.activeElement !== this._input) this._input.focus();\n });\n\n this.updateString();\n this.updateFont();\n this.updatePlaceholder();\n this.updateOpacity();\n this.updateInputType();\n this.updateTextColor();\n this.updateFillColorAndOpacity();\n this.updateBorderColorAndOpacity();\n this.updateBorderWidth();\n this.updateDisabled();\n this.updateReadOnly();\n\n this._runtimeGame\n .getRenderer()\n .getDomElementContainer()!\n .appendChild(this._input);\n }\n\n _destroyElement() {\n if (!this._input) return;\n this._input.remove();\n this._input = null;\n }\n\n onScenePaused() {\n // This is the only renderer that uses a DOM element. PixiJS renderers\n // usually don't need to know if a scene is paused/resumed,\n // because their renderers are then not used (not part of the other scene graphs).\n // For this object, we need to remove the DOM element whenever it must\n // be not rendered.\n this._destroyElement();\n }\n\n onSceneResumed() {\n // The input must have been destroyed when the scene was paused,\n // in case it still exists, skip recreation.\n if (!this._input) this._createElement();\n }\n\n onDestroy() {\n this._destroyElement();\n }\n\n updatePreRender() {\n if (!this._input) return;\n\n // Hide the input entirely if the object is hidden.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n if (this._object.isHidden()) {\n this._input.style.display = 'none';\n return;\n }\n\n // Hide the input entirely if the layer is not visible.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n const layer = this._instanceContainer.getLayer(this._object.getLayer());\n if (!layer.isVisible()) {\n this._input.style.display = 'none';\n return;\n }\n\n const workingPoint: FloatPoint = gdjs.staticArray(\n TextInputRuntimeObjectPixiRenderer.prototype.updatePreRender\n ) as FloatPoint;\n\n const runtimeGame = this._instanceContainer.getGame();\n const runtimeGameRenderer = runtimeGame.getRenderer();\n const topLeftCanvasCoordinates = layer.convertInverseCoords(\n this._object.x,\n this._object.y,\n 0,\n workingPoint\n );\n const canvasLeft = topLeftCanvasCoordinates[0];\n const canvasTop = topLeftCanvasCoordinates[1];\n\n const bottomRightCanvasCoordinates = layer.convertInverseCoords(\n this._object.x + this._object.getWidth(),\n this._object.y + this._object.getHeight(),\n 0,\n workingPoint\n );\n const canvasRight = bottomRightCanvasCoordinates[0];\n const canvasBottom = bottomRightCanvasCoordinates[1];\n\n // Hide the input entirely if not visible at all.\n const isOutsideCanvas =\n canvasRight < 0 ||\n canvasBottom < 0 ||\n canvasLeft > runtimeGame.getGameResolutionWidth() ||\n canvasTop > runtimeGame.getGameResolutionHeight();\n if (isOutsideCanvas) {\n this._input.style.display = 'none';\n return;\n }\n\n // Position the input on the container on top of the canvas.\n workingPoint[0] = canvasLeft;\n workingPoint[1] = canvasTop;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageLeft = workingPoint[0];\n const pageTop = workingPoint[1];\n\n workingPoint[0] = canvasRight;\n workingPoint[1] = canvasBottom;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageRight = workingPoint[0];\n const pageBottom = workingPoint[1];\n\n const widthInContainer = pageRight - pageLeft;\n const heightInContainer = pageBottom - pageTop;\n\n this._input.style.left = pageLeft + 'px';\n this._input.style.top = pageTop + 'px';\n this._input.style.width = widthInContainer + 'px';\n this._input.style.height = heightInContainer + 'px';\n this._input.style.transform =\n 'rotate3d(0,0,1,' + (this._object.getAngle() % 360) + 'deg)';\n\n // Automatically adjust the font size to follow the game scale.\n this._input.style.fontSize =\n this._object.getFontSize() *\n runtimeGameRenderer.getCanvasToDomElementContainerHeightScale() +\n 'px';\n\n // Display after the object is positioned.\n this._input.style.display = 'initial';\n }\n\n updateString() {\n if (!this._input) return;\n this._input.value = this._object.getString();\n }\n\n updatePlaceholder() {\n if (!this._input) return;\n this._input.placeholder = this._object.getPlaceholder();\n }\n\n updateFont() {\n if (!this._input) return;\n this._input.style.fontFamily = this._instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(this._object.getFontResourceName());\n }\n\n updateOpacity() {\n if (!this._input) return;\n this._input.style.opacity = '' + this._object.getOpacity() / 255;\n }\n\n updateInputType() {\n if (!this._input) return;\n\n const isTextArea = this._input instanceof HTMLTextAreaElement;\n const shouldBeTextArea = this._object.getInputType() === 'text area';\n if (isTextArea !== shouldBeTextArea) {\n this._destroyElement();\n this._createElement();\n }\n\n const newType =\n userFriendlyToHtmlInputTypes[this._object.getInputType()] || 'text';\n this._input.setAttribute('type', newType);\n }\n\n updateTextColor() {\n if (!this._input) return;\n\n this._input.style.color = formatRgbAndOpacityToCssRgba(\n this._object._getRawTextColor(),\n 255\n );\n }\n\n updateFillColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.backgroundColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawFillColor(),\n this._object.getFillOpacity()\n );\n }\n\n updateBorderColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.borderColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawBorderColor(),\n this._object.getBorderOpacity()\n );\n }\n updateBorderWidth() {\n if (!this._input) return;\n\n this._input.style.borderWidth = this._object.getBorderWidth() + 'px';\n }\n updateDisabled() {\n if (!this._input) return;\n\n this._input.disabled = this._object.isDisabled();\n }\n updateReadOnly() {\n if (!this._input) return;\n\n this._input.readOnly = this._object.isReadOnly();\n }\n\n isFocused() {\n return this._input === document.activeElement;\n }\n\n focus() {\n if (!this._input) return;\n\n this._input.focus();\n }\n }\n\n export const TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n export type TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){const n=["text","email","password","number","telephone number","url","search","text area"],i=o=>{const t=o.toLowerCase();return n.includes(t)?o:"text"},s=300,l=30;class d extends r.RuntimeObject{constructor(t,e){super(t,e);this.opacity=255;this._width=s;this._height=l;this._string=e.content.initialValue,this._placeholder=e.content.placeholder,this._fontResourceName=e.content.fontResourceName,this._fontSize=e.content.fontSize||20,this._inputType=i(e.content.inputType),this._textColor=r.rgbOrHexToRGBColor(e.content.textColor),this._fillColor=r.rgbOrHexToRGBColor(e.content.fillColor),this._fillOpacity=e.content.fillOpacity,this._borderColor=r.rgbOrHexToRGBColor(e.content.borderColor),this._borderOpacity=e.content.borderOpacity,this._borderWidth=e.content.borderWidth,this._disabled=e.content.disabled,this._readOnly=e.content.readOnly,this._renderer=new r.TextInputRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return null}updateFromObjectData(t,e){return t.content.initialValue!==e.content.initialValue&&this._string===t.content.initialValue&&this.setString(e.content.initialValue),t.content.placeholder!==e.content.placeholder&&this.setPlaceholder(e.content.placeholder),t.content.fontResourceName!==e.content.fontResourceName&&this.setFontResourceName(e.content.fontResourceName),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.inputType!==e.content.inputType&&this.setInputType(e.content.inputType),t.content.textColor!==e.content.textColor&&this.setTextColor(e.content.textColor),t.content.fillColor!==e.content.fillColor&&this.setFillColor(e.content.fillColor),t.content.fillOpacity!==e.content.fillOpacity&&this.setFillOpacity(e.content.fillOpacity),t.content.borderColor!==e.content.borderColor&&this.setBorderColor(e.content.borderColor),t.content.borderOpacity!==e.content.borderOpacity&&this.setBorderOpacity(e.content.borderOpacity),t.content.borderWidth!==e.content.borderWidth&&this.setBorderWidth(e.content.borderWidth),t.content.disabled!==e.content.disabled&&this.setDisabled(e.content.disabled),t.content.readOnly!==e.content.readOnly&&this.setReadOnly(e.content.readOnly),!0}updatePreRender(t){this._renderer.updatePreRender()}extraInitializationFromInitialInstance(t){for(const e of t.stringProperties)e.name==="initialValue"?this.setString(e.value):e.name==="placeholder"&&this.setPlaceholder(e.value);t.customSize&&(this.setWidth(t.width),this.setHeight(t.height))}onScenePaused(t){this._renderer.onScenePaused()}onSceneResumed(t){this._renderer.onSceneResumed()}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setOpacity(t){this.opacity=Math.max(0,Math.min(255,t)),this._renderer.updateOpacity()}getOpacity(){return this.opacity}setSize(t,e){this.setWidth(t),this.setHeight(e)}setWidth(t){this._width=t}setHeight(t){this._height=t}getWidth(){return this._width}getHeight(){return this._height}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._string}setText(t){t!==this._string&&(this._string=t,this._renderer.updateString())}onRendererInputValueChanged(t){this._string=t}getFontResourceName(){return this._fontResourceName}setFontResourceName(t){this._fontResourceName!==t&&(this._fontResourceName=t,this._renderer.updateFont())}getFontSize(){return this._fontSize}setFontSize(t){this._fontSize=t}getPlaceholder(){return this._placeholder}setPlaceholder(t){t!==this._placeholder&&(this._placeholder=t,this._renderer.updatePlaceholder())}getInputType(){return this._inputType}setInputType(t){const e=t.toLowerCase();e!==this._inputType&&(this._inputType=i(e),this._renderer.updateInputType())}setTextColor(t){this._textColor=r.rgbOrHexToRGBColor(t),this._renderer.updateTextColor()}getTextColor(){return this._textColor[0]+";"+this._textColor[1]+";"+this._textColor[2]}_getRawTextColor(){return this._textColor}setFillColor(t){this._fillColor=r.rgbOrHexToRGBColor(t),this._renderer.updateFillColorAndOpacity()}getFillColor(){return this._fillColor[0]+";"+this._fillColor[1]+";"+this._fillColor[2]}_getRawFillColor(){return this._fillColor}setFillOpacity(t){this._fillOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateFillColorAndOpacity()}getFillOpacity(){return this._fillOpacity}setBorderColor(t){this._borderColor=r.rgbOrHexToRGBColor(t),this._renderer.updateBorderColorAndOpacity()}getBorderColor(){return this._borderColor[0]+";"+this._borderColor[1]+";"+this._borderColor[2]}_getRawBorderColor(){return this._borderColor}setBorderOpacity(t){this._borderOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateBorderColorAndOpacity()}getBorderOpacity(){return this._borderOpacity}setBorderWidth(t){this._borderWidth=Math.max(0,t),this._renderer.updateBorderWidth()}getBorderWidth(){return this._borderWidth}setDisabled(t){this._disabled=t,this._renderer.updateDisabled()}isDisabled(){return this._disabled}setReadOnly(t){this._readOnly=t,this._renderer.updateReadOnly()}isReadOnly(){return this._readOnly}isFocused(){return this._renderer.isFocused()}focus(){this._renderer.focus()}}r.TextInputRuntimeObject=d,r.registerObject("TextInput::TextInputObject",r.TextInputRuntimeObject)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(r){const n=["text","email","password","number","telephone number","url","search","text area"],o=i=>{const t=i.toLowerCase();return n.includes(t)?i:"text"},s=300,l=30;class d extends r.RuntimeObject{constructor(t,e){super(t,e);this.opacity=255;this._width=s;this._height=l;this._string=e.content.initialValue,this._placeholder=e.content.placeholder,this._fontResourceName=e.content.fontResourceName,this._fontSize=e.content.fontSize||20,this._inputType=o(e.content.inputType),this._textColor=r.rgbOrHexToRGBColor(e.content.textColor),this._fillColor=r.rgbOrHexToRGBColor(e.content.fillColor),this._fillOpacity=e.content.fillOpacity,this._borderColor=r.rgbOrHexToRGBColor(e.content.borderColor),this._borderOpacity=e.content.borderOpacity,this._borderWidth=e.content.borderWidth,this._disabled=e.content.disabled,this._readOnly=e.content.readOnly,this._renderer=new r.TextInputRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return null}updateFromObjectData(t,e){return t.content.initialValue!==e.content.initialValue&&this._string===t.content.initialValue&&this.setString(e.content.initialValue),t.content.placeholder!==e.content.placeholder&&this.setPlaceholder(e.content.placeholder),t.content.fontResourceName!==e.content.fontResourceName&&this.setFontResourceName(e.content.fontResourceName),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.inputType!==e.content.inputType&&this.setInputType(e.content.inputType),t.content.textColor!==e.content.textColor&&this.setTextColor(e.content.textColor),t.content.fillColor!==e.content.fillColor&&this.setFillColor(e.content.fillColor),t.content.fillOpacity!==e.content.fillOpacity&&this.setFillOpacity(e.content.fillOpacity),t.content.borderColor!==e.content.borderColor&&this.setBorderColor(e.content.borderColor),t.content.borderOpacity!==e.content.borderOpacity&&this.setBorderOpacity(e.content.borderOpacity),t.content.borderWidth!==e.content.borderWidth&&this.setBorderWidth(e.content.borderWidth),t.content.disabled!==e.content.disabled&&this.setDisabled(e.content.disabled),t.content.readOnly!==e.content.readOnly&&this.setReadOnly(e.content.readOnly),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),opa:this.getOpacity(),wid:this.getWidth(),hei:this.getHeight(),txt:this.getText(),frn:this.getFontResourceName(),fs:this.getFontSize(),place:this.getPlaceholder(),it:this.getInputType(),tc:this.getTextColor(),fc:this.getFillColor(),fo:this.getFillOpacity(),bc:this.getBorderColor(),bo:this.getBorderOpacity(),bw:this.getBorderWidth(),dis:this.isDisabled(),ro:this.isReadOnly()}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),t.opa!==void 0&&this.setOpacity(t.opa),t.wid!==void 0&&this.setWidth(t.wid),t.hei!==void 0&&this.setHeight(t.hei),t.txt!==void 0&&this.setText(t.txt),t.frn!==void 0&&this.setFontResourceName(t.frn),t.fs!==void 0&&this.setFontSize(t.fs),t.place!==void 0&&this.setPlaceholder(t.place),t.it!==void 0&&this.setInputType(t.it),t.tc!==void 0&&this.setTextColor(t.tc),t.fc!==void 0&&this.setFillColor(t.fc),t.fo!==void 0&&this.setFillOpacity(t.fo),t.bc!==void 0&&this.setBorderColor(t.bc),t.bo!==void 0&&this.setBorderOpacity(t.bo),t.bw!==void 0&&this.setBorderWidth(t.bw),t.dis!==void 0&&this.setDisabled(t.dis),t.ro!==void 0&&this.setReadOnly(t.ro)}updatePreRender(t){this._renderer.updatePreRender()}extraInitializationFromInitialInstance(t){for(const e of t.stringProperties)e.name==="initialValue"?this.setString(e.value):e.name==="placeholder"&&this.setPlaceholder(e.value);t.customSize&&(this.setWidth(t.width),this.setHeight(t.height))}onScenePaused(t){this._renderer.onScenePaused()}onSceneResumed(t){this._renderer.onSceneResumed()}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setOpacity(t){this.opacity=Math.max(0,Math.min(255,t)),this._renderer.updateOpacity()}getOpacity(){return this.opacity}setSize(t,e){this.setWidth(t),this.setHeight(e)}setWidth(t){this._width=t}setHeight(t){this._height=t}getWidth(){return this._width}getHeight(){return this._height}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._string}setText(t){t!==this._string&&(this._string=t,this._renderer.updateString())}onRendererInputValueChanged(t){this._string=t}getFontResourceName(){return this._fontResourceName}setFontResourceName(t){this._fontResourceName!==t&&(this._fontResourceName=t,this._renderer.updateFont())}getFontSize(){return this._fontSize}setFontSize(t){this._fontSize=t}getPlaceholder(){return this._placeholder}setPlaceholder(t){t!==this._placeholder&&(this._placeholder=t,this._renderer.updatePlaceholder())}getInputType(){return this._inputType}setInputType(t){const e=t.toLowerCase();e!==this._inputType&&(this._inputType=o(e),this._renderer.updateInputType())}setTextColor(t){this._textColor=r.rgbOrHexToRGBColor(t),this._renderer.updateTextColor()}getTextColor(){return this._textColor[0]+";"+this._textColor[1]+";"+this._textColor[2]}_getRawTextColor(){return this._textColor}setFillColor(t){this._fillColor=r.rgbOrHexToRGBColor(t),this._renderer.updateFillColorAndOpacity()}getFillColor(){return this._fillColor[0]+";"+this._fillColor[1]+";"+this._fillColor[2]}_getRawFillColor(){return this._fillColor}setFillOpacity(t){this._fillOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateFillColorAndOpacity()}getFillOpacity(){return this._fillOpacity}setBorderColor(t){this._borderColor=r.rgbOrHexToRGBColor(t),this._renderer.updateBorderColorAndOpacity()}getBorderColor(){return this._borderColor[0]+";"+this._borderColor[1]+";"+this._borderColor[2]}_getRawBorderColor(){return this._borderColor}setBorderOpacity(t){this._borderOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateBorderColorAndOpacity()}getBorderOpacity(){return this._borderOpacity}setBorderWidth(t){this._borderWidth=Math.max(0,t),this._renderer.updateBorderWidth()}getBorderWidth(){return this._borderWidth}setDisabled(t){this._disabled=t,this._renderer.updateDisabled()}isDisabled(){return this._disabled}setReadOnly(t){this._readOnly=t,this._renderer.updateReadOnly()}isReadOnly(){return this._readOnly}isFocused(){return this._renderer.isFocused()}focus(){this._renderer.focus()}}r.TextInputRuntimeObject=d,r.registerObject("TextInput::TextInputObject",r.TextInputRuntimeObject)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=textinputruntimeobject.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/TextInput/textinputruntimeobject.ts"],
4
- "sourcesContent": ["namespace gdjs {\n const supportedInputTypes = [\n 'text',\n 'email',\n 'password',\n 'number',\n 'telephone number',\n 'url',\n 'search',\n 'text area',\n ] as const;\n\n type SupportedInputType = typeof supportedInputTypes[number];\n\n const parseInputType = (potentialInputType: string): SupportedInputType => {\n const lowercasedNewInputType = potentialInputType.toLowerCase();\n\n // @ts-ignore - we're actually checking that this value is correct.\n if (supportedInputTypes.includes(lowercasedNewInputType))\n return potentialInputType as SupportedInputType;\n\n return 'text';\n };\n\n /** Base parameters for {@link gdjs.TextInputRuntimeObject} */\n export interface TextInputObjectData extends ObjectData {\n /** The base parameters of the TextInput */\n content: {\n initialValue: string;\n placeholder: string;\n fontResourceName: string;\n fontSize: float;\n inputType: SupportedInputType;\n textColor: string;\n fillColor: string;\n fillOpacity: float;\n borderColor: string;\n borderOpacity: float;\n borderWidth: float;\n disabled: boolean;\n readOnly: boolean;\n };\n }\n\n const DEFAULT_WIDTH = 300;\n const DEFAULT_HEIGHT = 30;\n\n /**\n * Shows a text input on the screen the player can type text into.\n */\n export class TextInputRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.Resizable, gdjs.OpacityHandler {\n private _string: string;\n private _placeholder: string;\n private opacity: float = 255;\n private _width: float = DEFAULT_WIDTH;\n private _height: float = DEFAULT_HEIGHT;\n private _fontResourceName: string;\n private _fontSize: float;\n private _inputType: SupportedInputType;\n private _textColor: [float, float, float];\n private _fillColor: [float, float, float];\n private _fillOpacity: float;\n private _borderColor: [float, float, float];\n private _borderOpacity: float;\n private _borderWidth: float;\n private _disabled: boolean;\n private _readOnly: boolean;\n\n _renderer: TextInputRuntimeObjectRenderer;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: TextInputObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._string = objectData.content.initialValue;\n this._placeholder = objectData.content.placeholder;\n this._fontResourceName = objectData.content.fontResourceName;\n this._fontSize = objectData.content.fontSize || 20;\n this._inputType = parseInputType(objectData.content.inputType);\n this._textColor = gdjs.rgbOrHexToRGBColor(objectData.content.textColor);\n this._fillColor = gdjs.rgbOrHexToRGBColor(objectData.content.fillColor);\n this._fillOpacity = objectData.content.fillOpacity;\n this._borderColor = gdjs.rgbOrHexToRGBColor(\n objectData.content.borderColor\n );\n this._borderOpacity = objectData.content.borderOpacity;\n this._borderWidth = objectData.content.borderWidth;\n this._disabled = objectData.content.disabled;\n this._readOnly = objectData.content.readOnly;\n\n this._renderer = new gdjs.TextInputRuntimeObjectRenderer(\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 getRendererObject() {\n return null;\n }\n\n updateFromObjectData(\n oldObjectData: TextInputObjectData,\n newObjectData: TextInputObjectData\n ): boolean {\n if (\n oldObjectData.content.initialValue !==\n newObjectData.content.initialValue\n ) {\n if (this._string === oldObjectData.content.initialValue) {\n this.setString(newObjectData.content.initialValue);\n }\n }\n if (\n oldObjectData.content.placeholder !== newObjectData.content.placeholder\n ) {\n this.setPlaceholder(newObjectData.content.placeholder);\n }\n if (\n oldObjectData.content.fontResourceName !==\n newObjectData.content.fontResourceName\n ) {\n this.setFontResourceName(newObjectData.content.fontResourceName);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.inputType !== newObjectData.content.inputType) {\n this.setInputType(newObjectData.content.inputType);\n }\n if (oldObjectData.content.textColor !== newObjectData.content.textColor) {\n this.setTextColor(newObjectData.content.textColor);\n }\n if (oldObjectData.content.fillColor !== newObjectData.content.fillColor) {\n this.setFillColor(newObjectData.content.fillColor);\n }\n if (\n oldObjectData.content.fillOpacity !== newObjectData.content.fillOpacity\n ) {\n this.setFillOpacity(newObjectData.content.fillOpacity);\n }\n if (\n oldObjectData.content.borderColor !== newObjectData.content.borderColor\n ) {\n this.setBorderColor(newObjectData.content.borderColor);\n }\n if (\n oldObjectData.content.borderOpacity !==\n newObjectData.content.borderOpacity\n ) {\n this.setBorderOpacity(newObjectData.content.borderOpacity);\n }\n if (\n oldObjectData.content.borderWidth !== newObjectData.content.borderWidth\n ) {\n this.setBorderWidth(newObjectData.content.borderWidth);\n }\n if (oldObjectData.content.disabled !== newObjectData.content.disabled) {\n this.setDisabled(newObjectData.content.disabled);\n }\n if (oldObjectData.content.readOnly !== newObjectData.content.readOnly) {\n this.setReadOnly(newObjectData.content.readOnly);\n }\n return true;\n }\n\n updatePreRender(instanceContainer: RuntimeInstanceContainer): void {\n this._renderer.updatePreRender();\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n for (const property of initialInstanceData.stringProperties) {\n if (property.name === 'initialValue') {\n this.setString(property.value);\n } else if (property.name === 'placeholder') {\n this.setPlaceholder(property.value);\n }\n }\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n onScenePaused(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onScenePaused();\n }\n\n onSceneResumed(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onSceneResumed();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setOpacity(opacity: float): void {\n this.opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this.opacity;\n }\n\n setSize(width: number, height: number): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n setWidth(width: float): void {\n this._width = width;\n }\n\n setHeight(height: float): void {\n this._height = height;\n }\n\n /**\n * Return the width of the object.\n * @return The width of the object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Return the width of the object.\n * @return The height of the object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Get the text entered in the text input.\n * @deprecated use `getText` instead\n */\n getString() {\n return this.getText();\n }\n\n /**\n * Replace the text inside the text input.\n * @deprecated use `setText` instead\n */\n setString(text: string) {\n this.setText(text);\n }\n\n getText() {\n return this._string;\n }\n\n setText(newString: string) {\n if (newString === this._string) return;\n\n this._string = newString;\n this._renderer.updateString();\n }\n\n /**\n * Called by the renderer when the value of the input shown on the screen\n * was changed (because the user typed something).\n * This does not propagate back the value to the renderer, which would\n * result in the cursor being sent back to the end of the text.\n *\n * Do not use this if you are not inside the renderer - use `setString` instead.\n */\n onRendererInputValueChanged(inputValue: string) {\n this._string = inputValue;\n }\n\n getFontResourceName() {\n return this._fontResourceName;\n }\n\n setFontResourceName(resourceName: string) {\n if (this._fontResourceName === resourceName) return;\n\n this._fontResourceName = resourceName;\n this._renderer.updateFont();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontSize(newSize: number) {\n this._fontSize = newSize;\n }\n\n /**\n * Get the placeholder shown when no text is entered\n */\n getPlaceholder() {\n return this._placeholder;\n }\n\n /**\n * Replace the text inside the text input.\n */\n setPlaceholder(newPlaceholder: string) {\n if (newPlaceholder === this._placeholder) return;\n\n this._placeholder = newPlaceholder;\n this._renderer.updatePlaceholder();\n }\n\n /**\n * Get the type of the input.\n */\n getInputType() {\n return this._inputType;\n }\n\n /**\n * Set the type of the input.\n */\n setInputType(newInputType: string) {\n const lowercasedNewInputType = newInputType.toLowerCase();\n if (lowercasedNewInputType === this._inputType) return;\n\n this._inputType = parseInputType(lowercasedNewInputType);\n this._renderer.updateInputType();\n }\n\n setTextColor(newColor: string) {\n this._textColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateTextColor();\n }\n\n getTextColor(): string {\n return (\n this._textColor[0] + ';' + this._textColor[1] + ';' + this._textColor[2]\n );\n }\n\n _getRawTextColor(): [float, float, float] {\n return this._textColor;\n }\n\n setFillColor(newColor: string) {\n this._fillColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillColor(): string {\n return (\n this._fillColor[0] + ';' + this._fillColor[1] + ';' + this._fillColor[2]\n );\n }\n\n _getRawFillColor(): [float, float, float] {\n return this._fillColor;\n }\n\n setFillOpacity(newOpacity: float) {\n this._fillOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillOpacity(): float {\n return this._fillOpacity;\n }\n\n setBorderColor(newColor: string) {\n this._borderColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderColor(): string {\n return (\n this._borderColor[0] +\n ';' +\n this._borderColor[1] +\n ';' +\n this._borderColor[2]\n );\n }\n\n _getRawBorderColor(): [float, float, float] {\n return this._borderColor;\n }\n\n setBorderOpacity(newOpacity: float) {\n this._borderOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderOpacity(): float {\n return this._borderOpacity;\n }\n\n setBorderWidth(width: float) {\n this._borderWidth = Math.max(0, width);\n this._renderer.updateBorderWidth();\n }\n\n getBorderWidth(): float {\n return this._borderWidth;\n }\n\n setDisabled(value: boolean) {\n this._disabled = value;\n this._renderer.updateDisabled();\n }\n\n isDisabled(): boolean {\n return this._disabled;\n }\n\n setReadOnly(value: boolean) {\n this._readOnly = value;\n this._renderer.updateReadOnly();\n }\n\n isReadOnly(): boolean {\n return this._readOnly;\n }\n\n isFocused(): boolean {\n return this._renderer.isFocused();\n }\n\n focus(): void {\n this._renderer.focus();\n }\n }\n gdjs.registerObject(\n 'TextInput::TextInputObject',\n gdjs.TextInputRuntimeObject\n );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["namespace gdjs {\n const supportedInputTypes = [\n 'text',\n 'email',\n 'password',\n 'number',\n 'telephone number',\n 'url',\n 'search',\n 'text area',\n ] as const;\n\n type SupportedInputType = typeof supportedInputTypes[number];\n\n const parseInputType = (potentialInputType: string): SupportedInputType => {\n const lowercasedNewInputType = potentialInputType.toLowerCase();\n\n // @ts-ignore - we're actually checking that this value is correct.\n if (supportedInputTypes.includes(lowercasedNewInputType))\n return potentialInputType as SupportedInputType;\n\n return 'text';\n };\n\n /** Base parameters for {@link gdjs.TextInputRuntimeObject} */\n export interface TextInputObjectData extends ObjectData {\n /** The base parameters of the TextInput */\n content: {\n initialValue: string;\n placeholder: string;\n fontResourceName: string;\n fontSize: float;\n inputType: SupportedInputType;\n textColor: string;\n fillColor: string;\n fillOpacity: float;\n borderColor: string;\n borderOpacity: float;\n borderWidth: float;\n disabled: boolean;\n readOnly: boolean;\n };\n }\n\n export type TextInputNetworkSyncDataType = {\n opa: float;\n wid: float;\n hei: float;\n txt: string;\n frn: string;\n fs: number;\n place: string;\n it: SupportedInputType;\n tc: string;\n fc: string;\n fo: float;\n bc: string;\n bo: float;\n bw: float;\n dis: boolean;\n ro: boolean;\n };\n\n export type TextInputNetworkSyncData = ObjectNetworkSyncData &\n TextInputNetworkSyncDataType;\n\n const DEFAULT_WIDTH = 300;\n const DEFAULT_HEIGHT = 30;\n\n /**\n * Shows a text input on the screen the player can type text into.\n */\n export class TextInputRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.Resizable, gdjs.OpacityHandler {\n private _string: string;\n private _placeholder: string;\n private opacity: float = 255;\n private _width: float = DEFAULT_WIDTH;\n private _height: float = DEFAULT_HEIGHT;\n private _fontResourceName: string;\n private _fontSize: float;\n private _inputType: SupportedInputType;\n private _textColor: [float, float, float];\n private _fillColor: [float, float, float];\n private _fillOpacity: float;\n private _borderColor: [float, float, float];\n private _borderOpacity: float;\n private _borderWidth: float;\n private _disabled: boolean;\n private _readOnly: boolean;\n\n _renderer: TextInputRuntimeObjectRenderer;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: TextInputObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._string = objectData.content.initialValue;\n this._placeholder = objectData.content.placeholder;\n this._fontResourceName = objectData.content.fontResourceName;\n this._fontSize = objectData.content.fontSize || 20;\n this._inputType = parseInputType(objectData.content.inputType);\n this._textColor = gdjs.rgbOrHexToRGBColor(objectData.content.textColor);\n this._fillColor = gdjs.rgbOrHexToRGBColor(objectData.content.fillColor);\n this._fillOpacity = objectData.content.fillOpacity;\n this._borderColor = gdjs.rgbOrHexToRGBColor(\n objectData.content.borderColor\n );\n this._borderOpacity = objectData.content.borderOpacity;\n this._borderWidth = objectData.content.borderWidth;\n this._disabled = objectData.content.disabled;\n this._readOnly = objectData.content.readOnly;\n\n this._renderer = new gdjs.TextInputRuntimeObjectRenderer(\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 getRendererObject() {\n return null;\n }\n\n updateFromObjectData(\n oldObjectData: TextInputObjectData,\n newObjectData: TextInputObjectData\n ): boolean {\n if (\n oldObjectData.content.initialValue !==\n newObjectData.content.initialValue\n ) {\n if (this._string === oldObjectData.content.initialValue) {\n this.setString(newObjectData.content.initialValue);\n }\n }\n if (\n oldObjectData.content.placeholder !== newObjectData.content.placeholder\n ) {\n this.setPlaceholder(newObjectData.content.placeholder);\n }\n if (\n oldObjectData.content.fontResourceName !==\n newObjectData.content.fontResourceName\n ) {\n this.setFontResourceName(newObjectData.content.fontResourceName);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.inputType !== newObjectData.content.inputType) {\n this.setInputType(newObjectData.content.inputType);\n }\n if (oldObjectData.content.textColor !== newObjectData.content.textColor) {\n this.setTextColor(newObjectData.content.textColor);\n }\n if (oldObjectData.content.fillColor !== newObjectData.content.fillColor) {\n this.setFillColor(newObjectData.content.fillColor);\n }\n if (\n oldObjectData.content.fillOpacity !== newObjectData.content.fillOpacity\n ) {\n this.setFillOpacity(newObjectData.content.fillOpacity);\n }\n if (\n oldObjectData.content.borderColor !== newObjectData.content.borderColor\n ) {\n this.setBorderColor(newObjectData.content.borderColor);\n }\n if (\n oldObjectData.content.borderOpacity !==\n newObjectData.content.borderOpacity\n ) {\n this.setBorderOpacity(newObjectData.content.borderOpacity);\n }\n if (\n oldObjectData.content.borderWidth !== newObjectData.content.borderWidth\n ) {\n this.setBorderWidth(newObjectData.content.borderWidth);\n }\n if (oldObjectData.content.disabled !== newObjectData.content.disabled) {\n this.setDisabled(newObjectData.content.disabled);\n }\n if (oldObjectData.content.readOnly !== newObjectData.content.readOnly) {\n this.setReadOnly(newObjectData.content.readOnly);\n }\n return true;\n }\n\n getNetworkSyncData(): TextInputNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n opa: this.getOpacity(),\n wid: this.getWidth(),\n hei: this.getHeight(),\n txt: this.getText(),\n frn: this.getFontResourceName(),\n fs: this.getFontSize(),\n place: this.getPlaceholder(),\n it: this.getInputType(),\n tc: this.getTextColor(),\n fc: this.getFillColor(),\n fo: this.getFillOpacity(),\n bc: this.getBorderColor(),\n bo: this.getBorderOpacity(),\n bw: this.getBorderWidth(),\n dis: this.isDisabled(),\n ro: this.isReadOnly(),\n };\n }\n\n updateFromNetworkSyncData(syncData: TextInputNetworkSyncData): void {\n super.updateFromNetworkSyncData(syncData);\n\n if (syncData.opa !== undefined) this.setOpacity(syncData.opa);\n if (syncData.wid !== undefined) this.setWidth(syncData.wid);\n if (syncData.hei !== undefined) this.setHeight(syncData.hei);\n if (syncData.txt !== undefined) this.setText(syncData.txt);\n if (syncData.frn !== undefined) this.setFontResourceName(syncData.frn);\n if (syncData.fs !== undefined) this.setFontSize(syncData.fs);\n if (syncData.place !== undefined) this.setPlaceholder(syncData.place);\n if (syncData.it !== undefined) this.setInputType(syncData.it);\n if (syncData.tc !== undefined) this.setTextColor(syncData.tc);\n if (syncData.fc !== undefined) this.setFillColor(syncData.fc);\n if (syncData.fo !== undefined) this.setFillOpacity(syncData.fo);\n if (syncData.bc !== undefined) this.setBorderColor(syncData.bc);\n if (syncData.bo !== undefined) this.setBorderOpacity(syncData.bo);\n if (syncData.bw !== undefined) this.setBorderWidth(syncData.bw);\n if (syncData.dis !== undefined) this.setDisabled(syncData.dis);\n if (syncData.ro !== undefined) this.setReadOnly(syncData.ro);\n }\n\n updatePreRender(instanceContainer: RuntimeInstanceContainer): void {\n this._renderer.updatePreRender();\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n for (const property of initialInstanceData.stringProperties) {\n if (property.name === 'initialValue') {\n this.setString(property.value);\n } else if (property.name === 'placeholder') {\n this.setPlaceholder(property.value);\n }\n }\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n onScenePaused(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onScenePaused();\n }\n\n onSceneResumed(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onSceneResumed();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setOpacity(opacity: float): void {\n this.opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this.opacity;\n }\n\n setSize(width: number, height: number): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n setWidth(width: float): void {\n this._width = width;\n }\n\n setHeight(height: float): void {\n this._height = height;\n }\n\n /**\n * Return the width of the object.\n * @return The width of the object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Return the width of the object.\n * @return The height of the object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Get the text entered in the text input.\n * @deprecated use `getText` instead\n */\n getString() {\n return this.getText();\n }\n\n /**\n * Replace the text inside the text input.\n * @deprecated use `setText` instead\n */\n setString(text: string) {\n this.setText(text);\n }\n\n getText() {\n return this._string;\n }\n\n setText(newString: string) {\n if (newString === this._string) return;\n\n this._string = newString;\n this._renderer.updateString();\n }\n\n /**\n * Called by the renderer when the value of the input shown on the screen\n * was changed (because the user typed something).\n * This does not propagate back the value to the renderer, which would\n * result in the cursor being sent back to the end of the text.\n *\n * Do not use this if you are not inside the renderer - use `setString` instead.\n */\n onRendererInputValueChanged(inputValue: string) {\n this._string = inputValue;\n }\n\n getFontResourceName() {\n return this._fontResourceName;\n }\n\n setFontResourceName(resourceName: string) {\n if (this._fontResourceName === resourceName) return;\n\n this._fontResourceName = resourceName;\n this._renderer.updateFont();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontSize(newSize: number) {\n this._fontSize = newSize;\n }\n\n /**\n * Get the placeholder shown when no text is entered\n */\n getPlaceholder() {\n return this._placeholder;\n }\n\n /**\n * Replace the text inside the text input.\n */\n setPlaceholder(newPlaceholder: string) {\n if (newPlaceholder === this._placeholder) return;\n\n this._placeholder = newPlaceholder;\n this._renderer.updatePlaceholder();\n }\n\n /**\n * Get the type of the input.\n */\n getInputType() {\n return this._inputType;\n }\n\n /**\n * Set the type of the input.\n */\n setInputType(newInputType: string) {\n const lowercasedNewInputType = newInputType.toLowerCase();\n if (lowercasedNewInputType === this._inputType) return;\n\n this._inputType = parseInputType(lowercasedNewInputType);\n this._renderer.updateInputType();\n }\n\n setTextColor(newColor: string) {\n this._textColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateTextColor();\n }\n\n getTextColor(): string {\n return (\n this._textColor[0] + ';' + this._textColor[1] + ';' + this._textColor[2]\n );\n }\n\n _getRawTextColor(): [float, float, float] {\n return this._textColor;\n }\n\n setFillColor(newColor: string) {\n this._fillColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillColor(): string {\n return (\n this._fillColor[0] + ';' + this._fillColor[1] + ';' + this._fillColor[2]\n );\n }\n\n _getRawFillColor(): [float, float, float] {\n return this._fillColor;\n }\n\n setFillOpacity(newOpacity: float) {\n this._fillOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillOpacity(): float {\n return this._fillOpacity;\n }\n\n setBorderColor(newColor: string) {\n this._borderColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderColor(): string {\n return (\n this._borderColor[0] +\n ';' +\n this._borderColor[1] +\n ';' +\n this._borderColor[2]\n );\n }\n\n _getRawBorderColor(): [float, float, float] {\n return this._borderColor;\n }\n\n setBorderOpacity(newOpacity: float) {\n this._borderOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderOpacity(): float {\n return this._borderOpacity;\n }\n\n setBorderWidth(width: float) {\n this._borderWidth = Math.max(0, width);\n this._renderer.updateBorderWidth();\n }\n\n getBorderWidth(): float {\n return this._borderWidth;\n }\n\n setDisabled(value: boolean) {\n this._disabled = value;\n this._renderer.updateDisabled();\n }\n\n isDisabled(): boolean {\n return this._disabled;\n }\n\n setReadOnly(value: boolean) {\n this._readOnly = value;\n this._renderer.updateReadOnly();\n }\n\n isReadOnly(): boolean {\n return this._readOnly;\n }\n\n isFocused(): boolean {\n return this._renderer.isFocused();\n }\n\n focus(): void {\n this._renderer.focus();\n }\n }\n gdjs.registerObject(\n 'TextInput::TextInputObject',\n gdjs.TextInputRuntimeObject\n );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,23 @@
1
+ cmake_minimum_required(VERSION 3.5)
2
+
3
+ project(TextObject)
4
+ gd_add_extension_includes()
5
+
6
+ # Defines
7
+ #
8
+ gd_add_extension_definitions(TextObject)
9
+
10
+ # The targets
11
+ #
12
+ include_directories(.)
13
+ file(
14
+ GLOB
15
+ source_files
16
+ *.cpp
17
+ *.h)
18
+ gd_add_clang_utils(TextObject "${source_files}")
19
+ gd_add_extension_target(TextObject "${source_files}")
20
+
21
+ # Linker files for the IDE extension
22
+ #
23
+ gd_extension_link_libraries(TextObject)
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){class d extends r.RuntimeObject{constructor(t,s){super(t,s);this._useGradient=!1;this._gradient=[];this._gradientType="";this.opacity=255;this._textAlign="left";this._wrapping=!1;this._wrappingWidth=1;this._padding=5;this._scaleX=1;this._scaleY=1;const e=s.content;this._characterSize=Math.max(1,e.characterSize),this._fontName=e.font,this._bold=e.bold,this._italic=e.italic,this._underlined=e.underlined,this._color=r.rgbOrHexToRGBColor(e.color),this._str=e.text,this._textAlign=e.textAlignment,this._isOutlineEnabled=e.isOutlineEnabled,this._outlineThickness=e.outlineThickness,this._outlineColor=r.rgbOrHexToRGBColor(e.outlineColor),this._shadow=e.isShadowEnabled,this._shadowColor=r.rgbOrHexToRGBColor(e.shadowColor),this._shadowOpacity=e.shadowOpacity,this._shadowDistance=e.shadowDistance,this._shadowBlur=e.shadowBlurRadius,this._shadowAngle=e.shadowAngle,this._renderer=new r.TextRuntimeObjectRenderer(this,t),this.onCreated()}updateFromObjectData(t,s){const e=t.content,i=s.content;return e.characterSize!==i.characterSize&&this.setCharacterSize(i.characterSize),e.font!==i.font&&this.setFontName(i.font),e.bold!==i.bold&&this.setBold(i.bold),e.italic!==i.italic&&this.setItalic(i.italic),e.color!==i.color&&this.setColor(i.color),e.text!==i.text&&this.setText(i.text),e.underlined!==i.underlined?!1:(e.textAlignment!==i.textAlignment&&this.setTextAlignment(i.textAlignment),e.isOutlineEnabled!==i.isOutlineEnabled&&this.setOutlineEnabled(i.isOutlineEnabled),e.outlineThickness!==i.outlineThickness&&this.setOutlineThickness(i.outlineThickness),e.outlineColor!==i.outlineColor&&this.setOutlineColor(i.outlineColor),e.isShadowEnabled!==i.isShadowEnabled&&this.showShadow(i.isShadowEnabled),e.shadowColor!==i.shadowColor&&this.setShadowColor(i.shadowColor),e.shadowOpacity!==i.shadowOpacity&&this.setShadowOpacity(i.shadowOpacity),e.shadowDistance!==i.shadowDistance&&this.setShadowDistance(i.shadowDistance),e.shadowAngle!==i.shadowAngle&&this.setShadowAngle(i.shadowAngle),e.shadowBlurRadius!==i.shadowBlurRadius&&this.setShadowBlurRadius(i.shadowBlurRadius),!0)}getRendererObject(){return this._renderer.getRendererObject()}update(t){this._renderer.ensureUpToDate()}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}extraInitializationFromInitialInstance(t){t.customSize?(this.setWrapping(!0),this.setWrappingWidth(t.width)):this.setWrapping(!1)}_updateTextPosition(){this.invalidateHitboxes(),this._renderer.updatePosition()}setX(t){super.setX(t),this._updateTextPosition()}setY(t){super.setY(t),this._updateTextPosition()}setAngle(t){super.setAngle(t),this._renderer.updateAngle()}setOpacity(t){t<0&&(t=0),t>255&&(t=255),this.opacity=t,this._renderer.updateOpacity()}getOpacity(){return this.opacity}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._str}setText(t){t!==this._str&&(this._str=t,this._renderer.updateString(),this._updateTextPosition())}getCharacterSize(){return this._characterSize}setCharacterSize(t){t<=1&&(t=1),this._characterSize=t,this._renderer.updateStyle()}setFontName(t){this._fontName=t,this._renderer.updateStyle()}isBold(){return this._bold}setBold(t){this._bold=t,this._renderer.updateStyle()}isItalic(){return this._italic}setItalic(t){this._italic=t,this._renderer.updateStyle()}getWidth(){return this._wrapping?this._wrappingWidth:this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}getScaleMean(){return(Math.abs(this._scaleX)+Math.abs(this._scaleY))/2}getScale(){const t=Math.abs(this._scaleX),s=Math.abs(this._scaleY);return t===s?t:Math.sqrt(t*s)}getScaleX(){return this._scaleX}getScaleY(){return this._scaleY}setScale(t){this._scaleX===t&&this._scaleY===t||(this._scaleX=t,this._scaleY=t,this._renderer.setScale(t),this.invalidateHitboxes())}setScaleX(t){this._scaleX!==t&&(this._scaleX=t,this._renderer.setScaleX(t),this.invalidateHitboxes())}setScaleY(t){this._scaleY!==t&&(this._scaleY=t,this._renderer.setScaleY(t),this.invalidateHitboxes())}setColor(t){const s=t.split(";");s.length<3||(this._color[0]=parseInt(s[0],10),this._color[1]=parseInt(s[1],10),this._color[2]=parseInt(s[2],10),this._useGradient=!1,this._renderer.updateStyle())}getColor(){return this._color[0]+";"+this._color[1]+";"+this._color[2]}setTextAlignment(t){this._textAlign=t,this._renderer.updateStyle()}getTextAlignment(){return this._textAlign}isWrapping(){return this._wrapping}setWrapping(t){this._wrapping!==t&&(this._wrapping=t,this._renderer.updateStyle(),this.invalidateHitboxes())}getWrappingWidth(){return this._wrappingWidth}setWrappingWidth(t){t<=1&&(t=1),this._wrappingWidth!==t&&(this._wrappingWidth=t,this._renderer.updateStyle(),this.invalidateHitboxes())}setOutline(t,s){const e=t.split(";");e.length<3||(this._outlineColor[0]=parseInt(e[0],10),this._outlineColor[1]=parseInt(e[1],10),this._outlineColor[2]=parseInt(e[2],10),this._outlineThickness=s,this._renderer.updateStyle())}isOutlineEnabled(){return this._isOutlineEnabled}setOutlineEnabled(t){this._isOutlineEnabled=t,this._renderer.updateStyle()}getOutlineThickness(){return this._outlineThickness}setOutlineThickness(t){this._outlineThickness=t,this._renderer.updateStyle()}setOutlineColor(t){this._outlineColor=r.rgbOrHexToRGBColor(t),this._renderer.updateStyle()}setShadow(t,s,e,i){const n=t.split(";");n.length<3||(this._shadowColor[0]=parseInt(n[0],10),this._shadowColor[1]=parseInt(n[1],10),this._shadowColor[2]=parseInt(n[2],10),this._shadowDistance=s,this._shadowBlur=e,this._shadowAngle=i,this._shadow=!0,this._renderer.updateStyle())}isShadowEnabled(){return this._shadow}showShadow(t){this._shadow=t,this._renderer.updateStyle()}getShadowOpacity(){return this._shadowOpacity}setShadowOpacity(t){this._shadowOpacity=t,this._renderer.updateStyle()}getShadowDistance(){return this._shadowDistance}setShadowDistance(t){this._shadowDistance=t,this._renderer.updateStyle()}getShadowAngle(){return this._shadowAngle}setShadowAngle(t){this._shadowAngle=t,this._renderer.updateStyle()}getShadowBlurRadius(){return this._shadowBlur}setShadowBlurRadius(t){this._shadowBlur=t,this._renderer.updateStyle()}setShadowColor(t){this._shadowColor=r.rgbOrHexToRGBColor(t),this._renderer.updateStyle()}setGradient(t,s,e,i,n){const o=s.split(";"),a=e.split(";"),l=i.split(";"),h=n.split(";");this._gradient=[],o.length==3&&this._gradient.push([parseInt(o[0],10),parseInt(o[1],10),parseInt(o[2],10)]),a.length==3&&this._gradient.push([parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]),l.length==3&&this._gradient.push([parseInt(l[0],10),parseInt(l[1],10),parseInt(l[2],10)]),h.length==3&&this._gradient.push([parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]),this._gradientType=t,this._useGradient=this._gradient.length>1,this._renderer.updateStyle()}getPadding(){return this._padding}setPadding(t){this._padding=t,this._renderer.updateStyle()}}r.TextRuntimeObject=d,r.registerObject("TextObject::Text",r.TextRuntimeObject)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(r){class l extends r.RuntimeObject{constructor(t,s){super(t,s);this._useGradient=!1;this._gradient=[];this._gradientType="";this.opacity=255;this._textAlign="left";this._wrapping=!1;this._wrappingWidth=100;this._padding=5;this._scaleX=1;this._scaleY=1;const e=s.content;this._characterSize=Math.max(1,e.characterSize),this._fontName=e.font,this._bold=e.bold,this._italic=e.italic,this._underlined=e.underlined,this._color=r.rgbOrHexToRGBColor(e.color),this._str=e.text,this._textAlign=e.textAlignment,this._isOutlineEnabled=e.isOutlineEnabled,this._outlineThickness=e.outlineThickness,this._outlineColor=r.rgbOrHexToRGBColor(e.outlineColor),this._shadow=e.isShadowEnabled,this._shadowColor=r.rgbOrHexToRGBColor(e.shadowColor),this._shadowOpacity=e.shadowOpacity,this._shadowDistance=e.shadowDistance,this._shadowBlur=e.shadowBlurRadius,this._shadowAngle=e.shadowAngle,this._renderer=new r.TextRuntimeObjectRenderer(this,t),this.onCreated()}updateFromObjectData(t,s){const e=t.content,i=s.content;return e.characterSize!==i.characterSize&&this.setCharacterSize(i.characterSize),e.font!==i.font&&this.setFontName(i.font),e.bold!==i.bold&&this.setBold(i.bold),e.italic!==i.italic&&this.setItalic(i.italic),e.color!==i.color&&this.setColor(i.color),e.text!==i.text&&this.setText(i.text),e.underlined!==i.underlined?!1:(e.textAlignment!==i.textAlignment&&this.setTextAlignment(i.textAlignment),e.isOutlineEnabled!==i.isOutlineEnabled&&this.setOutlineEnabled(i.isOutlineEnabled),e.outlineThickness!==i.outlineThickness&&this.setOutlineThickness(i.outlineThickness),e.outlineColor!==i.outlineColor&&this.setOutlineColor(i.outlineColor),e.isShadowEnabled!==i.isShadowEnabled&&this.showShadow(i.isShadowEnabled),e.shadowColor!==i.shadowColor&&this.setShadowColor(i.shadowColor),e.shadowOpacity!==i.shadowOpacity&&this.setShadowOpacity(i.shadowOpacity),e.shadowDistance!==i.shadowDistance&&this.setShadowDistance(i.shadowDistance),e.shadowAngle!==i.shadowAngle&&this.setShadowAngle(i.shadowAngle),e.shadowBlurRadius!==i.shadowBlurRadius&&this.setShadowBlurRadius(i.shadowBlurRadius),!0)}getNetworkSyncData(){return{...super.getNetworkSyncData(),str:this._str,o:this.opacity,cs:this._characterSize,fn:this._fontName,b:this._bold,i:this._italic,u:this._underlined,c:this._color,scale:this.getScale(),ta:this._textAlign,wrap:this._wrapping,wrapw:this._wrappingWidth,oena:this._isOutlineEnabled,ot:this._outlineThickness,oc:this._outlineColor,sh:this._shadow,shc:this._shadowColor,sho:this._shadowOpacity,shd:this._shadowDistance,sha:this._shadowAngle,shb:this._shadowBlur,pad:this._padding}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),t.str!==void 0&&this.setText(t.str),t.o!==void 0&&this.setOpacity(t.o),t.cs!==void 0&&this.setCharacterSize(t.cs),t.fn!==void 0&&this.setFontName(t.fn),t.b!==void 0&&this.setBold(t.b),t.i!==void 0&&this.setItalic(t.i),t.u!==void 0&&(this._underlined=t.u),t.c!==void 0&&(this._color=t.c),t.scale!==void 0&&this.setScale(t.scale),t.ta!==void 0&&this.setTextAlignment(t.ta),t.wrap!==void 0&&this.setWrapping(t.wrap),t.wrapw!==void 0&&this.setWrappingWidth(t.wrapw),t.oena!==void 0&&this.setOutlineEnabled(t.oena),t.ot!==void 0&&this.setOutlineThickness(t.ot),t.oc!==void 0&&(this._outlineColor=t.oc),t.sh!==void 0&&this.showShadow(t.sh),t.shc!==void 0&&(this._shadowColor=t.shc),t.sho!==void 0&&this.setShadowOpacity(t.sho),t.shd!==void 0&&this.setShadowDistance(t.shd),t.sha!==void 0&&this.setShadowAngle(t.sha),t.shb!==void 0&&this.setShadowBlurRadius(t.shb),t.pad!==void 0&&this.setPadding(t.pad)}getRendererObject(){return this._renderer.getRendererObject()}update(t){this._renderer.ensureUpToDate()}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}extraInitializationFromInitialInstance(t){t.customSize?(this.setWrappingWidth(t.width),this.setWrapping(!0)):this.setWrapping(!1)}_updateTextPosition(){this.invalidateHitboxes(),this._renderer.updatePosition()}setX(t){super.setX(t),this._updateTextPosition()}setY(t){super.setY(t),this._updateTextPosition()}setAngle(t){super.setAngle(t),this._renderer.updateAngle()}setOpacity(t){t<0&&(t=0),t>255&&(t=255),this.opacity=t,this._renderer.updateOpacity()}getOpacity(){return this.opacity}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._str}setText(t){t!==this._str&&(this._str=t,this._renderer.updateString(),this._updateTextPosition())}getCharacterSize(){return this._characterSize}setCharacterSize(t){t<=1&&(t=1),this._characterSize=t,this._renderer.updateStyle()}setFontName(t){this._fontName=t,this._renderer.updateStyle()}isBold(){return this._bold}setBold(t){this._bold=t,this._renderer.updateStyle()}isItalic(){return this._italic}setItalic(t){this._italic=t,this._renderer.updateStyle()}getWidth(){return this._wrapping?this._wrappingWidth:this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}getScaleMean(){return(Math.abs(this._scaleX)+Math.abs(this._scaleY))/2}getScale(){const t=Math.abs(this._scaleX),s=Math.abs(this._scaleY);return t===s?t:Math.sqrt(t*s)}getScaleX(){return this._scaleX}getScaleY(){return this._scaleY}setScale(t){this._scaleX===t&&this._scaleY===t||(this._scaleX=t,this._scaleY=t,this._renderer.setScale(t),this.invalidateHitboxes())}setScaleX(t){this._scaleX!==t&&(this._scaleX=t,this._renderer.setScaleX(t),this.invalidateHitboxes())}setScaleY(t){this._scaleY!==t&&(this._scaleY=t,this._renderer.setScaleY(t),this.invalidateHitboxes())}setColor(t){const s=t.split(";");s.length<3||(this._color[0]=parseInt(s[0],10),this._color[1]=parseInt(s[1],10),this._color[2]=parseInt(s[2],10),this._useGradient=!1,this._renderer.updateStyle())}getColor(){return this._color[0]+";"+this._color[1]+";"+this._color[2]}setTextAlignment(t){this._textAlign=t,this._renderer.updateStyle()}getTextAlignment(){return this._textAlign}isWrapping(){return this._wrapping}setWrapping(t){this._wrapping!==t&&(this._wrapping=t,this._renderer.updateStyle(),this.invalidateHitboxes())}getWrappingWidth(){return this._wrappingWidth}setWrappingWidth(t){t<=1&&(t=1),this._wrappingWidth!==t&&(this._wrappingWidth=t,this._wrapping&&(this._renderer.updateStyle(),this.invalidateHitboxes()))}setOutline(t,s){const e=t.split(";");e.length<3||(this._outlineColor[0]=parseInt(e[0],10),this._outlineColor[1]=parseInt(e[1],10),this._outlineColor[2]=parseInt(e[2],10),this._outlineThickness=s,this._renderer.updateStyle())}isOutlineEnabled(){return this._isOutlineEnabled}setOutlineEnabled(t){this._isOutlineEnabled=t,this._renderer.updateStyle()}getOutlineThickness(){return this._outlineThickness}setOutlineThickness(t){this._outlineThickness=t,this._renderer.updateStyle()}setOutlineColor(t){this._outlineColor=r.rgbOrHexToRGBColor(t),this._renderer.updateStyle()}setShadow(t,s,e,i){const o=t.split(";");o.length<3||(this._shadowColor[0]=parseInt(o[0],10),this._shadowColor[1]=parseInt(o[1],10),this._shadowColor[2]=parseInt(o[2],10),this._shadowDistance=s,this._shadowBlur=e,this._shadowAngle=i,this._shadow=!0,this._renderer.updateStyle())}isShadowEnabled(){return this._shadow}showShadow(t){this._shadow=t,this._renderer.updateStyle()}getShadowOpacity(){return this._shadowOpacity}setShadowOpacity(t){this._shadowOpacity=t,this._renderer.updateStyle()}getShadowDistance(){return this._shadowDistance}setShadowDistance(t){this._shadowDistance=t,this._renderer.updateStyle()}getShadowAngle(){return this._shadowAngle}setShadowAngle(t){this._shadowAngle=t,this._renderer.updateStyle()}getShadowBlurRadius(){return this._shadowBlur}setShadowBlurRadius(t){this._shadowBlur=t,this._renderer.updateStyle()}setShadowColor(t){this._shadowColor=r.rgbOrHexToRGBColor(t),this._renderer.updateStyle()}setGradient(t,s,e,i,o){const n=s.split(";"),a=e.split(";"),h=i.split(";"),d=o.split(";");this._gradient=[],n.length==3&&this._gradient.push([parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]),a.length==3&&this._gradient.push([parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]),h.length==3&&this._gradient.push([parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]),d.length==3&&this._gradient.push([parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]),this._gradientType=t,this._useGradient=this._gradient.length>1,this._renderer.updateStyle()}getPadding(){return this._padding}setPadding(t){this._padding=t,this._renderer.updateStyle()}}r.TextRuntimeObject=l,r.registerObject("TextObject::Text",r.TextRuntimeObject)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=textruntimeobject.js.map