gdcore-tools 2.0.0-beta2 → 2.0.0-beta4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Runtime/AsyncTasksManager.js +2 -2
- package/dist/Runtime/AsyncTasksManager.js.map +2 -2
- package/dist/Runtime/Cordova/config.xml +23 -1
- package/dist/Runtime/Cordova/www/LICENSE.GDevelop.txt +2 -0
- package/dist/Runtime/Cordova/www/index.html +1 -1
- package/dist/Runtime/CustomRuntimeObject.js +1 -1
- package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
- package/dist/Runtime/CustomRuntimeObject2D.js +2 -0
- package/dist/Runtime/CustomRuntimeObject2D.js.map +7 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +1 -1
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +2 -2
- package/dist/Runtime/Electron/LICENSE.GDevelop.txt +2 -0
- package/dist/Runtime/Electron/package.json +3 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +1 -1
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +2 -2
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/3D/AmbientLight.js +1 -1
- package/dist/Runtime/Extensions/3D/AmbientLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Base3DBehavior.js +1 -1
- package/dist/Runtime/Extensions/3D/Base3DBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/3D/BloomEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/BloomEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +1 -1
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js +2 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js.map +7 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js +1 -1
- package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/ExponentialFog.js +1 -1
- package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +2 -2
- package/dist/Runtime/Extensions/3D/ExposureEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/ExposureEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/HemisphereLight.js +1 -1
- package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/JsExtension.js +56 -24
- package/dist/Runtime/Extensions/3D/LinearFog.js +1 -1
- package/dist/Runtime/Extensions/3D/LinearFog.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +1 -1
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/AdMob/JsExtension.js +11 -10
- package/dist/Runtime/Extensions/AdMob/admobtools.js +1 -1
- package/dist/Runtime/Extensions/AdMob/admobtools.js.map +2 -2
- package/dist/Runtime/Extensions/AnchorBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/BBText/JsExtension.js +20 -11
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +2 -8
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/CMakeLists.txt +35 -0
- package/dist/Runtime/Extensions/CMakeUtils.txt +81 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/DialogueTree/bondage.js/version.txt +5 -0
- package/dist/Runtime/Extensions/DraggableBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +2 -2
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +2 -2
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +1 -1
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +2 -2
- package/dist/Runtime/Extensions/FileSystem/JsExtension.js +22 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +1 -1
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +2 -2
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/NOTICE.txt +6 -0
- package/dist/Runtime/Extensions/Inventory/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +13 -4
- package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +42 -1
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +1 -1
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +2 -2
- package/dist/Runtime/Extensions/Lighting/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/LinkedObjects/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +1 -1
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/JsExtension.js +1130 -0
- package/dist/Runtime/Extensions/Multiplayer/messageManager.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/messageManager.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/peer.js +10 -0
- package/dist/Runtime/Extensions/Multiplayer/peer.js.map +1 -0
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/peerjs.d.ts +509 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js +8 -2
- package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -1
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js +1 -1
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +2 -2
- package/dist/Runtime/Extensions/P2P/JsExtension.js +27 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +1 -1
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +2 -2
- package/dist/Runtime/Extensions/PathfindingBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +47 -4
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +1 -1
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PhysicsBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PlatformBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +6 -3
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +4 -4
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +2 -2
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +1 -1
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/Shopify/CMakeLists.txt +26 -0
- package/dist/Runtime/Extensions/Spine/CMakeLists.txt +20 -0
- package/dist/Runtime/Extensions/Spine/JsExtension.js +11 -2
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js +1 -1
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js +1 -1
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/pixi-spine/Spine-Runtimes-License-Agreement.txt +11 -0
- package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js +5 -3
- package/dist/Runtime/Extensions/Spine/spineruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Spine/spineruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/SystemInfo/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextEntryObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextInput/JsExtension.js +3 -10
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TextObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +834 -23
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +1 -1
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +1 -1
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +119 -5
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +25 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +16 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TiledSpriteObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TopDownMovementBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +2 -2
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Video/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +2 -2
- package/dist/Runtime/RuntimeInstanceContainer.js +1 -1
- package/dist/Runtime/RuntimeInstanceContainer.js.map +2 -2
- package/dist/Runtime/SpriteAnimator.js +2 -0
- package/dist/Runtime/SpriteAnimator.js.map +7 -0
- package/dist/Runtime/debugger-client/hot-reloader.js +1 -1
- package/dist/Runtime/debugger-client/hot-reloader.js.map +2 -2
- package/dist/Runtime/events-tools/objecttools.js +1 -1
- package/dist/Runtime/events-tools/objecttools.js.map +2 -2
- package/dist/Runtime/events-tools/runtimescenetools.js +1 -1
- package/dist/Runtime/events-tools/runtimescenetools.js.map +2 -2
- package/dist/Runtime/force.js +1 -1
- package/dist/Runtime/force.js.map +2 -2
- package/dist/Runtime/object-capabilities/TextContainerBehavior.js.map +1 -1
- package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +1 -1
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +2 -2
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +1 -1
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +2 -2
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +1 -1
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/polygon.js +1 -1
- package/dist/Runtime/polygon.js.map +2 -2
- package/dist/Runtime/runtimebehavior.js +1 -1
- package/dist/Runtime/runtimebehavior.js.map +2 -2
- package/dist/Runtime/runtimegame.js +1 -1
- package/dist/Runtime/runtimegame.js.map +2 -2
- package/dist/Runtime/runtimeobject.js +1 -1
- package/dist/Runtime/runtimeobject.js.map +2 -2
- package/dist/Runtime/runtimescene.js +1 -1
- package/dist/Runtime/runtimescene.js.map +2 -2
- package/dist/Runtime/scenestack.js +1 -1
- package/dist/Runtime/scenestack.js.map +2 -2
- package/dist/Runtime/spriteruntimeobject.js +1 -1
- package/dist/Runtime/spriteruntimeobject.js.map +2 -2
- package/dist/Runtime/timer.js +1 -1
- package/dist/Runtime/timer.js.map +2 -2
- package/dist/Runtime/types/project-data.d.ts +115 -0
- package/dist/Runtime/variable.js +1 -1
- package/dist/Runtime/variable.js.map +2 -2
- package/dist/Runtime/variablescontainer.js +1 -1
- package/dist/Runtime/variablescontainer.js.map +2 -2
- package/dist/lib/libGD.cjs +2 -1
- package/dist/lib/libGD.wasm +0 -0
- package/dist/loaders.cjs +2 -1
- package/gd.d.ts +217 -223
- package/package.json +15 -7
- package/src/index.js +2 -0
- package/src/open_project.js +1 -1
- package/types/index.d.ts +2 -2
- package/types/open_project.d.ts +5 -5
- package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js.map +0 -7
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +0 -2
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +0 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(
|
|
1
|
+
var gdjs;(function(T){let Q;(function(r){const e=new T.Logger("AdMob"),J={appOpen:{android:"ca-app-pub-3940256099942544/9257395921",ios:"ca-app-pub-3940256099942544/5575463023"},banner:{android:"ca-app-pub-3940256099942544/6300978111",ios:"ca-app-pub-3940256099942544/2934735716"},interstitial:{android:"ca-app-pub-3940256099942544/1033173712",ios:"ca-app-pub-3940256099942544/4411468910"},interstitialVideo:{android:"ca-app-pub-3940256099942544/8691691433",ios:"ca-app-pub-3940256099942544/5135589807"},rewarded:{android:"ca-app-pub-3940256099942544/5224354917",ios:"ca-app-pub-3940256099942544/1712485313"},rewardedInterstitial:{android:"ca-app-pub-3940256099942544/5354046379",ios:"ca-app-pub-3940256099942544/6978759866"},native:{android:"ca-app-pub-3940256099942544/2247696110",ios:"ca-app-pub-3940256099942544/3986624511"},nativeVideo:{android:"ca-app-pub-3940256099942544/1044960115",ios:"ca-app-pub-3940256099942544/2521693316"}};let l;(function(s){s[s.BANNER=0]="BANNER",s[s.LARGE_BANNER=1]="LARGE_BANNER",s[s.MEDIUM_RECTANGLE=2]="MEDIUM_RECTANGLE",s[s.FULL_BANNER=3]="FULL_BANNER",s[s.LEADERBOARD=4]="LEADERBOARD",s[s.SMART_BANNER=5]="SMART_BANNER"})(l||(l={}));const X={BANNER:0,LARGE_BANNER:1,MEDIUM_RECTANGLE:2,FULL_BANNER:3,LEADERBOARD:4,SMART_BANNER:5};let C;(function(n){n[n.Portrait=1]="Portrait",n[n.PortraitUpsideDown=2]="PortraitUpsideDown",n[n.LandscapeRight=3]="LandscapeRight",n[n.LandscapeLeft=4]="LandscapeLeft"})(C||(C={}));let G=!1,k=!1,q=!1,R,K=5,W=!1,S=!1,p=!1,O=!1,c,h=!1,A=!1,v=!1,E=!1,u,g=!1,I=!1,V=!1,y=!1,f,L=!1,N=!1,_=!1,F=!1,x=!1,w,B=!1,b=!1,U=!1,P=!1,m=!1,H="0";document.addEventListener("deviceready",async()=>{e.info("Starting AdMob."),k=!0,await admob.start(),e.info("AdMob successfully started."),k=!1,G=!0},!1);const d=async()=>{if(typeof cordova=="undefined")return e.warn("We are not on mobile, AdMob will not be available."),!1;if(typeof admob=="undefined")return e.warn("AdMob has not been configured properly."),!1;if(!G){if(k){let t=0;for(;!G&&t<5e3;)await new Promise(a=>setTimeout(a,100)),t+=100}if(!G)return e.warn("AdMob is not started."),!1}return!0},D=(t,a,o)=>{if(typeof cordova=="undefined"){e.warn("Cordova is not available.");return}return cordova.platformId==="android"?q?J[o].android:t:cordova.platformId==="ios"?q?J[o].ios:a:(e.error("Unsupported platform: ",cordova.platformId),null)};r.setTestMode=async t=>{!await d()||(e.info("Setting AdMob test mode to:",t),q=t)},r.isAppOpenLoading=()=>g,r.isAppOpenReady=()=>I,r.isAppOpenShowing=()=>V,r.isAppOpenErrored=()=>y,r.loadAppOpen=async(t,a,o,i)=>{if(!await d()||g||V)return;const n=D(t,a,"appOpen");if(!!n){g=!0,I=!1,y=!1,u=new admob.AppOpenAd({adUnitId:n,orientation:o?4:1}),u.on("load",()=>{I=!0,g=!1}),u.on("loadfail",()=>{g=!1,y=!0}),u.on("show",()=>{V=!0,I=!1}),u.on("showfail",()=>{V=!1,y=!0}),u.on("dismiss",()=>{V=!1});try{e.info("Loading Admob App Open."),await u.load(),e.info("AdMob App Open successfully loaded."),g=!1,I=!0,i&&r.showAppOpen()}catch(z){e.error("Error while loading an App Open:",z),g=!1,I=!1,y=!0}}},r.showAppOpen=async()=>{if(!!await d()){if(!u){e.warn("App Open has not been set up, call loadAppOpen first.");return}if(!I){e.info("App Open not loaded yet, cannot display it.");return}y=!1;try{e.info("Showing AdMob App Open."),await u.show()}catch(t){e.error("Error while showing an AdMob App Open:",t),V=!1,y=!0}}},r.isBannerConfigured=()=>W,r.isBannerLoaded=()=>S,r.isBannerShowing=()=>p,r.isBannerErrored=()=>O,r.setBannerAdSizeType=t=>{K=X[t]||5},r.setupBanner=async(t,a,o)=>{if(!await d())return;const i=D(t,a,"banner");!i||(R&&p&&(e.info("Banner already visible, hiding it to display new one."),await r.hideBanner()),W=!1,S=!1,R=new admob.BannerAd({adUnitId:i,position:o?"top":"bottom",size:K}),R.on("load",()=>{p=!0,S=!0}),R.on("loadfail",()=>{p=!1,S=!1,O=!0}),W=!0)},r.showBanner=async()=>{if(!R){e.info("Banner not configured, use setupBanner first.");return}if(p){e.info("Banner already visible. Ignoring.");return}O=!1;try{e.info("Showing AdMob banner."),await R.show(),S&&(p=!0)}catch(t){p=!1,O=!0,e.error("Error while showing an AdMob banner:",t)}},r.hideBanner=async()=>{if(!!await d()){if(!R||!p){e.warn("No banner is being shown.");return}await R.hide(),p=!1}},r.isInterstitialLoading=()=>h,r.isInterstitialReady=()=>A,r.isInterstitialShowing=()=>v,r.isInterstitialErrored=()=>E,r.loadInterstitial=async(t,a,o)=>{if(!await d()||h||v)return;const i=D(t,a,"interstitial");if(!!i){h=!0,A=!1,E=!1,c=new admob.InterstitialAd({adUnitId:i,npa:H}),c.on("load",()=>{A=!0,h=!1}),c.on("loadfail",()=>{h=!1,E=!0}),c.on("show",()=>{v=!0,A=!1}),c.on("showfail",()=>{v=!1,E=!0}),c.on("dismiss",()=>{v=!1});try{e.info("Loading Admob interstitial."),await c.load(),e.info("AdMob interstitial successfully loaded."),h=!1,A=!0,o&&r.showInterstitial()}catch(n){e.error("Error while loading a interstitial:",n),h=!1,A=!1,E=!0}}},r.showInterstitial=async()=>{if(!!await d()){if(!c){e.warn("Interstitial has not been set up, call loadInterstitial first.");return}if(!A){e.info("Interstitial not loaded yet, cannot display it.");return}E=!1;try{e.info("Showing AdMob interstitial."),await c.show()}catch(t){e.error("Error while showing an AdMob interstitial:",t),v=!1,E=!0}}},r.isRewardedInterstitialLoading=()=>L,r.isRewardedInterstitialReady=()=>N,r.isRewardedInterstitialShowing=()=>_,r.isRewardedInterstitialErrored=()=>x,r.wasRewardedInterstitialRewardReceived=function(t){const a=F;return t&&(F=!1),a},r.loadRewardedInterstitial=async(t,a,o)=>{if(!await d()||L||_)return;const i=D(t,a,"rewardedInterstitial");if(!!i){L=!0,N=!1,x=!1,f=new admob.RewardedInterstitialAd({adUnitId:i,npa:H}),f.on("load",()=>{N=!0,L=!1}),f.on("loadfail",()=>{L=!1,x=!0}),f.on("show",()=>{_=!0,N=!1}),f.on("showfail",()=>{_=!1,x=!0}),f.on("dismiss",()=>{_=!1}),f.on("reward",()=>{F=!0});try{e.info("Loading AdMob rewarded interstitial."),await f.load(),e.info("AdMob rewarded interstitial successfully loaded."),L=!1,N=!0,o&&r.showRewardedInterstitial()}catch(n){L=!1,N=!1,x=!0,e.error("Error while loading a rewarded interstitial:",n)}}},r.showRewardedInterstitial=async()=>{if(!!await d()){if(!f){e.warn("interstitial has not been set up, call loadRewardedInterstitial first.");return}N||e.info("Rewarded interstitial not loaded yet, cannot display it."),x=!1;try{e.info("Showing AdMob rewarded interstitial."),await f.show()}catch(t){e.error("Error while showing an AdMob rewarded interstitial:",t),_=!1,x=!0}}},r.markRewardedInterstitialRewardAsClaimed=()=>{F=!1},r.isRewardedVideoLoading=()=>B,r.isRewardedVideoReady=()=>b,r.isRewardedVideoShowing=()=>U,r.isRewardedVideoErrored=()=>m,r.wasRewardedVideoRewardReceived=function(t){const a=P;return t&&(P=!1),a},r.loadRewardedVideo=async(t,a,o)=>{if(!await d()||B||U)return;const i=D(t,a,"rewarded");if(!!i){B=!0,b=!1,m=!1,w=new admob.RewardedAd({adUnitId:i,npa:H}),w.on("load",()=>{b=!0,B=!1}),w.on("loadfail",()=>{B=!1,m=!0}),w.on("show",()=>{U=!0,b=!1}),w.on("showfail",()=>{U=!1,m=!0}),w.on("dismiss",()=>{U=!1}),w.on("reward",()=>{P=!0});try{e.info("Loading AdMob rewarded video."),await w.load(),e.info("AdMob rewarded video successfully loaded."),B=!1,b=!0,o&&r.showRewardedVideo()}catch(n){B=!1,b=!1,m=!0,e.error("Error while loading a rewarded video:",n)}}},r.showRewardedVideo=async()=>{if(!!await d()){if(!w){e.warn("Video has not been set up, call loadRewardedVideo first.");return}b||e.info("Rewarded video not loaded yet, cannot display it."),m=!1;try{e.info("Showing AdMob rewarded video."),await w.show()}catch(t){e.error("Error while showing an AdMob rewarded video:",t),U=!1,m=!0}}},r.markRewardedVideoRewardAsClaimed=()=>{P=!1}})(Q=T.adMob||(T.adMob={}))})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=admobtools.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/AdMob/admobtools.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n declare var admob: any;\n declare var cordova: any;\n\n export namespace adMob {\n const logger = new gdjs.Logger('AdMob');\n\n const testAdIds = {\n appOpen: {\n android: 'ca-app-pub-3940256099942544/3419835294',\n ios: 'ca-app-pub-3940256099942544/5662855259',\n },\n banner: {\n android: 'ca-app-pub-3940256099942544/6300978111',\n ios: 'ca-app-pub-3940256099942544/2934735716',\n },\n interstitial: {\n android: 'ca-app-pub-3940256099942544/1033173712',\n ios: 'ca-app-pub-3940256099942544/4411468910',\n },\n interstitialVideo: {\n android: 'ca-app-pub-3940256099942544/8691691433',\n ios: 'ca-app-pub-3940256099942544/5135589807',\n },\n rewarded: {\n android: 'ca-app-pub-3940256099942544/5224354917',\n ios: 'ca-app-pub-3940256099942544/1712485313',\n },\n rewardedInterstitial: {\n android: 'ca-app-pub-3940256099942544/5354046379',\n ios: 'ca-app-pub-3940256099942544/6978759866',\n },\n native: {\n android: 'ca-app-pub-3940256099942544/2247696110',\n ios: 'ca-app-pub-3940256099942544/3986624511',\n },\n nativeVideo: {\n android: 'ca-app-pub-3940256099942544/1044960115',\n ios: 'ca-app-pub-3940256099942544/2521693316',\n },\n };\n\n enum AdSizeType {\n BANNER,\n LARGE_BANNER,\n MEDIUM_RECTANGLE,\n FULL_BANNER,\n LEADERBOARD,\n SMART_BANNER,\n }\n\n const adSizeTypes = {\n BANNER: AdSizeType.BANNER,\n LARGE_BANNER: AdSizeType.LARGE_BANNER,\n MEDIUM_RECTANGLE: AdSizeType.MEDIUM_RECTANGLE,\n FULL_BANNER: AdSizeType.FULL_BANNER,\n LEADERBOARD: AdSizeType.LEADERBOARD,\n SMART_BANNER: AdSizeType.SMART_BANNER,\n };\n\n enum AppOpenAdOrientation {\n Portrait = 1,\n PortraitUpsideDown = 2,\n LandscapeRight = 3,\n LandscapeLeft = 4,\n }\n\n // Admob does not initialize automatically, so we store a flag to know if it's initialized.\n let admobStarted = false;\n let isUsingTestAds = false;\n\n // Banner\n let banner;\n let bannerRequestedAdSizeType: AdSizeType = AdSizeType.SMART_BANNER;\n let bannerConfigured = false; // Becomes true when the user configures the ad id and the position of the banner.\n let bannerLoaded = false; // Becomes true when the banner is loaded by loaded.\n let bannerShowing = false; // Becomes true when loaded or when the user shows/hides the banner.\n let bannerErrored = false; // Becomes true when the banner fails to load.\n\n // Interstitial\n let interstitial;\n let interstitialLoading = false; // Becomes true when the interstitial is loading.\n let interstitialReady = false; // Becomes true when the interstitial is loaded and ready to be shown.\n let interstitialShowing = false; // Becomes true when the interstitial is showing.\n let interstitialErrored = false; // Becomes true when the interstitial fails to load.\n\n // App Open\n let appOpen;\n let appOpenLoading = false; // Becomes true when the appOpen is loading.\n let appOpenReady = false; // Becomes true when the appOpen is loaded and ready to be shown.\n let appOpenShowing = false; // Becomes true when the appOpen is showing.\n let appOpenErrored = false; // Becomes true when the appOpen fails to load.\n\n // Rewarded interstitial\n let rewardedInterstitial;\n let rewardedInterstitialLoading = false; // Becomes true when the interstitial is loading.\n let rewardedInterstitialReady = false; // Becomes true when the interstitial is loaded and ready to be shown.\n let rewardedInterstitialShowing = false; // Becomes true when the interstitial is showing.\n let rewardedInterstitialRewardReceived = false; // Becomes true when the interstitial is closed and the reward is received.\n let rewardedInterstitialErrored = false; // Becomes true when the interstitial fails to load.\n\n // Rewarded video\n let rewardedVideo;\n let rewardedVideoLoading = false; // Becomes true when the video is loading.\n let rewardedVideoReady = false; // Becomes true when the video is loaded and ready to be shown.\n let rewardedVideoShowing = false; // Becomes true when the video is showing.\n let rewardedVideoRewardReceived = false; // Becomes true when the video is closed and the reward is received.\n let rewardedVideoErrored = false; // Becomes true when the video fails to load.\n\n let npaValue = '0'; // TODO: expose an API to change this and also an automatic way using the consent SDK.\n\n // Admob initialization listener\n document.addEventListener(\n 'deviceready',\n async () => {\n // Obtain user consent ?\n\n await admob.start();\n\n logger.info('AdMob successfully started.');\n admobStarted = true;\n },\n false\n );\n\n /**\n * Helper to know if we are on mobile and admob is correctly initialized.\n */\n const checkIfAdMobIsAvailable = () => {\n if (typeof cordova === 'undefined') {\n logger.warn('We are not on mobile, AdMob will not be available.');\n return false;\n }\n if (typeof admob === 'undefined' || !admobStarted) {\n logger.warn('AdMob has not been configured or started properly.');\n return false;\n }\n return true;\n };\n\n /**\n * Helper to get the correct ad id depending on the platform. Android and iOS use different ids.\n */\n const getAdUnitId = (androidAdUnitId, iosAdUnitId, type) => {\n if (typeof cordova === 'undefined') {\n logger.warn('Cordova is not available.');\n return;\n }\n if (cordova.platformId === 'android') {\n return isUsingTestAds ? testAdIds[type].android : androidAdUnitId;\n } else if (cordova.platformId === 'ios') {\n return isUsingTestAds ? testAdIds[type].ios : iosAdUnitId;\n }\n\n logger.error('Unsupported platform: ', cordova.platformId);\n return null;\n };\n\n /**\n * Activate or deactivate the test mode (\"development\" mode).\n * When activated, tests ads will be served instead of real ones.\n *\n * It is important to enable test ads during development so that you can click on them without\n * charging advertisers. If you click on too many ads without being in test mode, you risk your\n * account being flagged for invalid activity.\n */\n export const setTestMode = (enable: boolean) => {\n if (!checkIfAdMobIsAvailable()) return;\n\n isUsingTestAds = enable;\n };\n\n // -------------------\n // ---- App Open -----\n // -------------------\n export const isAppOpenLoading = () => appOpenLoading;\n export const isAppOpenReady = () => appOpenReady;\n export const isAppOpenShowing = () => appOpenShowing;\n export const isAppOpenErrored = () => appOpenErrored;\n\n /** Load an AppOpen. */\n export const loadAppOpen = async (\n androidAdUnitId,\n iosAdUnitId,\n displayLandscape,\n displayWhenLoaded\n ) => {\n if (!checkIfAdMobIsAvailable()) return;\n // If an appOpen is already loading or showing, we don't stop it.\n if (appOpenLoading || appOpenShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(androidAdUnitId, iosAdUnitId, 'appOpen');\n if (!adUnitId) return;\n\n appOpenLoading = true;\n appOpenReady = false;\n appOpenErrored = false;\n\n appOpen = new admob.AppOpenAd({\n adUnitId,\n orientation: displayLandscape\n ? AppOpenAdOrientation.LandscapeLeft\n : AppOpenAdOrientation.Portrait,\n });\n\n appOpen.on('load', () => {\n appOpenReady = true;\n appOpenLoading = false;\n });\n appOpen.on('loadfail', () => {\n appOpenLoading = false;\n appOpenErrored = true;\n });\n appOpen.on('show', () => {\n appOpenShowing = true;\n appOpenReady = false;\n });\n appOpen.on('showfail', () => {\n appOpenShowing = false;\n appOpenErrored = true;\n });\n appOpen.on('dismiss', () => {\n appOpenShowing = false;\n });\n\n try {\n logger.info('Loading Admob App Open.');\n await appOpen.load();\n logger.info('AdMob App Open successfully loaded.');\n appOpenLoading = false;\n appOpenReady = true;\n if (displayWhenLoaded) showAppOpen();\n } catch (error) {\n logger.error('Error while loading an App Open:', error);\n appOpenLoading = false;\n appOpenReady = false;\n appOpenErrored = true;\n }\n };\n\n /** Show the loaded appOpen. */\n export const showAppOpen = async () => {\n if (!checkIfAdMobIsAvailable()) return;\n\n if (!appOpen) {\n logger.warn('App Open has not been set up, call loadAppOpen first.');\n return;\n }\n if (!appOpenReady) {\n logger.info('App Open not loaded yet, cannot display it.');\n return;\n }\n appOpenErrored = false;\n\n try {\n logger.info('Showing AdMob App Open.');\n await appOpen.show();\n // AppOpen will be shown and\n // `appOpenShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob App Open:', error);\n appOpenShowing = false;\n appOpenErrored = true;\n }\n };\n\n // -----------------\n // ---- Banner -----\n // -----------------\n export const isBannerConfigured = () => bannerConfigured;\n export const isBannerLoaded = () => bannerLoaded;\n export const isBannerShowing = () => bannerShowing;\n export const isBannerErrored = () => bannerErrored;\n\n export const setBannerAdSizeType = (\n bannerAdSizeType:\n | 'BANNER'\n | 'LARGE_BANNER'\n | 'MEDIUM_RECTANGLE'\n | 'FULL_BANNER'\n | 'LEADERBOARD'\n | 'SMART_BANNER'\n ) => {\n bannerRequestedAdSizeType =\n adSizeTypes[bannerAdSizeType] || AdSizeType.SMART_BANNER;\n };\n\n /**\n * Set up a banner that can then be displayed by calling `showBanner`.\n * If a banner is already set up, it will be hidden and replaced by the new one.\n */\n export const setupBanner = async (androidAdUnitId, iosAdUnitId, atTop) => {\n if (!checkIfAdMobIsAvailable()) return;\n const adUnitId = getAdUnitId(androidAdUnitId, iosAdUnitId, 'banner');\n if (!adUnitId) return;\n\n if (banner && bannerShowing) {\n logger.info('Banner already visible, hiding it to display new one.');\n await hideBanner();\n }\n\n bannerConfigured = false;\n bannerLoaded = false;\n\n banner = new admob.BannerAd({\n adUnitId,\n position: atTop ? 'top' : 'bottom',\n size: bannerRequestedAdSizeType,\n });\n\n banner.on('load', () => {\n bannerShowing = true;\n bannerLoaded = true;\n });\n banner.on('loadfail', () => {\n bannerShowing = false;\n bannerLoaded = false;\n bannerErrored = true;\n });\n\n bannerConfigured = true;\n };\n\n /**\n * Display a banner that was set up with `setupBanner` (and `setBannerAdSizeType`).\n */\n export const showBanner = async () => {\n if (!banner) {\n logger.info('Banner not configured, use setupBanner first.');\n return;\n }\n if (bannerShowing) {\n logger.info('Banner already visible. Ignoring.');\n return;\n }\n bannerErrored = false;\n\n try {\n logger.info('Showing AdMob banner.');\n await banner.show();\n if (bannerLoaded) {\n // Banner is already loaded, so it will be shown immediately.\n bannerShowing = true;\n }\n } catch (error) {\n bannerShowing = false;\n bannerErrored = true;\n logger.error('Error while showing an AdMob banner:', error);\n }\n };\n\n /** Hide the banner shown on screen. */\n export const hideBanner = async () => {\n if (!checkIfAdMobIsAvailable()) return;\n\n if (!banner || !bannerShowing) {\n logger.warn('No banner is being shown.');\n return;\n }\n\n await banner.hide();\n bannerShowing = false;\n // Note that the banner is still loaded, which is why bannerLoaded is not set to false.\n // We hide the banner, but keep it configured to display it again if needed.\n };\n\n // -----------------------\n // ---- Interstitial -----\n // -----------------------\n export const isInterstitialLoading = () => interstitialLoading;\n export const isInterstitialReady = () => interstitialReady;\n export const isInterstitialShowing = () => interstitialShowing;\n export const isInterstitialErrored = () => interstitialErrored;\n\n /** Load an interstitial. */\n export const loadInterstitial = async (\n androidAdUnitId,\n iosAdUnitId,\n displayWhenLoaded\n ) => {\n if (!checkIfAdMobIsAvailable()) return;\n // If an interstitial is already loading or showing, we don't stop it.\n if (interstitialLoading || interstitialShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(\n androidAdUnitId,\n iosAdUnitId,\n 'interstitial'\n );\n if (!adUnitId) return;\n\n interstitialLoading = true;\n interstitialReady = false;\n interstitialErrored = false;\n\n interstitial = new admob.InterstitialAd({\n adUnitId,\n npa: npaValue,\n });\n\n interstitial.on('load', () => {\n interstitialReady = true;\n interstitialLoading = false;\n });\n interstitial.on('loadfail', () => {\n interstitialLoading = false;\n interstitialErrored = true;\n });\n interstitial.on('show', () => {\n interstitialShowing = true;\n interstitialReady = false;\n });\n interstitial.on('showfail', () => {\n interstitialShowing = false;\n interstitialErrored = true;\n });\n interstitial.on('dismiss', () => {\n interstitialShowing = false;\n });\n\n try {\n logger.info('Loading Admob interstitial.');\n await interstitial.load();\n logger.info('AdMob interstitial successfully loaded.');\n interstitialLoading = false;\n interstitialReady = true;\n if (displayWhenLoaded) showInterstitial();\n } catch (error) {\n logger.error('Error while loading a interstitial:', error);\n interstitialLoading = false;\n interstitialReady = false;\n interstitialErrored = true;\n }\n };\n\n /** Show the loaded interstitial. */\n export const showInterstitial = async () => {\n if (!checkIfAdMobIsAvailable()) return;\n\n if (!interstitial) {\n logger.warn(\n 'Interstitial has not been set up, call loadInterstitial first.'\n );\n return;\n }\n if (!interstitialReady) {\n logger.info('Interstitial not loaded yet, cannot display it.');\n return;\n }\n interstitialErrored = false;\n\n try {\n logger.info('Showing AdMob interstitial.');\n await interstitial.show();\n // Interstitial will be shown and\n // `interstitialShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob interstitial:', error);\n interstitialShowing = false;\n interstitialErrored = true;\n }\n };\n\n // --------------------------------\n // ---- Rewarded Interstitial -----\n // --------------------------------\n export const isRewardedInterstitialLoading = () =>\n rewardedInterstitialLoading;\n export const isRewardedInterstitialReady = () => rewardedInterstitialReady;\n export const isRewardedInterstitialShowing = () =>\n rewardedInterstitialShowing;\n export const isRewardedInterstitialErrored = () =>\n rewardedInterstitialErrored;\n\n /** Check if the reward of the rewarded interstitial was received. */\n export const wasRewardedInterstitialRewardReceived = function (\n markAsClaimed\n ) {\n const reward = rewardedInterstitialRewardReceived;\n if (markAsClaimed) {\n rewardedInterstitialRewardReceived = false;\n }\n return reward;\n };\n\n /** Load a rewarded interstitial. */\n export const loadRewardedInterstitial = async (\n androidAdUnitID,\n iosAdUnitID,\n displayWhenLoaded\n ) => {\n if (!checkIfAdMobIsAvailable()) return;\n if (rewardedInterstitialLoading || rewardedInterstitialShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(\n androidAdUnitID,\n iosAdUnitID,\n 'rewardedInterstitial'\n );\n if (!adUnitId) return;\n\n rewardedInterstitialLoading = true;\n rewardedInterstitialReady = false;\n rewardedInterstitialErrored = false;\n\n rewardedInterstitial = new admob.RewardedInterstitialAd({\n adUnitId,\n npa: npaValue,\n });\n\n // Rewarded video event listeners\n rewardedInterstitial.on('load', () => {\n rewardedInterstitialReady = true;\n rewardedInterstitialLoading = false;\n });\n rewardedInterstitial.on('loadfail', () => {\n rewardedInterstitialLoading = false;\n rewardedInterstitialErrored = true;\n });\n rewardedInterstitial.on('show', () => {\n rewardedInterstitialShowing = true;\n rewardedInterstitialReady = false;\n });\n rewardedInterstitial.on('showfail', () => {\n rewardedInterstitialShowing = false;\n rewardedInterstitialErrored = true;\n });\n rewardedInterstitial.on('dismiss', () => {\n rewardedInterstitialShowing = false;\n });\n rewardedInterstitial.on('reward', () => {\n rewardedInterstitialRewardReceived = true;\n });\n\n try {\n logger.info('Loading AdMob rewarded interstitial.');\n await rewardedInterstitial.load();\n logger.info('AdMob rewarded interstitial successfully loaded.');\n rewardedInterstitialLoading = false;\n rewardedInterstitialReady = true;\n if (displayWhenLoaded) showRewardedInterstitial();\n } catch (error) {\n rewardedInterstitialLoading = false;\n rewardedInterstitialReady = false;\n rewardedInterstitialErrored = true;\n logger.error('Error while loading a rewarded interstitial:', error);\n }\n };\n\n /** Show the loaded reward interstitial. */\n export const showRewardedInterstitial = async () => {\n if (!checkIfAdMobIsAvailable()) return;\n\n if (!rewardedInterstitial) {\n logger.warn(\n 'interstitial has not been set up, call loadRewardedInterstitial first.'\n );\n return;\n }\n if (!rewardedInterstitialReady) {\n logger.info('Rewarded interstitial not loaded yet, cannot display it.');\n }\n rewardedInterstitialErrored = false;\n\n try {\n logger.info('Showing AdMob rewarded interstitial.');\n await rewardedInterstitial.show();\n // Rewarded interstitial will be shown and\n // `rewardedInterstitialShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error(\n 'Error while showing an AdMob rewarded interstitial:',\n error\n );\n rewardedInterstitialShowing = false;\n rewardedInterstitialErrored = true;\n }\n };\n\n /** Mark the reward of the interstitial as claimed. */\n export const markRewardedInterstitialRewardAsClaimed = () => {\n rewardedInterstitialRewardReceived = false;\n };\n\n // -------------------------\n // ---- Rewarded Video -----\n // -------------------------\n export const isRewardedVideoLoading = () => rewardedVideoLoading;\n export const isRewardedVideoReady = () => rewardedVideoReady;\n export const isRewardedVideoShowing = () => rewardedVideoShowing;\n export const isRewardedVideoErrored = () => rewardedVideoErrored;\n\n /** Check if the reward of the rewarded video was received. */\n export const wasRewardedVideoRewardReceived = function (markAsClaimed) {\n const reward = rewardedVideoRewardReceived;\n if (markAsClaimed) {\n rewardedVideoRewardReceived = false;\n }\n return reward;\n };\n\n /** Load a rewarded video. */\n export const loadRewardedVideo = async (\n androidAdUnitID,\n iosAdUnitID,\n displayWhenLoaded\n ) => {\n if (!checkIfAdMobIsAvailable()) return;\n if (rewardedVideoLoading || rewardedVideoShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(androidAdUnitID, iosAdUnitID, 'rewarded');\n if (!adUnitId) return;\n\n rewardedVideoLoading = true;\n rewardedVideoReady = false;\n rewardedVideoErrored = false;\n\n rewardedVideo = new admob.RewardedAd({\n adUnitId,\n npa: npaValue,\n });\n\n // Rewarded video event listeners\n rewardedVideo.on('load', () => {\n rewardedVideoReady = true;\n rewardedVideoLoading = false;\n });\n rewardedVideo.on('loadfail', () => {\n rewardedVideoLoading = false;\n rewardedVideoErrored = true;\n });\n rewardedVideo.on('show', () => {\n rewardedVideoShowing = true;\n rewardedVideoReady = false;\n });\n rewardedVideo.on('showfail', () => {\n rewardedVideoShowing = false;\n rewardedVideoErrored = true;\n });\n rewardedVideo.on('dismiss', () => {\n rewardedVideoShowing = false;\n });\n rewardedVideo.on('reward', () => {\n rewardedVideoRewardReceived = true;\n });\n\n try {\n logger.info('Loading AdMob rewarded video.');\n await rewardedVideo.load();\n logger.info('AdMob rewarded video successfully loaded.');\n rewardedVideoLoading = false;\n rewardedVideoReady = true;\n if (displayWhenLoaded) showRewardedVideo();\n } catch (error) {\n rewardedVideoLoading = false;\n rewardedVideoReady = false;\n rewardedVideoErrored = true;\n logger.error('Error while loading a rewarded video:', error);\n }\n };\n\n /** Show the loaded reward video. */\n export const showRewardedVideo = async () => {\n if (!checkIfAdMobIsAvailable()) return;\n\n if (!rewardedVideo) {\n logger.warn('Video has not been set up, call loadRewardedVideo first.');\n return;\n }\n if (!rewardedVideoReady) {\n logger.info('Rewarded video not loaded yet, cannot display it.');\n }\n rewardedVideoErrored = false;\n\n try {\n logger.info('Showing AdMob rewarded video.');\n await rewardedVideo.show();\n // Rewarded video will be shown and\n // `rewardedVideoShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob rewarded video:', error);\n rewardedVideoShowing = false;\n rewardedVideoErrored = true;\n }\n };\n\n /** Mark the reward of the video as claimed. */\n export const markRewardedVideoRewardAsClaimed = () => {\n rewardedVideoRewardReceived = false;\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIS,GAAU,GAAV,UAAU,EAAV,CACL,KAAM,GAAS,GAAI,GAAK,OAAO,SAEzB,EAAY,CAChB,QAAS,CACP,QAAS,yCACT,IAAK,0CAEP,OAAQ,CACN,QAAS,yCACT,IAAK,0CAEP,aAAc,CACZ,QAAS,yCACT,IAAK,0CAEP,kBAAmB,CACjB,QAAS,yCACT,IAAK,0CAEP,SAAU,CACR,QAAS,yCACT,IAAK,0CAEP,qBAAsB,CACpB,QAAS,yCACT,IAAK,0CAEP,OAAQ,CACN,QAAS,yCACT,IAAK,0CAEP,YAAa,CACX,QAAS,yCACT,IAAK,2CAIT,GAAK,GAAL,UAAK,EAAL,CACE,uBACA,mCACA,2CACA,iCACA,iCACA,qCANG,WASL,KAAM,GAAc,CAClB,OAAQ,EACR,aAAc,EACd,iBAAkB,EAClB,YAAa,EACb,YAAa,EACb,aAAc,GAGhB,GAAK,GAAL,UAAK,EAAL,CACE,aAAW,GAAX,WACA,uBAAqB,GAArB,qBACA,mBAAiB,GAAjB,iBACA,kBAAgB,GAAhB,kBAJG,WAQL,GAAI,GAAe,GACf,EAAiB,GAGjB,EACA,EAAwC,EACxC,EAAmB,GACnB,EAAe,GACf,EAAgB,GAChB,EAAgB,GAGhB,EACA,EAAsB,GACtB,EAAoB,GACpB,EAAsB,GACtB,EAAsB,GAGtB,EACA,EAAiB,GACjB,EAAe,GACf,EAAiB,GACjB,EAAiB,GAGjB,EACA,EAA8B,GAC9B,EAA4B,GAC5B,EAA8B,GAC9B,EAAqC,GACrC,EAA8B,GAG9B,EACA,EAAuB,GACvB,EAAqB,GACrB,EAAuB,GACvB,EAA8B,GAC9B,EAAuB,GAEvB,EAAW,IAGf,SAAS,iBACP,cACA,SAAY,CAGV,KAAM,OAAM,QAEZ,EAAO,KAAK,+BACZ,EAAe,IAEjB,IAMF,KAAM,GAA0B,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n declare var admob: any;\n declare var cordova: any;\n\n export namespace adMob {\n const logger = new gdjs.Logger('AdMob');\n\n const testAdIds = {\n appOpen: {\n android: 'ca-app-pub-3940256099942544/9257395921',\n ios: 'ca-app-pub-3940256099942544/5575463023',\n },\n banner: {\n android: 'ca-app-pub-3940256099942544/6300978111',\n ios: 'ca-app-pub-3940256099942544/2934735716',\n },\n interstitial: {\n android: 'ca-app-pub-3940256099942544/1033173712',\n ios: 'ca-app-pub-3940256099942544/4411468910',\n },\n interstitialVideo: {\n android: 'ca-app-pub-3940256099942544/8691691433',\n ios: 'ca-app-pub-3940256099942544/5135589807',\n },\n rewarded: {\n android: 'ca-app-pub-3940256099942544/5224354917',\n ios: 'ca-app-pub-3940256099942544/1712485313',\n },\n rewardedInterstitial: {\n android: 'ca-app-pub-3940256099942544/5354046379',\n ios: 'ca-app-pub-3940256099942544/6978759866',\n },\n native: {\n android: 'ca-app-pub-3940256099942544/2247696110',\n ios: 'ca-app-pub-3940256099942544/3986624511',\n },\n nativeVideo: {\n android: 'ca-app-pub-3940256099942544/1044960115',\n ios: 'ca-app-pub-3940256099942544/2521693316',\n },\n };\n\n enum AdSizeType {\n BANNER,\n LARGE_BANNER,\n MEDIUM_RECTANGLE,\n FULL_BANNER,\n LEADERBOARD,\n SMART_BANNER,\n }\n\n const adSizeTypes = {\n BANNER: AdSizeType.BANNER,\n LARGE_BANNER: AdSizeType.LARGE_BANNER,\n MEDIUM_RECTANGLE: AdSizeType.MEDIUM_RECTANGLE,\n FULL_BANNER: AdSizeType.FULL_BANNER,\n LEADERBOARD: AdSizeType.LEADERBOARD,\n SMART_BANNER: AdSizeType.SMART_BANNER,\n };\n\n enum AppOpenAdOrientation {\n Portrait = 1,\n PortraitUpsideDown = 2,\n LandscapeRight = 3,\n LandscapeLeft = 4,\n }\n\n // Admob does not initialize automatically, so we store a flag to know if it's initialized.\n let admobStarted = false;\n let isStarting = false;\n let isUsingTestAds = false;\n\n // Banner\n let banner;\n let bannerRequestedAdSizeType: AdSizeType = AdSizeType.SMART_BANNER;\n let bannerConfigured = false; // Becomes true when the user configures the ad id and the position of the banner.\n let bannerLoaded = false; // Becomes true when the banner is loaded by loaded.\n let bannerShowing = false; // Becomes true when loaded or when the user shows/hides the banner.\n let bannerErrored = false; // Becomes true when the banner fails to load.\n\n // Interstitial\n let interstitial;\n let interstitialLoading = false; // Becomes true when the interstitial is loading.\n let interstitialReady = false; // Becomes true when the interstitial is loaded and ready to be shown.\n let interstitialShowing = false; // Becomes true when the interstitial is showing.\n let interstitialErrored = false; // Becomes true when the interstitial fails to load.\n\n // App Open\n let appOpen;\n let appOpenLoading = false; // Becomes true when the appOpen is loading.\n let appOpenReady = false; // Becomes true when the appOpen is loaded and ready to be shown.\n let appOpenShowing = false; // Becomes true when the appOpen is showing.\n let appOpenErrored = false; // Becomes true when the appOpen fails to load.\n\n // Rewarded interstitial\n let rewardedInterstitial;\n let rewardedInterstitialLoading = false; // Becomes true when the interstitial is loading.\n let rewardedInterstitialReady = false; // Becomes true when the interstitial is loaded and ready to be shown.\n let rewardedInterstitialShowing = false; // Becomes true when the interstitial is showing.\n let rewardedInterstitialRewardReceived = false; // Becomes true when the interstitial is closed and the reward is received.\n let rewardedInterstitialErrored = false; // Becomes true when the interstitial fails to load.\n\n // Rewarded video\n let rewardedVideo;\n let rewardedVideoLoading = false; // Becomes true when the video is loading.\n let rewardedVideoReady = false; // Becomes true when the video is loaded and ready to be shown.\n let rewardedVideoShowing = false; // Becomes true when the video is showing.\n let rewardedVideoRewardReceived = false; // Becomes true when the video is closed and the reward is received.\n let rewardedVideoErrored = false; // Becomes true when the video fails to load.\n\n let npaValue = '0'; // TODO: expose an API to change this and also an automatic way using the consent SDK.\n\n // Admob initialization listener\n document.addEventListener(\n 'deviceready',\n async () => {\n // Obtain user consent ?\n\n logger.info('Starting AdMob.');\n isStarting = true;\n\n await admob.start();\n\n logger.info('AdMob successfully started.');\n isStarting = false;\n admobStarted = true;\n },\n false\n );\n\n /**\n * Helper to know if we are on mobile and admob is correctly initialized.\n */\n const checkIfAdMobIsAvailable = async () => {\n if (typeof cordova === 'undefined') {\n logger.warn('We are not on mobile, AdMob will not be available.');\n return false;\n }\n if (typeof admob === 'undefined') {\n logger.warn('AdMob has not been configured properly.');\n return false;\n }\n\n if (!admobStarted) {\n if (isStarting) {\n // Delay the call until AdMob is started, up to 5 seconds.\n let time = 0;\n while (!admobStarted && time < 5000) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n time += 100;\n }\n }\n\n if (!admobStarted) {\n logger.warn('AdMob is not started.');\n return false;\n }\n }\n\n return true;\n };\n\n /**\n * Helper to get the correct ad id depending on the platform. Android and iOS use different ids.\n */\n const getAdUnitId = (androidAdUnitId, iosAdUnitId, type) => {\n if (typeof cordova === 'undefined') {\n logger.warn('Cordova is not available.');\n return;\n }\n if (cordova.platformId === 'android') {\n return isUsingTestAds ? testAdIds[type].android : androidAdUnitId;\n } else if (cordova.platformId === 'ios') {\n return isUsingTestAds ? testAdIds[type].ios : iosAdUnitId;\n }\n\n logger.error('Unsupported platform: ', cordova.platformId);\n return null;\n };\n\n /**\n * Activate or deactivate the test mode (\"development\" mode).\n * When activated, tests ads will be served instead of real ones.\n *\n * It is important to enable test ads during development so that you can click on them without\n * charging advertisers. If you click on too many ads without being in test mode, you risk your\n * account being flagged for invalid activity.\n */\n export const setTestMode = async (enable: boolean) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n logger.info('Setting AdMob test mode to:', enable);\n\n isUsingTestAds = enable;\n };\n\n // -------------------\n // ---- App Open -----\n // -------------------\n export const isAppOpenLoading = () => appOpenLoading;\n export const isAppOpenReady = () => appOpenReady;\n export const isAppOpenShowing = () => appOpenShowing;\n export const isAppOpenErrored = () => appOpenErrored;\n\n /** Load an AppOpen. */\n export const loadAppOpen = async (\n androidAdUnitId,\n iosAdUnitId,\n displayLandscape,\n displayWhenLoaded\n ) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n // If an appOpen is already loading or showing, we don't stop it.\n if (appOpenLoading || appOpenShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(androidAdUnitId, iosAdUnitId, 'appOpen');\n if (!adUnitId) return;\n\n appOpenLoading = true;\n appOpenReady = false;\n appOpenErrored = false;\n\n appOpen = new admob.AppOpenAd({\n adUnitId,\n orientation: displayLandscape\n ? AppOpenAdOrientation.LandscapeLeft\n : AppOpenAdOrientation.Portrait,\n });\n\n appOpen.on('load', () => {\n appOpenReady = true;\n appOpenLoading = false;\n });\n appOpen.on('loadfail', () => {\n appOpenLoading = false;\n appOpenErrored = true;\n });\n appOpen.on('show', () => {\n appOpenShowing = true;\n appOpenReady = false;\n });\n appOpen.on('showfail', () => {\n appOpenShowing = false;\n appOpenErrored = true;\n });\n appOpen.on('dismiss', () => {\n appOpenShowing = false;\n });\n\n try {\n logger.info('Loading Admob App Open.');\n await appOpen.load();\n logger.info('AdMob App Open successfully loaded.');\n appOpenLoading = false;\n appOpenReady = true;\n if (displayWhenLoaded) showAppOpen();\n } catch (error) {\n logger.error('Error while loading an App Open:', error);\n appOpenLoading = false;\n appOpenReady = false;\n appOpenErrored = true;\n }\n };\n\n /** Show the loaded appOpen. */\n export const showAppOpen = async () => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n if (!appOpen) {\n logger.warn('App Open has not been set up, call loadAppOpen first.');\n return;\n }\n if (!appOpenReady) {\n logger.info('App Open not loaded yet, cannot display it.');\n return;\n }\n appOpenErrored = false;\n\n try {\n logger.info('Showing AdMob App Open.');\n await appOpen.show();\n // AppOpen will be shown and\n // `appOpenShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob App Open:', error);\n appOpenShowing = false;\n appOpenErrored = true;\n }\n };\n\n // -----------------\n // ---- Banner -----\n // -----------------\n export const isBannerConfigured = () => bannerConfigured;\n export const isBannerLoaded = () => bannerLoaded;\n export const isBannerShowing = () => bannerShowing;\n export const isBannerErrored = () => bannerErrored;\n\n export const setBannerAdSizeType = (\n bannerAdSizeType:\n | 'BANNER'\n | 'LARGE_BANNER'\n | 'MEDIUM_RECTANGLE'\n | 'FULL_BANNER'\n | 'LEADERBOARD'\n | 'SMART_BANNER'\n ) => {\n bannerRequestedAdSizeType =\n adSizeTypes[bannerAdSizeType] || AdSizeType.SMART_BANNER;\n };\n\n /**\n * Set up a banner that can then be displayed by calling `showBanner`.\n * If a banner is already set up, it will be hidden and replaced by the new one.\n */\n export const setupBanner = async (androidAdUnitId, iosAdUnitId, atTop) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n const adUnitId = getAdUnitId(androidAdUnitId, iosAdUnitId, 'banner');\n if (!adUnitId) return;\n\n if (banner && bannerShowing) {\n logger.info('Banner already visible, hiding it to display new one.');\n await hideBanner();\n }\n\n bannerConfigured = false;\n bannerLoaded = false;\n\n banner = new admob.BannerAd({\n adUnitId,\n position: atTop ? 'top' : 'bottom',\n size: bannerRequestedAdSizeType,\n });\n\n banner.on('load', () => {\n bannerShowing = true;\n bannerLoaded = true;\n });\n banner.on('loadfail', () => {\n bannerShowing = false;\n bannerLoaded = false;\n bannerErrored = true;\n });\n\n bannerConfigured = true;\n };\n\n /**\n * Display a banner that was set up with `setupBanner` (and `setBannerAdSizeType`).\n */\n export const showBanner = async () => {\n if (!banner) {\n logger.info('Banner not configured, use setupBanner first.');\n return;\n }\n if (bannerShowing) {\n logger.info('Banner already visible. Ignoring.');\n return;\n }\n bannerErrored = false;\n\n try {\n logger.info('Showing AdMob banner.');\n await banner.show();\n if (bannerLoaded) {\n // Banner is already loaded, so it will be shown immediately.\n bannerShowing = true;\n }\n } catch (error) {\n bannerShowing = false;\n bannerErrored = true;\n logger.error('Error while showing an AdMob banner:', error);\n }\n };\n\n /** Hide the banner shown on screen. */\n export const hideBanner = async () => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n if (!banner || !bannerShowing) {\n logger.warn('No banner is being shown.');\n return;\n }\n\n await banner.hide();\n bannerShowing = false;\n // Note that the banner is still loaded, which is why bannerLoaded is not set to false.\n // We hide the banner, but keep it configured to display it again if needed.\n };\n\n // -----------------------\n // ---- Interstitial -----\n // -----------------------\n export const isInterstitialLoading = () => interstitialLoading;\n export const isInterstitialReady = () => interstitialReady;\n export const isInterstitialShowing = () => interstitialShowing;\n export const isInterstitialErrored = () => interstitialErrored;\n\n /** Load an interstitial. */\n export const loadInterstitial = async (\n androidAdUnitId,\n iosAdUnitId,\n displayWhenLoaded\n ) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n // If an interstitial is already loading or showing, we don't stop it.\n if (interstitialLoading || interstitialShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(\n androidAdUnitId,\n iosAdUnitId,\n 'interstitial'\n );\n if (!adUnitId) return;\n\n interstitialLoading = true;\n interstitialReady = false;\n interstitialErrored = false;\n\n interstitial = new admob.InterstitialAd({\n adUnitId,\n npa: npaValue,\n });\n\n interstitial.on('load', () => {\n interstitialReady = true;\n interstitialLoading = false;\n });\n interstitial.on('loadfail', () => {\n interstitialLoading = false;\n interstitialErrored = true;\n });\n interstitial.on('show', () => {\n interstitialShowing = true;\n interstitialReady = false;\n });\n interstitial.on('showfail', () => {\n interstitialShowing = false;\n interstitialErrored = true;\n });\n interstitial.on('dismiss', () => {\n interstitialShowing = false;\n });\n\n try {\n logger.info('Loading Admob interstitial.');\n await interstitial.load();\n logger.info('AdMob interstitial successfully loaded.');\n interstitialLoading = false;\n interstitialReady = true;\n if (displayWhenLoaded) showInterstitial();\n } catch (error) {\n logger.error('Error while loading a interstitial:', error);\n interstitialLoading = false;\n interstitialReady = false;\n interstitialErrored = true;\n }\n };\n\n /** Show the loaded interstitial. */\n export const showInterstitial = async () => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n if (!interstitial) {\n logger.warn(\n 'Interstitial has not been set up, call loadInterstitial first.'\n );\n return;\n }\n if (!interstitialReady) {\n logger.info('Interstitial not loaded yet, cannot display it.');\n return;\n }\n interstitialErrored = false;\n\n try {\n logger.info('Showing AdMob interstitial.');\n await interstitial.show();\n // Interstitial will be shown and\n // `interstitialShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob interstitial:', error);\n interstitialShowing = false;\n interstitialErrored = true;\n }\n };\n\n // --------------------------------\n // ---- Rewarded Interstitial -----\n // --------------------------------\n export const isRewardedInterstitialLoading = () =>\n rewardedInterstitialLoading;\n export const isRewardedInterstitialReady = () => rewardedInterstitialReady;\n export const isRewardedInterstitialShowing = () =>\n rewardedInterstitialShowing;\n export const isRewardedInterstitialErrored = () =>\n rewardedInterstitialErrored;\n\n /** Check if the reward of the rewarded interstitial was received. */\n export const wasRewardedInterstitialRewardReceived = function (\n markAsClaimed\n ) {\n const reward = rewardedInterstitialRewardReceived;\n if (markAsClaimed) {\n rewardedInterstitialRewardReceived = false;\n }\n return reward;\n };\n\n /** Load a rewarded interstitial. */\n export const loadRewardedInterstitial = async (\n androidAdUnitID,\n iosAdUnitID,\n displayWhenLoaded\n ) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n if (rewardedInterstitialLoading || rewardedInterstitialShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(\n androidAdUnitID,\n iosAdUnitID,\n 'rewardedInterstitial'\n );\n if (!adUnitId) return;\n\n rewardedInterstitialLoading = true;\n rewardedInterstitialReady = false;\n rewardedInterstitialErrored = false;\n\n rewardedInterstitial = new admob.RewardedInterstitialAd({\n adUnitId,\n npa: npaValue,\n });\n\n // Rewarded video event listeners\n rewardedInterstitial.on('load', () => {\n rewardedInterstitialReady = true;\n rewardedInterstitialLoading = false;\n });\n rewardedInterstitial.on('loadfail', () => {\n rewardedInterstitialLoading = false;\n rewardedInterstitialErrored = true;\n });\n rewardedInterstitial.on('show', () => {\n rewardedInterstitialShowing = true;\n rewardedInterstitialReady = false;\n });\n rewardedInterstitial.on('showfail', () => {\n rewardedInterstitialShowing = false;\n rewardedInterstitialErrored = true;\n });\n rewardedInterstitial.on('dismiss', () => {\n rewardedInterstitialShowing = false;\n });\n rewardedInterstitial.on('reward', () => {\n rewardedInterstitialRewardReceived = true;\n });\n\n try {\n logger.info('Loading AdMob rewarded interstitial.');\n await rewardedInterstitial.load();\n logger.info('AdMob rewarded interstitial successfully loaded.');\n rewardedInterstitialLoading = false;\n rewardedInterstitialReady = true;\n if (displayWhenLoaded) showRewardedInterstitial();\n } catch (error) {\n rewardedInterstitialLoading = false;\n rewardedInterstitialReady = false;\n rewardedInterstitialErrored = true;\n logger.error('Error while loading a rewarded interstitial:', error);\n }\n };\n\n /** Show the loaded reward interstitial. */\n export const showRewardedInterstitial = async () => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n if (!rewardedInterstitial) {\n logger.warn(\n 'interstitial has not been set up, call loadRewardedInterstitial first.'\n );\n return;\n }\n if (!rewardedInterstitialReady) {\n logger.info('Rewarded interstitial not loaded yet, cannot display it.');\n }\n rewardedInterstitialErrored = false;\n\n try {\n logger.info('Showing AdMob rewarded interstitial.');\n await rewardedInterstitial.show();\n // Rewarded interstitial will be shown and\n // `rewardedInterstitialShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error(\n 'Error while showing an AdMob rewarded interstitial:',\n error\n );\n rewardedInterstitialShowing = false;\n rewardedInterstitialErrored = true;\n }\n };\n\n /** Mark the reward of the interstitial as claimed. */\n export const markRewardedInterstitialRewardAsClaimed = () => {\n rewardedInterstitialRewardReceived = false;\n };\n\n // -------------------------\n // ---- Rewarded Video -----\n // -------------------------\n export const isRewardedVideoLoading = () => rewardedVideoLoading;\n export const isRewardedVideoReady = () => rewardedVideoReady;\n export const isRewardedVideoShowing = () => rewardedVideoShowing;\n export const isRewardedVideoErrored = () => rewardedVideoErrored;\n\n /** Check if the reward of the rewarded video was received. */\n export const wasRewardedVideoRewardReceived = function (markAsClaimed) {\n const reward = rewardedVideoRewardReceived;\n if (markAsClaimed) {\n rewardedVideoRewardReceived = false;\n }\n return reward;\n };\n\n /** Load a rewarded video. */\n export const loadRewardedVideo = async (\n androidAdUnitID,\n iosAdUnitID,\n displayWhenLoaded\n ) => {\n if (!(await checkIfAdMobIsAvailable())) return;\n if (rewardedVideoLoading || rewardedVideoShowing) {\n return;\n }\n\n const adUnitId = getAdUnitId(androidAdUnitID, iosAdUnitID, 'rewarded');\n if (!adUnitId) return;\n\n rewardedVideoLoading = true;\n rewardedVideoReady = false;\n rewardedVideoErrored = false;\n\n rewardedVideo = new admob.RewardedAd({\n adUnitId,\n npa: npaValue,\n });\n\n // Rewarded video event listeners\n rewardedVideo.on('load', () => {\n rewardedVideoReady = true;\n rewardedVideoLoading = false;\n });\n rewardedVideo.on('loadfail', () => {\n rewardedVideoLoading = false;\n rewardedVideoErrored = true;\n });\n rewardedVideo.on('show', () => {\n rewardedVideoShowing = true;\n rewardedVideoReady = false;\n });\n rewardedVideo.on('showfail', () => {\n rewardedVideoShowing = false;\n rewardedVideoErrored = true;\n });\n rewardedVideo.on('dismiss', () => {\n rewardedVideoShowing = false;\n });\n rewardedVideo.on('reward', () => {\n rewardedVideoRewardReceived = true;\n });\n\n try {\n logger.info('Loading AdMob rewarded video.');\n await rewardedVideo.load();\n logger.info('AdMob rewarded video successfully loaded.');\n rewardedVideoLoading = false;\n rewardedVideoReady = true;\n if (displayWhenLoaded) showRewardedVideo();\n } catch (error) {\n rewardedVideoLoading = false;\n rewardedVideoReady = false;\n rewardedVideoErrored = true;\n logger.error('Error while loading a rewarded video:', error);\n }\n };\n\n /** Show the loaded reward video. */\n export const showRewardedVideo = async () => {\n if (!(await checkIfAdMobIsAvailable())) return;\n\n if (!rewardedVideo) {\n logger.warn('Video has not been set up, call loadRewardedVideo first.');\n return;\n }\n if (!rewardedVideoReady) {\n logger.info('Rewarded video not loaded yet, cannot display it.');\n }\n rewardedVideoErrored = false;\n\n try {\n logger.info('Showing AdMob rewarded video.');\n await rewardedVideo.show();\n // Rewarded video will be shown and\n // `rewardedVideoShowing` will be updated thanks to events\n // (but it's too early to change it now).\n } catch (error) {\n logger.error('Error while showing an AdMob rewarded video:', error);\n rewardedVideoShowing = false;\n rewardedVideoErrored = true;\n }\n };\n\n /** Mark the reward of the video as claimed. */\n export const markRewardedVideoRewardAsClaimed = () => {\n rewardedVideoRewardReceived = false;\n };\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(AnchorBehavior)
|
|
4
|
+
gd_add_extension_includes()
|
|
5
|
+
|
|
6
|
+
# Defines
|
|
7
|
+
#
|
|
8
|
+
gd_add_extension_definitions(AnchorBehavior)
|
|
9
|
+
|
|
10
|
+
# The targets
|
|
11
|
+
#
|
|
12
|
+
include_directories(.)
|
|
13
|
+
file(
|
|
14
|
+
GLOB
|
|
15
|
+
source_files
|
|
16
|
+
*.cpp
|
|
17
|
+
*.h)
|
|
18
|
+
gd_add_clang_utils(AnchorBehavior "${source_files}")
|
|
19
|
+
gd_add_extension_target(AnchorBehavior "${source_files}")
|
|
20
|
+
|
|
21
|
+
# Linker files for the IDE extension
|
|
22
|
+
#
|
|
23
|
+
gd_extension_link_libraries(AnchorBehavior)
|
|
@@ -132,18 +132,11 @@ module.exports = {
|
|
|
132
132
|
objectContent,
|
|
133
133
|
instance,
|
|
134
134
|
propertyName,
|
|
135
|
-
newValue
|
|
136
|
-
project,
|
|
137
|
-
layout
|
|
135
|
+
newValue
|
|
138
136
|
) {
|
|
139
137
|
return false;
|
|
140
138
|
};
|
|
141
|
-
objectBBText.getInitialInstanceProperties = function (
|
|
142
|
-
content,
|
|
143
|
-
instance,
|
|
144
|
-
project,
|
|
145
|
-
layout
|
|
146
|
-
) {
|
|
139
|
+
objectBBText.getInitialInstanceProperties = function (content, instance) {
|
|
147
140
|
var instanceProperties = new gd.MapStringPropertyDescriptor();
|
|
148
141
|
return instanceProperties;
|
|
149
142
|
};
|
|
@@ -423,6 +416,21 @@ module.exports = {
|
|
|
423
416
|
|
|
424
417
|
addSettersAndGettersToObject(object, setterAndGetterProperties, 'BBText');
|
|
425
418
|
|
|
419
|
+
object
|
|
420
|
+
.addAction(
|
|
421
|
+
`SetFontFamily2`,
|
|
422
|
+
_('Font family'),
|
|
423
|
+
_('Set font family'),
|
|
424
|
+
_('Set the font of _PARAM0_ to _PARAM1_'),
|
|
425
|
+
'',
|
|
426
|
+
'res/actions/font24.png',
|
|
427
|
+
'res/actions/font24.png'
|
|
428
|
+
)
|
|
429
|
+
.addParameter('object', 'BBText', 'BBText', false)
|
|
430
|
+
.addParameter('fontResource', _('Font family'), '', false)
|
|
431
|
+
.getCodeExtraInformation()
|
|
432
|
+
.setFunctionName(`setFontFamily`);
|
|
433
|
+
|
|
426
434
|
const actions = object.getAllActions();
|
|
427
435
|
const conditions = object.getAllConditions();
|
|
428
436
|
const expressions = object.getAllExpressions();
|
|
@@ -430,6 +438,9 @@ module.exports = {
|
|
|
430
438
|
actions.get('BBText::SetOpacity').setHidden();
|
|
431
439
|
conditions.get('BBText::IsOpacity').setHidden();
|
|
432
440
|
expressions.get('GetOpacity').setHidden();
|
|
441
|
+
// Action deprecated because it's using the `string` type instead of the more
|
|
442
|
+
// user-friendly `fontResource` type.
|
|
443
|
+
actions.get('BBText::SetFontFamily').setHidden();
|
|
433
444
|
|
|
434
445
|
return extension;
|
|
435
446
|
},
|
|
@@ -482,7 +493,6 @@ module.exports = {
|
|
|
482
493
|
class RenderedBBTextInstance extends RenderedInstance {
|
|
483
494
|
constructor(
|
|
484
495
|
project,
|
|
485
|
-
layout,
|
|
486
496
|
instance,
|
|
487
497
|
associatedObjectConfiguration,
|
|
488
498
|
pixiContainer,
|
|
@@ -490,7 +500,6 @@ module.exports = {
|
|
|
490
500
|
) {
|
|
491
501
|
super(
|
|
492
502
|
project,
|
|
493
|
-
layout,
|
|
494
503
|
instance,
|
|
495
504
|
associatedObjectConfiguration,
|
|
496
505
|
pixiContainer,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(i){class
|
|
1
|
+
var gdjs;(function(i){class n extends i.RuntimeObject{constructor(t,e){super(t,e);this._wrappingWidth=250;this._opacity=parseFloat(e.content.opacity),this._text=e.content.text,this._color=i.rgbOrHexToRGBColor(e.content.color),this._fontFamily=e.content.fontFamily,this._fontSize=parseFloat(e.content.fontSize),this._wordWrap=e.content.wordWrap,this._align=e.content.align,this._renderer=new i.BBTextRuntimeObjectRenderer(this,t),this.hidden=!e.content.visible,this.onCreated()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(t,e){return t.content.opacity!==e.content.opacity&&this.setOpacity(e.content.opacity),t.content.visible!==e.content.visible&&this.hide(!e.content.visible),t.content.text!==e.content.text&&this.setBBText(e.content.text),t.content.color!==e.content.color&&(this._color=i.rgbOrHexToRGBColor(e.content.color),this._renderer.updateColor()),t.content.fontFamily!==e.content.fontFamily&&this.setFontFamily(e.content.fontFamily),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.wordWrap!==e.content.wordWrap&&this.setWordWrap(e.content.wordWrap),t.content.align!==e.content.align&&this.setAlignment(e.content.align),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),text:this._text,o:this._opacity,c:this._color,ff:this._fontFamily,fs:this._fontSize,wwrap:this._wordWrap,wwidth:this._wrappingWidth,align:this._align,hidden:this.hidden}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),this._text!==void 0&&this.setBBText(t.text),this._opacity!==void 0&&this.setOpacity(t.o),this._color!==void 0&&(this._color=t.c,this._renderer.updateColor()),this._fontFamily!==void 0&&this.setFontFamily(t.ff),this._fontSize!==void 0&&this.setFontSize(t.fs),this._wordWrap!==void 0&&this.setWordWrap(t.wwrap),this._wrappingWidth!==void 0&&this.setWrappingWidth(t.wwidth),this._align!==void 0&&this.setAlignment(t.align),this.hidden!==void 0&&this.hide(t.hidden)}extraInitializationFromInitialInstance(t){t.customSize?this.setWrappingWidth(t.width):this.setWrappingWidth(250)}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}setBBText(t){this._text=t,this._renderer.updateText(),this.invalidateHitboxes()}getBBText(){return this._text}setColor(t){this._color=i.rgbOrHexToRGBColor(t),this._renderer.updateColor()}getColor(){return this._color[0]+";"+this._color[1]+";"+this._color[2]}setFontSize(t){this._fontSize=t,this._renderer.updateFontSize()}getFontSize(){return this._fontSize}setFontFamily(t){this._fontFamily=t,this._renderer.updateFontFamily()}getFontFamily(){return this._fontFamily}setAlignment(t){this._align=t,this._renderer.updateAlignment()}getAlignment(){return this._align}setX(t){super.setX(t),this._renderer.updatePosition()}setY(t){super.setY(t),this._renderer.updatePosition()}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}setWrappingWidth(t){this._wrappingWidth!==t&&(this._wrappingWidth=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes())}getWrappingWidth(){return this._wrappingWidth}setWordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this._renderer.updateWordWrap(),this.invalidateHitboxes())}getWordWrap(){return this._wordWrap}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}}i.BBTextRuntimeObject=n,i.registerObject("BBText::BBText",i.BBTextRuntimeObject)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=bbtextruntimeobject.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/BBText/bbtextruntimeobject.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BBTextRuntimeObject} */\n export type BBTextObjectDataType = {\n /** The base parameters of the BBText */\n content: {\n /** The opacity of the BBText */\n opacity: number;\n /** Deprecated - Is the text visible? */\n visible: boolean;\n /** Content of the text */\n text: string;\n /** The color of the text */\n color: string;\n /** The font of the text */\n fontFamily: string;\n /** The size of the text */\n fontSize: number;\n /** Activate word wrap if set to true */\n wordWrap: boolean;\n /** Alignment of the text: \"left\", \"center\" or \"right\" */\n align: 'left' | 'center' | 'right';\n };\n };\n export type BBTextObjectData = ObjectData & BBTextObjectDataType;\n\n /**\n * Displays a rich text using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows).\n */\n export class BBTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.OpacityHandler {\n _opacity: float;\n\n _text: string;\n\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _color: integer[];\n _fontFamily: string;\n _fontSize: number;\n\n _wordWrap: boolean;\n _wrappingWidth: float = 250;\n\n // This value is the default wrapping width of the runtime object.\n _align: string;\n _renderer: gdjs.BBTextRuntimeObjectRenderer;\n\n // While this should rather be exposed as a property for all objects, honor the \"visible\"\n // property that is specific to this object.\n hidden: boolean;\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: BBTextObjectData\n ) {\n super(instanceContainer, objectData);\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._opacity = parseFloat(objectData.content.opacity);\n this._text = objectData.content.text;\n this._color = gdjs.rgbOrHexToRGBColor(objectData.content.color);\n this._fontFamily = objectData.content.fontFamily;\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._fontSize = parseFloat(objectData.content.fontSize);\n this._wordWrap = objectData.content.wordWrap;\n this._align = objectData.content.align;\n this._renderer = new gdjs.BBTextRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this.hidden = !objectData.content.visible;\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n updateFromObjectData(\n oldObjectData: BBTextObjectDataType,\n newObjectData: BBTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.visible !== newObjectData.content.visible) {\n this.hide(!newObjectData.content.visible);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setBBText(newObjectData.content.text);\n }\n if (oldObjectData.content.color !== newObjectData.content.color) {\n this._color = gdjs.rgbOrHexToRGBColor(newObjectData.content.color);\n this._renderer.updateColor();\n }\n if (\n oldObjectData.content.fontFamily !== newObjectData.content.fontFamily\n ) {\n this.setFontFamily(newObjectData.content.fontFamily);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWordWrap(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setAlignment(newObjectData.content.align);\n }\n return true;\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n } else {\n this.setWrappingWidth(\n // This value is the default wrapping width of the runtime object.\n 250\n );\n }\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the markup text to display.\n */\n setBBText(text): void {\n this._text = text;\n this._renderer.updateText();\n }\n\n /**\n * Get the markup text displayed by the object.\n */\n getBBText() {\n return this._text;\n }\n\n setColor(rgbColorString): void {\n this._color = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateColor();\n }\n\n /**\n * Get the base color.\n * @return The color as a \"R;G;B\" string, for example: \"255;0;0\"\n */\n getColor(): string {\n return this._color[0] + ';' + this._color[1] + ';' + this._color[2];\n }\n\n setFontSize(fontSize): void {\n this._fontSize = fontSize;\n this._renderer.updateFontSize();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontFamily(fontFamily): void {\n this._fontFamily = fontFamily;\n this._renderer.updateFontFamily();\n }\n\n getFontFamily() {\n return this._fontFamily;\n }\n\n setAlignment(align): void {\n this._align = align;\n this._renderer.updateAlignment();\n }\n\n getAlignment() {\n return this._align;\n }\n\n /**\n * Set object position on X axis.\n * @param x The new position X of the object.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set object position on Y axis.\n * @param y The new position Y of the object.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the angle of the object.\n * @param angle The new angle of the object.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity() {\n return this._opacity;\n }\n\n /**\n * Set the width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n if (this._wrappingWidth === width) return;\n\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWordWrap(wordWrap: boolean): void {\n if (this._wordWrap === wordWrap) return;\n\n this._wordWrap = wordWrap;\n this._renderer.updateWordWrap();\n this.invalidateHitboxes();\n }\n\n getWordWrap() {\n return this._wordWrap;\n }\n\n /**\n * Get the width of the object.\n */\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n /**\n * Get the height of the object.\n */\n getHeight(): float {\n return this._renderer.getHeight();\n }\n }\n // @ts-ignore\n gdjs.registerObject('BBText::BBText', gdjs.BBTextRuntimeObject);\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BBTextRuntimeObject} */\n export type BBTextObjectDataType = {\n /** The base parameters of the BBText */\n content: {\n /** The opacity of the BBText */\n opacity: number;\n /** Deprecated - Is the text visible? */\n visible: boolean;\n /** Content of the text */\n text: string;\n /** The color of the text */\n color: string;\n /** The font of the text */\n fontFamily: string;\n /** The size of the text */\n fontSize: number;\n /** Activate word wrap if set to true */\n wordWrap: boolean;\n /** Alignment of the text: \"left\", \"center\" or \"right\" */\n align: 'left' | 'center' | 'right';\n };\n };\n export type BBTextObjectData = ObjectData & BBTextObjectDataType;\n\n export type BBTextObjectNetworkSyncDataType = {\n text: string;\n o: float;\n c: number[];\n ff: string;\n fs: number;\n wwrap: boolean;\n wwidth: float;\n align: string;\n hidden: boolean;\n };\n\n export type BBTextObjectNetworkSyncData = ObjectNetworkSyncData &\n BBTextObjectNetworkSyncDataType;\n\n /**\n * Displays a rich text using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows).\n */\n export class BBTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.OpacityHandler {\n _opacity: float;\n\n _text: string;\n\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _color: integer[];\n _fontFamily: string;\n _fontSize: number;\n\n _wordWrap: boolean;\n _wrappingWidth: float = 250;\n\n // This value is the default wrapping width of the runtime object.\n _align: string;\n _renderer: gdjs.BBTextRuntimeObjectRenderer;\n\n // While this should rather be exposed as a property for all objects, honor the \"visible\"\n // property that is specific to this object.\n hidden: boolean;\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: BBTextObjectData\n ) {\n super(instanceContainer, objectData);\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._opacity = parseFloat(objectData.content.opacity);\n this._text = objectData.content.text;\n this._color = gdjs.rgbOrHexToRGBColor(objectData.content.color);\n this._fontFamily = objectData.content.fontFamily;\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._fontSize = parseFloat(objectData.content.fontSize);\n this._wordWrap = objectData.content.wordWrap;\n this._align = objectData.content.align;\n this._renderer = new gdjs.BBTextRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this.hidden = !objectData.content.visible;\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n updateFromObjectData(\n oldObjectData: BBTextObjectDataType,\n newObjectData: BBTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.visible !== newObjectData.content.visible) {\n this.hide(!newObjectData.content.visible);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setBBText(newObjectData.content.text);\n }\n if (oldObjectData.content.color !== newObjectData.content.color) {\n this._color = gdjs.rgbOrHexToRGBColor(newObjectData.content.color);\n this._renderer.updateColor();\n }\n if (\n oldObjectData.content.fontFamily !== newObjectData.content.fontFamily\n ) {\n this.setFontFamily(newObjectData.content.fontFamily);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWordWrap(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setAlignment(newObjectData.content.align);\n }\n return true;\n }\n\n getNetworkSyncData(): BBTextObjectNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n text: this._text,\n o: this._opacity,\n c: this._color,\n ff: this._fontFamily,\n fs: this._fontSize,\n wwrap: this._wordWrap,\n wwidth: this._wrappingWidth,\n align: this._align,\n hidden: this.hidden,\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: BBTextObjectNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n if (this._text !== undefined) {\n this.setBBText(networkSyncData.text);\n }\n if (this._opacity !== undefined) {\n this.setOpacity(networkSyncData.o);\n }\n if (this._color !== undefined) {\n this._color = networkSyncData.c;\n this._renderer.updateColor();\n }\n if (this._fontFamily !== undefined) {\n this.setFontFamily(networkSyncData.ff);\n }\n if (this._fontSize !== undefined) {\n this.setFontSize(networkSyncData.fs);\n }\n if (this._wordWrap !== undefined) {\n this.setWordWrap(networkSyncData.wwrap);\n }\n if (this._wrappingWidth !== undefined) {\n this.setWrappingWidth(networkSyncData.wwidth);\n }\n if (this._align !== undefined) {\n this.setAlignment(networkSyncData.align);\n }\n if (this.hidden !== undefined) {\n this.hide(networkSyncData.hidden);\n }\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n } else {\n this.setWrappingWidth(\n // This value is the default wrapping width of the runtime object.\n 250\n );\n }\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the markup text to display.\n */\n setBBText(text): void {\n this._text = text;\n this._renderer.updateText();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the markup text displayed by the object.\n */\n getBBText() {\n return this._text;\n }\n\n setColor(rgbColorString): void {\n this._color = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateColor();\n }\n\n /**\n * Get the base color.\n * @return The color as a \"R;G;B\" string, for example: \"255;0;0\"\n */\n getColor(): string {\n return this._color[0] + ';' + this._color[1] + ';' + this._color[2];\n }\n\n setFontSize(fontSize): void {\n this._fontSize = fontSize;\n this._renderer.updateFontSize();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontFamily(fontFamily): void {\n this._fontFamily = fontFamily;\n this._renderer.updateFontFamily();\n }\n\n getFontFamily() {\n return this._fontFamily;\n }\n\n setAlignment(align): void {\n this._align = align;\n this._renderer.updateAlignment();\n }\n\n getAlignment() {\n return this._align;\n }\n\n /**\n * Set object position on X axis.\n * @param x The new position X of the object.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set object position on Y axis.\n * @param y The new position Y of the object.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the angle of the object.\n * @param angle The new angle of the object.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity() {\n return this._opacity;\n }\n\n /**\n * Set the width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n if (this._wrappingWidth === width) return;\n\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWordWrap(wordWrap: boolean): void {\n if (this._wordWrap === wordWrap) return;\n\n this._wordWrap = wordWrap;\n this._renderer.updateWordWrap();\n this.invalidateHitboxes();\n }\n\n getWordWrap() {\n return this._wordWrap;\n }\n\n /**\n * Get the width of the object.\n */\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n /**\n * Get the height of the object.\n */\n getHeight(): float {\n return this._renderer.getHeight();\n }\n }\n // @ts-ignore\n gdjs.registerObject('BBText::BBText', gdjs.BBTextRuntimeObject);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -134,17 +134,13 @@ module.exports = {
|
|
|
134
134
|
objectContent,
|
|
135
135
|
instance,
|
|
136
136
|
propertyName,
|
|
137
|
-
newValue
|
|
138
|
-
project,
|
|
139
|
-
layout
|
|
137
|
+
newValue
|
|
140
138
|
) {
|
|
141
139
|
return false;
|
|
142
140
|
};
|
|
143
141
|
bitmapTextObject.getInitialInstanceProperties = function (
|
|
144
142
|
content,
|
|
145
|
-
instance
|
|
146
|
-
project,
|
|
147
|
-
layout
|
|
143
|
+
instance
|
|
148
144
|
) {
|
|
149
145
|
var instanceProperties = new gd.MapStringPropertyDescriptor();
|
|
150
146
|
return instanceProperties;
|
|
@@ -641,7 +637,6 @@ module.exports = {
|
|
|
641
637
|
|
|
642
638
|
constructor(
|
|
643
639
|
project,
|
|
644
|
-
layout,
|
|
645
640
|
instance,
|
|
646
641
|
associatedObjectConfiguration,
|
|
647
642
|
pixiContainer,
|
|
@@ -649,7 +644,6 @@ module.exports = {
|
|
|
649
644
|
) {
|
|
650
645
|
super(
|
|
651
646
|
project,
|
|
652
|
-
layout,
|
|
653
647
|
instance,
|
|
654
648
|
associatedObjectConfiguration,
|
|
655
649
|
pixiContainer,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(i){class r extends i.RuntimeObject{constructor(t,e){super(t,e);this._opacity=e.content.opacity,this._text=e.content.text,this._tint=i.rgbOrHexToRGBColor(e.content.tint),this._bitmapFontResourceName=e.content.bitmapFontResourceName,this._textureAtlasResourceName=e.content.textureAtlasResourceName,this._scaleX=e.content.scale,this._scaleY=e.content.scale,this._wordWrap=e.content.wordWrap,this._wrappingWidth=0,this._align=e.content.align,this._renderer=new i.BitmapTextRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(t,e){return t.content.opacity!==e.content.opacity&&this.setOpacity(e.content.opacity),t.content.text!==e.content.text&&this.setText(e.content.text),t.content.tint!==e.content.tint&&(this._tint=i.rgbOrHexToRGBColor(e.content.tint),this._renderer.updateTint()),t.content.bitmapFontResourceName!==e.content.bitmapFontResourceName&&this.setBitmapFontResourceName(e.content.bitmapFontResourceName),t.content.textureAtlasResourceName!==e.content.textureAtlasResourceName&&this.setTextureAtlasResourceName(e.content.textureAtlasResourceName),t.content.scale!==e.content.scale&&this.setScale(e.content.scale),t.content.wordWrap!==e.content.wordWrap&&this.setWordWrap(e.content.wordWrap),t.content.align!==e.content.align&&this.setAlignment(e.content.align),!0}extraInitializationFromInitialInstance(t){t.customSize&&this.setWrappingWidth(t.width)}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setText(t){this._text=t,this._renderer.updateTextContent(),this.invalidateHitboxes()}getText(){return this._text}setTint(t){this._tint=i.rgbOrHexToRGBColor(t),this._renderer.updateTint()}getTint(){return this._tint[0]+";"+this._tint[1]+";"+this._tint[2]}getScale(){const t=this.getScaleX(),e=this.getScaleY();return t===e?t:Math.sqrt(t*e)}getScaleX(){return this._scaleX}getScaleY(){return this._scaleY}setScale(t){this.setScaleX(t),this.setScaleY(t)}setScaleX(t){t<0&&(t=0),this._scaleX!==t&&(this._scaleX=t,this._renderer.updateScale(),this.invalidateHitboxes())}setScaleY(t){t<0&&(t=0),this._scaleY!==t&&(this._scaleY=t,this._renderer.updateScale(),this.invalidateHitboxes())}getFontSize(){return this._renderer.getFontSize()}setBitmapFontAndTextureAtlasResourceName(t,e){t&&(this.setBitmapFontResourceName(t),this._renderer.updateFont()),e&&(this.setTextureAtlasResourceName(e),this._renderer.updateFont())}setBitmapFontResourceName(t){this._bitmapFontResourceName=t}getBitmapFontResourceName(){return this._bitmapFontResourceName}setTextureAtlasResourceName(t){this._textureAtlasResourceName=t}getTextureAtlasResourceName(){return this._textureAtlasResourceName}setAlignment(t){this._align=t,this._renderer.updateAlignment()}getAlignment(){return this._align}setX(t){super.setX(t),this._renderer.updatePosition()}setY(t){super.setY(t),this._renderer.updatePosition()}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}setWrappingWidth(t){this._wrappingWidth=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes()}getWrappingWidth(){return this._wrappingWidth}setWordWrap(t){this._wordWrap=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes()}getWordWrap(){return this._wordWrap}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}}i.BitmapTextRuntimeObject=r,i.registerObject("BitmapText::BitmapTextObject",i.BitmapTextRuntimeObject)})(gdjs||(gdjs={}));
|
|
1
|
+
var gdjs;(function(i){class r extends i.RuntimeObject{constructor(t,e){super(t,e);this._opacity=e.content.opacity,this._text=e.content.text,this._tint=i.rgbOrHexToRGBColor(e.content.tint),this._bitmapFontResourceName=e.content.bitmapFontResourceName,this._textureAtlasResourceName=e.content.textureAtlasResourceName,this._scaleX=e.content.scale,this._scaleY=e.content.scale,this._wordWrap=e.content.wordWrap,this._wrappingWidth=0,this._align=e.content.align,this._renderer=new i.BitmapTextRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(t,e){return t.content.opacity!==e.content.opacity&&this.setOpacity(e.content.opacity),t.content.text!==e.content.text&&this.setText(e.content.text),t.content.tint!==e.content.tint&&(this._tint=i.rgbOrHexToRGBColor(e.content.tint),this._renderer.updateTint()),t.content.bitmapFontResourceName!==e.content.bitmapFontResourceName&&this.setBitmapFontResourceName(e.content.bitmapFontResourceName),t.content.textureAtlasResourceName!==e.content.textureAtlasResourceName&&this.setTextureAtlasResourceName(e.content.textureAtlasResourceName),t.content.scale!==e.content.scale&&this.setScale(e.content.scale),t.content.wordWrap!==e.content.wordWrap&&this.setWordWrap(e.content.wordWrap),t.content.align!==e.content.align&&this.setAlignment(e.content.align),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),text:this._text,opa:this._opacity,tint:this._tint,bfrn:this._bitmapFontResourceName,tarn:this._textureAtlasResourceName,scale:this.getScale(),wwrap:this._wordWrap,wwidth:this._wrappingWidth,align:this._align}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),this._text!==void 0&&this.setText(t.text),this._opacity!==void 0&&this.setOpacity(t.opa),this._tint!==void 0&&(this._tint=t.tint,this._renderer.updateTint()),this._bitmapFontResourceName!==void 0&&this.setBitmapFontResourceName(t.bfrn),this._textureAtlasResourceName!==void 0&&this.setTextureAtlasResourceName(t.tarn),this._scaleX!==void 0&&this.setScale(t.scale),this._wordWrap!==void 0&&this.setWordWrap(t.wwrap),this._wrappingWidth!==void 0&&this.setWrappingWidth(t.wwidth),this._align!==void 0&&this.setAlignment(t.align)}extraInitializationFromInitialInstance(t){t.customSize&&this.setWrappingWidth(t.width)}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setText(t){this._text=t,this._renderer.updateTextContent(),this.invalidateHitboxes()}getText(){return this._text}setTint(t){this._tint=i.rgbOrHexToRGBColor(t),this._renderer.updateTint()}getTint(){return this._tint[0]+";"+this._tint[1]+";"+this._tint[2]}getScale(){const t=this.getScaleX(),e=this.getScaleY();return t===e?t:Math.sqrt(t*e)}getScaleX(){return this._scaleX}getScaleY(){return this._scaleY}setScale(t){this.setScaleX(t),this.setScaleY(t)}setScaleX(t){t<0&&(t=0),this._scaleX!==t&&(this._scaleX=t,this._renderer.updateScale(),this.invalidateHitboxes())}setScaleY(t){t<0&&(t=0),this._scaleY!==t&&(this._scaleY=t,this._renderer.updateScale(),this.invalidateHitboxes())}getFontSize(){return this._renderer.getFontSize()}setBitmapFontAndTextureAtlasResourceName(t,e){t&&(this.setBitmapFontResourceName(t),this._renderer.updateFont()),e&&(this.setTextureAtlasResourceName(e),this._renderer.updateFont())}setBitmapFontResourceName(t){this._bitmapFontResourceName=t}getBitmapFontResourceName(){return this._bitmapFontResourceName}setTextureAtlasResourceName(t){this._textureAtlasResourceName=t}getTextureAtlasResourceName(){return this._textureAtlasResourceName}setAlignment(t){this._align=t,this._renderer.updateAlignment()}getAlignment(){return this._align}setX(t){super.setX(t),this._renderer.updatePosition()}setY(t){super.setY(t),this._renderer.updatePosition()}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}setWrappingWidth(t){this._wrappingWidth=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes()}getWrappingWidth(){return this._wrappingWidth}setWordWrap(t){this._wordWrap=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes()}getWordWrap(){return this._wordWrap}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}}i.BitmapTextRuntimeObject=r,i.registerObject("BitmapText::BitmapTextObject",i.BitmapTextRuntimeObject)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=bitmaptextruntimeobject.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/BitmapText/bitmaptextruntimeobject.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BitmapTextRuntimeObject} */\n export type BitmapTextObjectDataType = {\n /** The base parameters of the Bitmap Text */\n content: {\n /** The opacity of the text. */\n opacity: float;\n /** Content of the text. */\n text: string;\n /** The tint of the text. */\n tint: string;\n /** The name of the resource containing the bitmap font for the text. */\n bitmapFontResourceName: string;\n /** The name of the resource containing the atlas image file for the text. */\n textureAtlasResourceName: string;\n /** The scale of the text. */\n scale: float;\n /** Activate word wrap if set to true. */\n wordWrap: boolean;\n /** Wrapping with from custom size properties. */\n wrappingWidth: float;\n /** Alignment of the text. */\n align: 'left' | 'center' | 'right';\n };\n };\n export type BitmapTextObjectData = ObjectData & BitmapTextObjectDataType;\n\n /**\n * Displays a text using a \"Bitmap Font\", generated in a external editor like bmFont.\n * This is more efficient/faster to render than a traditional text (which needs\n * to have its whole texture re-rendered anytime it changes).\n *\n * Bitmap Font can be created with softwares like:\n * * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/|http://www.angelcode.com/products/bmfont/\n * * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner|http://www.71squared.com/en/glyphdesigner\n * * Littera (Web-based, free): http://kvazars.com/littera/|http://kvazars.com/littera/\n */\n export class BitmapTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.OpacityHandler, gdjs.Scalable {\n _opacity: float;\n _text: string;\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _tint: integer[];\n _bitmapFontResourceName: string;\n _textureAtlasResourceName: string;\n _scaleX: number;\n _scaleY: number;\n _wordWrap: boolean;\n _wrappingWidth: float;\n _align: string;\n\n _renderer: gdjs.BitmapTextRuntimeObjectPixiRenderer;\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: BitmapTextObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._opacity = objectData.content.opacity;\n this._text = objectData.content.text;\n this._tint = gdjs.rgbOrHexToRGBColor(objectData.content.tint);\n\n this._bitmapFontResourceName = objectData.content.bitmapFontResourceName; // fnt/xml files\n this._textureAtlasResourceName =\n objectData.content.textureAtlasResourceName; // texture file used with fnt/xml (bitmap font file)\n this._scaleX = objectData.content.scale;\n this._scaleY = objectData.content.scale;\n this._wordWrap = objectData.content.wordWrap;\n this._wrappingWidth = 0;\n this._align = objectData.content.align;\n\n this._renderer = new gdjs.BitmapTextRuntimeObjectRenderer(\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 this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n updateFromObjectData(\n oldObjectData: BitmapTextObjectDataType,\n newObjectData: BitmapTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setText(newObjectData.content.text);\n }\n if (oldObjectData.content.tint !== newObjectData.content.tint) {\n this._tint = gdjs.rgbOrHexToRGBColor(newObjectData.content.tint);\n this._renderer.updateTint();\n }\n if (\n oldObjectData.content.bitmapFontResourceName !==\n newObjectData.content.bitmapFontResourceName\n ) {\n this.setBitmapFontResourceName(\n newObjectData.content.bitmapFontResourceName\n );\n }\n if (\n oldObjectData.content.textureAtlasResourceName !==\n newObjectData.content.textureAtlasResourceName\n ) {\n this.setTextureAtlasResourceName(\n newObjectData.content.textureAtlasResourceName\n );\n }\n if (oldObjectData.content.scale !== newObjectData.content.scale) {\n this.setScale(newObjectData.content.scale);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWordWrap(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setAlignment(newObjectData.content.align);\n }\n\n return true;\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n }\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n /**\n * Set the text to display.\n */\n setText(text: string): void {\n this._text = text;\n this._renderer.updateTextContent();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the text displayed by the object.\n */\n getText(): string {\n return this._text;\n }\n\n setTint(rgbColorString: string): void {\n this._tint = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateTint();\n }\n\n getTint(): string {\n return this._tint[0] + ';' + this._tint[1] + ';' + this._tint[2];\n }\n\n getScale(): number {\n const scaleX = this.getScaleX();\n const scaleY = this.getScaleY();\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n getScaleX(): float {\n return this._scaleX;\n }\n\n getScaleY(): float {\n return this._scaleY;\n }\n\n setScale(scale: float): void {\n this.setScaleX(scale);\n this.setScaleY(scale);\n }\n\n setScaleX(scaleX: float): void {\n if (scaleX < 0) {\n scaleX = 0;\n }\n if (this._scaleX === scaleX) return;\n\n this._scaleX = scaleX;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleY(scaleY: float): void {\n if (scaleY < 0) {\n scaleY = 0;\n }\n if (this._scaleY === scaleY) return;\n\n this._scaleY = scaleY;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n getFontSize(): float {\n return this._renderer.getFontSize();\n }\n\n setBitmapFontAndTextureAtlasResourceName(\n bitmapFontResourceName: string,\n textureAtlasResourceName: string\n ): void {\n if (bitmapFontResourceName) {\n this.setBitmapFontResourceName(bitmapFontResourceName);\n this._renderer.updateFont();\n }\n if (textureAtlasResourceName) {\n this.setTextureAtlasResourceName(textureAtlasResourceName);\n this._renderer.updateFont();\n }\n }\n\n setBitmapFontResourceName(bitmapFontResourceName: string): void {\n this._bitmapFontResourceName = bitmapFontResourceName;\n }\n\n getBitmapFontResourceName(): string {\n return this._bitmapFontResourceName;\n }\n\n setTextureAtlasResourceName(textureAtlasResourceName: string): void {\n this._textureAtlasResourceName = textureAtlasResourceName;\n }\n\n getTextureAtlasResourceName(): string {\n return this._textureAtlasResourceName;\n }\n\n setAlignment(align: string): void {\n this._align = align;\n this._renderer.updateAlignment();\n }\n\n getAlignment(): string {\n return this._align;\n }\n\n /**\n * Set object position on X axis.\n * @param x The new position X of the object.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set object position on Y axis.\n * @param y The new position Y of the object.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the angle of the object.\n * @param angle The new angle of the object.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity(): float {\n return this._opacity;\n }\n\n /**\n * Set the wrapping width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWordWrap(wordWrap: boolean): void {\n this._wordWrap = wordWrap;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n getWordWrap(): boolean {\n return this._wordWrap;\n }\n\n /**\n * Get the width of the object.\n */\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n /**\n * Get the height of the object.\n */\n getHeight(): float {\n return this._renderer.getHeight();\n }\n }\n gdjs.registerObject(\n 'BitmapText::BitmapTextObject',\n // @ts-ignore\n gdjs.BitmapTextRuntimeObject\n );\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BitmapTextRuntimeObject} */\n export type BitmapTextObjectDataType = {\n /** The base parameters of the Bitmap Text */\n content: {\n /** The opacity of the text. */\n opacity: float;\n /** Content of the text. */\n text: string;\n /** The tint of the text. */\n tint: string;\n /** The name of the resource containing the bitmap font for the text. */\n bitmapFontResourceName: string;\n /** The name of the resource containing the atlas image file for the text. */\n textureAtlasResourceName: string;\n /** The scale of the text. */\n scale: float;\n /** Activate word wrap if set to true. */\n wordWrap: boolean;\n /** Wrapping with from custom size properties. */\n wrappingWidth: float;\n /** Alignment of the text. */\n align: 'left' | 'center' | 'right';\n };\n };\n export type BitmapTextObjectData = ObjectData & BitmapTextObjectDataType;\n\n export type BitmapTextObjectNetworkSyncDataType = {\n text: string;\n opa: float;\n tint: number[];\n bfrn: string;\n tarn: string;\n scale: number;\n wwrap: boolean;\n wwidth: float;\n align: string;\n };\n\n export type BitmapTextObjectNetworkSyncData = ObjectNetworkSyncData &\n BitmapTextObjectNetworkSyncDataType;\n\n /**\n * Displays a text using a \"Bitmap Font\", generated in a external editor like bmFont.\n * This is more efficient/faster to render than a traditional text (which needs\n * to have its whole texture re-rendered anytime it changes).\n *\n * Bitmap Font can be created with softwares like:\n * * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/|http://www.angelcode.com/products/bmfont/\n * * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner|http://www.71squared.com/en/glyphdesigner\n * * Littera (Web-based, free): http://kvazars.com/littera/|http://kvazars.com/littera/\n */\n export class BitmapTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.OpacityHandler, gdjs.Scalable {\n _opacity: float;\n _text: string;\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _tint: integer[];\n _bitmapFontResourceName: string;\n _textureAtlasResourceName: string;\n _scaleX: number;\n _scaleY: number;\n _wordWrap: boolean;\n _wrappingWidth: float;\n _align: string;\n\n _renderer: gdjs.BitmapTextRuntimeObjectPixiRenderer;\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: BitmapTextObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._opacity = objectData.content.opacity;\n this._text = objectData.content.text;\n this._tint = gdjs.rgbOrHexToRGBColor(objectData.content.tint);\n\n this._bitmapFontResourceName = objectData.content.bitmapFontResourceName; // fnt/xml files\n this._textureAtlasResourceName =\n objectData.content.textureAtlasResourceName; // texture file used with fnt/xml (bitmap font file)\n this._scaleX = objectData.content.scale;\n this._scaleY = objectData.content.scale;\n this._wordWrap = objectData.content.wordWrap;\n this._wrappingWidth = 0;\n this._align = objectData.content.align;\n\n this._renderer = new gdjs.BitmapTextRuntimeObjectRenderer(\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 this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n updateFromObjectData(\n oldObjectData: BitmapTextObjectDataType,\n newObjectData: BitmapTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setText(newObjectData.content.text);\n }\n if (oldObjectData.content.tint !== newObjectData.content.tint) {\n this._tint = gdjs.rgbOrHexToRGBColor(newObjectData.content.tint);\n this._renderer.updateTint();\n }\n if (\n oldObjectData.content.bitmapFontResourceName !==\n newObjectData.content.bitmapFontResourceName\n ) {\n this.setBitmapFontResourceName(\n newObjectData.content.bitmapFontResourceName\n );\n }\n if (\n oldObjectData.content.textureAtlasResourceName !==\n newObjectData.content.textureAtlasResourceName\n ) {\n this.setTextureAtlasResourceName(\n newObjectData.content.textureAtlasResourceName\n );\n }\n if (oldObjectData.content.scale !== newObjectData.content.scale) {\n this.setScale(newObjectData.content.scale);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWordWrap(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setAlignment(newObjectData.content.align);\n }\n\n return true;\n }\n\n getNetworkSyncData(): BitmapTextObjectNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n text: this._text,\n opa: this._opacity,\n tint: this._tint,\n bfrn: this._bitmapFontResourceName,\n tarn: this._textureAtlasResourceName,\n scale: this.getScale(),\n wwrap: this._wordWrap,\n wwidth: this._wrappingWidth,\n align: this._align,\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: BitmapTextObjectNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n if (this._text !== undefined) {\n this.setText(networkSyncData.text);\n }\n if (this._opacity !== undefined) {\n this.setOpacity(networkSyncData.opa);\n }\n if (this._tint !== undefined) {\n this._tint = networkSyncData.tint;\n this._renderer.updateTint();\n }\n if (this._bitmapFontResourceName !== undefined) {\n this.setBitmapFontResourceName(networkSyncData.bfrn);\n }\n if (this._textureAtlasResourceName !== undefined) {\n this.setTextureAtlasResourceName(networkSyncData.tarn);\n }\n if (this._scaleX !== undefined) {\n this.setScale(networkSyncData.scale);\n }\n if (this._wordWrap !== undefined) {\n this.setWordWrap(networkSyncData.wwrap);\n }\n if (this._wrappingWidth !== undefined) {\n this.setWrappingWidth(networkSyncData.wwidth);\n }\n if (this._align !== undefined) {\n this.setAlignment(networkSyncData.align);\n }\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n }\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n /**\n * Set the text to display.\n */\n setText(text: string): void {\n this._text = text;\n this._renderer.updateTextContent();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the text displayed by the object.\n */\n getText(): string {\n return this._text;\n }\n\n setTint(rgbColorString: string): void {\n this._tint = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateTint();\n }\n\n getTint(): string {\n return this._tint[0] + ';' + this._tint[1] + ';' + this._tint[2];\n }\n\n getScale(): number {\n const scaleX = this.getScaleX();\n const scaleY = this.getScaleY();\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n getScaleX(): float {\n return this._scaleX;\n }\n\n getScaleY(): float {\n return this._scaleY;\n }\n\n setScale(scale: float): void {\n this.setScaleX(scale);\n this.setScaleY(scale);\n }\n\n setScaleX(scaleX: float): void {\n if (scaleX < 0) {\n scaleX = 0;\n }\n if (this._scaleX === scaleX) return;\n\n this._scaleX = scaleX;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n setScaleY(scaleY: float): void {\n if (scaleY < 0) {\n scaleY = 0;\n }\n if (this._scaleY === scaleY) return;\n\n this._scaleY = scaleY;\n this._renderer.updateScale();\n this.invalidateHitboxes();\n }\n\n getFontSize(): float {\n return this._renderer.getFontSize();\n }\n\n setBitmapFontAndTextureAtlasResourceName(\n bitmapFontResourceName: string,\n textureAtlasResourceName: string\n ): void {\n if (bitmapFontResourceName) {\n this.setBitmapFontResourceName(bitmapFontResourceName);\n this._renderer.updateFont();\n }\n if (textureAtlasResourceName) {\n this.setTextureAtlasResourceName(textureAtlasResourceName);\n this._renderer.updateFont();\n }\n }\n\n setBitmapFontResourceName(bitmapFontResourceName: string): void {\n this._bitmapFontResourceName = bitmapFontResourceName;\n }\n\n getBitmapFontResourceName(): string {\n return this._bitmapFontResourceName;\n }\n\n setTextureAtlasResourceName(textureAtlasResourceName: string): void {\n this._textureAtlasResourceName = textureAtlasResourceName;\n }\n\n getTextureAtlasResourceName(): string {\n return this._textureAtlasResourceName;\n }\n\n setAlignment(align: string): void {\n this._align = align;\n this._renderer.updateAlignment();\n }\n\n getAlignment(): string {\n return this._align;\n }\n\n /**\n * Set object position on X axis.\n * @param x The new position X of the object.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set object position on Y axis.\n * @param y The new position Y of the object.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the angle of the object.\n * @param angle The new angle of the object.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity(): float {\n return this._opacity;\n }\n\n /**\n * Set the wrapping width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWordWrap(wordWrap: boolean): void {\n this._wordWrap = wordWrap;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n getWordWrap(): boolean {\n return this._wordWrap;\n }\n\n /**\n * Get the width of the object.\n */\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n /**\n * Get the height of the object.\n */\n getHeight(): float {\n return this._renderer.getHeight();\n }\n }\n gdjs.registerObject(\n 'BitmapText::BitmapTextObject',\n // @ts-ignore\n gdjs.BitmapTextRuntimeObject\n );\n}\n"],
|
|
5
|
+
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAoDS,eACG,GAAK,aACqD,CAmBlE,YACE,EACA,EACA,CACA,MAAM,EAAmB,GAEzB,KAAK,SAAW,EAAW,QAAQ,QACnC,KAAK,MAAQ,EAAW,QAAQ,KAChC,KAAK,MAAQ,EAAK,mBAAmB,EAAW,QAAQ,MAExD,KAAK,wBAA0B,EAAW,QAAQ,uBAClD,KAAK,0BACH,EAAW,QAAQ,yBACrB,KAAK,QAAU,EAAW,QAAQ,MAClC,KAAK,QAAU,EAAW,QAAQ,MAClC,KAAK,UAAY,EAAW,QAAQ,SACpC,KAAK,eAAiB,EACtB,KAAK,OAAS,EAAW,QAAQ,MAEjC,KAAK,UAAY,GAAI,GAAK,gCACxB,KACA,GAIF,KAAK,YAGP,mBAAoB,CAClB,MAAO,MAAK,UAAU,oBAIxB,qBACE,EACA,EACS,CACT,MAAI,GAAc,QAAQ,UAAY,EAAc,QAAQ,SAC1D,KAAK,WAAW,EAAc,QAAQ,SAEpC,EAAc,QAAQ,OAAS,EAAc,QAAQ,MACvD,KAAK,QAAQ,EAAc,QAAQ,MAEjC,EAAc,QAAQ,OAAS,EAAc,QAAQ,MACvD,MAAK,MAAQ,EAAK,mBAAmB,EAAc,QAAQ,MAC3D,KAAK,UAAU,cAGf,EAAc,QAAQ,yBACtB,EAAc,QAAQ,wBAEtB,KAAK,0BACH,EAAc,QAAQ,wBAIxB,EAAc,QAAQ,2BACtB,EAAc,QAAQ,0BAEtB,KAAK,4BACH,EAAc,QAAQ,0BAGtB,EAAc,QAAQ,QAAU,EAAc,QAAQ,OACxD,KAAK,SAAS,EAAc,QAAQ,OAElC,EAAc,QAAQ,WAAa,EAAc,QAAQ,UAC3D,KAAK,YAAY,EAAc,QAAQ,UAErC,EAAc,QAAQ,QAAU,EAAc,QAAQ,OACxD,KAAK,aAAa,EAAc,QAAQ,OAGnC,GAGT,oBAAsD,CACpD,MAAO,IACF,MAAM,qBACT,KAAM,KAAK,MACX,IAAK,KAAK,SACV,KAAM,KAAK,MACX,KAAM,KAAK,wBACX,KAAM,KAAK,0BACX,MAAO,KAAK,WACZ,MAAO,KAAK,UACZ,OAAQ,KAAK,eACb,MAAO,KAAK,QAIhB,0BACE,EACM,CACN,MAAM,0BAA0B,GAC5B,KAAK,QAAU,QACjB,KAAK,QAAQ,EAAgB,MAE3B,KAAK,WAAa,QACpB,KAAK,WAAW,EAAgB,KAE9B,KAAK,QAAU,QACjB,MAAK,MAAQ,EAAgB,KAC7B,KAAK,UAAU,cAEb,KAAK,0BAA4B,QACnC,KAAK,0BAA0B,EAAgB,MAE7C,KAAK,4BAA8B,QACrC,KAAK,4BAA4B,EAAgB,MAE/C,KAAK,UAAY,QACnB,KAAK,SAAS,EAAgB,OAE5B,KAAK,YAAc,QACrB,KAAK,YAAY,EAAgB,OAE/B,KAAK,iBAAmB,QAC1B,KAAK,iBAAiB,EAAgB,QAEpC,KAAK,SAAW,QAClB,KAAK,aAAa,EAAgB,OAOtC,uCAAuC,EAAmC,CACxE,AAAI,EAAoB,YACtB,KAAK,iBAAiB,EAAoB,OAI9C,aAAoB,CAClB,MAAM,cACN,KAAK,UAAU,YAMjB,QAAQ,EAAoB,CAC1B,KAAK,MAAQ,EACb,KAAK,UAAU,oBACf,KAAK,qBAMP,SAAkB,CAChB,MAAO,MAAK,MAGd,QAAQ,EAA8B,CACpC,KAAK,MAAQ,EAAK,mBAAmB,GACrC,KAAK,UAAU,aAGjB,SAAkB,CAChB,MAAO,MAAK,MAAM,GAAK,IAAM,KAAK,MAAM,GAAK,IAAM,KAAK,MAAM,GAGhE,UAAmB,CACjB,KAAM,GAAS,KAAK,YACd,EAAS,KAAK,YACpB,MAAO,KAAW,EAAS,EAAS,KAAK,KAAK,EAAS,GAGzD,WAAmB,CACjB,MAAO,MAAK,QAGd,WAAmB,CACjB,MAAO,MAAK,QAGd,SAAS,EAAoB,CAC3B,KAAK,UAAU,GACf,KAAK,UAAU,GAGjB,UAAU,EAAqB,CAI7B,AAHI,EAAS,GACX,GAAS,GAEP,KAAK,UAAY,GAErB,MAAK,QAAU,EACf,KAAK,UAAU,cACf,KAAK,sBAGP,UAAU,EAAqB,CAI7B,AAHI,EAAS,GACX,GAAS,GAEP,KAAK,UAAY,GAErB,MAAK,QAAU,EACf,KAAK,UAAU,cACf,KAAK,sBAGP,aAAqB,CACnB,MAAO,MAAK,UAAU,cAGxB,yCACE,EACA,EACM,CACN,AAAI,GACF,MAAK,0BAA0B,GAC/B,KAAK,UAAU,cAEb,GACF,MAAK,4BAA4B,GACjC,KAAK,UAAU,cAInB,0BAA0B,EAAsC,CAC9D,KAAK,wBAA0B,EAGjC,2BAAoC,CAClC,MAAO,MAAK,wBAGd,4BAA4B,EAAwC,CAClE,KAAK,0BAA4B,EAGnC,6BAAsC,CACpC,MAAO,MAAK,0BAGd,aAAa,EAAqB,CAChC,KAAK,OAAS,EACd,KAAK,UAAU,kBAGjB,cAAuB,CACrB,MAAO,MAAK,OAOd,KAAK,EAAgB,CACnB,MAAM,KAAK,GACX,KAAK,UAAU,iBAOjB,KAAK,EAAgB,CACnB,MAAM,KAAK,GACX,KAAK,UAAU,iBAOjB,SAAS,EAAoB,CAC3B,MAAM,SAAS,GACf,KAAK,UAAU,cAOjB,WAAW,EAAsB,CAC/B,AAAI,EAAU,GACZ,GAAU,GAER,EAAU,KACZ,GAAU,KAEZ,KAAK,SAAW,EAChB,KAAK,UAAU,gBAMjB,YAAoB,CAClB,MAAO,MAAK,SAOd,iBAAiB,EAAoB,CACnC,KAAK,eAAiB,EACtB,KAAK,UAAU,sBACf,KAAK,qBAMP,kBAA0B,CACxB,MAAO,MAAK,eAGd,YAAY,EAAyB,CACnC,KAAK,UAAY,EACjB,KAAK,UAAU,sBACf,KAAK,qBAGP,aAAuB,CACrB,MAAO,MAAK,UAMd,UAAkB,CAChB,MAAO,MAAK,UAAU,WAMxB,WAAmB,CACjB,MAAO,MAAK,UAAU,aApWnB,EAAM,0BAuWb,EAAK,eACH,+BAEA,EAAK,2BA9ZC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# This is the CMake file used to build the C++ extensions.
|
|
2
|
+
# For more information, see the README.md file.
|
|
3
|
+
|
|
4
|
+
cmake_minimum_required(VERSION 3.5)
|
|
5
|
+
|
|
6
|
+
project(GD-Extensions)
|
|
7
|
+
include(CMakeUtils.txt) # Functions to factor common tasks done in CMakeLists.txt of extensions
|
|
8
|
+
|
|
9
|
+
# List of non pure JS extensions
|
|
10
|
+
set(
|
|
11
|
+
GD_EXTENSIONS
|
|
12
|
+
3D
|
|
13
|
+
AnchorBehavior
|
|
14
|
+
DestroyOutsideBehavior
|
|
15
|
+
DraggableBehavior
|
|
16
|
+
Inventory
|
|
17
|
+
LinkedObjects
|
|
18
|
+
PanelSpriteObject
|
|
19
|
+
ParticleSystem
|
|
20
|
+
PathfindingBehavior
|
|
21
|
+
PhysicsBehavior
|
|
22
|
+
PlatformBehavior
|
|
23
|
+
PrimitiveDrawing
|
|
24
|
+
Shopify
|
|
25
|
+
SystemInfo
|
|
26
|
+
TextEntryObject
|
|
27
|
+
TextObject
|
|
28
|
+
TiledSpriteObject
|
|
29
|
+
Spine
|
|
30
|
+
TopDownMovementBehavior)
|
|
31
|
+
|
|
32
|
+
# Automatically add all listed extensions
|
|
33
|
+
foreach(extension ${GD_EXTENSIONS})
|
|
34
|
+
add_subdirectory(${extension})
|
|
35
|
+
endforeach()
|