gdcore-tools 2.0.0-gd-v5.5.224-autobuild → 2.0.0-gd-v5.5.226-autobuild
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/CustomRuntimeObject.js +1 -1
- package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
- package/dist/Runtime/CustomRuntimeObject2D.js.map +2 -2
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Base3DBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +1 -1
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/3D/JsExtension.js +219 -108
- 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 +63 -1
- package/dist/Runtime/Extensions/AdMob/admobtools.js +1 -1
- package/dist/Runtime/Extensions/AdMob/admobtools.js.map +2 -2
- package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js.map +2 -2
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/BBText/JsExtension.js +10 -9
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +4 -6
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js.map +2 -2
- package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/drop-shadow/types.d.ts +10 -4
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +2 -2
- package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js.map +2 -2
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/firebase.d.ts +5 -4
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js.map +2 -2
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js.map +2 -2
- package/dist/Runtime/Extensions/Firebase/JsExtension.js +21 -21
- package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +1 -0
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +2 -2
- package/dist/Runtime/Extensions/Lighting/JsExtension.js +2 -2
- package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/JsExtension.js +122 -0
- package/dist/Runtime/Extensions/Multiplayer/messageManager.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js +1 -1
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js +1 -1
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js +1 -1
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/peerjs.d.ts +8 -10
- package/dist/Runtime/Extensions/P2P/peerjs.d.ts +8 -10
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/pixi-particles-pixi-renderer.d.ts +2 -1
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +106 -106
- package/dist/Runtime/Extensions/Physics2Behavior/box2d.d.ts +13 -7
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js +1 -1
- package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +1 -1
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +1 -1
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js +1 -1
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/JsExtension.js +5 -4
- 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/spineruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/Spine/spineruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/spineruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/Steamworks/JsExtension.js +12 -12
- package/dist/Runtime/Extensions/Steamworks/Z_steamworksinputtools.js.map +2 -2
- package/dist/Runtime/Extensions/Steamworks/steamworkstools.js.map +2 -2
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js.map +2 -2
- 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.map +2 -2
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +20 -18
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +1 -3
- package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +1 -1
- package/dist/Runtime/Extensions/Video/JsExtension.js +2 -1
- package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +2 -2
- package/dist/Runtime/InAppTutorialMessage.js +6 -0
- package/dist/Runtime/InAppTutorialMessage.js.map +7 -0
- package/dist/Runtime/Model3DManager.js.map +2 -2
- package/dist/Runtime/ResourceLoader.js.map +2 -2
- package/dist/Runtime/RuntimeCustomObjectLayer.js +1 -1
- package/dist/Runtime/RuntimeCustomObjectLayer.js.map +2 -2
- package/dist/Runtime/RuntimeInstanceContainer.js.map +1 -1
- package/dist/Runtime/RuntimeLayer.js.map +2 -2
- package/dist/Runtime/SpriteAnimator.js.map +2 -2
- package/dist/Runtime/affinetransformation.js.map +1 -1
- package/dist/Runtime/debugger-client/abstract-debugger-client.js.map +2 -2
- package/dist/Runtime/debugger-client/hot-reloader.js +2 -2
- package/dist/Runtime/debugger-client/hot-reloader.js.map +2 -2
- package/dist/Runtime/debugger-client/websocket-debugger-client.js +1 -1
- package/dist/Runtime/debugger-client/websocket-debugger-client.js.map +2 -2
- package/dist/Runtime/events-tools/networktools.js +1 -1
- package/dist/Runtime/events-tools/networktools.js.map +2 -2
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js.map +2 -2
- package/dist/Runtime/gd.js.map +2 -2
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js +1 -1
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js.map +2 -2
- package/dist/Runtime/inputmanager.js.map +2 -2
- package/dist/Runtime/jsonmanager.js.map +2 -2
- package/dist/Runtime/layer.js.map +2 -2
- package/dist/Runtime/libs/nanomarkdown.js +5 -0
- package/dist/Runtime/libs/nanomarkdown.js.map +7 -0
- package/dist/Runtime/object-capabilities/AnimatableBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/EffectBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/FlippableBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/OpacityBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/ResizableBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/ScalableBehavior.js.map +2 -2
- package/dist/Runtime/object-capabilities/TextContainerBehavior.js.map +2 -2
- package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js +1 -1
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi.js +123 -177
- 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/runtimescene-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/profiler.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.map +2 -2
- package/dist/Runtime/runtimewatermark.js.map +2 -2
- package/dist/Runtime/scenestack.js.map +2 -2
- package/dist/Runtime/spriteruntimeobject.js.map +2 -2
- package/dist/Runtime/variable.js.map +2 -2
- package/dist/Runtime/variablescontainer.js.map +2 -2
- package/dist/lib/libGD.cjs +1 -1
- package/dist/lib/libGD.wasm +0 -0
- package/gd.d.ts +5 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/AdvancedWindow/electron-advancedwindowtools.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /**\n * Tools to manipulate the game window positioning and\n * interactions with the operating system.\n * @author arthuro555\n */\n export namespace evtTools {\n export namespace advancedWindow {\n const getElectronBrowserWindow = (runtimeScene: gdjs.RuntimeScene) => {\n try {\n const electronRemote = runtimeScene\n .getGame()\n .getRenderer()\n .getElectronRemote();\n if (electronRemote) {\n return electronRemote.getCurrentWindow();\n }\n return null;\n } catch (error) {\n return null;\n }\n };\n\n export const focus = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.focus();\n } else {\n electronBrowserWindow.blur();\n }\n }\n };\n\n export const isFocused = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isFocused();\n }\n return false;\n };\n\n export const show = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.showInactive();\n } else {\n electronBrowserWindow.hide();\n }\n }\n };\n\n export const isVisible = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isVisible();\n }\n return false;\n };\n\n export const maximize = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.maximize();\n } else {\n electronBrowserWindow.unmaximize();\n }\n }\n };\n\n export const isMaximized = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMaximized();\n }\n return false;\n };\n\n export const minimize = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.minimize();\n } else {\n electronBrowserWindow.restore();\n }\n }\n };\n\n export const isMinimized = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMinimized();\n }\n return false;\n };\n\n export const enable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setEnabled(activate);\n }\n };\n\n export const isEnabled = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isEnabled();\n }\n return false;\n };\n\n export const setResizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setResizable(activate);\n }\n };\n\n export const isResizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isResizable();\n }\n return false;\n };\n\n export const setMovable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMovable(activate);\n }\n };\n\n export const isMovable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMovable();\n }\n return false;\n };\n\n export const setMaximizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMaximizable(activate);\n }\n };\n\n export const isMaximizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMaximizable();\n }\n return false;\n };\n\n export const setMinimizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMinimizable(activate);\n }\n };\n\n export const isMinimizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMinimizable();\n }\n return false;\n };\n\n export const setFullScreenable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setFullScreenable(activate);\n }\n };\n\n export const isFullScreenable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isFullScreenable();\n }\n return false;\n };\n\n export const setClosable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setClosable(activate);\n }\n };\n\n export const isClosable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isClosable();\n }\n return false;\n };\n\n export const setAlwaysOnTop = function (\n activate: boolean,\n level:\n | 'normal'\n | 'floating'\n | 'torn-off-menu'\n | 'modal-panel'\n | 'main-menu'\n | 'status'\n | 'pop-up-menu'\n | 'screen-saver',\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setAlwaysOnTop(activate, level);\n }\n };\n\n export const isAlwaysOnTop = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isAlwaysOnTop();\n }\n return false;\n };\n\n export const setPosition = function (\n x: float,\n y: float,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n // Convert x and y to (32 bit) integers to avoid Electron errors.\n electronBrowserWindow.setPosition(~~x, ~~y);\n }\n };\n\n export const getPositionX = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getPosition()[0];\n }\n return 0;\n };\n\n export const getPositionY = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getPosition()[1];\n }\n return 0;\n };\n\n export const setKiosk = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setKiosk(activate);\n }\n };\n\n export const isKiosk = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isKiosk();\n }\n return false;\n };\n\n export const flash = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.flashFrame(activate);\n }\n };\n\n export const setHasShadow = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setHasShadow(activate);\n }\n };\n\n export const hasShadow = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.hasShadow();\n }\n return false;\n };\n\n export const setOpacity = function (\n opacity: float,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setOpacity(opacity);\n }\n };\n\n export const getOpacity = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getOpacity();\n }\n return 1;\n };\n\n export const setContentProtection = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setContentProtection(activate);\n }\n };\n\n export const setFocusable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setFocusable(activate);\n }\n };\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n export namespace evtTools {\n /**\n * Tools to manipulate the game window positioning and\n * interactions with the operating system.\n * @author arthuro555\n */\n export namespace advancedWindow {\n const getElectronBrowserWindow = (runtimeScene: gdjs.RuntimeScene) => {\n try {\n const electronRemote = runtimeScene\n .getGame()\n .getRenderer()\n .getElectronRemote();\n if (electronRemote) {\n return electronRemote.getCurrentWindow();\n }\n return null;\n } catch (error) {\n return null;\n }\n };\n\n export const focus = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.focus();\n } else {\n electronBrowserWindow.blur();\n }\n }\n };\n\n export const isFocused = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isFocused();\n }\n return false;\n };\n\n export const show = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.showInactive();\n } else {\n electronBrowserWindow.hide();\n }\n }\n };\n\n export const isVisible = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isVisible();\n }\n return false;\n };\n\n export const maximize = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.maximize();\n } else {\n electronBrowserWindow.unmaximize();\n }\n }\n };\n\n export const isMaximized = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMaximized();\n }\n return false;\n };\n\n export const minimize = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n if (activate) {\n electronBrowserWindow.minimize();\n } else {\n electronBrowserWindow.restore();\n }\n }\n };\n\n export const isMinimized = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMinimized();\n }\n return false;\n };\n\n export const enable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setEnabled(activate);\n }\n };\n\n export const isEnabled = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isEnabled();\n }\n return false;\n };\n\n export const setResizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setResizable(activate);\n }\n };\n\n export const isResizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isResizable();\n }\n return false;\n };\n\n export const setMovable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMovable(activate);\n }\n };\n\n export const isMovable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMovable();\n }\n return false;\n };\n\n export const setMaximizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMaximizable(activate);\n }\n };\n\n export const isMaximizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMaximizable();\n }\n return false;\n };\n\n export const setMinimizable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setMinimizable(activate);\n }\n };\n\n export const isMinimizable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isMinimizable();\n }\n return false;\n };\n\n export const setFullScreenable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setFullScreenable(activate);\n }\n };\n\n export const isFullScreenable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isFullScreenable();\n }\n return false;\n };\n\n export const setClosable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setClosable(activate);\n }\n };\n\n export const isClosable = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isClosable();\n }\n return false;\n };\n\n export const setAlwaysOnTop = function (\n activate: boolean,\n level:\n | 'normal'\n | 'floating'\n | 'torn-off-menu'\n | 'modal-panel'\n | 'main-menu'\n | 'status'\n | 'pop-up-menu'\n | 'screen-saver',\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setAlwaysOnTop(activate, level);\n }\n };\n\n export const isAlwaysOnTop = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isAlwaysOnTop();\n }\n return false;\n };\n\n export const setPosition = function (\n x: float,\n y: float,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n // Convert x and y to (32 bit) integers to avoid Electron errors.\n electronBrowserWindow.setPosition(~~x, ~~y);\n }\n };\n\n export const getPositionX = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getPosition()[0];\n }\n return 0;\n };\n\n export const getPositionY = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getPosition()[1];\n }\n return 0;\n };\n\n export const setKiosk = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setKiosk(activate);\n }\n };\n\n export const isKiosk = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.isKiosk();\n }\n return false;\n };\n\n export const flash = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.flashFrame(activate);\n }\n };\n\n export const setHasShadow = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setHasShadow(activate);\n }\n };\n\n export const hasShadow = function (\n runtimeScene: gdjs.RuntimeScene\n ): boolean {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.hasShadow();\n }\n return false;\n };\n\n export const setOpacity = function (\n opacity: float,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setOpacity(opacity);\n }\n };\n\n export const getOpacity = function (\n runtimeScene: gdjs.RuntimeScene\n ): number {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n return electronBrowserWindow.getOpacity();\n }\n return 1;\n };\n\n export const setContentProtection = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setContentProtection(activate);\n }\n };\n\n export const setFocusable = function (\n activate: boolean,\n runtimeScene: gdjs.RuntimeScene\n ) {\n const electronBrowserWindow = getElectronBrowserWindow(runtimeScene);\n if (electronBrowserWindow) {\n electronBrowserWindow.setFocusable(activate);\n }\n };\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACS,GAAU,GAAV,UAAU,EAAV,CAME,GAAU,GAAV,UAAU,EAAV,CACL,KAAM,GAA2B,AAAC,GAAoC,CACpE,GAAI,CACF,KAAM,GAAiB,EACpB,UACA,cACA,oBACH,MAAI,GACK,EAAe,mBAEjB,UACP,CACA,MAAO,QAIJ,AAAM,QAAQ,SACnB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,CAAI,EACF,EAAsB,QAEtB,EAAsB,SAKf,YAAY,SACvB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,YAExB,IAGI,OAAO,SAClB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,CAAI,EACF,EAAsB,eAEtB,EAAsB,SAKf,YAAY,SACvB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,YAExB,IAGI,WAAW,SACtB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,CAAI,EACF,EAAsB,WAEtB,EAAsB,eAKf,cAAc,SACzB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,cAExB,IAGI,WAAW,SACtB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,CAAI,EACF,EAAsB,WAEtB,EAAsB,YAKf,cAAc,SACzB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,cAExB,IAGI,SAAS,SACpB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,WAAW,IAIxB,YAAY,SACvB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,YAExB,IAGI,eAAe,SAC1B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,aAAa,IAI1B,cAAc,SACzB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,cAExB,IAGI,aAAa,SACxB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,WAAW,IAIxB,YAAY,SACvB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,YAExB,IAGI,iBAAiB,SAC5B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,eAAe,IAI5B,gBAAgB,SAC3B,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,gBAExB,IAGI,iBAAiB,SAC5B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,eAAe,IAI5B,gBAAgB,SAC3B,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,gBAExB,IAGI,oBAAoB,SAC/B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,kBAAkB,IAI/B,mBAAmB,SAC9B,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,mBAExB,IAGI,cAAc,SACzB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,YAAY,IAIzB,aAAa,SACxB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,aAExB,IAGI,iBAAiB,SAC5B,EACA,EASA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,eAAe,EAAU,IAItC,gBAAgB,SAC3B,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,gBAExB,IAGI,cAAc,SACzB,EACA,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GAEF,EAAsB,YAAY,CAAC,CAAC,EAAG,CAAC,CAAC,IAIhC,eAAe,SAC1B,EACQ,CACR,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,cAAc,GAEtC,GAGI,eAAe,SAC1B,EACQ,CACR,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,cAAc,GAEtC,GAGI,WAAW,SACtB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,SAAS,IAItB,UAAU,SACrB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,UAExB,IAGI,QAAQ,SACnB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,WAAW,IAIxB,eAAe,SAC1B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,aAAa,IAI1B,YAAY,SACvB,EACS,CACT,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,YAExB,IAGI,aAAa,SACxB,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,WAAW,IAIxB,aAAa,SACxB,EACQ,CACR,KAAM,GAAwB,EAAyB,GACvD,MAAI,GACK,EAAsB,aAExB,GAGI,uBAAuB,SAClC,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,qBAAqB,IAIlC,eAAe,SAC1B,EACA,EACA,CACA,KAAM,GAAwB,EAAyB,GACvD,AAAI,GACF,EAAsB,aAAa,MA/YxB,6CANF,iCADT",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(
|
|
1
|
+
var gdjs;(function(a){let i;(function(t){t[t.None=0]="None",t[t.WindowLeft=1]="WindowLeft",t[t.WindowRight=2]="WindowRight",t[t.Proportional=3]="Proportional",t[t.WindowCenter=4]="WindowCenter"})(i||(i={}));let n;(function(t){t[t.None=0]="None",t[t.WindowTop=1]="WindowTop",t[t.WindowBottom=2]="WindowBottom",t[t.Proportional=3]="Proportional",t[t.WindowCenter=4]="WindowCenter"})(n||(n={}));class D extends a.RuntimeBehavior{constructor(e,o,r){super(e,o,r);this._useLegacyBottomAndRightAnchors=!1;this._hasJustBeenCreated=!0;this._leftEdgeDistance=0;this._rightEdgeDistance=0;this._topEdgeDistance=0;this._bottomEdgeDistance=0;this._oldDrawableX=0;this._oldDrawableY=0;this._oldWidth=0;this._oldHeight=0;this._parentOldMinX=0;this._parentOldMinY=0;this._parentOldMaxX=0;this._parentOldMaxY=0;this._relativeToOriginalWindowSize=!!o.relativeToOriginalWindowSize,this._leftEdgeAnchor=o.leftEdgeAnchor,this._rightEdgeAnchor=o.rightEdgeAnchor,this._topEdgeAnchor=o.topEdgeAnchor,this._bottomEdgeAnchor=o.bottomEdgeAnchor,this._useLegacyBottomAndRightAnchors=o.useLegacyBottomAndRightAnchors===void 0?!0:o.useLegacyBottomAndRightAnchors}updateFromBehaviorData(e,o){return e.leftEdgeAnchor!==o.leftEdgeAnchor&&(this._leftEdgeAnchor=o.leftEdgeAnchor),e.rightEdgeAnchor!==o.rightEdgeAnchor&&(this._rightEdgeAnchor=o.rightEdgeAnchor),e.topEdgeAnchor!==o.topEdgeAnchor&&(this._topEdgeAnchor=o.topEdgeAnchor),e.bottomEdgeAnchor!==o.bottomEdgeAnchor&&(this._bottomEdgeAnchor=o.bottomEdgeAnchor),e.useLegacyTrajectory!==o.useLegacyTrajectory&&(this._useLegacyBottomAndRightAnchors=o.useLegacyBottomAndRightAnchors),e.relativeToOriginalWindowSize===o.relativeToOriginalWindowSize}doStepPreEvents(e){(this._oldDrawableX!==this.owner.getDrawableX()||this._oldDrawableY!==this.owner.getDrawableY()||this._oldWidth!==this.owner.getWidth()||this._oldHeight!==this.owner.getHeight())&&this._updateAnchorDistances(e),(this._parentOldMinX!==e.getUnrotatedViewportMinX()||this._parentOldMinY!==e.getUnrotatedViewportMinY()||this._parentOldMaxX!==e.getUnrotatedViewportMaxX()||this._parentOldMaxY!==e.getUnrotatedViewportMaxY())&&this._followAnchor(e)}_updateAnchorDistances(e){const o=a.staticArray(a.AnchorRuntimeBehavior.prototype.doStepPreEvents),r=e.getLayer(this.owner.getLayer());let s=this._parentOldMinX,t=this._parentOldMinY,d=this._parentOldMaxX,l=this._parentOldMaxY;this._hasJustBeenCreated&&(this._relativeToOriginalWindowSize?(s=e.getInitialUnrotatedViewportMinX(),t=e.getInitialUnrotatedViewportMinY(),d=e.getInitialUnrotatedViewportMaxX(),l=e.getInitialUnrotatedViewportMaxY()):(s=e.getUnrotatedViewportMinX(),t=e.getUnrotatedViewportMinY(),d=e.getUnrotatedViewportMaxX(),l=e.getUnrotatedViewportMaxY()));const w=(d+s)/2,p=(l+t)/2,f=d-s,E=l-t,h=this._relativeToOriginalWindowSize?[this.owner.getDrawableX(),this.owner.getDrawableY()]:this._convertInverseCoords(e,r,this.owner.getDrawableX(),this.owner.getDrawableY(),o);this._leftEdgeAnchor===1?this._leftEdgeDistance=h[0]-s:this._leftEdgeAnchor===2?this._leftEdgeDistance=h[0]-d:this._leftEdgeAnchor===3?this._leftEdgeDistance=(h[0]-s)/f:this._leftEdgeAnchor===4&&(this._leftEdgeDistance=h[0]-w),this._topEdgeAnchor===1?this._topEdgeDistance=h[1]-t:this._topEdgeAnchor===2?this._topEdgeDistance=h[1]-l:this._topEdgeAnchor===3?this._topEdgeDistance=(h[1]-t)/E:this._topEdgeAnchor===4&&(this._topEdgeDistance=h[1]-p);const g=this._relativeToOriginalWindowSize?[this.owner.getDrawableX()+this.owner.getWidth(),this.owner.getDrawableY()+this.owner.getHeight()]:this._convertInverseCoords(e,r,this.owner.getDrawableX()+this.owner.getWidth(),this.owner.getDrawableY()+this.owner.getHeight(),o);this._rightEdgeAnchor===1?this._rightEdgeDistance=g[0]-s:this._rightEdgeAnchor===2?this._rightEdgeDistance=g[0]-d:this._rightEdgeAnchor===3?this._rightEdgeDistance=(g[0]-s)/f:this._rightEdgeAnchor===4&&(this._rightEdgeDistance=g[0]-w),this._bottomEdgeAnchor===1?this._bottomEdgeDistance=g[1]-t:this._bottomEdgeAnchor===2?this._bottomEdgeDistance=g[1]-l:this._bottomEdgeAnchor===3?this._bottomEdgeDistance=(g[1]-t)/E:this._bottomEdgeAnchor===4&&(this._bottomEdgeDistance=g[1]-p),this._hasJustBeenCreated=!1}_followAnchor(e){const o=a.staticArray(a.AnchorRuntimeBehavior.prototype.doStepPreEvents),r=e.getLayer(this.owner.getLayer());let s=e.getUnrotatedViewportMinX(),t=e.getUnrotatedViewportMinY(),d=e.getUnrotatedViewportMaxX(),l=e.getUnrotatedViewportMaxY();const w=(d+s)/2,p=(l+t)/2,f=d-s,E=l-t;let h=0,g=0,A=0,m=0;this._leftEdgeAnchor===1?h=s+this._leftEdgeDistance:this._leftEdgeAnchor===2?h=d+this._leftEdgeDistance:this._leftEdgeAnchor===3?h=s+this._leftEdgeDistance*f:this._leftEdgeAnchor===4&&(h=w+this._leftEdgeDistance),this._topEdgeAnchor===1?g=t+this._topEdgeDistance:this._topEdgeAnchor===2?g=l+this._topEdgeDistance:this._topEdgeAnchor===3?g=t+this._topEdgeDistance*E:this._topEdgeAnchor===4&&(g=p+this._topEdgeDistance),this._rightEdgeAnchor===1?A=s+this._rightEdgeDistance:this._rightEdgeAnchor===2?A=d+this._rightEdgeDistance:this._rightEdgeAnchor===3?A=s+this._rightEdgeDistance*f:this._rightEdgeAnchor===4&&(A=w+this._rightEdgeDistance),this._bottomEdgeAnchor===1?m=t+this._bottomEdgeDistance:this._bottomEdgeAnchor===2?m=l+this._bottomEdgeDistance:this._bottomEdgeAnchor===3?m=t+this._bottomEdgeDistance*E:this._bottomEdgeAnchor===4&&(m=p+this._bottomEdgeDistance);const Y=this._convertCoords(e,r,h,g,o);let _=Y[0],c=Y[1];const M=this._convertCoords(e,r,A,m,o),W=M[0],X=M[1];if(this._useLegacyBottomAndRightAnchors)this._rightEdgeAnchor!==0&&this.owner.setWidth(W-_),this._bottomEdgeAnchor!==0&&this.owner.setHeight(X-c),this._leftEdgeAnchor!==0&&this.owner.setX(_+this.owner.getX()-this.owner.getDrawableX()),this._topEdgeAnchor!==0&&this.owner.setY(c+this.owner.getY()-this.owner.getDrawableY());else{if(this._rightEdgeAnchor!==0&&this._leftEdgeAnchor!==0){const b=W-_;this.owner.setX(this.owner.getX()===this.owner.getDrawableX()?_:_+(this.owner.getX()-this.owner.getDrawableX())*b/this.owner.getWidth()),this.owner.setWidth(b)}else this._leftEdgeAnchor!==0&&this.owner.setX(_+this.owner.getX()-this.owner.getDrawableX()),this._rightEdgeAnchor!==0&&this.owner.setX(W+this.owner.getX()-this.owner.getDrawableX()-this.owner.getWidth());if(this._bottomEdgeAnchor!==0&&this._topEdgeAnchor!==0){const b=X-c;this.owner.setY(this.owner.getY()===this.owner.getDrawableY()?c:c+(this.owner.getY()-this.owner.getDrawableY())*b/this.owner.getHeight()),this.owner.setHeight(b)}else this._topEdgeAnchor!==0&&this.owner.setY(c+this.owner.getY()-this.owner.getDrawableY()),this._bottomEdgeAnchor!==0&&this.owner.setY(X+this.owner.getY()-this.owner.getDrawableY()-this.owner.getHeight());this._oldDrawableX=this.owner.getDrawableX(),this._oldDrawableY=this.owner.getDrawableY(),this._oldWidth=this.owner.getWidth(),this._oldHeight=this.owner.getHeight(),this._parentOldMinX=e.getUnrotatedViewportMinX(),this._parentOldMinY=e.getUnrotatedViewportMinY(),this._parentOldMaxX=e.getUnrotatedViewportMaxX(),this._parentOldMaxY=e.getUnrotatedViewportMaxY()}}doStepPostEvents(e){}_convertCoords(e,o,r,s,t){return e!==e.getScene()?(t[0]=r,t[1]=s,t):o.convertCoords(r,s,0,t)}_convertInverseCoords(e,o,r,s,t){return e!==e.getScene()?(t[0]=r,t[1]=s,t):o.convertInverseCoords(r,s,0,t)}}a.AnchorRuntimeBehavior=D,a.registerBehavior("AnchorBehavior::AnchorBehavior",a.AnchorRuntimeBehavior)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=anchorruntimebehavior.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/AnchorBehavior/anchorruntimebehavior.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nGDevelop - Anchor Behavior Extension\nCopyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com)\n */\n\nnamespace gdjs {\n const enum HorizontalAnchor {\n None = 0,\n WindowLeft,\n WindowRight,\n Proportional,\n WindowCenter,\n }\n const enum VerticalAnchor {\n None = 0,\n WindowTop,\n WindowBottom,\n Proportional,\n WindowCenter,\n }\n\n export class AnchorRuntimeBehavior extends gdjs.RuntimeBehavior {\n _relativeToOriginalWindowSize: any;\n _leftEdgeAnchor: HorizontalAnchor;\n _rightEdgeAnchor: HorizontalAnchor;\n _topEdgeAnchor: any;\n _bottomEdgeAnchor: any;\n _invalidDistances: boolean = true;\n _leftEdgeDistance: number = 0;\n _rightEdgeDistance: number = 0;\n _topEdgeDistance: number = 0;\n _bottomEdgeDistance: number = 0;\n _useLegacyBottomAndRightAnchors: boolean = false;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject\n ) {\n super(instanceContainer, behaviorData, owner);\n this._relativeToOriginalWindowSize = !!behaviorData.relativeToOriginalWindowSize;\n this._leftEdgeAnchor = behaviorData.leftEdgeAnchor;\n this._rightEdgeAnchor = behaviorData.rightEdgeAnchor;\n this._topEdgeAnchor = behaviorData.topEdgeAnchor;\n this._bottomEdgeAnchor = behaviorData.bottomEdgeAnchor;\n this._useLegacyBottomAndRightAnchors =\n behaviorData.useLegacyBottomAndRightAnchors === undefined\n ? true\n : behaviorData.useLegacyBottomAndRightAnchors;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.leftEdgeAnchor !== newBehaviorData.leftEdgeAnchor) {\n this._leftEdgeAnchor = newBehaviorData.leftEdgeAnchor;\n }\n if (oldBehaviorData.rightEdgeAnchor !== newBehaviorData.rightEdgeAnchor) {\n this._rightEdgeAnchor = newBehaviorData.rightEdgeAnchor;\n }\n if (oldBehaviorData.topEdgeAnchor !== newBehaviorData.topEdgeAnchor) {\n this._topEdgeAnchor = newBehaviorData.topEdgeAnchor;\n }\n if (\n oldBehaviorData.bottomEdgeAnchor !== newBehaviorData.bottomEdgeAnchor\n ) {\n this._bottomEdgeAnchor = newBehaviorData.bottomEdgeAnchor;\n }\n if (\n oldBehaviorData.useLegacyTrajectory !==\n newBehaviorData.useLegacyTrajectory\n ) {\n this._useLegacyBottomAndRightAnchors =\n newBehaviorData.useLegacyBottomAndRightAnchors;\n }\n if (\n oldBehaviorData.relativeToOriginalWindowSize !==\n newBehaviorData.relativeToOriginalWindowSize\n ) {\n return false;\n }\n return true;\n }\n\n onActivate() {\n this._invalidDistances = true;\n }\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.AnchorRuntimeBehavior.prototype.doStepPreEvents\n ) as FloatPoint;\n let parentMinX = instanceContainer.getUnrotatedViewportMinX();\n let parentMinY = instanceContainer.getUnrotatedViewportMinY();\n let parentMaxX = instanceContainer.getUnrotatedViewportMaxX();\n let parentMaxY = instanceContainer.getUnrotatedViewportMaxY();\n let parentCenterX = (parentMaxX + parentMinX) / 2;\n let parentCenterY = (parentMaxY + parentMinY) / 2;\n let parentWidth = parentMaxX - parentMinX;\n let parentHeight = parentMaxY - parentMinY;\n const layer = instanceContainer.getLayer(this.owner.getLayer());\n if (this._invalidDistances) {\n if (this._relativeToOriginalWindowSize) {\n parentMinX = instanceContainer.getInitialUnrotatedViewportMinX();\n parentMinY = instanceContainer.getInitialUnrotatedViewportMinY();\n parentMaxX = instanceContainer.getInitialUnrotatedViewportMaxX();\n parentMaxY = instanceContainer.getInitialUnrotatedViewportMaxY();\n parentCenterX = (parentMaxX + parentMinX) / 2;\n parentCenterY = (parentMaxY + parentMinY) / 2;\n parentWidth = parentMaxX - parentMinX;\n parentHeight = parentMaxY - parentMinY;\n }\n\n //Calculate the distances from the window's bounds.\n const topLeftPixel = this._relativeToOriginalWindowSize\n ? [this.owner.getDrawableX(), this.owner.getDrawableY()]\n : this._convertInverseCoords(\n instanceContainer,\n layer,\n this.owner.getDrawableX(),\n this.owner.getDrawableY(),\n workingPoint\n );\n\n // Left edge\n if (this._leftEdgeAnchor === HorizontalAnchor.WindowLeft) {\n this._leftEdgeDistance = topLeftPixel[0] - parentMinX;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowRight) {\n this._leftEdgeDistance = topLeftPixel[0] - parentMaxX;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.Proportional) {\n this._leftEdgeDistance = (topLeftPixel[0] - parentMinX) / parentWidth;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowCenter) {\n this._leftEdgeDistance = topLeftPixel[0] - parentCenterX;\n }\n\n // Top edge\n if (this._topEdgeAnchor === VerticalAnchor.WindowTop) {\n this._topEdgeDistance = topLeftPixel[1] - parentMinY;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowBottom) {\n this._topEdgeDistance = topLeftPixel[1] - parentMaxY;\n } else if (this._topEdgeAnchor === VerticalAnchor.Proportional) {\n this._topEdgeDistance = (topLeftPixel[1] - parentMinY) / parentHeight;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowCenter) {\n this._topEdgeDistance = topLeftPixel[1] - parentCenterY;\n }\n\n // It's fine to reuse workingPoint as topLeftPixel is no longer used.\n const bottomRightPixel = this._relativeToOriginalWindowSize\n ? [\n this.owner.getDrawableX() + this.owner.getWidth(),\n this.owner.getDrawableY() + this.owner.getHeight(),\n ]\n : this._convertInverseCoords(\n instanceContainer,\n layer,\n this.owner.getDrawableX() + this.owner.getWidth(),\n this.owner.getDrawableY() + this.owner.getHeight(),\n workingPoint\n );\n\n // Right edge\n if (this._rightEdgeAnchor === HorizontalAnchor.WindowLeft) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentMinX;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowRight) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentMaxX;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.Proportional) {\n this._rightEdgeDistance =\n (bottomRightPixel[0] - parentMinX) / parentWidth;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowCenter) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentCenterX;\n }\n\n // Bottom edge\n if (this._bottomEdgeAnchor === VerticalAnchor.WindowTop) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentMinY;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowBottom) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentMaxY;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.Proportional) {\n this._bottomEdgeDistance =\n (bottomRightPixel[1] - parentMinY) / parentHeight;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowCenter) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentCenterY;\n }\n\n this._invalidDistances = false;\n } else {\n //Move and resize the object if needed\n let leftPixel = 0;\n let topPixel = 0;\n let rightPixel = 0;\n let bottomPixel = 0;\n\n // Left edge\n if (this._leftEdgeAnchor === HorizontalAnchor.WindowLeft) {\n leftPixel = parentMinX + this._leftEdgeDistance;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowRight) {\n leftPixel = parentMaxX + this._leftEdgeDistance;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.Proportional) {\n leftPixel = parentMinX + this._leftEdgeDistance * parentWidth;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowCenter) {\n leftPixel = parentCenterX + this._leftEdgeDistance;\n }\n\n // Top edge\n if (this._topEdgeAnchor === VerticalAnchor.WindowTop) {\n topPixel = parentMinY + this._topEdgeDistance;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowBottom) {\n topPixel = parentMaxY + this._topEdgeDistance;\n } else if (this._topEdgeAnchor === VerticalAnchor.Proportional) {\n topPixel = parentMinY + this._topEdgeDistance * parentHeight;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowCenter) {\n topPixel = parentCenterY + this._topEdgeDistance;\n }\n\n // Right edge\n if (this._rightEdgeAnchor === HorizontalAnchor.WindowLeft) {\n rightPixel = parentMinX + this._rightEdgeDistance;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowRight) {\n rightPixel = parentMaxX + this._rightEdgeDistance;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.Proportional) {\n rightPixel = parentMinX + this._rightEdgeDistance * parentWidth;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowCenter) {\n rightPixel = parentCenterX + this._rightEdgeDistance;\n }\n\n // Bottom edge\n if (this._bottomEdgeAnchor === VerticalAnchor.WindowTop) {\n bottomPixel = parentMinY + this._bottomEdgeDistance;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowBottom) {\n bottomPixel = parentMaxY + this._bottomEdgeDistance;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.Proportional) {\n bottomPixel = parentMinY + this._bottomEdgeDistance * parentHeight;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowCenter) {\n bottomPixel = parentCenterY + this._bottomEdgeDistance;\n }\n\n // It's fine to reuse workingPoint as topLeftPixel is no longer used.\n const topLeftCoord = this._convertCoords(\n instanceContainer,\n layer,\n leftPixel,\n topPixel,\n workingPoint\n );\n let left = topLeftCoord[0];\n let top = topLeftCoord[1];\n\n const bottomRightCoord = this._convertCoords(\n instanceContainer,\n layer,\n rightPixel,\n bottomPixel,\n workingPoint\n );\n const right = bottomRightCoord[0];\n const bottom = bottomRightCoord[1];\n\n // Compatibility with GD <= 5.0.133\n if (this._useLegacyBottomAndRightAnchors) {\n //Move and resize the object according to the anchors\n if (this._rightEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setWidth(right - left);\n }\n if (this._bottomEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setHeight(bottom - top);\n }\n if (this._leftEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(\n left + this.owner.getX() - this.owner.getDrawableX()\n );\n }\n if (this._topEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(\n top + this.owner.getY() - this.owner.getDrawableY()\n );\n }\n }\n // End of compatibility code\n else {\n // Resize if right and left anchors are set\n if (\n this._rightEdgeAnchor !== HorizontalAnchor.None &&\n this._leftEdgeAnchor !== HorizontalAnchor.None\n ) {\n const width = right - left;\n this.owner.setX(\n this.owner.getX() === this.owner.getDrawableX()\n ? left\n : // It uses the position of the origin relatively to the object\n // size to apply it with the new size.\n // This is the same as doing:\n // lerp(left, right, (this.owner.getX() - this.owner.getDrawableX() / this.owner.getWidth())\n // But, the division is done at the end to avoid rounding errors.\n left +\n ((this.owner.getX() - this.owner.getDrawableX()) * width) /\n this.owner.getWidth()\n );\n this.owner.setWidth(width);\n } else {\n if (this._leftEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(\n left + this.owner.getX() - this.owner.getDrawableX()\n );\n }\n if (this._rightEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(\n right +\n this.owner.getX() -\n this.owner.getDrawableX() -\n this.owner.getWidth()\n );\n }\n }\n // Resize if top and bottom anchors are set\n if (\n this._bottomEdgeAnchor !== VerticalAnchor.None &&\n this._topEdgeAnchor !== VerticalAnchor.None\n ) {\n const height = bottom - top;\n this.owner.setY(\n this.owner.getY() === this.owner.getDrawableY()\n ? top\n : top +\n ((this.owner.getY() - this.owner.getDrawableY()) * height) /\n this.owner.getHeight()\n );\n this.owner.setHeight(height);\n } else {\n if (this._topEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(\n top + this.owner.getY() - this.owner.getDrawableY()\n );\n }\n if (this._bottomEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(\n bottom +\n this.owner.getY() -\n this.owner.getDrawableY() -\n this.owner.getHeight()\n );\n }\n }\n }\n }\n }\n\n doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n private _convertCoords(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: gdjs.RuntimeLayer,\n x: float,\n y: float,\n result: FloatPoint\n ) {\n const isParentACustomObject =\n instanceContainer !== instanceContainer.getScene();\n if (isParentACustomObject) {\n result[0] = x;\n result[1] = y;\n return result;\n }\n return layer.convertCoords(x, y, 0, result);\n }\n\n private _convertInverseCoords(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: gdjs.RuntimeLayer,\n x: float,\n y: float,\n result: FloatPoint\n ) {\n const isParentACustomObject =\n instanceContainer !== instanceContainer.getScene();\n if (isParentACustomObject) {\n result[0] = x;\n result[1] = y;\n return result;\n }\n return layer.convertInverseCoords(x, y, 0, result);\n }\n }\n gdjs.registerBehavior(\n 'AnchorBehavior::AnchorBehavior',\n gdjs.AnchorRuntimeBehavior\n );\n}\n"],
|
|
5
|
-
"mappings": "AAKA,GAAU,MAAV,UAAU,EAAV,CACE,GAAW,GAAX,UAAW,EAAX,CACE,SAAO,GAAP,OACA,+BACA,iCACA,mCACA,qCALS,WAOX,GAAW,GAAX,UAAW,EAAX,CACE,SAAO,GAAP,OACA,6BACA,mCACA,mCACA,qCALS,WAQJ,eAAoC,GAAK,eAAgB,
|
|
4
|
+
"sourcesContent": ["/*\nGDevelop - Anchor Behavior Extension\nCopyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com)\n */\n\nnamespace gdjs {\n const enum HorizontalAnchor {\n None = 0,\n WindowLeft,\n WindowRight,\n Proportional,\n WindowCenter,\n }\n const enum VerticalAnchor {\n None = 0,\n WindowTop,\n WindowBottom,\n Proportional,\n WindowCenter,\n }\n\n export class AnchorRuntimeBehavior extends gdjs.RuntimeBehavior {\n // Configuration\n\n _relativeToOriginalWindowSize: boolean;\n _leftEdgeAnchor: HorizontalAnchor;\n _rightEdgeAnchor: HorizontalAnchor;\n _topEdgeAnchor: VerticalAnchor;\n _bottomEdgeAnchor: VerticalAnchor;\n _useLegacyBottomAndRightAnchors: boolean = false;\n\n // State\n\n _hasJustBeenCreated: boolean = true;\n _leftEdgeDistance: float = 0;\n _rightEdgeDistance: float = 0;\n _topEdgeDistance: float = 0;\n _bottomEdgeDistance: float = 0;\n\n _oldDrawableX: float = 0;\n _oldDrawableY: float = 0;\n _oldWidth: float = 0;\n _oldHeight: float = 0;\n\n _parentOldMinX: float = 0;\n _parentOldMinY: float = 0;\n _parentOldMaxX: float = 0;\n _parentOldMaxY: float = 0;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject\n ) {\n super(instanceContainer, behaviorData, owner);\n this._relativeToOriginalWindowSize =\n !!behaviorData.relativeToOriginalWindowSize;\n this._leftEdgeAnchor = behaviorData.leftEdgeAnchor;\n this._rightEdgeAnchor = behaviorData.rightEdgeAnchor;\n this._topEdgeAnchor = behaviorData.topEdgeAnchor;\n this._bottomEdgeAnchor = behaviorData.bottomEdgeAnchor;\n this._useLegacyBottomAndRightAnchors =\n behaviorData.useLegacyBottomAndRightAnchors === undefined\n ? true\n : behaviorData.useLegacyBottomAndRightAnchors;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.leftEdgeAnchor !== newBehaviorData.leftEdgeAnchor) {\n this._leftEdgeAnchor = newBehaviorData.leftEdgeAnchor;\n }\n if (oldBehaviorData.rightEdgeAnchor !== newBehaviorData.rightEdgeAnchor) {\n this._rightEdgeAnchor = newBehaviorData.rightEdgeAnchor;\n }\n if (oldBehaviorData.topEdgeAnchor !== newBehaviorData.topEdgeAnchor) {\n this._topEdgeAnchor = newBehaviorData.topEdgeAnchor;\n }\n if (\n oldBehaviorData.bottomEdgeAnchor !== newBehaviorData.bottomEdgeAnchor\n ) {\n this._bottomEdgeAnchor = newBehaviorData.bottomEdgeAnchor;\n }\n if (\n oldBehaviorData.useLegacyTrajectory !==\n newBehaviorData.useLegacyTrajectory\n ) {\n this._useLegacyBottomAndRightAnchors =\n newBehaviorData.useLegacyBottomAndRightAnchors;\n }\n if (\n oldBehaviorData.relativeToOriginalWindowSize !==\n newBehaviorData.relativeToOriginalWindowSize\n ) {\n return false;\n }\n return true;\n }\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {\n const objectHasMoved =\n this._oldDrawableX !== this.owner.getDrawableX() ||\n this._oldDrawableY !== this.owner.getDrawableY() ||\n this._oldWidth !== this.owner.getWidth() ||\n this._oldHeight !== this.owner.getHeight();\n if (objectHasMoved) {\n this._updateAnchorDistances(instanceContainer);\n }\n const parentHasResized =\n this._parentOldMinX !== instanceContainer.getUnrotatedViewportMinX() ||\n this._parentOldMinY !== instanceContainer.getUnrotatedViewportMinY() ||\n this._parentOldMaxX !== instanceContainer.getUnrotatedViewportMaxX() ||\n this._parentOldMaxY !== instanceContainer.getUnrotatedViewportMaxY();\n if (parentHasResized) {\n this._followAnchor(instanceContainer);\n }\n }\n\n private _updateAnchorDistances(\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.AnchorRuntimeBehavior.prototype.doStepPreEvents\n ) as FloatPoint;\n const layer = instanceContainer.getLayer(this.owner.getLayer());\n\n let parentMinX = this._parentOldMinX;\n let parentMinY = this._parentOldMinY;\n let parentMaxX = this._parentOldMaxX;\n let parentMaxY = this._parentOldMaxY;\n if (this._hasJustBeenCreated) {\n if (this._relativeToOriginalWindowSize) {\n parentMinX = instanceContainer.getInitialUnrotatedViewportMinX();\n parentMinY = instanceContainer.getInitialUnrotatedViewportMinY();\n parentMaxX = instanceContainer.getInitialUnrotatedViewportMaxX();\n parentMaxY = instanceContainer.getInitialUnrotatedViewportMaxY();\n } else {\n parentMinX = instanceContainer.getUnrotatedViewportMinX();\n parentMinY = instanceContainer.getUnrotatedViewportMinY();\n parentMaxX = instanceContainer.getUnrotatedViewportMaxX();\n parentMaxY = instanceContainer.getUnrotatedViewportMaxY();\n }\n }\n const parentCenterX = (parentMaxX + parentMinX) / 2;\n const parentCenterY = (parentMaxY + parentMinY) / 2;\n const parentWidth = parentMaxX - parentMinX;\n const parentHeight = parentMaxY - parentMinY;\n\n //Calculate the distances from the window's bounds.\n const topLeftPixel = this._relativeToOriginalWindowSize\n ? [this.owner.getDrawableX(), this.owner.getDrawableY()]\n : this._convertInverseCoords(\n instanceContainer,\n layer,\n this.owner.getDrawableX(),\n this.owner.getDrawableY(),\n workingPoint\n );\n\n // Left edge\n if (this._leftEdgeAnchor === HorizontalAnchor.WindowLeft) {\n this._leftEdgeDistance = topLeftPixel[0] - parentMinX;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowRight) {\n this._leftEdgeDistance = topLeftPixel[0] - parentMaxX;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.Proportional) {\n this._leftEdgeDistance = (topLeftPixel[0] - parentMinX) / parentWidth;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowCenter) {\n this._leftEdgeDistance = topLeftPixel[0] - parentCenterX;\n }\n\n // Top edge\n if (this._topEdgeAnchor === VerticalAnchor.WindowTop) {\n this._topEdgeDistance = topLeftPixel[1] - parentMinY;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowBottom) {\n this._topEdgeDistance = topLeftPixel[1] - parentMaxY;\n } else if (this._topEdgeAnchor === VerticalAnchor.Proportional) {\n this._topEdgeDistance = (topLeftPixel[1] - parentMinY) / parentHeight;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowCenter) {\n this._topEdgeDistance = topLeftPixel[1] - parentCenterY;\n }\n\n // It's fine to reuse workingPoint as topLeftPixel is no longer used.\n const bottomRightPixel = this._relativeToOriginalWindowSize\n ? [\n this.owner.getDrawableX() + this.owner.getWidth(),\n this.owner.getDrawableY() + this.owner.getHeight(),\n ]\n : this._convertInverseCoords(\n instanceContainer,\n layer,\n this.owner.getDrawableX() + this.owner.getWidth(),\n this.owner.getDrawableY() + this.owner.getHeight(),\n workingPoint\n );\n\n // Right edge\n if (this._rightEdgeAnchor === HorizontalAnchor.WindowLeft) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentMinX;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowRight) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentMaxX;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.Proportional) {\n this._rightEdgeDistance =\n (bottomRightPixel[0] - parentMinX) / parentWidth;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowCenter) {\n this._rightEdgeDistance = bottomRightPixel[0] - parentCenterX;\n }\n\n // Bottom edge\n if (this._bottomEdgeAnchor === VerticalAnchor.WindowTop) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentMinY;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowBottom) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentMaxY;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.Proportional) {\n this._bottomEdgeDistance =\n (bottomRightPixel[1] - parentMinY) / parentHeight;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowCenter) {\n this._bottomEdgeDistance = bottomRightPixel[1] - parentCenterY;\n }\n\n this._hasJustBeenCreated = false;\n }\n\n private _followAnchor(instanceContainer: gdjs.RuntimeInstanceContainer) {\n const workingPoint: FloatPoint = gdjs.staticArray(\n gdjs.AnchorRuntimeBehavior.prototype.doStepPreEvents\n ) as FloatPoint;\n const layer = instanceContainer.getLayer(this.owner.getLayer());\n\n let parentMinX = instanceContainer.getUnrotatedViewportMinX();\n let parentMinY = instanceContainer.getUnrotatedViewportMinY();\n let parentMaxX = instanceContainer.getUnrotatedViewportMaxX();\n let parentMaxY = instanceContainer.getUnrotatedViewportMaxY();\n const parentCenterX = (parentMaxX + parentMinX) / 2;\n const parentCenterY = (parentMaxY + parentMinY) / 2;\n const parentWidth = parentMaxX - parentMinX;\n const parentHeight = parentMaxY - parentMinY;\n\n //Move and resize the object if needed\n let leftPixel = 0;\n let topPixel = 0;\n let rightPixel = 0;\n let bottomPixel = 0;\n\n // Left edge\n if (this._leftEdgeAnchor === HorizontalAnchor.WindowLeft) {\n leftPixel = parentMinX + this._leftEdgeDistance;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowRight) {\n leftPixel = parentMaxX + this._leftEdgeDistance;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.Proportional) {\n leftPixel = parentMinX + this._leftEdgeDistance * parentWidth;\n } else if (this._leftEdgeAnchor === HorizontalAnchor.WindowCenter) {\n leftPixel = parentCenterX + this._leftEdgeDistance;\n }\n\n // Top edge\n if (this._topEdgeAnchor === VerticalAnchor.WindowTop) {\n topPixel = parentMinY + this._topEdgeDistance;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowBottom) {\n topPixel = parentMaxY + this._topEdgeDistance;\n } else if (this._topEdgeAnchor === VerticalAnchor.Proportional) {\n topPixel = parentMinY + this._topEdgeDistance * parentHeight;\n } else if (this._topEdgeAnchor === VerticalAnchor.WindowCenter) {\n topPixel = parentCenterY + this._topEdgeDistance;\n }\n\n // Right edge\n if (this._rightEdgeAnchor === HorizontalAnchor.WindowLeft) {\n rightPixel = parentMinX + this._rightEdgeDistance;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowRight) {\n rightPixel = parentMaxX + this._rightEdgeDistance;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.Proportional) {\n rightPixel = parentMinX + this._rightEdgeDistance * parentWidth;\n } else if (this._rightEdgeAnchor === HorizontalAnchor.WindowCenter) {\n rightPixel = parentCenterX + this._rightEdgeDistance;\n }\n\n // Bottom edge\n if (this._bottomEdgeAnchor === VerticalAnchor.WindowTop) {\n bottomPixel = parentMinY + this._bottomEdgeDistance;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowBottom) {\n bottomPixel = parentMaxY + this._bottomEdgeDistance;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.Proportional) {\n bottomPixel = parentMinY + this._bottomEdgeDistance * parentHeight;\n } else if (this._bottomEdgeAnchor === VerticalAnchor.WindowCenter) {\n bottomPixel = parentCenterY + this._bottomEdgeDistance;\n }\n\n // It's fine to reuse workingPoint as topLeftPixel is no longer used.\n const topLeftCoord = this._convertCoords(\n instanceContainer,\n layer,\n leftPixel,\n topPixel,\n workingPoint\n );\n let left = topLeftCoord[0];\n let top = topLeftCoord[1];\n\n const bottomRightCoord = this._convertCoords(\n instanceContainer,\n layer,\n rightPixel,\n bottomPixel,\n workingPoint\n );\n const right = bottomRightCoord[0];\n const bottom = bottomRightCoord[1];\n\n // Compatibility with GD <= 5.0.133\n if (this._useLegacyBottomAndRightAnchors) {\n //Move and resize the object according to the anchors\n if (this._rightEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setWidth(right - left);\n }\n if (this._bottomEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setHeight(bottom - top);\n }\n if (this._leftEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(left + this.owner.getX() - this.owner.getDrawableX());\n }\n if (this._topEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(top + this.owner.getY() - this.owner.getDrawableY());\n }\n }\n // End of compatibility code\n else {\n // Resize if right and left anchors are set\n if (\n this._rightEdgeAnchor !== HorizontalAnchor.None &&\n this._leftEdgeAnchor !== HorizontalAnchor.None\n ) {\n const width = right - left;\n this.owner.setX(\n this.owner.getX() === this.owner.getDrawableX()\n ? left\n : // It uses the position of the origin relatively to the object\n // size to apply it with the new size.\n // This is the same as doing:\n // lerp(left, right, (this.owner.getX() - this.owner.getDrawableX() / this.owner.getWidth())\n // But, the division is done at the end to avoid rounding errors.\n left +\n ((this.owner.getX() - this.owner.getDrawableX()) * width) /\n this.owner.getWidth()\n );\n this.owner.setWidth(width);\n } else {\n if (this._leftEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(\n left + this.owner.getX() - this.owner.getDrawableX()\n );\n }\n if (this._rightEdgeAnchor !== HorizontalAnchor.None) {\n this.owner.setX(\n right +\n this.owner.getX() -\n this.owner.getDrawableX() -\n this.owner.getWidth()\n );\n }\n }\n\n // Resize if top and bottom anchors are set\n if (\n this._bottomEdgeAnchor !== VerticalAnchor.None &&\n this._topEdgeAnchor !== VerticalAnchor.None\n ) {\n const height = bottom - top;\n this.owner.setY(\n this.owner.getY() === this.owner.getDrawableY()\n ? top\n : top +\n ((this.owner.getY() - this.owner.getDrawableY()) * height) /\n this.owner.getHeight()\n );\n this.owner.setHeight(height);\n } else {\n if (this._topEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(\n top + this.owner.getY() - this.owner.getDrawableY()\n );\n }\n if (this._bottomEdgeAnchor !== VerticalAnchor.None) {\n this.owner.setY(\n bottom +\n this.owner.getY() -\n this.owner.getDrawableY() -\n this.owner.getHeight()\n );\n }\n }\n this._oldDrawableX = this.owner.getDrawableX();\n this._oldDrawableY = this.owner.getDrawableY();\n this._oldWidth = this.owner.getWidth();\n this._oldHeight = this.owner.getHeight();\n\n this._parentOldMinX = instanceContainer.getUnrotatedViewportMinX();\n this._parentOldMinY = instanceContainer.getUnrotatedViewportMinY();\n this._parentOldMaxX = instanceContainer.getUnrotatedViewportMaxX();\n this._parentOldMaxY = instanceContainer.getUnrotatedViewportMaxY();\n }\n }\n\n doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}\n\n private _convertCoords(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: gdjs.RuntimeLayer,\n x: float,\n y: float,\n result: FloatPoint\n ) {\n const isParentACustomObject =\n instanceContainer !== instanceContainer.getScene();\n if (isParentACustomObject) {\n result[0] = x;\n result[1] = y;\n return result;\n }\n return layer.convertCoords(x, y, 0, result);\n }\n\n private _convertInverseCoords(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n layer: gdjs.RuntimeLayer,\n x: float,\n y: float,\n result: FloatPoint\n ) {\n const isParentACustomObject =\n instanceContainer !== instanceContainer.getScene();\n if (isParentACustomObject) {\n result[0] = x;\n result[1] = y;\n return result;\n }\n return layer.convertInverseCoords(x, y, 0, result);\n }\n }\n gdjs.registerBehavior(\n 'AnchorBehavior::AnchorBehavior',\n gdjs.AnchorRuntimeBehavior\n );\n}\n"],
|
|
5
|
+
"mappings": "AAKA,GAAU,MAAV,UAAU,EAAV,CACE,GAAW,GAAX,UAAW,EAAX,CACE,SAAO,GAAP,OACA,+BACA,iCACA,mCACA,qCALS,WAOX,GAAW,GAAX,UAAW,EAAX,CACE,SAAO,GAAP,OACA,6BACA,mCACA,mCACA,qCALS,WAQJ,eAAoC,GAAK,eAAgB,CA4B9D,YACE,EACA,EACA,EACA,CACA,MAAM,EAAmB,EAAc,GAzBzC,qCAA2C,GAI3C,yBAA+B,GAC/B,uBAA2B,EAC3B,wBAA4B,EAC5B,sBAA0B,EAC1B,yBAA6B,EAE7B,mBAAuB,EACvB,mBAAuB,EACvB,eAAmB,EACnB,gBAAoB,EAEpB,oBAAwB,EACxB,oBAAwB,EACxB,oBAAwB,EACxB,oBAAwB,EAQtB,KAAK,8BACH,CAAC,CAAC,EAAa,6BACjB,KAAK,gBAAkB,EAAa,eACpC,KAAK,iBAAmB,EAAa,gBACrC,KAAK,eAAiB,EAAa,cACnC,KAAK,kBAAoB,EAAa,iBACtC,KAAK,gCACH,EAAa,iCAAmC,OAC5C,GACA,EAAa,+BAGrB,uBAAuB,EAAiB,EAA0B,CAsBhE,MArBI,GAAgB,iBAAmB,EAAgB,gBACrD,MAAK,gBAAkB,EAAgB,gBAErC,EAAgB,kBAAoB,EAAgB,iBACtD,MAAK,iBAAmB,EAAgB,iBAEtC,EAAgB,gBAAkB,EAAgB,eACpD,MAAK,eAAiB,EAAgB,eAGtC,EAAgB,mBAAqB,EAAgB,kBAErD,MAAK,kBAAoB,EAAgB,kBAGzC,EAAgB,sBAChB,EAAgB,qBAEhB,MAAK,gCACH,EAAgB,gCAGlB,EAAgB,+BAChB,EAAgB,6BAOpB,gBAAgB,EAAkD,CAMhE,AAAI,AAJF,MAAK,gBAAkB,KAAK,MAAM,gBAClC,KAAK,gBAAkB,KAAK,MAAM,gBAClC,KAAK,YAAc,KAAK,MAAM,YAC9B,KAAK,aAAe,KAAK,MAAM,cAE/B,KAAK,uBAAuB,GAO1B,AAJF,MAAK,iBAAmB,EAAkB,4BAC1C,KAAK,iBAAmB,EAAkB,4BAC1C,KAAK,iBAAmB,EAAkB,4BAC1C,KAAK,iBAAmB,EAAkB,6BAE1C,KAAK,cAAc,GAIf,uBACN,EACA,CACA,KAAM,GAA2B,EAAK,YACpC,EAAK,sBAAsB,UAAU,iBAEjC,EAAQ,EAAkB,SAAS,KAAK,MAAM,YAEpD,GAAI,GAAa,KAAK,eAClB,EAAa,KAAK,eAClB,EAAa,KAAK,eAClB,EAAa,KAAK,eACtB,AAAI,KAAK,qBACP,CAAI,KAAK,8BACP,GAAa,EAAkB,kCAC/B,EAAa,EAAkB,kCAC/B,EAAa,EAAkB,kCAC/B,EAAa,EAAkB,mCAE/B,GAAa,EAAkB,2BAC/B,EAAa,EAAkB,2BAC/B,EAAa,EAAkB,2BAC/B,EAAa,EAAkB,6BAGnC,KAAM,GAAiB,GAAa,GAAc,EAC5C,EAAiB,GAAa,GAAc,EAC5C,EAAc,EAAa,EAC3B,EAAe,EAAa,EAG5B,EAAe,KAAK,8BACtB,CAAC,KAAK,MAAM,eAAgB,KAAK,MAAM,gBACvC,KAAK,sBACH,EACA,EACA,KAAK,MAAM,eACX,KAAK,MAAM,eACX,GAIN,AAAI,KAAK,kBAAoB,EAC3B,KAAK,kBAAoB,EAAa,GAAK,EACtC,AAAI,KAAK,kBAAoB,EAClC,KAAK,kBAAoB,EAAa,GAAK,EACtC,AAAI,KAAK,kBAAoB,EAClC,KAAK,kBAAqB,GAAa,GAAK,GAAc,EACjD,KAAK,kBAAoB,GAClC,MAAK,kBAAoB,EAAa,GAAK,GAI7C,AAAI,KAAK,iBAAmB,EAC1B,KAAK,iBAAmB,EAAa,GAAK,EACrC,AAAI,KAAK,iBAAmB,EACjC,KAAK,iBAAmB,EAAa,GAAK,EACrC,AAAI,KAAK,iBAAmB,EACjC,KAAK,iBAAoB,GAAa,GAAK,GAAc,EAChD,KAAK,iBAAmB,GACjC,MAAK,iBAAmB,EAAa,GAAK,GAI5C,KAAM,GAAmB,KAAK,8BAC1B,CACE,KAAK,MAAM,eAAiB,KAAK,MAAM,WACvC,KAAK,MAAM,eAAiB,KAAK,MAAM,aAEzC,KAAK,sBACH,EACA,EACA,KAAK,MAAM,eAAiB,KAAK,MAAM,WACvC,KAAK,MAAM,eAAiB,KAAK,MAAM,YACvC,GAIN,AAAI,KAAK,mBAAqB,EAC5B,KAAK,mBAAqB,EAAiB,GAAK,EAC3C,AAAI,KAAK,mBAAqB,EACnC,KAAK,mBAAqB,EAAiB,GAAK,EAC3C,AAAI,KAAK,mBAAqB,EACnC,KAAK,mBACF,GAAiB,GAAK,GAAc,EAC9B,KAAK,mBAAqB,GACnC,MAAK,mBAAqB,EAAiB,GAAK,GAIlD,AAAI,KAAK,oBAAsB,EAC7B,KAAK,oBAAsB,EAAiB,GAAK,EAC5C,AAAI,KAAK,oBAAsB,EACpC,KAAK,oBAAsB,EAAiB,GAAK,EAC5C,AAAI,KAAK,oBAAsB,EACpC,KAAK,oBACF,GAAiB,GAAK,GAAc,EAC9B,KAAK,oBAAsB,GACpC,MAAK,oBAAsB,EAAiB,GAAK,GAGnD,KAAK,oBAAsB,GAGrB,cAAc,EAAkD,CACtE,KAAM,GAA2B,EAAK,YACpC,EAAK,sBAAsB,UAAU,iBAEjC,EAAQ,EAAkB,SAAS,KAAK,MAAM,YAEpD,GAAI,GAAa,EAAkB,2BAC/B,EAAa,EAAkB,2BAC/B,EAAa,EAAkB,2BAC/B,EAAa,EAAkB,2BACnC,KAAM,GAAiB,GAAa,GAAc,EAC5C,EAAiB,GAAa,GAAc,EAC5C,EAAc,EAAa,EAC3B,EAAe,EAAa,EAGlC,GAAI,GAAY,EACZ,EAAW,EACX,EAAa,EACb,EAAc,EAGlB,AAAI,KAAK,kBAAoB,EAC3B,EAAY,EAAa,KAAK,kBACzB,AAAI,KAAK,kBAAoB,EAClC,EAAY,EAAa,KAAK,kBACzB,AAAI,KAAK,kBAAoB,EAClC,EAAY,EAAa,KAAK,kBAAoB,EACzC,KAAK,kBAAoB,GAClC,GAAY,EAAgB,KAAK,mBAInC,AAAI,KAAK,iBAAmB,EAC1B,EAAW,EAAa,KAAK,iBACxB,AAAI,KAAK,iBAAmB,EACjC,EAAW,EAAa,KAAK,iBACxB,AAAI,KAAK,iBAAmB,EACjC,EAAW,EAAa,KAAK,iBAAmB,EACvC,KAAK,iBAAmB,GACjC,GAAW,EAAgB,KAAK,kBAIlC,AAAI,KAAK,mBAAqB,EAC5B,EAAa,EAAa,KAAK,mBAC1B,AAAI,KAAK,mBAAqB,EACnC,EAAa,EAAa,KAAK,mBAC1B,AAAI,KAAK,mBAAqB,EACnC,EAAa,EAAa,KAAK,mBAAqB,EAC3C,KAAK,mBAAqB,GACnC,GAAa,EAAgB,KAAK,oBAIpC,AAAI,KAAK,oBAAsB,EAC7B,EAAc,EAAa,KAAK,oBAC3B,AAAI,KAAK,oBAAsB,EACpC,EAAc,EAAa,KAAK,oBAC3B,AAAI,KAAK,oBAAsB,EACpC,EAAc,EAAa,KAAK,oBAAsB,EAC7C,KAAK,oBAAsB,GACpC,GAAc,EAAgB,KAAK,qBAIrC,KAAM,GAAe,KAAK,eACxB,EACA,EACA,EACA,EACA,GAEF,GAAI,GAAO,EAAa,GACpB,EAAM,EAAa,GAEvB,KAAM,GAAmB,KAAK,eAC5B,EACA,EACA,EACA,EACA,GAEI,EAAQ,EAAiB,GACzB,EAAS,EAAiB,GAGhC,GAAI,KAAK,gCAEP,AAAI,KAAK,mBAAqB,GAC5B,KAAK,MAAM,SAAS,EAAQ,GAE1B,KAAK,oBAAsB,GAC7B,KAAK,MAAM,UAAU,EAAS,GAE5B,KAAK,kBAAoB,GAC3B,KAAK,MAAM,KAAK,EAAO,KAAK,MAAM,OAAS,KAAK,MAAM,gBAEpD,KAAK,iBAAmB,GAC1B,KAAK,MAAM,KAAK,EAAM,KAAK,MAAM,OAAS,KAAK,MAAM,oBAIpD,CAEH,GACE,KAAK,mBAAqB,GAC1B,KAAK,kBAAoB,EACzB,CACA,KAAM,GAAQ,EAAQ,EACtB,KAAK,MAAM,KACT,KAAK,MAAM,SAAW,KAAK,MAAM,eAC7B,EAMA,EACI,MAAK,MAAM,OAAS,KAAK,MAAM,gBAAkB,EACjD,KAAK,MAAM,YAErB,KAAK,MAAM,SAAS,OAEpB,AAAI,MAAK,kBAAoB,GAC3B,KAAK,MAAM,KACT,EAAO,KAAK,MAAM,OAAS,KAAK,MAAM,gBAGtC,KAAK,mBAAqB,GAC5B,KAAK,MAAM,KACT,EACE,KAAK,MAAM,OACX,KAAK,MAAM,eACX,KAAK,MAAM,YAMnB,GACE,KAAK,oBAAsB,GAC3B,KAAK,iBAAmB,EACxB,CACA,KAAM,GAAS,EAAS,EACxB,KAAK,MAAM,KACT,KAAK,MAAM,SAAW,KAAK,MAAM,eAC7B,EACA,EACI,MAAK,MAAM,OAAS,KAAK,MAAM,gBAAkB,EACjD,KAAK,MAAM,aAErB,KAAK,MAAM,UAAU,OAErB,AAAI,MAAK,iBAAmB,GAC1B,KAAK,MAAM,KACT,EAAM,KAAK,MAAM,OAAS,KAAK,MAAM,gBAGrC,KAAK,oBAAsB,GAC7B,KAAK,MAAM,KACT,EACE,KAAK,MAAM,OACX,KAAK,MAAM,eACX,KAAK,MAAM,aAInB,KAAK,cAAgB,KAAK,MAAM,eAChC,KAAK,cAAgB,KAAK,MAAM,eAChC,KAAK,UAAY,KAAK,MAAM,WAC5B,KAAK,WAAa,KAAK,MAAM,YAE7B,KAAK,eAAiB,EAAkB,2BACxC,KAAK,eAAiB,EAAkB,2BACxC,KAAK,eAAiB,EAAkB,2BACxC,KAAK,eAAiB,EAAkB,4BAI5C,iBAAiB,EAAkD,EAE3D,eACN,EACA,EACA,EACA,EACA,EACA,CAGA,MADE,KAAsB,EAAkB,WAExC,GAAO,GAAK,EACZ,EAAO,GAAK,EACL,GAEF,EAAM,cAAc,EAAG,EAAG,EAAG,GAG9B,sBACN,EACA,EACA,EACA,EACA,EACA,CAGA,MADE,KAAsB,EAAkB,WAExC,GAAO,GAAK,EACZ,EAAO,GAAK,EACL,GAEF,EAAM,qBAAqB,EAAG,EAAG,EAAG,IA7ZxC,EAAM,wBAgab,EAAK,iBACH,iCACA,EAAK,yBAlbC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -54,7 +54,7 @@ module.exports = {
|
|
|
54
54
|
objectProperties
|
|
55
55
|
.getOrCreate('text')
|
|
56
56
|
.setValue(objectContent.text)
|
|
57
|
-
.setType('
|
|
57
|
+
.setType('multilinestring')
|
|
58
58
|
.setLabel(_('BBCode text'));
|
|
59
59
|
|
|
60
60
|
objectProperties
|
|
@@ -106,8 +106,7 @@ module.exports = {
|
|
|
106
106
|
return objectProperties;
|
|
107
107
|
};
|
|
108
108
|
objectBBText.content = {
|
|
109
|
-
text:
|
|
110
|
-
'[b]bold[/b] [i]italic[/i] [size=15]smaller[/size] [font=times]times[/font] font\n[spacing=12]spaced out[/spacing]\n[outline=yellow]outlined[/outline] [shadow=red]DropShadow[/shadow] ',
|
|
109
|
+
text: '[b]bold[/b] [i]italic[/i] [size=15]smaller[/size] [font=times]times[/font] font\n[spacing=12]spaced out[/spacing]\n[outline=yellow]outlined[/outline] [shadow=red]DropShadow[/shadow] ',
|
|
111
110
|
opacity: 255,
|
|
112
111
|
fontSize: 20,
|
|
113
112
|
visible: true,
|
|
@@ -193,9 +192,10 @@ module.exports = {
|
|
|
193
192
|
parameterType === 'string' ||
|
|
194
193
|
parameterType === 'stringWithSelector'
|
|
195
194
|
) {
|
|
196
|
-
const parameterOptions =
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
const parameterOptions =
|
|
196
|
+
gd.ParameterOptions.makeNewOptions().setDescription(
|
|
197
|
+
property.paramLabel
|
|
198
|
+
);
|
|
199
199
|
if (property.options) {
|
|
200
200
|
parameterOptions.setTypeExtraInfo(
|
|
201
201
|
stringifyOptions(property.options)
|
|
@@ -245,9 +245,10 @@ module.exports = {
|
|
|
245
245
|
parameterType === 'number' ||
|
|
246
246
|
parameterType === 'stringWithSelector'
|
|
247
247
|
) {
|
|
248
|
-
const parameterOptions =
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
const parameterOptions =
|
|
249
|
+
gd.ParameterOptions.makeNewOptions().setDescription(
|
|
250
|
+
property.paramLabel
|
|
251
|
+
);
|
|
251
252
|
if (property.options) {
|
|
252
253
|
parameterOptions.setTypeExtraInfo(
|
|
253
254
|
stringifyOptions(property.options)
|
|
@@ -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 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 if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\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": "AAAA,GAAU,MAAV,UAAU,EAAV,CA2CS,eACG,GAAK,
|
|
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 {\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 if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\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
|
}
|
|
@@ -54,7 +54,7 @@ module.exports = {
|
|
|
54
54
|
objectProperties
|
|
55
55
|
.getOrCreate('text')
|
|
56
56
|
.setValue(objectContent.text)
|
|
57
|
-
.setType('
|
|
57
|
+
.setType('multilinestring')
|
|
58
58
|
.setLabel(_('Text'));
|
|
59
59
|
|
|
60
60
|
objectProperties
|
|
@@ -107,8 +107,7 @@ module.exports = {
|
|
|
107
107
|
return objectProperties;
|
|
108
108
|
};
|
|
109
109
|
bitmapTextObject.content = {
|
|
110
|
-
text:
|
|
111
|
-
'This text use the default bitmap font.\nUse a custom Bitmap Font to create your own texts.',
|
|
110
|
+
text: 'This text use the default bitmap font.\nUse a custom Bitmap Font to create your own texts.',
|
|
112
111
|
opacity: 255,
|
|
113
112
|
scale: 1,
|
|
114
113
|
fontSize: 20,
|
|
@@ -665,9 +664,8 @@ module.exports = {
|
|
|
665
664
|
this._pixiObject.align = align;
|
|
666
665
|
|
|
667
666
|
const color = object.content.tint;
|
|
668
|
-
this._pixiObject.tint =
|
|
669
|
-
color
|
|
670
|
-
);
|
|
667
|
+
this._pixiObject.tint =
|
|
668
|
+
objectsRenderingService.rgbOrHexToHexNumber(color);
|
|
671
669
|
|
|
672
670
|
const scale = object.content.scale;
|
|
673
671
|
this._pixiObject.scale.set(scale);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /**\n * The PIXI.js renderer for the Bitmap Text runtime object.\n */\n export class BitmapTextRuntimeObjectPixiRenderer {\n _object: gdjs.BitmapTextRuntimeObject;\n _pixiObject: PIXI.BitmapText;\n\n /**\n * @param runtimeObject The object to render\n * @param instanceContainer The container in which the object is\n */\n constructor(\n runtimeObject: gdjs.BitmapTextRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n\n // Obtain the bitmap font to use in the object.\n const bitmapFont = instanceContainer\n .getGame()\n .getBitmapFontManager()\n .obtainBitmapFont(\n runtimeObject._bitmapFontResourceName,\n runtimeObject._textureAtlasResourceName\n );\n this._pixiObject = new PIXI.BitmapText(runtimeObject._text, {\n fontName: bitmapFont.font,\n fontSize: bitmapFont.size,\n });\n\n // Set the object on the scene\n instanceContainer\n .getLayer('')\n .getRenderer()\n .addRendererObject(this._pixiObject, runtimeObject.getZOrder());\n\n // Set the anchor in the center, so that the object rotates around\n // its center.\n // @ts-ignore\n this._pixiObject.anchor.x = 0.5;\n // @ts-ignore\n this._pixiObject.anchor.y = 0.5;\n\n this.updateAlignment();\n this.updateTextContent();\n this.updateAngle();\n this.updateOpacity();\n this.updateScale();\n this.updateWrappingWidth();\n this.updateTint();\n }\n\n getRendererObject() {\n return this._pixiObject;\n }\n\n onDestroy() {\n // Mark the font from the object as not used anymore.\n this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .releaseBitmapFont(this._pixiObject.fontName);\n\n this._pixiObject.destroy();\n }\n\n getFontSize() {\n return this._pixiObject.fontSize;\n }\n\n updateFont(): void {\n // Get the new bitmap font to use\n const bitmapFont = this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .obtainBitmapFont(\n this._object._bitmapFontResourceName,\n this._object._textureAtlasResourceName\n );\n\n // Mark the old font as not used anymore\n this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .releaseBitmapFont(this._pixiObject.fontName);\n\n // Update the font used by the object:\n this._pixiObject.fontName = bitmapFont.font;\n this._pixiObject.fontSize = bitmapFont.size;\n this.updatePosition();\n }\n\n updateTint(): void {\n this._pixiObject.tint = gdjs.rgbToHexNumber(\n this._object._tint[0],\n this._object._tint[1],\n this._object._tint[2]\n );\n this._pixiObject.dirty = true;\n }\n\n /**\n * Get the tint of the bitmap object as a \"R;G;B\" string.\n * @returns the tint of bitmap object in \"R;G;B\" format.\n */\n getTint(): string {\n return (\n this._object._tint[0] +\n ';' +\n this._object._tint[1] +\n ';' +\n this._object._tint[2]\n );\n }\n\n updateScale(): void {\n this._pixiObject.scale.set(\n Math.max(this._object._scaleX, 0),\n Math.max(this._object._scaleY, 0)\n );\n this.updatePosition();\n }\n\n getScale() {\n return Math.max(this._pixiObject.scale.x, this._pixiObject.scale.y);\n }\n\n updateWrappingWidth(): void {\n if (this._object._wordWrap) {\n this._pixiObject.maxWidth =\n this._object._wrappingWidth / this._object._scaleX;\n this._pixiObject.dirty = true;\n } else {\n this._pixiObject.maxWidth = 0;\n this._pixiObject.dirty = true;\n }\n this.updatePosition();\n }\n\n updateTextContent(): void {\n this._pixiObject.text = this._object._text;\n this.updatePosition();\n }\n\n updateAlignment(): void {\n // @ts-ignore - assume align is always a valid value.\n this._pixiObject.align = this._object._align;\n this.updatePosition();\n }\n\n updatePosition(): void {\n this._pixiObject.position.x = this._object.x + this.getWidth() / 2;\n this._pixiObject.position.y = this._object.y + this.getHeight() / 2;\n }\n\n updateAngle(): void {\n this._pixiObject.rotation = gdjs.toRad(this._object.angle);\n }\n\n updateOpacity(): void {\n this._pixiObject.alpha = this._object._opacity / 255;\n }\n\n getWidth(): float {\n return this._pixiObject.textWidth * this.getScale();\n }\n\n getHeight(): float {\n return this._pixiObject.textHeight * this.getScale();\n }\n }\n export const BitmapTextRuntimeObjectRenderer
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIS,OAA0C,CAQ/C,YACE,EACA,EACA,CACA,KAAK,QAAU,EAGf,KAAM,GAAa,EAChB,UACA,uBACA,iBACC,EAAc,wBACd,EAAc,2BAElB,KAAK,YAAc,GAAI,MAAK,WAAW,EAAc,MAAO,CAC1D,SAAU,EAAW,KACrB,SAAU,EAAW,OAIvB,EACG,SAAS,IACT,cACA,kBAAkB,KAAK,YAAa,EAAc,aAKrD,KAAK,YAAY,OAAO,EAAI,GAE5B,KAAK,YAAY,OAAO,EAAI,GAE5B,KAAK,kBACL,KAAK,oBACL,KAAK,cACL,KAAK,gBACL,KAAK,cACL,KAAK,sBACL,KAAK,aAGP,mBAAoB,CAClB,MAAO,MAAK,YAGd,WAAY,CAEV,KAAK,QACF,uBACA,UACA,uBACA,kBAAkB,KAAK,YAAY,UAEtC,KAAK,YAAY,UAGnB,aAAc,CACZ,MAAO,MAAK,YAAY,SAG1B,YAAmB,CAEjB,KAAM,GAAa,KAAK,QACrB,uBACA,UACA,uBACA,iBACC,KAAK,QAAQ,wBACb,KAAK,QAAQ,2BAIjB,KAAK,QACF,uBACA,UACA,uBACA,kBAAkB,KAAK,YAAY,UAGtC,KAAK,YAAY,SAAW,EAAW,KACvC,KAAK,YAAY,SAAW,EAAW,KACvC,KAAK,iBAGP,YAAmB,CACjB,KAAK,YAAY,KAAO,EAAK,eAC3B,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,MAAM,IAErB,KAAK,YAAY,MAAQ,GAO3B,SAAkB,CAChB,MACE,MAAK,QAAQ,MAAM,GACnB,IACA,KAAK,QAAQ,MAAM,GACnB,IACA,KAAK,QAAQ,MAAM,GAIvB,aAAoB,CAClB,KAAK,YAAY,MAAM,IACrB,KAAK,IAAI,KAAK,QAAQ,QAAS,GAC/B,KAAK,IAAI,KAAK,QAAQ,QAAS,IAEjC,KAAK,iBAGP,UAAW,CACT,MAAO,MAAK,IAAI,KAAK,YAAY,MAAM,EAAG,KAAK,YAAY,MAAM,GAGnE,qBAA4B,CAC1B,AAAI,KAAK,QAAQ,UACf,MAAK,YAAY,SACf,KAAK,QAAQ,eAAiB,KAAK,QAAQ,QAC7C,KAAK,YAAY,MAAQ,IAEzB,MAAK,YAAY,SAAW,EAC5B,KAAK,YAAY,MAAQ,IAE3B,KAAK,iBAGP,mBAA0B,CACxB,KAAK,YAAY,KAAO,KAAK,QAAQ,MACrC,KAAK,iBAGP,iBAAwB,CAEtB,KAAK,YAAY,MAAQ,KAAK,QAAQ,OACtC,KAAK,iBAGP,gBAAuB,CACrB,KAAK,YAAY,SAAS,EAAI,KAAK,QAAQ,EAAI,KAAK,WAAa,EACjE,KAAK,YAAY,SAAS,EAAI,KAAK,QAAQ,EAAI,KAAK,YAAc,EAGpE,aAAoB,CAClB,KAAK,YAAY,SAAW,EAAK,MAAM,KAAK,QAAQ,OAGtD,eAAsB,CACpB,KAAK,YAAY,MAAQ,KAAK,QAAQ,SAAW,IAGnD,UAAkB,CAChB,MAAO,MAAK,YAAY,UAAY,KAAK,WAG3C,WAAmB,CACjB,MAAO,MAAK,YAAY,WAAa,KAAK,YAxKvC,EAAM,sCA2KA,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n /**\n * The PIXI.js renderer for the Bitmap Text runtime object.\n */\n export class BitmapTextRuntimeObjectPixiRenderer {\n _object: gdjs.BitmapTextRuntimeObject;\n _pixiObject: PIXI.BitmapText;\n\n /**\n * @param runtimeObject The object to render\n * @param instanceContainer The container in which the object is\n */\n constructor(\n runtimeObject: gdjs.BitmapTextRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n\n // Obtain the bitmap font to use in the object.\n const bitmapFont = instanceContainer\n .getGame()\n .getBitmapFontManager()\n .obtainBitmapFont(\n runtimeObject._bitmapFontResourceName,\n runtimeObject._textureAtlasResourceName\n );\n this._pixiObject = new PIXI.BitmapText(runtimeObject._text, {\n fontName: bitmapFont.font,\n fontSize: bitmapFont.size,\n });\n\n // Set the object on the scene\n instanceContainer\n .getLayer('')\n .getRenderer()\n .addRendererObject(this._pixiObject, runtimeObject.getZOrder());\n\n // Set the anchor in the center, so that the object rotates around\n // its center.\n // @ts-ignore\n this._pixiObject.anchor.x = 0.5;\n // @ts-ignore\n this._pixiObject.anchor.y = 0.5;\n\n this.updateAlignment();\n this.updateTextContent();\n this.updateAngle();\n this.updateOpacity();\n this.updateScale();\n this.updateWrappingWidth();\n this.updateTint();\n }\n\n getRendererObject() {\n return this._pixiObject;\n }\n\n onDestroy() {\n // Mark the font from the object as not used anymore.\n this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .releaseBitmapFont(this._pixiObject.fontName);\n\n this._pixiObject.destroy();\n }\n\n getFontSize() {\n return this._pixiObject.fontSize;\n }\n\n updateFont(): void {\n // Get the new bitmap font to use\n const bitmapFont = this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .obtainBitmapFont(\n this._object._bitmapFontResourceName,\n this._object._textureAtlasResourceName\n );\n\n // Mark the old font as not used anymore\n this._object\n .getInstanceContainer()\n .getGame()\n .getBitmapFontManager()\n .releaseBitmapFont(this._pixiObject.fontName);\n\n // Update the font used by the object:\n this._pixiObject.fontName = bitmapFont.font;\n this._pixiObject.fontSize = bitmapFont.size;\n this.updatePosition();\n }\n\n updateTint(): void {\n this._pixiObject.tint = gdjs.rgbToHexNumber(\n this._object._tint[0],\n this._object._tint[1],\n this._object._tint[2]\n );\n this._pixiObject.dirty = true;\n }\n\n /**\n * Get the tint of the bitmap object as a \"R;G;B\" string.\n * @returns the tint of bitmap object in \"R;G;B\" format.\n */\n getTint(): string {\n return (\n this._object._tint[0] +\n ';' +\n this._object._tint[1] +\n ';' +\n this._object._tint[2]\n );\n }\n\n updateScale(): void {\n this._pixiObject.scale.set(\n Math.max(this._object._scaleX, 0),\n Math.max(this._object._scaleY, 0)\n );\n this.updatePosition();\n }\n\n getScale() {\n return Math.max(this._pixiObject.scale.x, this._pixiObject.scale.y);\n }\n\n updateWrappingWidth(): void {\n if (this._object._wordWrap) {\n this._pixiObject.maxWidth =\n this._object._wrappingWidth / this._object._scaleX;\n this._pixiObject.dirty = true;\n } else {\n this._pixiObject.maxWidth = 0;\n this._pixiObject.dirty = true;\n }\n this.updatePosition();\n }\n\n updateTextContent(): void {\n this._pixiObject.text = this._object._text;\n this.updatePosition();\n }\n\n updateAlignment(): void {\n // @ts-ignore - assume align is always a valid value.\n this._pixiObject.align = this._object._align;\n this.updatePosition();\n }\n\n updatePosition(): void {\n this._pixiObject.position.x = this._object.x + this.getWidth() / 2;\n this._pixiObject.position.y = this._object.y + this.getHeight() / 2;\n }\n\n updateAngle(): void {\n this._pixiObject.rotation = gdjs.toRad(this._object.angle);\n }\n\n updateOpacity(): void {\n this._pixiObject.alpha = this._object._opacity / 255;\n }\n\n getWidth(): float {\n return this._pixiObject.textWidth * this.getScale();\n }\n\n getHeight(): float {\n return this._pixiObject.textHeight * this.getScale();\n }\n }\n export const BitmapTextRuntimeObjectRenderer =\n BitmapTextRuntimeObjectPixiRenderer;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIS,OAA0C,CAQ/C,YACE,EACA,EACA,CACA,KAAK,QAAU,EAGf,KAAM,GAAa,EAChB,UACA,uBACA,iBACC,EAAc,wBACd,EAAc,2BAElB,KAAK,YAAc,GAAI,MAAK,WAAW,EAAc,MAAO,CAC1D,SAAU,EAAW,KACrB,SAAU,EAAW,OAIvB,EACG,SAAS,IACT,cACA,kBAAkB,KAAK,YAAa,EAAc,aAKrD,KAAK,YAAY,OAAO,EAAI,GAE5B,KAAK,YAAY,OAAO,EAAI,GAE5B,KAAK,kBACL,KAAK,oBACL,KAAK,cACL,KAAK,gBACL,KAAK,cACL,KAAK,sBACL,KAAK,aAGP,mBAAoB,CAClB,MAAO,MAAK,YAGd,WAAY,CAEV,KAAK,QACF,uBACA,UACA,uBACA,kBAAkB,KAAK,YAAY,UAEtC,KAAK,YAAY,UAGnB,aAAc,CACZ,MAAO,MAAK,YAAY,SAG1B,YAAmB,CAEjB,KAAM,GAAa,KAAK,QACrB,uBACA,UACA,uBACA,iBACC,KAAK,QAAQ,wBACb,KAAK,QAAQ,2BAIjB,KAAK,QACF,uBACA,UACA,uBACA,kBAAkB,KAAK,YAAY,UAGtC,KAAK,YAAY,SAAW,EAAW,KACvC,KAAK,YAAY,SAAW,EAAW,KACvC,KAAK,iBAGP,YAAmB,CACjB,KAAK,YAAY,KAAO,EAAK,eAC3B,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,MAAM,IAErB,KAAK,YAAY,MAAQ,GAO3B,SAAkB,CAChB,MACE,MAAK,QAAQ,MAAM,GACnB,IACA,KAAK,QAAQ,MAAM,GACnB,IACA,KAAK,QAAQ,MAAM,GAIvB,aAAoB,CAClB,KAAK,YAAY,MAAM,IACrB,KAAK,IAAI,KAAK,QAAQ,QAAS,GAC/B,KAAK,IAAI,KAAK,QAAQ,QAAS,IAEjC,KAAK,iBAGP,UAAW,CACT,MAAO,MAAK,IAAI,KAAK,YAAY,MAAM,EAAG,KAAK,YAAY,MAAM,GAGnE,qBAA4B,CAC1B,AAAI,KAAK,QAAQ,UACf,MAAK,YAAY,SACf,KAAK,QAAQ,eAAiB,KAAK,QAAQ,QAC7C,KAAK,YAAY,MAAQ,IAEzB,MAAK,YAAY,SAAW,EAC5B,KAAK,YAAY,MAAQ,IAE3B,KAAK,iBAGP,mBAA0B,CACxB,KAAK,YAAY,KAAO,KAAK,QAAQ,MACrC,KAAK,iBAGP,iBAAwB,CAEtB,KAAK,YAAY,MAAQ,KAAK,QAAQ,OACtC,KAAK,iBAGP,gBAAuB,CACrB,KAAK,YAAY,SAAS,EAAI,KAAK,QAAQ,EAAI,KAAK,WAAa,EACjE,KAAK,YAAY,SAAS,EAAI,KAAK,QAAQ,EAAI,KAAK,YAAc,EAGpE,aAAoB,CAClB,KAAK,YAAY,SAAW,EAAK,MAAM,KAAK,QAAQ,OAGtD,eAAsB,CACpB,KAAK,YAAY,MAAQ,KAAK,QAAQ,SAAW,IAGnD,UAAkB,CAChB,MAAO,MAAK,YAAY,UAAY,KAAK,WAG3C,WAAmB,CACjB,MAAO,MAAK,YAAY,WAAa,KAAK,YAxKvC,EAAM,sCA2KA,kCACX,IAhLM",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -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 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 if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\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,
|
|
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 {\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 if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\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": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|