gdcore-tools 2.0.0-beta3 → 2.0.0-beta4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Runtime/AsyncTasksManager.js +2 -2
- package/dist/Runtime/AsyncTasksManager.js.map +2 -2
- package/dist/Runtime/Cordova/config.xml +23 -1
- package/dist/Runtime/Cordova/www/LICENSE.GDevelop.txt +2 -0
- package/dist/Runtime/Cordova/www/index.html +1 -1
- package/dist/Runtime/CustomRuntimeObject.js +1 -1
- package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
- package/dist/Runtime/CustomRuntimeObject2D.js +2 -0
- package/dist/Runtime/CustomRuntimeObject2D.js.map +7 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +1 -1
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +2 -2
- package/dist/Runtime/Electron/LICENSE.GDevelop.txt +2 -0
- package/dist/Runtime/Electron/package.json +3 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +1 -1
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +2 -2
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/3D/AmbientLight.js +1 -1
- package/dist/Runtime/Extensions/3D/AmbientLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Base3DBehavior.js +1 -1
- package/dist/Runtime/Extensions/3D/Base3DBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/3D/BloomEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/BloomEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/BrightnessAndContrastEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +1 -1
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +2 -2
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js +2 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js.map +7 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js +1 -1
- package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/ExponentialFog.js +1 -1
- package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +2 -2
- package/dist/Runtime/Extensions/3D/ExposureEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/ExposureEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/HemisphereLight.js +1 -1
- package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +2 -2
- package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js +1 -1
- package/dist/Runtime/Extensions/3D/HueAndSaturationEffect.js.map +2 -2
- package/dist/Runtime/Extensions/3D/JsExtension.js +56 -24
- package/dist/Runtime/Extensions/3D/LinearFog.js +1 -1
- package/dist/Runtime/Extensions/3D/LinearFog.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +1 -1
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +2 -2
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +1 -1
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +2 -2
- package/dist/Runtime/Extensions/AdMob/JsExtension.js +11 -10
- package/dist/Runtime/Extensions/AdMob/admobtools.js +1 -1
- package/dist/Runtime/Extensions/AdMob/admobtools.js.map +2 -2
- package/dist/Runtime/Extensions/AnchorBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/BBText/JsExtension.js +20 -11
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +2 -8
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/CMakeLists.txt +35 -0
- package/dist/Runtime/Extensions/CMakeUtils.txt +81 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/DialogueTree/bondage.js/version.txt +5 -0
- package/dist/Runtime/Extensions/DraggableBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/hsl-adjustment-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +2 -2
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/motion-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +2 -2
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +1 -1
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +2 -2
- package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +1 -1
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +2 -2
- package/dist/Runtime/Extensions/FileSystem/JsExtension.js +22 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +1 -1
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +2 -2
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/NOTICE.txt +6 -0
- package/dist/Runtime/Extensions/Inventory/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +13 -4
- package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +42 -1
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +1 -1
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +2 -2
- package/dist/Runtime/Extensions/Lighting/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/LinkedObjects/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +1 -1
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +2 -2
- package/dist/Runtime/Extensions/Multiplayer/JsExtension.js +1130 -0
- package/dist/Runtime/Extensions/Multiplayer/messageManager.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/messageManager.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/peer.js +10 -0
- package/dist/Runtime/Extensions/Multiplayer/peer.js.map +1 -0
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js +2 -0
- package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js.map +7 -0
- package/dist/Runtime/Extensions/Multiplayer/peerjs.d.ts +509 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js +8 -2
- package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -1
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js +1 -1
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +2 -2
- package/dist/Runtime/Extensions/P2P/JsExtension.js +27 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +1 -1
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +2 -2
- package/dist/Runtime/Extensions/PathfindingBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +47 -4
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +1 -1
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PhysicsBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PlatformBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +6 -3
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +4 -4
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +2 -2
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +1 -1
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/Shopify/CMakeLists.txt +26 -0
- package/dist/Runtime/Extensions/Spine/CMakeLists.txt +20 -0
- package/dist/Runtime/Extensions/Spine/JsExtension.js +11 -2
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js +1 -1
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js +1 -1
- package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/pixi-spine/Spine-Runtimes-License-Agreement.txt +11 -0
- package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js +5 -3
- package/dist/Runtime/Extensions/Spine/spineruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Spine/spineruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/SystemInfo/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextEntryObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextInput/JsExtension.js +3 -10
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TextObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +834 -23
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +1 -1
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +1 -1
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +119 -5
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +25 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +16 -1
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -1
- package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TiledSpriteObject/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/TopDownMovementBehavior/CMakeLists.txt +23 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +2 -2
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Video/JsExtension.js +2 -11
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +2 -2
- package/dist/Runtime/RuntimeInstanceContainer.js +1 -1
- package/dist/Runtime/RuntimeInstanceContainer.js.map +2 -2
- package/dist/Runtime/SpriteAnimator.js +2 -0
- package/dist/Runtime/SpriteAnimator.js.map +7 -0
- package/dist/Runtime/debugger-client/hot-reloader.js +1 -1
- package/dist/Runtime/debugger-client/hot-reloader.js.map +2 -2
- package/dist/Runtime/events-tools/objecttools.js +1 -1
- package/dist/Runtime/events-tools/objecttools.js.map +2 -2
- package/dist/Runtime/events-tools/runtimescenetools.js +1 -1
- package/dist/Runtime/events-tools/runtimescenetools.js.map +2 -2
- package/dist/Runtime/force.js +1 -1
- package/dist/Runtime/force.js.map +2 -2
- package/dist/Runtime/object-capabilities/TextContainerBehavior.js.map +1 -1
- package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +1 -1
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +2 -2
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +1 -1
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +2 -2
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +2 -2
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +1 -1
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +2 -2
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/polygon.js +1 -1
- package/dist/Runtime/polygon.js.map +2 -2
- package/dist/Runtime/runtimebehavior.js +1 -1
- package/dist/Runtime/runtimebehavior.js.map +2 -2
- package/dist/Runtime/runtimegame.js +1 -1
- package/dist/Runtime/runtimegame.js.map +2 -2
- package/dist/Runtime/runtimeobject.js +1 -1
- package/dist/Runtime/runtimeobject.js.map +2 -2
- package/dist/Runtime/runtimescene.js +1 -1
- package/dist/Runtime/runtimescene.js.map +2 -2
- package/dist/Runtime/scenestack.js +1 -1
- package/dist/Runtime/scenestack.js.map +2 -2
- package/dist/Runtime/spriteruntimeobject.js +1 -1
- package/dist/Runtime/spriteruntimeobject.js.map +2 -2
- package/dist/Runtime/timer.js +1 -1
- package/dist/Runtime/timer.js.map +2 -2
- package/dist/Runtime/types/project-data.d.ts +115 -0
- package/dist/Runtime/variable.js +1 -1
- package/dist/Runtime/variable.js.map +2 -2
- package/dist/Runtime/variablescontainer.js +1 -1
- package/dist/Runtime/variablescontainer.js.map +2 -2
- package/dist/lib/libGD.cjs +2 -1
- package/dist/lib/libGD.d.cts +5 -0
- package/dist/lib/libGD.wasm +0 -0
- package/dist/loaders.cjs +2 -1
- package/dist/loaders.d.cts +2 -0
- package/gd.d.ts +217 -223
- package/package.json +8 -6
- package/src/index.js +2 -0
- package/types/index.d.ts +2 -2
- package/types/open_project.d.ts +4 -4
- package/dist/Runtime/Extensions/Spine/pixi-spine/pixi-spine.js.map +0 -7
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +0 -2
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.ts"],
|
|
4
|
-
"sourcesContent": ["/// <reference path=\"helper/TileMapHelper.d.ts\" />\n/// <reference path=\"pixi-tilemap/dist/pixi-tilemap.d.ts\" />\nnamespace gdjs {\n /**\n * The PIXI.js renderer for the Tile map runtime object.\n *\n * @class TileMapRuntimeObjectPixiRenderer\n */\n export class TileMapRuntimeObjectPixiRenderer {\n private _object
|
|
5
|
-
"mappings": "AAEA,GAAU,MAAV,UAAU,EAAV,CAMS,OAAuC,
|
|
4
|
+
"sourcesContent": ["/// <reference path=\"helper/TileMapHelper.d.ts\" />\n/// <reference path=\"pixi-tilemap/dist/pixi-tilemap.d.ts\" />\nnamespace gdjs {\n /**\n * The PIXI.js renderer for the Tile map runtime object.\n *\n * @class TileMapRuntimeObjectPixiRenderer\n */\n export class TileMapRuntimeObjectPixiRenderer {\n private _object:\n | gdjs.TileMapRuntimeObject\n | gdjs.SimpleTileMapRuntimeObject;\n private _tileMap: TileMapHelper.EditableTileMap | null = null;\n\n private _pixiObject: PIXI.tilemap.CompositeTilemap;\n\n /**\n * @param runtimeObject The object to render\n * @param instanceContainer The gdjs.RuntimeScene in which the object is\n */\n constructor(\n runtimeObject:\n | gdjs.TileMapRuntimeObject\n | gdjs.SimpleTileMapRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n\n // This setting allows tile maps with more than 16K tiles.\n PIXI.tilemap.settings.use32bitIndex = true;\n\n // Load (or reset)\n this._pixiObject = new PIXI.tilemap.CompositeTilemap();\n this._pixiObject.tileAnim = [0, 0];\n\n instanceContainer\n .getLayer('')\n .getRenderer()\n .addRendererObject(this._pixiObject, runtimeObject.getZOrder());\n this.updateAngle();\n this.updateOpacity();\n this.updatePosition();\n }\n\n getRendererObject() {\n return this._pixiObject;\n }\n\n incrementAnimationFrameX(instanceContainer: gdjs.RuntimeInstanceContainer) {\n this._pixiObject.tileAnim[0] += 1;\n }\n\n updatePixiTileMap(\n tileMap: TileMapHelper.EditableTileMap,\n textureCache: TileMapHelper.TileTextureCache\n ) {\n this._tileMap = tileMap;\n TileMapHelper.PixiTileMapHelper.updatePixiTileMap(\n this._pixiObject,\n tileMap,\n textureCache,\n // @ts-ignore\n this._object._displayMode,\n this._object._layerIndex\n );\n }\n\n refreshPixiTileMap(textureCache: TileMapHelper.TileTextureCache) {\n if (!this._tileMap) return;\n TileMapHelper.PixiTileMapHelper.updatePixiTileMap(\n this._pixiObject,\n this._tileMap,\n textureCache,\n // @ts-ignore\n this._object._displayMode,\n this._object._layerIndex\n );\n }\n\n getTileMap(): TileMapHelper.EditableTileMap | null {\n return this._tileMap;\n }\n\n updatePosition(): void {\n this._pixiObject.pivot.x = this.getTileMapWidth() / 2;\n this._pixiObject.pivot.y = this.getTileMapHeight() / 2;\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 // TODO: Currently, the renderer does not use the object alpha to set\n // opacity. Setting alpha on each layer tile might not be useful as\n // each layer would be separately transparent instead of the whole tilemap.\n this._pixiObject.alpha = this._object._opacity / 255;\n const tileMap = this._tileMap;\n if (!tileMap) return;\n for (const layer of tileMap.getLayers()) {\n if (\n (this._object._displayMode === 'index' &&\n this._object._layerIndex !== layer.id) ||\n (this._object._displayMode === 'visible' && !layer.isVisible())\n ) {\n continue;\n }\n if (layer instanceof TileMapHelper.EditableTileMapLayer) {\n layer.setAlpha(this._pixiObject.alpha);\n }\n }\n }\n\n getTileMapWidth() {\n const tileMap = this._tileMap;\n return tileMap ? tileMap.getWidth() : 20;\n }\n\n getTileMapHeight() {\n const tileMap = this._tileMap;\n return tileMap ? tileMap.getHeight() : 20;\n }\n\n setWidth(width: float): void {\n this._pixiObject.scale.x = width / this.getTileMapWidth();\n this._pixiObject.position.x = this._object.x + width / 2;\n }\n\n setHeight(height: float): void {\n this._pixiObject.scale.y = height / this.getTileMapHeight();\n this._pixiObject.position.y = this._object.y + height / 2;\n }\n\n setScaleX(scaleX: float): void {\n this._pixiObject.scale.x = scaleX;\n const width = scaleX * this.getTileMapWidth();\n this._pixiObject.position.x = this._object.x + width / 2;\n }\n\n setScaleY(scaleY: float): void {\n this._pixiObject.scale.y = scaleY;\n const height = scaleY * this.getTileMapHeight();\n this._pixiObject.position.y = this._object.y + height / 2;\n }\n\n getWidth(): float {\n return this.getTileMapWidth() * this._pixiObject.scale.x;\n }\n\n getHeight(): float {\n return this.getTileMapHeight() * this._pixiObject.scale.y;\n }\n\n getScaleX(): float {\n return this._pixiObject.scale.x;\n }\n\n getScaleY(): float {\n return this._pixiObject.scale.y;\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n * @returns The tile's id.\n */\n getTileId(x: integer, y: integer, layerIndex: integer): integer {\n const tileMap = this._tileMap;\n if (!tileMap) return -1;\n return tileMap.getTileId(x, y, layerIndex);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n * @param tileId The tile's id.\n */\n setTileId(x: integer, y: integer, layerIndex: integer, tileId: number) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n return tileMap.setTile(x, y, layerIndex, tileId);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n * @param flip true if the tile should be flipped.\n */\n flipTileOnY(x: integer, y: integer, layerIndex: integer, flip: boolean) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n tileMap.flipTileOnY(x, y, layerIndex, flip);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n * @param flip true if the tile should be flipped.\n */\n flipTileOnX(x: integer, y: integer, layerIndex: integer, flip: boolean) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n tileMap.flipTileOnX(x, y, layerIndex, flip);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n */\n isTileFlippedOnX(x: integer, y: integer, layerIndex: integer): boolean {\n const tileMap = this._tileMap;\n if (!tileMap) return false;\n return tileMap.isTileFlippedOnX(x, y, layerIndex);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n */\n isTileFlippedOnY(x: integer, y: integer, layerIndex: integer): boolean {\n const tileMap = this._tileMap;\n if (!tileMap) return false;\n return tileMap.isTileFlippedOnY(x, y, layerIndex);\n }\n\n /**\n * @param x The layer column.\n * @param y The layer row.\n * @param layerIndex The layer index.\n */\n removeTile(x: integer, y: integer, layerIndex: integer) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n return tileMap.removeTile(x, y, layerIndex);\n }\n\n /**\n * @param targetRowCount The number of rows to have.\n */\n setGridRowCount(targetRowCount: integer) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n return tileMap.setDimensionY(targetRowCount);\n }\n /**\n * @param targetColumnCount The number of rows to have.\n */\n setGridColumnCount(targetColumnCount: integer) {\n const tileMap = this._tileMap;\n if (!tileMap) return;\n return tileMap.setDimensionX(targetColumnCount);\n }\n\n getGridRowCount(): integer {\n const tileMap = this._tileMap;\n if (!tileMap) return 0;\n return tileMap.getDimensionY();\n }\n\n getGridColumnCount(): integer {\n const tileMap = this._tileMap;\n if (!tileMap) return 0;\n return tileMap.getDimensionX();\n }\n\n destroy(): void {\n // Keep textures because they are shared by all tile maps.\n this._pixiObject.destroy(false);\n }\n }\n export const TileMapRuntimeObjectRenderer =\n gdjs.TileMapRuntimeObjectPixiRenderer;\n export type TileMapRuntimeObjectRenderer = gdjs.TileMapRuntimeObjectPixiRenderer;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(
|
|
1
|
+
var gdjs;(function(t){class l extends t.RuntimeObject{constructor(e,i){super(e,i);this._frameElapsedTime=0;this._opacity=i.content.opacity,this._tilemapJsonFile=i.content.tilemapJsonFile,this._tilesetJsonFile=i.content.tilesetJsonFile,this._tilemapAtlasImage=i.content.tilemapAtlasImage,this._displayMode=i.content.displayMode,this._layerIndex=i.content.layerIndex,this._levelIndex=i.content.levelIndex,this._animationSpeedScale=i.content.animationSpeedScale,this._animationFps=i.content.animationFps,this._tileMapManager=t.TileMap.TileMapRuntimeManager.getManager(e),this._renderer=new t.TileMapRuntimeObjectRenderer(this,e),this._updateTileMap(),this.onCreated()}getRendererObject(){return this._renderer.getRendererObject()}update(e){if(this._animationSpeedScale<=0||this._animationFps===0)return;const i=this.getElapsedTime()/1e3;for(this._frameElapsedTime+=i*this._animationSpeedScale;this._frameElapsedTime>1/this._animationFps;)this._renderer.incrementAnimationFrameX(e),this._frameElapsedTime-=1/this._animationFps}updateFromObjectData(e,i){return e.content.opacity!==i.content.opacity&&this.setOpacity(i.content.opacity),e.content.tilemapJsonFile!==i.content.tilemapJsonFile&&this.setTilemapJsonFile(i.content.tilemapJsonFile),e.content.tilesetJsonFile!==i.content.tilesetJsonFile&&this.setTilesetJsonFile(i.content.tilesetJsonFile),e.content.displayMode!==i.content.displayMode&&this.setDisplayMode(i.content.displayMode),e.content.layerIndex!==i.content.layerIndex&&this.setLayerIndex(i.content.layerIndex),e.content.levelIndex!==i.content.levelIndex&&this.setLevelIndex(i.content.levelIndex),e.content.animationSpeedScale!==i.content.animationSpeedScale&&this.setAnimationSpeedScale(i.content.animationSpeedScale),e.content.animationFps!==i.content.animationFps&&this.setAnimationFps(i.content.animationFps),e.content.tilemapAtlasImage===i.content.tilemapAtlasImage}getNetworkSyncData(){return{...super.getNetworkSyncData(),op:this._opacity,tmjf:this._tilemapJsonFile,tsjf:this._tilesetJsonFile,tmai:this._tilemapAtlasImage,dm:this._displayMode,lai:this._layerIndex,lei:this._levelIndex,asps:this._animationSpeedScale,wid:this.getWidth(),hei:this.getHeight()}}updateFromNetworkSyncData(e){super.updateFromNetworkSyncData(e),e.op!==void 0&&this.setOpacity(e.op),e.tmjf!==void 0&&this.setTilemapJsonFile(e.tmjf),e.tsjf!==void 0&&this.setTilesetJsonFile(e.tsjf),e.tmai!==void 0&&(this._tilemapAtlasImage=e.tmai),e.dm!==void 0&&this.setDisplayMode(e.dm),e.lai!==void 0&&this.setLayerIndex(e.lai),e.lei!==void 0&&this.setLevelIndex(e.lei),e.asps!==void 0&&this.setAnimationSpeedScale(e.asps),e.wid!==void 0&&this.setWidth(e.wid),e.hei!==void 0&&this.setHeight(e.hei)}extraInitializationFromInitialInstance(e){e.customSize&&(this.setWidth(e.width),this.setHeight(e.height))}_updateTileMap(){this._tileMapManager.getOrLoadTileMap(this._tilemapJsonFile,this._tilesetJsonFile,this._levelIndex,e=>{!e||this._tileMapManager.getOrLoadTextureCache(i=>{const s=this.getInstanceContainer().getGame(),n=s.resolveEmbeddedResource(this._tilemapJsonFile,i);return s.getImageManager().getPIXITexture(n)},this._tilemapAtlasImage,this._tilemapJsonFile,this._tilesetJsonFile,this._levelIndex,i=>{!i||this._renderer.updatePixiTileMap(e,i)})})}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}setTilemapJsonFile(e){this._tilemapJsonFile=e,this._updateTileMap()}getTilemapJsonFile(){return this._tilemapJsonFile}isTilemapJsonFile(e){return this._tilemapJsonFile===e}setTilesetJsonFile(e){this._tilesetJsonFile=e,this._updateTileMap()}getTilesetJsonFile(){return this._tilesetJsonFile}setAnimationFps(e){this._animationFps=e}getAnimationFps(){return this._animationFps}isTilesetJsonFile(e){return this._tilesetJsonFile===e}isDisplayMode(e){return this._displayMode===e}setDisplayMode(e){this._displayMode=e,this._updateTileMap()}getDisplayMode(){return this._displayMode}setLayerIndex(e){this._layerIndex=e,this._updateTileMap()}getLayerIndex(){return this._layerIndex}setLevelIndex(e){this._levelIndex=e,this._updateTileMap()}getLevelIndex(){return this._levelIndex}setAnimationSpeedScale(e){this._animationSpeedScale=e}getAnimationSpeedScale(){return this._animationSpeedScale}setWidth(e){this.getWidth()!==e&&(this._renderer.setWidth(e),this.invalidateHitboxes())}setHeight(e){this.getHeight()!==e&&(this._renderer.setHeight(e),this.invalidateHitboxes())}setSize(e,i){this.setWidth(e),this.setHeight(i)}getScale(){const e=this.getScaleX(),i=this.getScaleY();return e===i?e:Math.sqrt(e*i)}setScale(e){this.setScaleX(e),this.setScaleY(e)}setScaleX(e){e<0&&(e=0),this.getScaleX()!==e&&(this._renderer.setScaleX(e),this.invalidateHitboxes())}setScaleY(e){e<0&&(e=0),this.getScaleY()!==e&&(this._renderer.setScaleY(e),this.invalidateHitboxes())}setX(e){super.setX(e),this._renderer.updatePosition()}setY(e){super.setY(e),this._renderer.updatePosition()}setAngle(e){super.setAngle(e),this._renderer.updateAngle()}setOpacity(e){this._opacity=e,this._renderer.updateOpacity()}getOpacity(){return this._opacity}getWidth(){return this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}getScaleX(){return this._renderer.getScaleX()}getScaleY(){return this._renderer.getScaleY()}}t.TileMapRuntimeObject=l,t.registerObject("TileMap::TileMap",t.TileMapRuntimeObject)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=tilemapruntimeobject.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/TileMap/tilemapruntimeobject.ts"],
|
|
4
|
-
"sourcesContent": ["/// <reference path=\"helper/TileMapHelper.d.ts\" />\nnamespace gdjs {\n /**\n * Displays a Tilemap object (mapeditor.org supported).\n */\n export class TileMapRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.Resizable, gdjs.Scalable, gdjs.OpacityHandler {\n _frameElapsedTime: float = 0;\n _opacity: float;\n _tilemapJsonFile: string;\n _tilesetJsonFile: string;\n _tilemapAtlasImage: string;\n _displayMode: string;\n _layerIndex: integer;\n _levelIndex: integer;\n _animationSpeedScale: number;\n _animationFps: number;\n _tileMapManager: gdjs.TileMap.TileMapRuntimeManager;\n _renderer: gdjs.TileMapRuntimeObjectPixiRenderer;\n\n constructor(instanceContainer: gdjs.RuntimeInstanceContainer, objectData) {\n super(instanceContainer, objectData);\n this._opacity = objectData.content.opacity;\n this._tilemapJsonFile = objectData.content.tilemapJsonFile;\n this._tilesetJsonFile = objectData.content.tilesetJsonFile;\n this._tilemapAtlasImage = objectData.content.tilemapAtlasImage;\n this._displayMode = objectData.content.displayMode;\n this._layerIndex = objectData.content.layerIndex;\n this._levelIndex = objectData.content.levelIndex;\n this._animationSpeedScale = objectData.content.animationSpeedScale;\n this._animationFps = objectData.content.animationFps;\n this._tileMapManager = gdjs.TileMap.TileMapRuntimeManager.getManager(\n instanceContainer\n );\n this._renderer = new gdjs.TileMapRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this._updateTileMap();\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 update(instanceContainer: gdjs.RuntimeInstanceContainer): void {\n if (this._animationSpeedScale <= 0 || this._animationFps === 0) {\n return;\n }\n const elapsedTime = this.getElapsedTime() / 1000;\n this._frameElapsedTime += elapsedTime * this._animationSpeedScale;\n while (this._frameElapsedTime > 1 / this._animationFps) {\n this._renderer.incrementAnimationFrameX(instanceContainer);\n this._frameElapsedTime -= 1 / this._animationFps;\n }\n }\n\n updateFromObjectData(oldObjectData: any, newObjectData: any): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (\n oldObjectData.content.tilemapJsonFile !==\n newObjectData.content.tilemapJsonFile\n ) {\n this.setTilemapJsonFile(newObjectData.content.tilemapJsonFile);\n }\n if (\n oldObjectData.content.tilesetJsonFile !==\n newObjectData.content.tilesetJsonFile\n ) {\n this.setTilesetJsonFile(newObjectData.content.tilesetJsonFile);\n }\n if (\n oldObjectData.content.displayMode !== newObjectData.content.displayMode\n ) {\n this.setDisplayMode(newObjectData.content.displayMode);\n }\n if (\n oldObjectData.content.layerIndex !== newObjectData.content.layerIndex\n ) {\n this.setLayerIndex(newObjectData.content.layerIndex);\n }\n if (\n oldObjectData.content.levelIndex !== newObjectData.content.levelIndex\n ) {\n this.setLevelIndex(newObjectData.content.levelIndex);\n }\n if (\n oldObjectData.content.animationSpeedScale !==\n newObjectData.content.animationSpeedScale\n ) {\n this.setAnimationSpeedScale(newObjectData.content.animationSpeedScale);\n }\n if (\n oldObjectData.content.animationFps !==\n newObjectData.content.animationFps\n ) {\n this.setAnimationFps(newObjectData.content.animationFps);\n }\n if (\n oldObjectData.content.tilemapAtlasImage !==\n newObjectData.content.tilemapAtlasImage\n ) {\n // TODO: support changing the atlas texture\n return false;\n }\n return true;\n }\n\n extraInitializationFromInitialInstance(initialInstanceData): void {\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n private _updateTileMap(): void {\n this._tileMapManager.getOrLoadTileMap(\n this._tilemapJsonFile,\n this._tilesetJsonFile,\n this._levelIndex,\n (tileMap: TileMapHelper.EditableTileMap | null) => {\n if (!tileMap) {\n // getOrLoadTileMap already warn.\n return;\n }\n this._tileMapManager.getOrLoadTextureCache(\n (textureName) => {\n const game = this.getInstanceContainer().getGame();\n const mappedName = game.resolveEmbeddedResource(\n this._tilemapJsonFile,\n textureName\n );\n return (game\n .getImageManager()\n .getPIXITexture(mappedName) as unknown) as PIXI.BaseTexture<\n PIXI.Resource\n >;\n },\n this._tilemapAtlasImage,\n this._tilemapJsonFile,\n this._tilesetJsonFile,\n this._levelIndex,\n (textureCache: TileMapHelper.TileTextureCache | null) => {\n if (!textureCache) {\n // getOrLoadTextureCache already log warns and errors.\n return;\n }\n this._renderer.updatePixiTileMap(tileMap, textureCache);\n }\n );\n }\n );\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the Tilemap file to display.\n */\n setTilemapJsonFile(tilemapJsonFile: string): void {\n this._tilemapJsonFile = tilemapJsonFile;\n this._updateTileMap();\n }\n\n getTilemapJsonFile(): string {\n return this._tilemapJsonFile;\n }\n\n isTilemapJsonFile(selectedTilemapJsonFile: string): boolean {\n return this._tilemapJsonFile === selectedTilemapJsonFile;\n }\n\n setTilesetJsonFile(tilesetJsonFile: string): void {\n this._tilesetJsonFile = tilesetJsonFile;\n this._updateTileMap();\n }\n\n getTilesetJsonFile(): string {\n return this._tilesetJsonFile;\n }\n\n setAnimationFps(animationFps: float) {\n this._animationFps = animationFps;\n }\n\n getAnimationFps(): float {\n return this._animationFps;\n }\n\n isTilesetJsonFile(selectedTilesetJsonFile: string): boolean {\n return this._tilesetJsonFile === selectedTilesetJsonFile;\n }\n\n isDisplayMode(selectedDisplayMode: string): boolean {\n return this._displayMode === selectedDisplayMode;\n }\n\n setDisplayMode(displayMode: string): void {\n this._displayMode = displayMode;\n this._updateTileMap();\n }\n\n getDisplayMode(): string {\n return this._displayMode;\n }\n\n setLayerIndex(layerIndex): void {\n this._layerIndex = layerIndex;\n this._updateTileMap();\n }\n\n getLayerIndex(): integer {\n return this._layerIndex;\n }\n\n setLevelIndex(levelIndex): void {\n this._levelIndex = levelIndex;\n this._updateTileMap();\n }\n\n getLevelIndex() {\n return this._levelIndex;\n }\n\n setAnimationSpeedScale(animationSpeedScale): void {\n this._animationSpeedScale = animationSpeedScale;\n }\n\n getAnimationSpeedScale(): float {\n return this._animationSpeedScale;\n }\n\n setWidth(width: float): void {\n if (this.getWidth() === width) return;\n\n this._renderer.setWidth(width);\n this.invalidateHitboxes();\n }\n\n setHeight(height: float): void {\n if (this.getHeight() === height) return;\n\n this._renderer.setHeight(height);\n this.invalidateHitboxes();\n }\n\n setSize(newWidth: float, newHeight: float): void {\n this.setWidth(newWidth);\n this.setHeight(newHeight);\n }\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = this.getScaleX();\n const scaleY = this.getScaleY();\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n /**\n * Change the scale on X and Y axis of the object.\n *\n * @param scale The new scale (must be greater than 0).\n */\n setScale(scale: float): void {\n this.setScaleX(scale);\n this.setScaleY(scale);\n }\n\n /**\n * Change the scale on X axis of the object (changing its width).\n *\n * @param scaleX The new scale (must be greater than 0).\n */\n setScaleX(scaleX: float): void {\n if (scaleX < 0) {\n scaleX = 0;\n }\n if (this.getScaleX() === scaleX) return;\n\n this._renderer.setScaleX(scaleX);\n this.invalidateHitboxes();\n }\n\n /**\n * Change the scale on Y axis of the object (changing its width).\n *\n * @param scaleY The new scale (must be greater than 0).\n */\n setScaleY(scaleY: float): void {\n if (scaleY < 0) {\n scaleY = 0;\n }\n if (this.getScaleY() === scaleY) return;\n\n this._renderer.setScaleY(scaleY);\n this.invalidateHitboxes();\n }\n\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n setOpacity(opacity: float): void {\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this._opacity;\n }\n\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n getHeight(): float {\n return this._renderer.getHeight();\n }\n\n getScaleX(): float {\n return this._renderer.getScaleX();\n }\n\n getScaleY(): float {\n return this._renderer.getScaleY();\n }\n }\n gdjs.registerObject('TileMap::TileMap', gdjs.TileMapRuntimeObject);\n}\n"],
|
|
5
|
-
"mappings": "AACA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["/// <reference path=\"helper/TileMapHelper.d.ts\" />\nnamespace gdjs {\n export type TilemapObjectDataType = {\n content: {\n opacity: number;\n tilemapJsonFile: string;\n tilesetJsonFile: string;\n tilemapAtlasImage: string;\n displayMode: string;\n layerIndex: integer;\n levelIndex: integer;\n animationSpeedScale: number;\n animationFps: number;\n };\n };\n\n export type TilemapObjectData = ObjectData & TilemapObjectDataType;\n\n export type TilemapNetworkSyncDataType = {\n op: number;\n tmjf: string;\n tsjf: string;\n tmai: string;\n dm: string;\n lai: number;\n lei: number;\n asps: number;\n wid: number;\n hei: number;\n };\n\n export type TilemapNetworkSyncData = ObjectNetworkSyncData &\n TilemapNetworkSyncDataType;\n\n /**\n * Displays a Tilemap object (LDtk and Tiled).\n */\n export class TileMapRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.Resizable, gdjs.Scalable, gdjs.OpacityHandler {\n _frameElapsedTime: float = 0;\n _opacity: float;\n _tilemapJsonFile: string;\n _tilesetJsonFile: string;\n _tilemapAtlasImage: string;\n _displayMode: string;\n _layerIndex: integer;\n _levelIndex: integer;\n _animationSpeedScale: number;\n _animationFps: number;\n _tileMapManager: gdjs.TileMap.TileMapRuntimeManager;\n _renderer: gdjs.TileMapRuntimeObjectPixiRenderer;\n\n constructor(instanceContainer: gdjs.RuntimeInstanceContainer, objectData) {\n super(instanceContainer, objectData);\n this._opacity = objectData.content.opacity;\n this._tilemapJsonFile = objectData.content.tilemapJsonFile;\n this._tilesetJsonFile = objectData.content.tilesetJsonFile;\n this._tilemapAtlasImage = objectData.content.tilemapAtlasImage;\n this._displayMode = objectData.content.displayMode;\n this._layerIndex = objectData.content.layerIndex;\n this._levelIndex = objectData.content.levelIndex;\n this._animationSpeedScale = objectData.content.animationSpeedScale;\n this._animationFps = objectData.content.animationFps;\n this._tileMapManager = gdjs.TileMap.TileMapRuntimeManager.getManager(\n instanceContainer\n );\n this._renderer = new gdjs.TileMapRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this._updateTileMap();\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 update(instanceContainer: gdjs.RuntimeInstanceContainer): void {\n if (this._animationSpeedScale <= 0 || this._animationFps === 0) {\n return;\n }\n const elapsedTime = this.getElapsedTime() / 1000;\n this._frameElapsedTime += elapsedTime * this._animationSpeedScale;\n while (this._frameElapsedTime > 1 / this._animationFps) {\n this._renderer.incrementAnimationFrameX(instanceContainer);\n this._frameElapsedTime -= 1 / this._animationFps;\n }\n }\n\n updateFromObjectData(\n oldObjectData: TilemapObjectData,\n newObjectData: TilemapObjectData\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (\n oldObjectData.content.tilemapJsonFile !==\n newObjectData.content.tilemapJsonFile\n ) {\n this.setTilemapJsonFile(newObjectData.content.tilemapJsonFile);\n }\n if (\n oldObjectData.content.tilesetJsonFile !==\n newObjectData.content.tilesetJsonFile\n ) {\n this.setTilesetJsonFile(newObjectData.content.tilesetJsonFile);\n }\n if (\n oldObjectData.content.displayMode !== newObjectData.content.displayMode\n ) {\n this.setDisplayMode(newObjectData.content.displayMode);\n }\n if (\n oldObjectData.content.layerIndex !== newObjectData.content.layerIndex\n ) {\n this.setLayerIndex(newObjectData.content.layerIndex);\n }\n if (\n oldObjectData.content.levelIndex !== newObjectData.content.levelIndex\n ) {\n this.setLevelIndex(newObjectData.content.levelIndex);\n }\n if (\n oldObjectData.content.animationSpeedScale !==\n newObjectData.content.animationSpeedScale\n ) {\n this.setAnimationSpeedScale(newObjectData.content.animationSpeedScale);\n }\n if (\n oldObjectData.content.animationFps !==\n newObjectData.content.animationFps\n ) {\n this.setAnimationFps(newObjectData.content.animationFps);\n }\n if (\n oldObjectData.content.tilemapAtlasImage !==\n newObjectData.content.tilemapAtlasImage\n ) {\n // TODO: support changing the atlas texture\n return false;\n }\n return true;\n }\n\n getNetworkSyncData(): TilemapNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n op: this._opacity,\n tmjf: this._tilemapJsonFile,\n tsjf: this._tilesetJsonFile,\n tmai: this._tilemapAtlasImage,\n dm: this._displayMode,\n lai: this._layerIndex,\n lei: this._levelIndex,\n asps: this._animationSpeedScale,\n wid: this.getWidth(),\n hei: this.getHeight(),\n };\n }\n\n updateFromNetworkSyncData(networkSyncData: TilemapNetworkSyncData): void {\n super.updateFromNetworkSyncData(networkSyncData);\n\n if (networkSyncData.op !== undefined) {\n this.setOpacity(networkSyncData.op);\n }\n if (networkSyncData.tmjf !== undefined) {\n this.setTilemapJsonFile(networkSyncData.tmjf);\n }\n if (networkSyncData.tsjf !== undefined) {\n this.setTilesetJsonFile(networkSyncData.tsjf);\n }\n if (networkSyncData.tmai !== undefined) {\n this._tilemapAtlasImage = networkSyncData.tmai;\n }\n if (networkSyncData.dm !== undefined) {\n this.setDisplayMode(networkSyncData.dm);\n }\n if (networkSyncData.lai !== undefined) {\n this.setLayerIndex(networkSyncData.lai);\n }\n if (networkSyncData.lei !== undefined) {\n this.setLevelIndex(networkSyncData.lei);\n }\n if (networkSyncData.asps !== undefined) {\n this.setAnimationSpeedScale(networkSyncData.asps);\n }\n if (networkSyncData.wid !== undefined) {\n this.setWidth(networkSyncData.wid);\n }\n if (networkSyncData.hei !== undefined) {\n this.setHeight(networkSyncData.hei);\n }\n }\n\n extraInitializationFromInitialInstance(initialInstanceData): void {\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n private _updateTileMap(): void {\n this._tileMapManager.getOrLoadTileMap(\n this._tilemapJsonFile,\n this._tilesetJsonFile,\n this._levelIndex,\n (tileMap: TileMapHelper.EditableTileMap | null) => {\n if (!tileMap) {\n // getOrLoadTileMap already warn.\n return;\n }\n this._tileMapManager.getOrLoadTextureCache(\n (textureName) => {\n const game = this.getInstanceContainer().getGame();\n const mappedName = game.resolveEmbeddedResource(\n this._tilemapJsonFile,\n textureName\n );\n return (game\n .getImageManager()\n .getPIXITexture(mappedName) as unknown) as PIXI.BaseTexture<\n PIXI.Resource\n >;\n },\n this._tilemapAtlasImage,\n this._tilemapJsonFile,\n this._tilesetJsonFile,\n this._levelIndex,\n (textureCache: TileMapHelper.TileTextureCache | null) => {\n if (!textureCache) {\n // getOrLoadTextureCache already log warns and errors.\n return;\n }\n this._renderer.updatePixiTileMap(tileMap, textureCache);\n }\n );\n }\n );\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the Tilemap file to display.\n */\n setTilemapJsonFile(tilemapJsonFile: string): void {\n this._tilemapJsonFile = tilemapJsonFile;\n this._updateTileMap();\n }\n\n getTilemapJsonFile(): string {\n return this._tilemapJsonFile;\n }\n\n isTilemapJsonFile(selectedTilemapJsonFile: string): boolean {\n return this._tilemapJsonFile === selectedTilemapJsonFile;\n }\n\n setTilesetJsonFile(tilesetJsonFile: string): void {\n this._tilesetJsonFile = tilesetJsonFile;\n this._updateTileMap();\n }\n\n getTilesetJsonFile(): string {\n return this._tilesetJsonFile;\n }\n\n setAnimationFps(animationFps: float) {\n this._animationFps = animationFps;\n }\n\n getAnimationFps(): float {\n return this._animationFps;\n }\n\n isTilesetJsonFile(selectedTilesetJsonFile: string): boolean {\n return this._tilesetJsonFile === selectedTilesetJsonFile;\n }\n\n isDisplayMode(selectedDisplayMode: string): boolean {\n return this._displayMode === selectedDisplayMode;\n }\n\n setDisplayMode(displayMode: string): void {\n this._displayMode = displayMode;\n this._updateTileMap();\n }\n\n getDisplayMode(): string {\n return this._displayMode;\n }\n\n setLayerIndex(layerIndex): void {\n this._layerIndex = layerIndex;\n this._updateTileMap();\n }\n\n getLayerIndex(): integer {\n return this._layerIndex;\n }\n\n setLevelIndex(levelIndex): void {\n this._levelIndex = levelIndex;\n this._updateTileMap();\n }\n\n getLevelIndex() {\n return this._levelIndex;\n }\n\n setAnimationSpeedScale(animationSpeedScale): void {\n this._animationSpeedScale = animationSpeedScale;\n }\n\n getAnimationSpeedScale(): float {\n return this._animationSpeedScale;\n }\n\n setWidth(width: float): void {\n if (this.getWidth() === width) return;\n\n this._renderer.setWidth(width);\n this.invalidateHitboxes();\n }\n\n setHeight(height: float): void {\n if (this.getHeight() === height) return;\n\n this._renderer.setHeight(height);\n this.invalidateHitboxes();\n }\n\n setSize(newWidth: float, newHeight: float): void {\n this.setWidth(newWidth);\n this.setHeight(newHeight);\n }\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = this.getScaleX();\n const scaleY = this.getScaleY();\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n /**\n * Change the scale on X and Y axis of the object.\n *\n * @param scale The new scale (must be greater than 0).\n */\n setScale(scale: float): void {\n this.setScaleX(scale);\n this.setScaleY(scale);\n }\n\n /**\n * Change the scale on X axis of the object (changing its width).\n *\n * @param scaleX The new scale (must be greater than 0).\n */\n setScaleX(scaleX: float): void {\n if (scaleX < 0) {\n scaleX = 0;\n }\n if (this.getScaleX() === scaleX) return;\n\n this._renderer.setScaleX(scaleX);\n this.invalidateHitboxes();\n }\n\n /**\n * Change the scale on Y axis of the object (changing its width).\n *\n * @param scaleY The new scale (must be greater than 0).\n */\n setScaleY(scaleY: float): void {\n if (scaleY < 0) {\n scaleY = 0;\n }\n if (this.getScaleY() === scaleY) return;\n\n this._renderer.setScaleY(scaleY);\n this.invalidateHitboxes();\n }\n\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n setOpacity(opacity: float): void {\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this._opacity;\n }\n\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n getHeight(): float {\n return this._renderer.getHeight();\n }\n\n getScaleX(): float {\n return this._renderer.getScaleX();\n }\n\n getScaleY(): float {\n return this._renderer.getScaleY();\n }\n }\n gdjs.registerObject('TileMap::TileMap', gdjs.TileMapRuntimeObject);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.5)
|
|
2
|
+
|
|
3
|
+
project(TiledSpriteObject)
|
|
4
|
+
gd_add_extension_includes()
|
|
5
|
+
|
|
6
|
+
# Defines
|
|
7
|
+
#
|
|
8
|
+
gd_add_extension_definitions(TiledSpriteObject)
|
|
9
|
+
|
|
10
|
+
# The targets
|
|
11
|
+
#
|
|
12
|
+
include_directories(.)
|
|
13
|
+
file(
|
|
14
|
+
GLOB
|
|
15
|
+
source_files
|
|
16
|
+
*.cpp
|
|
17
|
+
*.h)
|
|
18
|
+
gd_add_clang_utils(TiledSpriteObject "${source_files}")
|
|
19
|
+
gd_add_extension_target(TiledSpriteObject "${source_files}")
|
|
20
|
+
|
|
21
|
+
# Linker files for the IDE extension
|
|
22
|
+
#
|
|
23
|
+
gd_extension_link_libraries(TiledSpriteObject)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(i){class r extends i.RuntimeObject{constructor(e,t){super(e,t);this._xOffset=0;this._yOffset=0;this.opacity=255;this._renderer=new i.TiledSpriteRuntimeObjectRenderer(this,e,t.texture),this._width=0,this._height=0,this.setWidth(t.width),this.setHeight(t.height),this.onCreated()}updateFromObjectData(e,t){return e.texture!==t.texture&&this.setTexture(t.texture,this.getRuntimeScene()),e.width!==t.width&&this.setWidth(t.width),e.height!==t.height&&this.setHeight(t.height),!0}getRendererObject(){return this._renderer.getRendererObject()}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}extraInitializationFromInitialInstance(e){e.customSize&&(this.setWidth(e.width),this.setHeight(e.height))}setX(e){super.setX(e),this._renderer.updatePosition()}setY(e){super.setY(e),this._renderer.updatePosition()}setTexture(e,t){this._renderer.setTexture(e,t)}setAngle(e){super.setAngle(e),this._renderer.updateAngle()}getWidth(){return this._width}getHeight(){return this._height}setWidth(e){this._width!==e&&(this._width=e,this._renderer.setWidth(e),this.invalidateHitboxes())}setHeight(e){this._height!==e&&(this._height=e,this._renderer.setHeight(e),this.invalidateHitboxes())}setSize(e,t){this.setWidth(e),this.setHeight(t)}setXOffset(e){this._xOffset=e,this._renderer.updateXOffset()}setYOffset(e){this._yOffset=e,this._renderer.updateYOffset()}getXOffset(){return this._xOffset}getYOffset(){return this._yOffset}setOpacity(e){e<0&&(e=0),e>255&&(e=255),this.opacity=e,this._renderer.updateOpacity()}getOpacity(){return this.opacity}setColor(e){this._renderer.setColor(e)}getColor(){return this._renderer.getColor()}getScale(){const e=Math.abs(this.getScaleX()),t=Math.abs(this.getScaleY());return e===t?e:Math.sqrt(e*t)}getScaleX(){return this._width/this._renderer.getTextureWidth()}getScaleY(){return this._height/this._renderer.getTextureHeight()}setScale(e){this.setWidth(this._renderer.getTextureWidth()*e),this.setHeight(this._renderer.getTextureHeight()*e)}setScaleX(e){this.setWidth(this._renderer.getTextureWidth()*e)}setScaleY(e){this.setHeight(this._renderer.getTextureHeight()*e)}}i.TiledSpriteRuntimeObject=r,i.registerObject("TiledSpriteObject::TiledSprite",i.TiledSpriteRuntimeObject)})(gdjs||(gdjs={}));
|
|
1
|
+
var gdjs;(function(i){class r extends i.RuntimeObject{constructor(e,t){super(e,t);this._xOffset=0;this._yOffset=0;this.opacity=255;this._renderer=new i.TiledSpriteRuntimeObjectRenderer(this,e,t.texture),this._width=0,this._height=0,this.setWidth(t.width),this.setHeight(t.height),this.onCreated()}updateFromObjectData(e,t){return e.texture!==t.texture&&this.setTexture(t.texture,this.getRuntimeScene()),e.width!==t.width&&this.setWidth(t.width),e.height!==t.height&&this.setHeight(t.height),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),wid:this.getWidth(),hei:this.getHeight(),xo:this.getXOffset(),yo:this.getYOffset(),op:this.getOpacity(),color:this.getColor()}}updateFromNetworkSyncData(e){super.updateFromNetworkSyncData(e),e.wid!==void 0&&this.setWidth(e.wid),e.hei!==void 0&&this.setHeight(e.hei),e.xo!==void 0&&this.setXOffset(e.xo),e.yo!==void 0&&this.setYOffset(e.yo),e.op!==void 0&&this.setOpacity(e.op),e.color!==void 0&&this.setColor(e.color)}getRendererObject(){return this._renderer.getRendererObject()}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}extraInitializationFromInitialInstance(e){e.customSize&&(this.setWidth(e.width),this.setHeight(e.height))}setX(e){super.setX(e),this._renderer.updatePosition()}setY(e){super.setY(e),this._renderer.updatePosition()}setTexture(e,t){this._renderer.setTexture(e,t)}setAngle(e){super.setAngle(e),this._renderer.updateAngle()}getWidth(){return this._width}getHeight(){return this._height}setWidth(e){this._width!==e&&(this._width=e,this._renderer.setWidth(e),this.invalidateHitboxes())}setHeight(e){this._height!==e&&(this._height=e,this._renderer.setHeight(e),this.invalidateHitboxes())}setSize(e,t){this.setWidth(e),this.setHeight(t)}setXOffset(e){this._xOffset=e,this._renderer.updateXOffset()}setYOffset(e){this._yOffset=e,this._renderer.updateYOffset()}getXOffset(){return this._xOffset}getYOffset(){return this._yOffset}setOpacity(e){e<0&&(e=0),e>255&&(e=255),this.opacity=e,this._renderer.updateOpacity()}getOpacity(){return this.opacity}setColor(e){this._renderer.setColor(e)}getColor(){return this._renderer.getColor()}getScale(){const e=Math.abs(this.getScaleX()),t=Math.abs(this.getScaleY());return e===t?e:Math.sqrt(e*t)}getScaleX(){return this._width/this._renderer.getTextureWidth()}getScaleY(){return this._height/this._renderer.getTextureHeight()}setScale(e){this.setWidth(this._renderer.getTextureWidth()*e),this.setHeight(this._renderer.getTextureHeight()*e)}setScaleX(e){this.setWidth(this._renderer.getTextureWidth()*e)}setScaleY(e){this.setHeight(this._renderer.getTextureHeight()*e)}}i.TiledSpriteRuntimeObject=r,i.registerObject("TiledSpriteObject::TiledSprite",i.TiledSpriteRuntimeObject)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=tiledspriteruntimeobject.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/TiledSpriteObject/tiledspriteruntimeobject.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * GDevelop JS Platform\n * 2013 Florian Rival (Florian.Rival@gmail.com)\n */\nnamespace gdjs {\n /** Initial properties for a Tiled Sprite object */\n export type TiledSpriteObjectDataType = {\n /** Default width of the object, if the instance has no custom width. */\n width: number;\n /** Default height of the object, if the instance has no custom height. */\n height: number;\n texture: string;\n };\n\n export type TiledSpriteObjectData = ObjectData & TiledSpriteObjectDataType;\n\n /**\n * The TiledSpriteRuntimeObject displays a tiled texture.\n */\n export class TiledSpriteRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.Resizable, gdjs.OpacityHandler {\n _xOffset: float = 0;\n _yOffset: float = 0;\n opacity: float = 255;\n\n // Width and height can be stored because they do not depend on the\n // size of the texture being used (contrary to most objects).\n _width: float;\n _height: float;\n\n _renderer: gdjs.TiledSpriteRuntimeObjectRenderer;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param tiledSpriteObjectData The initial properties of the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n tiledSpriteObjectData: TiledSpriteObjectData\n ) {\n super(instanceContainer, tiledSpriteObjectData);\n this._renderer = new gdjs.TiledSpriteRuntimeObjectRenderer(\n this,\n instanceContainer,\n tiledSpriteObjectData.texture\n );\n this._width = 0;\n this._height = 0;\n this.setWidth(tiledSpriteObjectData.width);\n this.setHeight(tiledSpriteObjectData.height);\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n updateFromObjectData(oldObjectData, newObjectData): boolean {\n if (oldObjectData.texture !== newObjectData.texture) {\n this.setTexture(newObjectData.texture, this.getRuntimeScene());\n }\n if (oldObjectData.width !== newObjectData.width) {\n this.setWidth(newObjectData.width);\n }\n if (oldObjectData.height !== newObjectData.height) {\n this.setHeight(newObjectData.height);\n }\n return true;\n }\n\n getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\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.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n /**\n * Set the X position of the Tiled Sprite object.\n * @param x The new X position.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the Y position of the Tiled Sprite object.\n * @param y The new Y position.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Assign a new texture to the Tiled Sprite object.\n * @param textureName The name of the image texture resource.\n * @param instanceContainer The container in which the texture is used.\n */\n setTexture(\n textureName: string,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): void {\n this._renderer.setTexture(textureName, instanceContainer);\n }\n\n /**\n * Set the angle of the Tiled Sprite object.\n * @param angle The new angle.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Get the width of the Tiled Sprite object.\n * @returns The width of the Tiled Sprite object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Get the height of the Tiled Sprite object.\n * @returns The height of the Tiled Sprite object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Set the width of the Tiled Sprite object.\n * @param width The new width.\n */\n setWidth(width: float): void {\n if (this._width === width) return;\n\n this._width = width;\n this._renderer.setWidth(width);\n this.invalidateHitboxes();\n }\n\n /**\n * Set the height of the Tiled Sprite object.\n * @param height The new height.\n */\n setHeight(height: float): void {\n if (this._height === height) return;\n\n this._height = height;\n this._renderer.setHeight(height);\n this.invalidateHitboxes();\n }\n\n /**\n * Set the size of the Tiled Sprite object.\n * @param width The new width.\n * @param height The new height.\n */\n setSize(width: float, height: float): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n /**\n * Set the offset on the X-axis when displaying the image of the Tiled Sprite object.\n * @param xOffset The new offset on the X-axis.\n */\n setXOffset(xOffset: number): void {\n this._xOffset = xOffset;\n this._renderer.updateXOffset();\n }\n\n /**\n * Set the offset on the Y-axis when displaying the image of the Tiled Sprite object.\n * @param yOffset The new offset on the Y-axis.\n */\n setYOffset(yOffset: number): void {\n this._yOffset = yOffset;\n this._renderer.updateYOffset();\n }\n\n /**\n * Get the offset on the X-axis of the Tiled Sprite object.\n * @returns The offset on the X-axis\n */\n getXOffset(): number {\n return this._xOffset;\n }\n\n /**\n * Get the offset on the Y-axis of the Tiled Sprite object.\n * @returns The offset on the Y-axis\n */\n getYOffset(): number {\n return this._yOffset;\n }\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 getOpacity(): number {\n return this.opacity;\n }\n\n /**\n * Change the tint of the tiled sprite object.\n *\n * @param rgbColor The color, in RGB format (\"128;200;255\").\n */\n setColor(rgbColor: string): void {\n this._renderer.setColor(rgbColor);\n }\n\n /**\n * Get the tint of the tiled sprite object.\n *\n * @returns The color, in RGB format (\"128;200;255\").\n */\n getColor(): string {\n return this._renderer.getColor();\n }\n\n // Implement support for get/set scale:\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = Math.abs(this.getScaleX());\n const scaleY = Math.abs(this.getScaleY());\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n /**\n * Get x-scale of the tiled sprite object.\n */\n getScaleX(): float {\n return this._width / this._renderer.getTextureWidth();\n }\n\n /**\n * Get y-scale of the tiled sprite object.\n */\n getScaleY(): float {\n return this._height / this._renderer.getTextureHeight();\n }\n\n /**\n * Set the tiled sprite object scale.\n * @param newScale The new scale for the tiled sprite object.\n */\n setScale(newScale: float): void {\n this.setWidth(this._renderer.getTextureWidth() * newScale);\n this.setHeight(this._renderer.getTextureHeight() * newScale);\n }\n\n /**\n * Set the tiled sprite object x-scale.\n * @param newScale The new x-scale for the tiled sprite object.\n */\n setScaleX(newScale: float): void {\n this.setWidth(this._renderer.getTextureWidth() * newScale);\n }\n\n /**\n * Set the tiled sprite object y-scale.\n * @param newScale The new y-scale for the tiled sprite object.\n */\n setScaleY(newScale: float): void {\n this.setHeight(this._renderer.getTextureHeight() * newScale);\n }\n }\n gdjs.registerObject(\n 'TiledSpriteObject::TiledSprite',\n gdjs.TiledSpriteRuntimeObject\n );\n}\n"],
|
|
5
|
-
"mappings": "AAIA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["/*\n * GDevelop JS Platform\n * 2013 Florian Rival (Florian.Rival@gmail.com)\n */\nnamespace gdjs {\n /** Initial properties for a Tiled Sprite object */\n export type TiledSpriteObjectDataType = {\n /** Default width of the object, if the instance has no custom width. */\n width: number;\n /** Default height of the object, if the instance has no custom height. */\n height: number;\n texture: string;\n };\n\n export type TiledSpriteObjectData = ObjectData & TiledSpriteObjectDataType;\n\n export type TiledSpriteNetworkSyncDataType = {\n wid: number;\n hei: number;\n xo: number;\n yo: number;\n op: number;\n color: string;\n };\n\n export type TiledSpriteNetworkSyncData = ObjectNetworkSyncData &\n TiledSpriteNetworkSyncDataType;\n\n /**\n * The TiledSpriteRuntimeObject displays a tiled texture.\n */\n export class TiledSpriteRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.Resizable, gdjs.OpacityHandler {\n _xOffset: float = 0;\n _yOffset: float = 0;\n opacity: float = 255;\n\n // Width and height can be stored because they do not depend on the\n // size of the texture being used (contrary to most objects).\n _width: float;\n _height: float;\n\n _renderer: gdjs.TiledSpriteRuntimeObjectRenderer;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param tiledSpriteObjectData The initial properties of the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n tiledSpriteObjectData: TiledSpriteObjectData\n ) {\n super(instanceContainer, tiledSpriteObjectData);\n this._renderer = new gdjs.TiledSpriteRuntimeObjectRenderer(\n this,\n instanceContainer,\n tiledSpriteObjectData.texture\n );\n this._width = 0;\n this._height = 0;\n this.setWidth(tiledSpriteObjectData.width);\n this.setHeight(tiledSpriteObjectData.height);\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n updateFromObjectData(oldObjectData, newObjectData): boolean {\n if (oldObjectData.texture !== newObjectData.texture) {\n this.setTexture(newObjectData.texture, this.getRuntimeScene());\n }\n if (oldObjectData.width !== newObjectData.width) {\n this.setWidth(newObjectData.width);\n }\n if (oldObjectData.height !== newObjectData.height) {\n this.setHeight(newObjectData.height);\n }\n return true;\n }\n\n getNetworkSyncData(): TiledSpriteNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n wid: this.getWidth(),\n hei: this.getHeight(),\n xo: this.getXOffset(),\n yo: this.getYOffset(),\n op: this.getOpacity(),\n color: this.getColor(),\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: TiledSpriteNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n\n // Texture is not synchronized, see if this is asked or not.\n\n if (networkSyncData.wid !== undefined) {\n this.setWidth(networkSyncData.wid);\n }\n if (networkSyncData.hei !== undefined) {\n this.setHeight(networkSyncData.hei);\n }\n if (networkSyncData.xo !== undefined) {\n this.setXOffset(networkSyncData.xo);\n }\n if (networkSyncData.yo !== undefined) {\n this.setYOffset(networkSyncData.yo);\n }\n if (networkSyncData.op !== undefined) {\n this.setOpacity(networkSyncData.op);\n }\n if (networkSyncData.color !== undefined) {\n this.setColor(networkSyncData.color);\n }\n }\n\n getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\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.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n }\n\n /**\n * Set the X position of the Tiled Sprite object.\n * @param x The new X position.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the Y position of the Tiled Sprite object.\n * @param y The new Y position.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Assign a new texture to the Tiled Sprite object.\n * @param textureName The name of the image texture resource.\n * @param instanceContainer The container in which the texture is used.\n */\n setTexture(\n textureName: string,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ): void {\n this._renderer.setTexture(textureName, instanceContainer);\n }\n\n /**\n * Set the angle of the Tiled Sprite object.\n * @param angle The new angle.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Get the width of the Tiled Sprite object.\n * @returns The width of the Tiled Sprite object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Get the height of the Tiled Sprite object.\n * @returns The height of the Tiled Sprite object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Set the width of the Tiled Sprite object.\n * @param width The new width.\n */\n setWidth(width: float): void {\n if (this._width === width) return;\n\n this._width = width;\n this._renderer.setWidth(width);\n this.invalidateHitboxes();\n }\n\n /**\n * Set the height of the Tiled Sprite object.\n * @param height The new height.\n */\n setHeight(height: float): void {\n if (this._height === height) return;\n\n this._height = height;\n this._renderer.setHeight(height);\n this.invalidateHitboxes();\n }\n\n /**\n * Set the size of the Tiled Sprite object.\n * @param width The new width.\n * @param height The new height.\n */\n setSize(width: float, height: float): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n /**\n * Set the offset on the X-axis when displaying the image of the Tiled Sprite object.\n * @param xOffset The new offset on the X-axis.\n */\n setXOffset(xOffset: number): void {\n this._xOffset = xOffset;\n this._renderer.updateXOffset();\n }\n\n /**\n * Set the offset on the Y-axis when displaying the image of the Tiled Sprite object.\n * @param yOffset The new offset on the Y-axis.\n */\n setYOffset(yOffset: number): void {\n this._yOffset = yOffset;\n this._renderer.updateYOffset();\n }\n\n /**\n * Get the offset on the X-axis of the Tiled Sprite object.\n * @returns The offset on the X-axis\n */\n getXOffset(): number {\n return this._xOffset;\n }\n\n /**\n * Get the offset on the Y-axis of the Tiled Sprite object.\n * @returns The offset on the Y-axis\n */\n getYOffset(): number {\n return this._yOffset;\n }\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 getOpacity(): number {\n return this.opacity;\n }\n\n /**\n * Change the tint of the tiled sprite object.\n *\n * @param rgbColor The color, in RGB format (\"128;200;255\").\n */\n setColor(rgbColor: string): void {\n this._renderer.setColor(rgbColor);\n }\n\n /**\n * Get the tint of the tiled sprite object.\n *\n * @returns The color, in RGB format (\"128;200;255\").\n */\n getColor(): string {\n return this._renderer.getColor();\n }\n\n // Implement support for get/set scale:\n\n /**\n * Get the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n *\n * @return the scale of the object (or the geometric mean of the X and Y scale in case they are different).\n */\n getScale(): float {\n const scaleX = Math.abs(this.getScaleX());\n const scaleY = Math.abs(this.getScaleY());\n return scaleX === scaleY ? scaleX : Math.sqrt(scaleX * scaleY);\n }\n\n /**\n * Get x-scale of the tiled sprite object.\n */\n getScaleX(): float {\n return this._width / this._renderer.getTextureWidth();\n }\n\n /**\n * Get y-scale of the tiled sprite object.\n */\n getScaleY(): float {\n return this._height / this._renderer.getTextureHeight();\n }\n\n /**\n * Set the tiled sprite object scale.\n * @param newScale The new scale for the tiled sprite object.\n */\n setScale(newScale: float): void {\n this.setWidth(this._renderer.getTextureWidth() * newScale);\n this.setHeight(this._renderer.getTextureHeight() * newScale);\n }\n\n /**\n * Set the tiled sprite object x-scale.\n * @param newScale The new x-scale for the tiled sprite object.\n */\n setScaleX(newScale: float): void {\n this.setWidth(this._renderer.getTextureWidth() * newScale);\n }\n\n /**\n * Set the tiled sprite object y-scale.\n * @param newScale The new y-scale for the tiled sprite object.\n */\n setScaleY(newScale: float): void {\n this.setHeight(this._renderer.getTextureHeight() * newScale);\n }\n }\n gdjs.registerObject(\n 'TiledSpriteObject::TiledSprite',\n gdjs.TiledSpriteRuntimeObject\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.5)
|
|
2
|
+
|
|
3
|
+
project(TopDownMovementBehavior)
|
|
4
|
+
gd_add_extension_includes()
|
|
5
|
+
|
|
6
|
+
# Defines
|
|
7
|
+
#
|
|
8
|
+
gd_add_extension_definitions(TopDownMovementBehavior)
|
|
9
|
+
|
|
10
|
+
# The targets
|
|
11
|
+
#
|
|
12
|
+
include_directories(.)
|
|
13
|
+
file(
|
|
14
|
+
GLOB
|
|
15
|
+
source_files
|
|
16
|
+
*.cpp
|
|
17
|
+
*.h)
|
|
18
|
+
gd_add_clang_utils(TopDownMovementBehavior "${source_files}")
|
|
19
|
+
gd_add_extension_target(TopDownMovementBehavior "${source_files}")
|
|
20
|
+
|
|
21
|
+
# Linker files for the IDE extension
|
|
22
|
+
#
|
|
23
|
+
gd_extension_link_libraries(TopDownMovementBehavior)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(a){class m extends a.RuntimeBehavior{constructor(e,t,g){super(e,t,g);this._angle=0;this._xVelocity=0;this._yVelocity=0;this._angularSpeed=0;this._leftKey=!1;this._rightKey=!1;this._upKey=!1;this._downKey=!1;this._leftKeyPressedDuration=0;this._rightKeyPressedDuration=0;this._upKeyPressedDuration=0;this._downKeyPressedDuration=0;this._wasStickUsed=!1;this._stickAngle=0;this._stickForce=0;this._temporaryPointForTransformations=[0,0];this._topDownMovementHooks=[];this._allowDiagonals=t.allowDiagonals,this._acceleration=t.acceleration,this._deceleration=t.deceleration,this._maxSpeed=t.maxSpeed,this._angularMaxSpeed=t.angularMaxSpeed,this._rotateObject=t.rotateObject,this._angleOffset=t.angleOffset,this._ignoreDefaultControls=t.ignoreDefaultControls,this.setViewpoint(t.viewpoint,t.customIsometryAngle),this._movementAngleOffset=t.movementAngleOffset||0}updateFromBehaviorData(e,t){return e.allowDiagonals!==t.allowDiagonals&&(this._allowDiagonals=t.allowDiagonals),e.acceleration!==t.acceleration&&(this._acceleration=t.acceleration),e.deceleration!==t.deceleration&&(this._deceleration=t.deceleration),e.maxSpeed!==t.maxSpeed&&(this._maxSpeed=t.maxSpeed),e.angularMaxSpeed!==t.angularMaxSpeed&&(this._angularMaxSpeed=t.angularMaxSpeed),e.rotateObject!==t.rotateObject&&(this._rotateObject=t.rotateObject),e.angleOffset!==t.angleOffset&&(this._angleOffset=t.angleOffset),e.ignoreDefaultControls!==t.ignoreDefaultControls&&(this._ignoreDefaultControls=t.ignoreDefaultControls),(e.platformType!==t.platformType||e.customIsometryAngle!==t.customIsometryAngle)&&this.setViewpoint(t.platformType,t.customIsometryAngle),e.movementAngleOffset!==t.movementAngleOffset&&(this._movementAngleOffset=t.movementAngleOffset),!0}setViewpoint(e,t){e==="PixelIsometry"?this._basisTransformation=new a.TopDownMovementRuntimeBehavior.IsometryTransformation(Math.atan(.5)):e==="TrueIsometry"?this._basisTransformation=new a.TopDownMovementRuntimeBehavior.IsometryTransformation(Math.PI/6):e==="CustomIsometry"?this._basisTransformation=new a.TopDownMovementRuntimeBehavior.IsometryTransformation(t*Math.PI/180):this._basisTransformation=null}setAcceleration(e){this._acceleration=e}getAcceleration(){return this._acceleration}setDeceleration(e){this._deceleration=e}getDeceleration(){return this._deceleration}setMaxSpeed(e){this._maxSpeed=e}getMaxSpeed(){return this._maxSpeed}setAngularMaxSpeed(e){this._angularMaxSpeed=e}getAngularMaxSpeed(){return this._angularMaxSpeed}setAngleOffset(e){this._angleOffset=e}getAngleOffset(){return this._angleOffset}allowDiagonals(e){this._allowDiagonals=e}diagonalsAllowed(){return this._allowDiagonals}setRotateObject(e){this._rotateObject=e}isObjectRotated(){return this._rotateObject}isMoving(){return this._xVelocity!==0||this._yVelocity!==0}getSpeed(){return Math.sqrt(this._xVelocity*this._xVelocity+this._yVelocity*this._yVelocity)}getXVelocity(){return this._xVelocity}setXVelocity(e){this._xVelocity=e}getYVelocity(){return this._yVelocity}setYVelocity(e){this._yVelocity=e}getAngle(){return this._angle}isMovementAngleAround(e,t){return Math.abs(a.evtTools.common.angleDifference(this._angle,e))<=t}setMovementAngleOffset(e){this._movementAngleOffset=e}getMovementAngleOffset(){return this._movementAngleOffset}doStepPreEvents(e){const t=37,g=38,p=39,r=40;this._leftKey|=!this._ignoreDefaultControls&&e.getGame().getInputManager().isKeyPressed(t),this._rightKey|=!this._ignoreDefaultControls&&e.getGame().getInputManager().isKeyPressed(p),this._downKey|=!this._ignoreDefaultControls&&e.getGame().getInputManager().isKeyPressed(r),this._upKey|=!this._ignoreDefaultControls&&e.getGame().getInputManager().isKeyPressed(g);const f=this.owner.getElapsedTime();this._leftKey?this._leftKeyPressedDuration+=f:this._leftKeyPressedDuration=0,this._rightKey?this._rightKeyPressedDuration+=f:this._rightKeyPressedDuration=0,this._downKey?this._downKeyPressedDuration+=f:this._downKeyPressedDuration=0,this._upKey?this._upKeyPressedDuration+=f:this._upKeyPressedDuration=0;let o=-1;this._allowDiagonals?this._upKey&&!this._downKey?this._leftKey&&!this._rightKey?o=5:!this._leftKey&&this._rightKey?o=7:o=6:!this._upKey&&this._downKey?this._leftKey&&!this._rightKey?o=3:!this._leftKey&&this._rightKey?o=1:o=2:this._leftKey&&!this._rightKey?o=4:!this._leftKey&&this._rightKey&&(o=0):(this._upKey&&!this._downKey?o=6:!this._upKey&&this._downKey&&(o=2),this._leftKey&&!this._rightKey&&(this._upKey===this._downKey||this._upKey&&this._leftKeyPressedDuration<this._upKeyPressedDuration||this._downKey&&this._leftKeyPressedDuration<this._downKeyPressedDuration)?o=4:this._rightKey&&!this._leftKey&&(this._upKey===this._downKey||this._upKey&&this._rightKeyPressedDuration<this._upKeyPressedDuration||this._downKey&&this._rightKeyPressedDuration<this._downKeyPressedDuration)&&(o=0));const h=a.TopDownMovementRuntimeBehavior._topDownMovementHookContext;for(const i of this._topDownMovementHooks)h._setDirection(o),o=i.overrideDirection(h);h._setDirection(o);for(const i of this._topDownMovementHooks)i.beforeSpeedUpdate(h);const l=this.owner,c=this.owner.getElapsedTime()/1e3,M=this._xVelocity,v=this._yVelocity;this._wasStickUsed=!1;let _=0,y=0,s=1,n=0;if(o!==-1)_=(o+this._movementAngleOffset/45)*Math.PI/4,y=o*45+this._movementAngleOffset,s=Math.cos(_),n=Math.sin(_),(s===-1||s===1)&&(n=0),(n===-1||n===1)&&(s=0),this._xVelocity+=this._acceleration*c*s,this._yVelocity+=this._acceleration*c*n;else if(this._stickForce!==0){this._allowDiagonals||(this._stickAngle=90*Math.floor((this._stickAngle+45)/90)),y=this._stickAngle+this._movementAngleOffset,_=y*Math.PI/180;const i=this._acceleration*c*this._stickForce;s=Math.cos(_),n=Math.sin(_),(s===-1||s===1)&&(n=0),(n===-1||n===1)&&(s=0),this._xVelocity+=i*s,this._yVelocity+=i*n,this._wasStickUsed=!0,this._stickForce=0}else if(this._yVelocity!==0||this._xVelocity!==0){_=Math.atan2(this._yVelocity,this._xVelocity),y=_*180/Math.PI;const i=this._xVelocity>=0,x=this._yVelocity>=0;s=Math.cos(_),n=Math.sin(_),(s===-1||s===1)&&(n=0),(n===-1||n===1)&&(s=0),this._xVelocity-=this._deceleration*c*s,this._yVelocity-=this._deceleration*c*n,this._xVelocity>0!==i&&(this._xVelocity=0),this._yVelocity>0!==x&&(this._yVelocity=0)}this._xVelocity*this._xVelocity+this._yVelocity*this._yVelocity>this._maxSpeed*this._maxSpeed&&(this._xVelocity=this._maxSpeed*s,this._yVelocity=this._maxSpeed*n),this._angularSpeed=this._angularMaxSpeed;for(const i of this._topDownMovementHooks)i.beforePositionUpdate(h);const u=(M+this._xVelocity)/2*c,d=(v+this._yVelocity)/2*c;if(this._basisTransformation===null)l.setX(l.getX()+u),l.setY(l.getY()+d);else{const i=this._temporaryPointForTransformations;i[0]=u,i[1]=d,this._basisTransformation.toScreen(i,i),l.setX(l.getX()+i[0]),l.setY(l.getY()+i[1])}(this._xVelocity!==0||this._yVelocity!==0)&&(this._angle=y,this._rotateObject&&l.rotateTowardAngle(y+this._angleOffset,this._angularSpeed)),this._leftKey=!1,this._rightKey=!1,this._upKey=!1,this._downKey=!1}simulateControl(e){e==="Left"?this._leftKey=!0:e==="Right"?this._rightKey=!0:e==="Up"?this._upKey=!0:e==="Down"&&(this._downKey=!0)}ignoreDefaultControls(e){this._ignoreDefaultControls=e}simulateLeftKey(){this._leftKey=!0}simulateRightKey(){this._rightKey=!0}simulateUpKey(){this._upKey=!0}simulateDownKey(){this._downKey=!0}simulateStick(e,t){this._stickAngle=e%360,this._stickForce=Math.max(0,Math.min(1,t))}isUsingControl(e){return e==="Left"?this._leftKeyPressedDuration>0:e==="Right"?this._rightKeyPressedDuration>0:e==="Up"?this._upKeyPressedDuration>0:e==="Down"?this._downKeyPressedDuration>0:e==="Stick"?this._wasStickUsed:!1}getLastStickInputAngle(){return this._stickAngle}registerHook(e){this._topDownMovementHooks.push(e)}}a.TopDownMovementRuntimeBehavior=m,function(g){class K{constructor(){this.direction=-1}getDirection(){return this.direction}_setDirection(r){this.direction=r}}g.TopDownMovementHookContext=K,g._topDownMovementHookContext=new a.TopDownMovementRuntimeBehavior.TopDownMovementHookContext;class t{constructor(r){if(r<=0||r>=Math.PI/4)throw new RangeError("An isometry angle must be in ]0; pi/4] but was: "+r);const f=Math.asin(Math.tan(r)),o=Math.sin(f),h=Math.cos(Math.PI/4),l=h;this._screen=[[h,-l],[o*l,o*h]]}toScreen(r,f){const o=this._screen[0][0]*r[0]+this._screen[0][1]*r[1],h=this._screen[1][0]*r[0]+this._screen[1][1]*r[1];f[0]=o,f[1]=h}}g.IsometryTransformation=t}(m=a.TopDownMovementRuntimeBehavior||(a.TopDownMovementRuntimeBehavior={})),a.registerBehavior("TopDownMovementBehavior::TopDownMovementBehavior",a.TopDownMovementRuntimeBehavior)})(gdjs||(gdjs={}));
|
|
1
|
+
var gdjs;(function(l){class p extends l.RuntimeBehavior{constructor(t,e,d){super(t,e,d);this._angle=0;this._xVelocity=0;this._yVelocity=0;this._angularSpeed=0;this._leftKey=!1;this._rightKey=!1;this._upKey=!1;this._downKey=!1;this._leftKeyPressedDuration=0;this._rightKeyPressedDuration=0;this._upKeyPressedDuration=0;this._downKeyPressedDuration=0;this._wasStickUsed=!1;this._stickAngle=0;this._stickForce=0;this._dontClearInputsBetweenFrames=!1;this._ignoreDefaultControlsAsSyncedByNetwork=!1;this._wasLeftKeyPressed=!1;this._wasRightKeyPressed=!1;this._wasUpKeyPressed=!1;this._wasDownKeyPressed=!1;this._temporaryPointForTransformations=[0,0];this._topDownMovementHooks=[];this._allowDiagonals=e.allowDiagonals,this._acceleration=e.acceleration,this._deceleration=e.deceleration,this._maxSpeed=e.maxSpeed,this._angularMaxSpeed=e.angularMaxSpeed,this._rotateObject=e.rotateObject,this._angleOffset=e.angleOffset,this._ignoreDefaultControls=e.ignoreDefaultControls,this.setViewpoint(e.viewpoint,e.customIsometryAngle),this._movementAngleOffset=e.movementAngleOffset||0}getNetworkSyncData(){return this._dontClearInputsBetweenFrames=!1,this._ignoreDefaultControlsAsSyncedByNetwork=!1,{...super.getNetworkSyncData(),props:{a:this._angle,xv:this._xVelocity,yv:this._yVelocity,as:this._angularSpeed,lk:this._wasLeftKeyPressed,rk:this._wasRightKeyPressed,uk:this._wasUpKeyPressed,dk:this._wasDownKeyPressed,wsu:this._wasStickUsed,sa:this._stickAngle,sf:this._stickForce}}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t);const e=t.props;e.a!==void 0&&(this._angle=e.a),e.xv!==void 0&&(this._xVelocity=e.xv),e.yv!==void 0&&(this._yVelocity=e.yv),e.as!==void 0&&(this._angularSpeed=e.as),e.lk!==void 0&&(this._leftKey=e.lk),e.rk!==void 0&&(this._rightKey=e.rk),e.uk!==void 0&&(this._upKey=e.uk),e.dk!==void 0&&(this._downKey=e.dk),e.wsu!==void 0&&(this._wasStickUsed=e.wsu),e.sa!==void 0&&(this._stickAngle=e.sa),e.sf!==void 0&&(this._stickForce=e.sf),this._dontClearInputsBetweenFrames=!0,this._ignoreDefaultControlsAsSyncedByNetwork=!0}updateFromBehaviorData(t,e){return t.allowDiagonals!==e.allowDiagonals&&(this._allowDiagonals=e.allowDiagonals),t.acceleration!==e.acceleration&&(this._acceleration=e.acceleration),t.deceleration!==e.deceleration&&(this._deceleration=e.deceleration),t.maxSpeed!==e.maxSpeed&&(this._maxSpeed=e.maxSpeed),t.angularMaxSpeed!==e.angularMaxSpeed&&(this._angularMaxSpeed=e.angularMaxSpeed),t.rotateObject!==e.rotateObject&&(this._rotateObject=e.rotateObject),t.angleOffset!==e.angleOffset&&(this._angleOffset=e.angleOffset),t.ignoreDefaultControls!==e.ignoreDefaultControls&&(this._ignoreDefaultControls=e.ignoreDefaultControls),(t.platformType!==e.platformType||t.customIsometryAngle!==e.customIsometryAngle)&&this.setViewpoint(e.platformType,e.customIsometryAngle),t.movementAngleOffset!==e.movementAngleOffset&&(this._movementAngleOffset=e.movementAngleOffset),!0}setViewpoint(t,e){t==="PixelIsometry"?this._basisTransformation=new l.TopDownMovementRuntimeBehavior.IsometryTransformation(Math.atan(.5)):t==="TrueIsometry"?this._basisTransformation=new l.TopDownMovementRuntimeBehavior.IsometryTransformation(Math.PI/6):t==="CustomIsometry"?this._basisTransformation=new l.TopDownMovementRuntimeBehavior.IsometryTransformation(e*Math.PI/180):this._basisTransformation=null}setAcceleration(t){this._acceleration=t}getAcceleration(){return this._acceleration}setDeceleration(t){this._deceleration=t}getDeceleration(){return this._deceleration}setMaxSpeed(t){this._maxSpeed=t}getMaxSpeed(){return this._maxSpeed}setAngularMaxSpeed(t){this._angularMaxSpeed=t}getAngularMaxSpeed(){return this._angularMaxSpeed}setAngleOffset(t){this._angleOffset=t}getAngleOffset(){return this._angleOffset}allowDiagonals(t){this._allowDiagonals=t}diagonalsAllowed(){return this._allowDiagonals}setRotateObject(t){this._rotateObject=t}isObjectRotated(){return this._rotateObject}isMoving(){return this._xVelocity!==0||this._yVelocity!==0}getSpeed(){return Math.sqrt(this._xVelocity*this._xVelocity+this._yVelocity*this._yVelocity)}getXVelocity(){return this._xVelocity}setXVelocity(t){this._xVelocity=t}getYVelocity(){return this._yVelocity}setYVelocity(t){this._yVelocity=t}getAngle(){return this._angle}isMovementAngleAround(t,e){return Math.abs(l.evtTools.common.angleDifference(this._angle,t))<=e}setMovementAngleOffset(t){this._movementAngleOffset=t}getMovementAngleOffset(){return this._movementAngleOffset}doStepPreEvents(t){const e=37,d=38,u=39,r=40;this._leftKey||(this._leftKey=!this.shouldIgnoreDefaultControls()&&t.getGame().getInputManager().isKeyPressed(e)),this._rightKey||(this._rightKey=!this.shouldIgnoreDefaultControls()&&t.getGame().getInputManager().isKeyPressed(u)),this._downKey||(this._downKey=!this.shouldIgnoreDefaultControls()&&t.getGame().getInputManager().isKeyPressed(r)),this._upKey||(this._upKey=!this.shouldIgnoreDefaultControls()&&t.getGame().getInputManager().isKeyPressed(d));const _=this.owner.getElapsedTime();this._leftKey?this._leftKeyPressedDuration+=_:this._leftKeyPressedDuration=0,this._rightKey?this._rightKeyPressedDuration+=_:this._rightKeyPressedDuration=0,this._downKey?this._downKeyPressedDuration+=_:this._downKeyPressedDuration=0,this._upKey?this._upKeyPressedDuration+=_:this._upKeyPressedDuration=0;let s=-1;this._allowDiagonals?this._upKey&&!this._downKey?this._leftKey&&!this._rightKey?s=5:!this._leftKey&&this._rightKey?s=7:s=6:!this._upKey&&this._downKey?this._leftKey&&!this._rightKey?s=3:!this._leftKey&&this._rightKey?s=1:s=2:this._leftKey&&!this._rightKey?s=4:!this._leftKey&&this._rightKey&&(s=0):(this._upKey&&!this._downKey?s=6:!this._upKey&&this._downKey&&(s=2),this._leftKey&&!this._rightKey&&(this._upKey===this._downKey||this._upKey&&this._leftKeyPressedDuration<this._upKeyPressedDuration||this._downKey&&this._leftKeyPressedDuration<this._downKeyPressedDuration)?s=4:this._rightKey&&!this._leftKey&&(this._upKey===this._downKey||this._upKey&&this._rightKeyPressedDuration<this._upKeyPressedDuration||this._downKey&&this._rightKeyPressedDuration<this._downKeyPressedDuration)&&(s=0));const h=l.TopDownMovementRuntimeBehavior._topDownMovementHookContext;for(const o of this._topDownMovementHooks)h._setDirection(s),s=o.overrideDirection(h);h._setDirection(s);for(const o of this._topDownMovementHooks)o.beforeSpeedUpdate(h);const a=this.owner,y=this.owner.getElapsedTime()/1e3,w=this._xVelocity,v=this._yVelocity;this._wasStickUsed=!1;let f=0,c=0,i=1,n=0;if(s!==-1)f=(s+this._movementAngleOffset/45)*Math.PI/4,c=s*45+this._movementAngleOffset,i=Math.cos(f),n=Math.sin(f),(i===-1||i===1)&&(n=0),(n===-1||n===1)&&(i=0),this._xVelocity+=this._acceleration*y*i,this._yVelocity+=this._acceleration*y*n;else if(this._stickForce!==0){this._allowDiagonals||(this._stickAngle=90*Math.floor((this._stickAngle+45)/90)),c=this._stickAngle+this._movementAngleOffset,f=c*Math.PI/180;const o=this._acceleration*y*this._stickForce;i=Math.cos(f),n=Math.sin(f),(i===-1||i===1)&&(n=0),(n===-1||n===1)&&(i=0),this._xVelocity+=o*i,this._yVelocity+=o*n,this._wasStickUsed=!0,this._stickForce=0}else if(this._yVelocity!==0||this._xVelocity!==0){f=Math.atan2(this._yVelocity,this._xVelocity),c=f*180/Math.PI;const o=this._xVelocity>=0,M=this._yVelocity>=0;i=Math.cos(f),n=Math.sin(f),(i===-1||i===1)&&(n=0),(n===-1||n===1)&&(i=0),this._xVelocity-=this._deceleration*y*i,this._yVelocity-=this._deceleration*y*n,this._xVelocity>0!==o&&(this._xVelocity=0),this._yVelocity>0!==M&&(this._yVelocity=0)}this._xVelocity*this._xVelocity+this._yVelocity*this._yVelocity>this._maxSpeed*this._maxSpeed&&(this._xVelocity=this._maxSpeed*i,this._yVelocity=this._maxSpeed*n),this._angularSpeed=this._angularMaxSpeed;for(const o of this._topDownMovementHooks)o.beforePositionUpdate(h);const g=(w+this._xVelocity)/2*y,m=(v+this._yVelocity)/2*y;if(this._basisTransformation===null)a.setX(a.getX()+g),a.setY(a.getY()+m);else{const o=this._temporaryPointForTransformations;o[0]=g,o[1]=m,this._basisTransformation.toScreen(o,o),a.setX(a.getX()+o[0]),a.setY(a.getY()+o[1])}(this._xVelocity!==0||this._yVelocity!==0)&&(this._angle=c,this._rotateObject&&a.rotateTowardAngle(c+this._angleOffset,this._angularSpeed)),this._wasLeftKeyPressed=this._leftKey,this._wasRightKeyPressed=this._rightKey,this._wasUpKeyPressed=this._upKey,this._wasDownKeyPressed=this._downKey,this._dontClearInputsBetweenFrames||(this._leftKey=!1,this._rightKey=!1,this._upKey=!1,this._downKey=!1)}simulateControl(t){t==="Left"?this._leftKey=!0:t==="Right"?this._rightKey=!0:t==="Up"?this._upKey=!0:t==="Down"&&(this._downKey=!0)}ignoreDefaultControls(t){this._ignoreDefaultControls=t}shouldIgnoreDefaultControls(){return this._ignoreDefaultControls||this._ignoreDefaultControlsAsSyncedByNetwork}simulateLeftKey(){this._leftKey=!0}simulateRightKey(){this._rightKey=!0}simulateUpKey(){this._upKey=!0}simulateDownKey(){this._downKey=!0}simulateStick(t,e){this._stickAngle=t%360,this._stickForce=Math.max(0,Math.min(1,e))}isUsingControl(t){return t==="Left"?this._leftKeyPressedDuration>0:t==="Right"?this._rightKeyPressedDuration>0:t==="Up"?this._upKeyPressedDuration>0:t==="Down"?this._downKeyPressedDuration>0:t==="Stick"?this._wasStickUsed:!1}getLastStickInputAngle(){return this._stickAngle}registerHook(t){this._topDownMovementHooks.push(t)}}l.TopDownMovementRuntimeBehavior=p,function(d){class K{constructor(){this.direction=-1}getDirection(){return this.direction}_setDirection(r){this.direction=r}}d.TopDownMovementHookContext=K,d._topDownMovementHookContext=new l.TopDownMovementRuntimeBehavior.TopDownMovementHookContext;class e{constructor(r){if(r<=0||r>=Math.PI/4)throw new RangeError("An isometry angle must be in ]0; pi/4] but was: "+r);const _=Math.asin(Math.tan(r)),s=Math.sin(_),h=Math.cos(Math.PI/4),a=h;this._screen=[[h,-a],[s*a,s*h]]}toScreen(r,_){const s=this._screen[0][0]*r[0]+this._screen[0][1]*r[1],h=this._screen[1][0]*r[0]+this._screen[1][1]*r[1];_[0]=s,_[1]=h}}d.IsometryTransformation=e}(p=l.TopDownMovementRuntimeBehavior||(l.TopDownMovementRuntimeBehavior={})),l.registerBehavior("TopDownMovementBehavior::TopDownMovementBehavior",l.TopDownMovementRuntimeBehavior)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=topdownmovementruntimebehavior.js.map
|
package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nGDevelop - Top-down movement Behavior Extension\nCopyright (c) 2010-2016 Florian Rival (Florian.Rival@gmail.com)\n */\n\nnamespace gdjs {\n /**\n * Allows an object to move in 4 or 8 directions, with customizable speed, accelerations\n * and rotation.\n */\n export class TopDownMovementRuntimeBehavior extends gdjs.RuntimeBehavior {\n //Behavior configuration:\n private _allowDiagonals: boolean;\n private _acceleration: float;\n private _deceleration: float;\n private _maxSpeed: float;\n private _angularMaxSpeed: float;\n private _rotateObject: boolean;\n private _angleOffset: float;\n private _ignoreDefaultControls: boolean;\n private _movementAngleOffset: float;\n\n /** The latest angle of movement, in degrees. */\n private _angle: float = 0;\n\n //Attributes used when moving\n private _xVelocity: float = 0;\n private _yVelocity: float = 0;\n private _angularSpeed: float = 0;\n\n // Inputs\n private _leftKey: boolean = false;\n private _rightKey: boolean = false;\n private _upKey: boolean = false;\n private _downKey: boolean = false;\n private _leftKeyPressedDuration: float = 0;\n private _rightKeyPressedDuration: float = 0;\n private _upKeyPressedDuration: float = 0;\n private _downKeyPressedDuration: float = 0;\n private _wasStickUsed: boolean = false;\n private _stickAngle: float = 0;\n private _stickForce: float = 0;\n\n // @ts-ignore The setter \"setViewpoint\" is not detected as an affectation.\n private _basisTransformation: gdjs.TopDownMovementRuntimeBehavior.BasisTransformation | null;\n private _temporaryPointForTransformations: FloatPoint = [0, 0];\n\n private _topDownMovementHooks: Array<\n gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHook\n > = [];\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject\n ) {\n super(instanceContainer, behaviorData, owner);\n this._allowDiagonals = behaviorData.allowDiagonals;\n this._acceleration = behaviorData.acceleration;\n this._deceleration = behaviorData.deceleration;\n this._maxSpeed = behaviorData.maxSpeed;\n this._angularMaxSpeed = behaviorData.angularMaxSpeed;\n this._rotateObject = behaviorData.rotateObject;\n this._angleOffset = behaviorData.angleOffset;\n this._ignoreDefaultControls = behaviorData.ignoreDefaultControls;\n this.setViewpoint(\n behaviorData.viewpoint,\n behaviorData.customIsometryAngle\n );\n this._movementAngleOffset = behaviorData.movementAngleOffset || 0;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.allowDiagonals !== newBehaviorData.allowDiagonals) {\n this._allowDiagonals = newBehaviorData.allowDiagonals;\n }\n if (oldBehaviorData.acceleration !== newBehaviorData.acceleration) {\n this._acceleration = newBehaviorData.acceleration;\n }\n if (oldBehaviorData.deceleration !== newBehaviorData.deceleration) {\n this._deceleration = newBehaviorData.deceleration;\n }\n if (oldBehaviorData.maxSpeed !== newBehaviorData.maxSpeed) {\n this._maxSpeed = newBehaviorData.maxSpeed;\n }\n if (oldBehaviorData.angularMaxSpeed !== newBehaviorData.angularMaxSpeed) {\n this._angularMaxSpeed = newBehaviorData.angularMaxSpeed;\n }\n if (oldBehaviorData.rotateObject !== newBehaviorData.rotateObject) {\n this._rotateObject = newBehaviorData.rotateObject;\n }\n if (oldBehaviorData.angleOffset !== newBehaviorData.angleOffset) {\n this._angleOffset = newBehaviorData.angleOffset;\n }\n if (\n oldBehaviorData.ignoreDefaultControls !==\n newBehaviorData.ignoreDefaultControls\n ) {\n this._ignoreDefaultControls = newBehaviorData.ignoreDefaultControls;\n }\n if (\n oldBehaviorData.platformType !== newBehaviorData.platformType ||\n oldBehaviorData.customIsometryAngle !==\n newBehaviorData.customIsometryAngle\n ) {\n this.setViewpoint(\n newBehaviorData.platformType,\n newBehaviorData.customIsometryAngle\n );\n }\n if (\n oldBehaviorData.movementAngleOffset !==\n newBehaviorData.movementAngleOffset\n ) {\n this._movementAngleOffset = newBehaviorData.movementAngleOffset;\n }\n return true;\n }\n\n setViewpoint(viewpoint: string, customIsometryAngle: float): void {\n if (viewpoint === 'PixelIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n Math.atan(0.5)\n );\n } else if (viewpoint === 'TrueIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n Math.PI / 6\n );\n } else if (viewpoint === 'CustomIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n (customIsometryAngle * Math.PI) / 180\n );\n } else {\n this._basisTransformation = null;\n }\n }\n\n setAcceleration(acceleration: float): void {\n this._acceleration = acceleration;\n }\n\n getAcceleration() {\n return this._acceleration;\n }\n\n setDeceleration(deceleration: float): void {\n this._deceleration = deceleration;\n }\n\n getDeceleration() {\n return this._deceleration;\n }\n\n setMaxSpeed(maxSpeed: float): void {\n this._maxSpeed = maxSpeed;\n }\n\n getMaxSpeed() {\n return this._maxSpeed;\n }\n\n setAngularMaxSpeed(angularMaxSpeed: float): void {\n this._angularMaxSpeed = angularMaxSpeed;\n }\n\n getAngularMaxSpeed() {\n return this._angularMaxSpeed;\n }\n\n setAngleOffset(angleOffset: float): void {\n this._angleOffset = angleOffset;\n }\n\n getAngleOffset() {\n return this._angleOffset;\n }\n\n allowDiagonals(allow: boolean) {\n this._allowDiagonals = allow;\n }\n\n diagonalsAllowed() {\n return this._allowDiagonals;\n }\n\n setRotateObject(allow: boolean): void {\n this._rotateObject = allow;\n }\n\n isObjectRotated(): boolean {\n return this._rotateObject;\n }\n\n isMoving(): boolean {\n return this._xVelocity !== 0 || this._yVelocity !== 0;\n }\n\n getSpeed(): float {\n return Math.sqrt(\n this._xVelocity * this._xVelocity + this._yVelocity * this._yVelocity\n );\n }\n\n getXVelocity(): float {\n return this._xVelocity;\n }\n\n setXVelocity(velocityX: float): void {\n this._xVelocity = velocityX;\n }\n\n getYVelocity(): float {\n return this._yVelocity;\n }\n\n setYVelocity(velocityY: float): void {\n this._yVelocity = velocityY;\n }\n\n getAngle(): float {\n return this._angle;\n }\n\n isMovementAngleAround(degreeAngle: float, tolerance: float) {\n return (\n Math.abs(\n gdjs.evtTools.common.angleDifference(this._angle, degreeAngle)\n ) <= tolerance\n );\n }\n\n setMovementAngleOffset(movementAngleOffset: float): void {\n this._movementAngleOffset = movementAngleOffset;\n }\n\n getMovementAngleOffset() {\n return this._movementAngleOffset;\n }\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {\n const LEFTKEY = 37;\n const UPKEY = 38;\n const RIGHTKEY = 39;\n const DOWNKEY = 40;\n\n //Get the player input:\n // @ts-ignore\n this._leftKey |=\n !this._ignoreDefaultControls &&\n instanceContainer.getGame().getInputManager().isKeyPressed(LEFTKEY);\n // @ts-ignore\n this._rightKey |=\n !this._ignoreDefaultControls &&\n instanceContainer.getGame().getInputManager().isKeyPressed(RIGHTKEY);\n // @ts-ignore\n this._downKey |=\n !this._ignoreDefaultControls &&\n instanceContainer.getGame().getInputManager().isKeyPressed(DOWNKEY);\n // @ts-ignore\n this._upKey |=\n !this._ignoreDefaultControls &&\n instanceContainer.getGame().getInputManager().isKeyPressed(UPKEY);\n\n const elapsedTime = this.owner.getElapsedTime();\n\n if (!this._leftKey) {\n this._leftKeyPressedDuration = 0;\n } else {\n this._leftKeyPressedDuration += elapsedTime;\n }\n if (!this._rightKey) {\n this._rightKeyPressedDuration = 0;\n } else {\n this._rightKeyPressedDuration += elapsedTime;\n }\n if (!this._downKey) {\n this._downKeyPressedDuration = 0;\n } else {\n this._downKeyPressedDuration += elapsedTime;\n }\n if (!this._upKey) {\n this._upKeyPressedDuration = 0;\n } else {\n this._upKeyPressedDuration += elapsedTime;\n }\n\n let direction = -1;\n if (!this._allowDiagonals) {\n if (this._upKey && !this._downKey) {\n direction = 6;\n } else if (!this._upKey && this._downKey) {\n direction = 2;\n }\n // when 2 keys are pressed for diagonals the most recently pressed win\n if (\n this._leftKey &&\n !this._rightKey &&\n (this._upKey === this._downKey ||\n (this._upKey &&\n this._leftKeyPressedDuration < this._upKeyPressedDuration) ||\n (this._downKey &&\n this._leftKeyPressedDuration < this._downKeyPressedDuration))\n ) {\n direction = 4;\n } else if (\n this._rightKey &&\n !this._leftKey &&\n (this._upKey === this._downKey ||\n (this._upKey &&\n this._rightKeyPressedDuration < this._upKeyPressedDuration) ||\n (this._downKey &&\n this._rightKeyPressedDuration < this._downKeyPressedDuration))\n ) {\n direction = 0;\n }\n } else {\n if (this._upKey && !this._downKey) {\n if (this._leftKey && !this._rightKey) {\n direction = 5;\n } else if (!this._leftKey && this._rightKey) {\n direction = 7;\n } else {\n direction = 6;\n }\n } else if (!this._upKey && this._downKey) {\n if (this._leftKey && !this._rightKey) {\n direction = 3;\n } else if (!this._leftKey && this._rightKey) {\n direction = 1;\n } else {\n direction = 2;\n }\n } else {\n if (this._leftKey && !this._rightKey) {\n direction = 4;\n } else if (!this._leftKey && this._rightKey) {\n direction = 0;\n }\n }\n }\n\n const hookContext =\n gdjs.TopDownMovementRuntimeBehavior._topDownMovementHookContext;\n for (const topDownMovementHook of this._topDownMovementHooks) {\n hookContext._setDirection(direction);\n direction = topDownMovementHook.overrideDirection(hookContext);\n }\n hookContext._setDirection(direction);\n for (const topDownMovementHook of this._topDownMovementHooks) {\n topDownMovementHook.beforeSpeedUpdate(hookContext);\n }\n\n const object = this.owner;\n const timeDelta = this.owner.getElapsedTime() / 1000;\n const previousVelocityX = this._xVelocity;\n const previousVelocityY = this._yVelocity;\n this._wasStickUsed = false;\n\n // These 4 values are not actually used.\n // JavaScript doesn't allow to declare\n // variables without assigning them a value.\n let directionInRad = 0;\n let directionInDeg = 0;\n let cos = 1;\n let sin = 0;\n\n // Update the speed of the object:\n if (direction !== -1) {\n directionInRad =\n ((direction + this._movementAngleOffset / 45) * Math.PI) / 4.0;\n directionInDeg = direction * 45 + this._movementAngleOffset;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity += this._acceleration * timeDelta * cos;\n this._yVelocity += this._acceleration * timeDelta * sin;\n } else if (this._stickForce !== 0) {\n if (!this._allowDiagonals) {\n this._stickAngle = 90 * Math.floor((this._stickAngle + 45) / 90);\n }\n directionInDeg = this._stickAngle + this._movementAngleOffset;\n directionInRad = (directionInDeg * Math.PI) / 180;\n const norm = this._acceleration * timeDelta * this._stickForce;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity += norm * cos;\n this._yVelocity += norm * sin;\n\n this._wasStickUsed = true;\n this._stickForce = 0;\n } else if (this._yVelocity !== 0 || this._xVelocity !== 0) {\n directionInRad = Math.atan2(this._yVelocity, this._xVelocity);\n directionInDeg = (directionInRad * 180.0) / Math.PI;\n const xVelocityWasPositive = this._xVelocity >= 0;\n const yVelocityWasPositive = this._yVelocity >= 0;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity -= this._deceleration * timeDelta * cos;\n this._yVelocity -= this._deceleration * timeDelta * sin;\n if (this._xVelocity > 0 !== xVelocityWasPositive) {\n this._xVelocity = 0;\n }\n if (this._yVelocity > 0 !== yVelocityWasPositive) {\n this._yVelocity = 0;\n }\n }\n const squaredSpeed =\n this._xVelocity * this._xVelocity + this._yVelocity * this._yVelocity;\n if (squaredSpeed > this._maxSpeed * this._maxSpeed) {\n this._xVelocity = this._maxSpeed * cos;\n this._yVelocity = this._maxSpeed * sin;\n }\n\n // No acceleration for angular speed for now.\n this._angularSpeed = this._angularMaxSpeed;\n\n for (const topDownMovementHook of this._topDownMovementHooks) {\n topDownMovementHook.beforePositionUpdate(hookContext);\n }\n\n // Position object.\n // This is a Verlet integration considering the acceleration as constant.\n // If you expand deltaX or deltaY, it gives, thanks to the usage of both\n // the old and the new velocity:\n // \"velocity * timeDelta + acceleration * timeDelta^2 / 2\".\n //\n // The acceleration is not actually always constant, particularly with a gamepad,\n // but the error is multiplied by timDelta^3. So, it shouldn't matter much.\n const deltaX = ((previousVelocityX + this._xVelocity) / 2) * timeDelta;\n const deltaY = ((previousVelocityY + this._yVelocity) / 2) * timeDelta;\n if (this._basisTransformation === null) {\n // Top-down viewpoint\n object.setX(object.getX() + deltaX);\n object.setY(object.getY() + deltaY);\n } else {\n // Isometry viewpoint\n const point = this._temporaryPointForTransformations;\n point[0] = deltaX;\n point[1] = deltaY;\n this._basisTransformation.toScreen(point, point);\n object.setX(object.getX() + point[0]);\n object.setY(object.getY() + point[1]);\n }\n\n // Also update angle if needed.\n if (this._xVelocity !== 0 || this._yVelocity !== 0) {\n this._angle = directionInDeg;\n if (this._rotateObject) {\n object.rotateTowardAngle(\n directionInDeg + this._angleOffset,\n this._angularSpeed\n );\n }\n }\n\n this._leftKey = false;\n this._rightKey = false;\n this._upKey = false;\n this._downKey = false;\n }\n\n simulateControl(input: string) {\n if (input === 'Left') {\n this._leftKey = true;\n } else if (input === 'Right') {\n this._rightKey = true;\n } else if (input === 'Up') {\n this._upKey = true;\n } else if (input === 'Down') {\n this._downKey = true;\n }\n }\n\n ignoreDefaultControls(ignore: boolean) {\n this._ignoreDefaultControls = ignore;\n }\n\n simulateLeftKey() {\n this._leftKey = true;\n }\n\n simulateRightKey() {\n this._rightKey = true;\n }\n\n simulateUpKey() {\n this._upKey = true;\n }\n\n simulateDownKey() {\n this._downKey = true;\n }\n\n simulateStick(stickAngle: float, stickForce: float) {\n this._stickAngle = stickAngle % 360;\n this._stickForce = Math.max(0, Math.min(1, stickForce));\n }\n\n /**.\n * @param input The control to be tested [Left,Right,Up,Down,Stick].\n * @returns true if the key was used since the last `doStepPreEvents` call.\n */\n isUsingControl(input: string): boolean {\n if (input === 'Left') {\n return this._leftKeyPressedDuration > 0;\n }\n if (input === 'Right') {\n return this._rightKeyPressedDuration > 0;\n }\n if (input === 'Up') {\n return this._upKeyPressedDuration > 0;\n }\n if (input === 'Down') {\n return this._downKeyPressedDuration > 0;\n }\n if (input === 'Stick') {\n return this._wasStickUsed;\n }\n return false;\n }\n\n getLastStickInputAngle() {\n return this._stickAngle;\n }\n\n /**\n * A hook must typically be registered by a behavior that requires this one\n * in its onCreate function.\n * The hook must stay forever to avoid side effects like a hooks order\n * change. To handle deactivated behavior, the hook can check that its\n * behavior is activated before doing anything.\n */\n registerHook(\n hook: gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHook\n ) {\n this._topDownMovementHooks.push(hook);\n }\n }\n\n export namespace TopDownMovementRuntimeBehavior {\n export class TopDownMovementHookContext {\n private direction: integer = -1;\n\n /**\n * @returns The movement direction from 0 for left to 7 for up-left and\n * -1 for no direction.\n */\n getDirection(): integer {\n return this.direction;\n }\n\n /**\n * This method won't change the direction used by the top-down movement\n * behavior.\n */\n _setDirection(direction: integer): void {\n this.direction = direction;\n }\n }\n\n // This should be a static attribute but it's not possible because of\n // declaration order.\n export const _topDownMovementHookContext = new gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext();\n\n /**\n * Allow extensions relying on the top-down movement to customize its\n * behavior a bit.\n */\n export interface TopDownMovementHook {\n /**\n * Return the direction to use instead of the direction given in\n * parameter.\n */\n overrideDirection(hookContext: TopDownMovementHookContext): integer;\n /**\n * Called before the acceleration and new direction is applied to the\n * velocity.\n */\n beforeSpeedUpdate(hookContext: TopDownMovementHookContext): void;\n /**\n * Called before the velocity is applied to the object position and\n * angle.\n */\n beforePositionUpdate(hookContext: TopDownMovementHookContext): void;\n }\n\n export interface BasisTransformation {\n toScreen(worldPoint: FloatPoint, screenPoint: FloatPoint): void;\n }\n\n export class IsometryTransformation\n implements gdjs.TopDownMovementRuntimeBehavior.BasisTransformation {\n private _screen: float[][];\n\n /**\n * @param angle between the x axis and the projected isometric x axis.\n * @throws if the angle is not in ]0; pi/4[. Note that 0 is a front viewpoint and pi/4 a top-down viewpoint.\n */\n constructor(angle: float) {\n if (angle <= 0 || angle >= Math.PI / 4)\n throw new RangeError(\n 'An isometry angle must be in ]0; pi/4] but was: ' + angle\n );\n\n const alpha = Math.asin(Math.tan(angle));\n const sinA = Math.sin(alpha);\n const cosB = Math.cos(Math.PI / 4);\n const sinB = cosB;\n // https://en.wikipedia.org/wiki/Isometric_projection\n //\n // / 1 0 0 \\ / cosB 0 -sinB \\ / 1 0 0 \\\n // | 0 cosA sinA | | 0 1 0 | | 0 0 -1 |\n // \\ 0 -sinA cosA / \\ sinB 0 cosB / \\ 0 1 0 /\n this._screen = [\n [cosB, -sinB],\n [sinA * sinB, sinA * cosB],\n ];\n }\n\n toScreen(worldPoint: FloatPoint, screenPoint: FloatPoint): void {\n const x =\n this._screen[0][0] * worldPoint[0] +\n this._screen[0][1] * worldPoint[1];\n const y =\n this._screen[1][0] * worldPoint[0] +\n this._screen[1][1] * worldPoint[1];\n screenPoint[0] = x;\n screenPoint[1] = y;\n }\n }\n }\n\n gdjs.registerBehavior(\n 'TopDownMovementBehavior::TopDownMovementBehavior',\n gdjs.TopDownMovementRuntimeBehavior\n );\n}\n"],
|
|
5
|
-
"mappings": "AAKA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["/*\nGDevelop - Top-down movement Behavior Extension\nCopyright (c) 2010-2016 Florian Rival (Florian.Rival@gmail.com)\n */\n\nnamespace gdjs {\n interface TopDownMovementNetworkSyncDataType {\n a: float;\n xv: float;\n yv: float;\n as: float;\n lk: boolean;\n rk: boolean;\n uk: boolean;\n dk: boolean;\n wsu: boolean;\n sa: float;\n sf: float;\n }\n\n export interface TopDownMovementNetworkSyncData\n extends BehaviorNetworkSyncData {\n props: TopDownMovementNetworkSyncDataType;\n }\n /**\n * Allows an object to move in 4 or 8 directions, with customizable speed, accelerations\n * and rotation.\n */\n export class TopDownMovementRuntimeBehavior extends gdjs.RuntimeBehavior {\n //Behavior configuration:\n private _allowDiagonals: boolean;\n private _acceleration: float;\n private _deceleration: float;\n private _maxSpeed: float;\n private _angularMaxSpeed: float;\n private _rotateObject: boolean;\n private _angleOffset: float;\n private _ignoreDefaultControls: boolean;\n private _movementAngleOffset: float;\n\n /** The latest angle of movement, in degrees. */\n private _angle: float = 0;\n\n //Attributes used when moving\n private _xVelocity: float = 0;\n private _yVelocity: float = 0;\n private _angularSpeed: float = 0;\n\n // Inputs\n private _leftKey: boolean = false;\n private _rightKey: boolean = false;\n private _upKey: boolean = false;\n private _downKey: boolean = false;\n private _leftKeyPressedDuration: float = 0;\n private _rightKeyPressedDuration: float = 0;\n private _upKeyPressedDuration: float = 0;\n private _downKeyPressedDuration: float = 0;\n private _wasStickUsed: boolean = false;\n private _stickAngle: float = 0;\n private _stickForce: float = 0;\n\n // This is useful when the object is synchronized by an external source\n // like in a multiplayer game, and we want to be able to predict the\n // movement of the object, even if the inputs are not updated every frame.\n _dontClearInputsBetweenFrames: boolean = false;\n // This is useful when the object is synchronized over the network,\n // object is controlled by the network and we want to ensure the current player\n // cannot control it.\n _ignoreDefaultControlsAsSyncedByNetwork: boolean = false;\n\n // This is useful for extensions that need to know\n // which keys were pressed and doesn't know the mapping\n // done by the scene events.\n private _wasLeftKeyPressed: boolean = false;\n private _wasRightKeyPressed: boolean = false;\n private _wasUpKeyPressed: boolean = false;\n private _wasDownKeyPressed: boolean = false;\n\n // @ts-ignore The setter \"setViewpoint\" is not detected as an affectation.\n private _basisTransformation: gdjs.TopDownMovementRuntimeBehavior.BasisTransformation | null;\n private _temporaryPointForTransformations: FloatPoint = [0, 0];\n\n private _topDownMovementHooks: Array<\n gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHook\n > = [];\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData,\n owner: gdjs.RuntimeObject\n ) {\n super(instanceContainer, behaviorData, owner);\n this._allowDiagonals = behaviorData.allowDiagonals;\n this._acceleration = behaviorData.acceleration;\n this._deceleration = behaviorData.deceleration;\n this._maxSpeed = behaviorData.maxSpeed;\n this._angularMaxSpeed = behaviorData.angularMaxSpeed;\n this._rotateObject = behaviorData.rotateObject;\n this._angleOffset = behaviorData.angleOffset;\n this._ignoreDefaultControls = behaviorData.ignoreDefaultControls;\n this.setViewpoint(\n behaviorData.viewpoint,\n behaviorData.customIsometryAngle\n );\n this._movementAngleOffset = behaviorData.movementAngleOffset || 0;\n }\n\n getNetworkSyncData(): TopDownMovementNetworkSyncData {\n // This method is called, so we are synchronizing this object.\n // Let's clear the inputs between frames as we control it.\n this._dontClearInputsBetweenFrames = false;\n this._ignoreDefaultControlsAsSyncedByNetwork = false;\n\n return {\n ...super.getNetworkSyncData(),\n props: {\n a: this._angle,\n xv: this._xVelocity,\n yv: this._yVelocity,\n as: this._angularSpeed,\n lk: this._wasLeftKeyPressed,\n rk: this._wasRightKeyPressed,\n uk: this._wasUpKeyPressed,\n dk: this._wasDownKeyPressed,\n wsu: this._wasStickUsed,\n sa: this._stickAngle,\n sf: this._stickForce,\n },\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: TopDownMovementNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n\n const behaviorSpecificProps = networkSyncData.props;\n if (behaviorSpecificProps.a !== undefined) {\n this._angle = behaviorSpecificProps.a;\n }\n if (behaviorSpecificProps.xv !== undefined) {\n this._xVelocity = behaviorSpecificProps.xv;\n }\n if (behaviorSpecificProps.yv !== undefined) {\n this._yVelocity = behaviorSpecificProps.yv;\n }\n if (behaviorSpecificProps.as !== undefined) {\n this._angularSpeed = behaviorSpecificProps.as;\n }\n if (behaviorSpecificProps.lk !== undefined) {\n this._leftKey = behaviorSpecificProps.lk;\n }\n if (behaviorSpecificProps.rk !== undefined) {\n this._rightKey = behaviorSpecificProps.rk;\n }\n if (behaviorSpecificProps.uk !== undefined) {\n this._upKey = behaviorSpecificProps.uk;\n }\n if (behaviorSpecificProps.dk !== undefined) {\n this._downKey = behaviorSpecificProps.dk;\n }\n if (behaviorSpecificProps.wsu !== undefined) {\n this._wasStickUsed = behaviorSpecificProps.wsu;\n }\n if (behaviorSpecificProps.sa !== undefined) {\n this._stickAngle = behaviorSpecificProps.sa;\n }\n if (behaviorSpecificProps.sf !== undefined) {\n this._stickForce = behaviorSpecificProps.sf;\n }\n\n // When the object is synchronized from the network, the inputs must not be cleared.\n this._dontClearInputsBetweenFrames = true;\n // And we are not using the default controls.\n this._ignoreDefaultControlsAsSyncedByNetwork = true;\n }\n\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.allowDiagonals !== newBehaviorData.allowDiagonals) {\n this._allowDiagonals = newBehaviorData.allowDiagonals;\n }\n if (oldBehaviorData.acceleration !== newBehaviorData.acceleration) {\n this._acceleration = newBehaviorData.acceleration;\n }\n if (oldBehaviorData.deceleration !== newBehaviorData.deceleration) {\n this._deceleration = newBehaviorData.deceleration;\n }\n if (oldBehaviorData.maxSpeed !== newBehaviorData.maxSpeed) {\n this._maxSpeed = newBehaviorData.maxSpeed;\n }\n if (oldBehaviorData.angularMaxSpeed !== newBehaviorData.angularMaxSpeed) {\n this._angularMaxSpeed = newBehaviorData.angularMaxSpeed;\n }\n if (oldBehaviorData.rotateObject !== newBehaviorData.rotateObject) {\n this._rotateObject = newBehaviorData.rotateObject;\n }\n if (oldBehaviorData.angleOffset !== newBehaviorData.angleOffset) {\n this._angleOffset = newBehaviorData.angleOffset;\n }\n if (\n oldBehaviorData.ignoreDefaultControls !==\n newBehaviorData.ignoreDefaultControls\n ) {\n this._ignoreDefaultControls = newBehaviorData.ignoreDefaultControls;\n }\n if (\n oldBehaviorData.platformType !== newBehaviorData.platformType ||\n oldBehaviorData.customIsometryAngle !==\n newBehaviorData.customIsometryAngle\n ) {\n this.setViewpoint(\n newBehaviorData.platformType,\n newBehaviorData.customIsometryAngle\n );\n }\n if (\n oldBehaviorData.movementAngleOffset !==\n newBehaviorData.movementAngleOffset\n ) {\n this._movementAngleOffset = newBehaviorData.movementAngleOffset;\n }\n return true;\n }\n\n setViewpoint(viewpoint: string, customIsometryAngle: float): void {\n if (viewpoint === 'PixelIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n Math.atan(0.5)\n );\n } else if (viewpoint === 'TrueIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n Math.PI / 6\n );\n } else if (viewpoint === 'CustomIsometry') {\n this._basisTransformation = new gdjs.TopDownMovementRuntimeBehavior.IsometryTransformation(\n (customIsometryAngle * Math.PI) / 180\n );\n } else {\n this._basisTransformation = null;\n }\n }\n\n setAcceleration(acceleration: float): void {\n this._acceleration = acceleration;\n }\n\n getAcceleration() {\n return this._acceleration;\n }\n\n setDeceleration(deceleration: float): void {\n this._deceleration = deceleration;\n }\n\n getDeceleration() {\n return this._deceleration;\n }\n\n setMaxSpeed(maxSpeed: float): void {\n this._maxSpeed = maxSpeed;\n }\n\n getMaxSpeed() {\n return this._maxSpeed;\n }\n\n setAngularMaxSpeed(angularMaxSpeed: float): void {\n this._angularMaxSpeed = angularMaxSpeed;\n }\n\n getAngularMaxSpeed() {\n return this._angularMaxSpeed;\n }\n\n setAngleOffset(angleOffset: float): void {\n this._angleOffset = angleOffset;\n }\n\n getAngleOffset() {\n return this._angleOffset;\n }\n\n allowDiagonals(allow: boolean) {\n this._allowDiagonals = allow;\n }\n\n diagonalsAllowed() {\n return this._allowDiagonals;\n }\n\n setRotateObject(allow: boolean): void {\n this._rotateObject = allow;\n }\n\n isObjectRotated(): boolean {\n return this._rotateObject;\n }\n\n isMoving(): boolean {\n return this._xVelocity !== 0 || this._yVelocity !== 0;\n }\n\n getSpeed(): float {\n return Math.sqrt(\n this._xVelocity * this._xVelocity + this._yVelocity * this._yVelocity\n );\n }\n\n getXVelocity(): float {\n return this._xVelocity;\n }\n\n setXVelocity(velocityX: float): void {\n this._xVelocity = velocityX;\n }\n\n getYVelocity(): float {\n return this._yVelocity;\n }\n\n setYVelocity(velocityY: float): void {\n this._yVelocity = velocityY;\n }\n\n getAngle(): float {\n return this._angle;\n }\n\n isMovementAngleAround(degreeAngle: float, tolerance: float) {\n return (\n Math.abs(\n gdjs.evtTools.common.angleDifference(this._angle, degreeAngle)\n ) <= tolerance\n );\n }\n\n setMovementAngleOffset(movementAngleOffset: float): void {\n this._movementAngleOffset = movementAngleOffset;\n }\n\n getMovementAngleOffset() {\n return this._movementAngleOffset;\n }\n\n doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {\n const LEFTKEY = 37;\n const UPKEY = 38;\n const RIGHTKEY = 39;\n const DOWNKEY = 40;\n\n //Get the player input:\n this._leftKey ||\n (this._leftKey =\n !this.shouldIgnoreDefaultControls() &&\n instanceContainer.getGame().getInputManager().isKeyPressed(LEFTKEY));\n this._rightKey ||\n (this._rightKey =\n !this.shouldIgnoreDefaultControls() &&\n instanceContainer.getGame().getInputManager().isKeyPressed(RIGHTKEY));\n this._downKey ||\n (this._downKey =\n !this.shouldIgnoreDefaultControls() &&\n instanceContainer.getGame().getInputManager().isKeyPressed(DOWNKEY));\n this._upKey ||\n (this._upKey =\n !this.shouldIgnoreDefaultControls() &&\n instanceContainer.getGame().getInputManager().isKeyPressed(UPKEY));\n\n const elapsedTime = this.owner.getElapsedTime();\n\n if (!this._leftKey) {\n this._leftKeyPressedDuration = 0;\n } else {\n this._leftKeyPressedDuration += elapsedTime;\n }\n if (!this._rightKey) {\n this._rightKeyPressedDuration = 0;\n } else {\n this._rightKeyPressedDuration += elapsedTime;\n }\n if (!this._downKey) {\n this._downKeyPressedDuration = 0;\n } else {\n this._downKeyPressedDuration += elapsedTime;\n }\n if (!this._upKey) {\n this._upKeyPressedDuration = 0;\n } else {\n this._upKeyPressedDuration += elapsedTime;\n }\n\n let direction = -1;\n if (!this._allowDiagonals) {\n if (this._upKey && !this._downKey) {\n direction = 6;\n } else if (!this._upKey && this._downKey) {\n direction = 2;\n }\n // when 2 keys are pressed for diagonals the most recently pressed win\n if (\n this._leftKey &&\n !this._rightKey &&\n (this._upKey === this._downKey ||\n (this._upKey &&\n this._leftKeyPressedDuration < this._upKeyPressedDuration) ||\n (this._downKey &&\n this._leftKeyPressedDuration < this._downKeyPressedDuration))\n ) {\n direction = 4;\n } else if (\n this._rightKey &&\n !this._leftKey &&\n (this._upKey === this._downKey ||\n (this._upKey &&\n this._rightKeyPressedDuration < this._upKeyPressedDuration) ||\n (this._downKey &&\n this._rightKeyPressedDuration < this._downKeyPressedDuration))\n ) {\n direction = 0;\n }\n } else {\n if (this._upKey && !this._downKey) {\n if (this._leftKey && !this._rightKey) {\n direction = 5;\n } else if (!this._leftKey && this._rightKey) {\n direction = 7;\n } else {\n direction = 6;\n }\n } else if (!this._upKey && this._downKey) {\n if (this._leftKey && !this._rightKey) {\n direction = 3;\n } else if (!this._leftKey && this._rightKey) {\n direction = 1;\n } else {\n direction = 2;\n }\n } else {\n if (this._leftKey && !this._rightKey) {\n direction = 4;\n } else if (!this._leftKey && this._rightKey) {\n direction = 0;\n }\n }\n }\n\n const hookContext =\n gdjs.TopDownMovementRuntimeBehavior._topDownMovementHookContext;\n for (const topDownMovementHook of this._topDownMovementHooks) {\n hookContext._setDirection(direction);\n direction = topDownMovementHook.overrideDirection(hookContext);\n }\n hookContext._setDirection(direction);\n for (const topDownMovementHook of this._topDownMovementHooks) {\n topDownMovementHook.beforeSpeedUpdate(hookContext);\n }\n\n const object = this.owner;\n const timeDelta = this.owner.getElapsedTime() / 1000;\n const previousVelocityX = this._xVelocity;\n const previousVelocityY = this._yVelocity;\n this._wasStickUsed = false;\n\n // These 4 values are not actually used.\n // JavaScript doesn't allow to declare\n // variables without assigning them a value.\n let directionInRad = 0;\n let directionInDeg = 0;\n let cos = 1;\n let sin = 0;\n\n // Update the speed of the object:\n if (direction !== -1) {\n directionInRad =\n ((direction + this._movementAngleOffset / 45) * Math.PI) / 4.0;\n directionInDeg = direction * 45 + this._movementAngleOffset;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity += this._acceleration * timeDelta * cos;\n this._yVelocity += this._acceleration * timeDelta * sin;\n } else if (this._stickForce !== 0) {\n if (!this._allowDiagonals) {\n this._stickAngle = 90 * Math.floor((this._stickAngle + 45) / 90);\n }\n directionInDeg = this._stickAngle + this._movementAngleOffset;\n directionInRad = (directionInDeg * Math.PI) / 180;\n const norm = this._acceleration * timeDelta * this._stickForce;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity += norm * cos;\n this._yVelocity += norm * sin;\n\n this._wasStickUsed = true;\n this._stickForce = 0;\n } else if (this._yVelocity !== 0 || this._xVelocity !== 0) {\n directionInRad = Math.atan2(this._yVelocity, this._xVelocity);\n directionInDeg = (directionInRad * 180.0) / Math.PI;\n const xVelocityWasPositive = this._xVelocity >= 0;\n const yVelocityWasPositive = this._yVelocity >= 0;\n // This makes the trigo resilient to rounding errors on directionInRad.\n cos = Math.cos(directionInRad);\n sin = Math.sin(directionInRad);\n if (cos === -1 || cos === 1) {\n sin = 0;\n }\n if (sin === -1 || sin === 1) {\n cos = 0;\n }\n this._xVelocity -= this._deceleration * timeDelta * cos;\n this._yVelocity -= this._deceleration * timeDelta * sin;\n if (this._xVelocity > 0 !== xVelocityWasPositive) {\n this._xVelocity = 0;\n }\n if (this._yVelocity > 0 !== yVelocityWasPositive) {\n this._yVelocity = 0;\n }\n }\n const squaredSpeed =\n this._xVelocity * this._xVelocity + this._yVelocity * this._yVelocity;\n if (squaredSpeed > this._maxSpeed * this._maxSpeed) {\n this._xVelocity = this._maxSpeed * cos;\n this._yVelocity = this._maxSpeed * sin;\n }\n\n // No acceleration for angular speed for now.\n this._angularSpeed = this._angularMaxSpeed;\n\n for (const topDownMovementHook of this._topDownMovementHooks) {\n topDownMovementHook.beforePositionUpdate(hookContext);\n }\n\n // Position object.\n // This is a Verlet integration considering the acceleration as constant.\n // If you expand deltaX or deltaY, it gives, thanks to the usage of both\n // the old and the new velocity:\n // \"velocity * timeDelta + acceleration * timeDelta^2 / 2\".\n //\n // The acceleration is not actually always constant, particularly with a gamepad,\n // but the error is multiplied by timDelta^3. So, it shouldn't matter much.\n const deltaX = ((previousVelocityX + this._xVelocity) / 2) * timeDelta;\n const deltaY = ((previousVelocityY + this._yVelocity) / 2) * timeDelta;\n if (this._basisTransformation === null) {\n // Top-down viewpoint\n object.setX(object.getX() + deltaX);\n object.setY(object.getY() + deltaY);\n } else {\n // Isometry viewpoint\n const point = this._temporaryPointForTransformations;\n point[0] = deltaX;\n point[1] = deltaY;\n this._basisTransformation.toScreen(point, point);\n object.setX(object.getX() + point[0]);\n object.setY(object.getY() + point[1]);\n }\n\n // Also update angle if needed.\n if (this._xVelocity !== 0 || this._yVelocity !== 0) {\n this._angle = directionInDeg;\n if (this._rotateObject) {\n object.rotateTowardAngle(\n directionInDeg + this._angleOffset,\n this._angularSpeed\n );\n }\n }\n\n this._wasLeftKeyPressed = this._leftKey;\n this._wasRightKeyPressed = this._rightKey;\n this._wasUpKeyPressed = this._upKey;\n this._wasDownKeyPressed = this._downKey;\n if (!this._dontClearInputsBetweenFrames) {\n this._leftKey = false;\n this._rightKey = false;\n this._upKey = false;\n this._downKey = false;\n }\n }\n\n simulateControl(input: string) {\n if (input === 'Left') {\n this._leftKey = true;\n } else if (input === 'Right') {\n this._rightKey = true;\n } else if (input === 'Up') {\n this._upKey = true;\n } else if (input === 'Down') {\n this._downKey = true;\n }\n }\n\n ignoreDefaultControls(ignore: boolean) {\n this._ignoreDefaultControls = ignore;\n }\n\n shouldIgnoreDefaultControls() {\n return (\n this._ignoreDefaultControls ||\n this._ignoreDefaultControlsAsSyncedByNetwork\n );\n }\n\n simulateLeftKey() {\n this._leftKey = true;\n }\n\n simulateRightKey() {\n this._rightKey = true;\n }\n\n simulateUpKey() {\n this._upKey = true;\n }\n\n simulateDownKey() {\n this._downKey = true;\n }\n\n simulateStick(stickAngle: float, stickForce: float) {\n this._stickAngle = stickAngle % 360;\n this._stickForce = Math.max(0, Math.min(1, stickForce));\n }\n\n /**.\n * @param input The control to be tested [Left,Right,Up,Down,Stick].\n * @returns true if the key was used since the last `doStepPreEvents` call.\n */\n isUsingControl(input: string): boolean {\n if (input === 'Left') {\n return this._leftKeyPressedDuration > 0;\n }\n if (input === 'Right') {\n return this._rightKeyPressedDuration > 0;\n }\n if (input === 'Up') {\n return this._upKeyPressedDuration > 0;\n }\n if (input === 'Down') {\n return this._downKeyPressedDuration > 0;\n }\n if (input === 'Stick') {\n return this._wasStickUsed;\n }\n return false;\n }\n\n getLastStickInputAngle() {\n return this._stickAngle;\n }\n\n /**\n * A hook must typically be registered by a behavior that requires this one\n * in its onCreate function.\n * The hook must stay forever to avoid side effects like a hooks order\n * change. To handle deactivated behavior, the hook can check that its\n * behavior is activated before doing anything.\n */\n registerHook(\n hook: gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHook\n ) {\n this._topDownMovementHooks.push(hook);\n }\n }\n\n export namespace TopDownMovementRuntimeBehavior {\n export class TopDownMovementHookContext {\n private direction: integer = -1;\n\n /**\n * @returns The movement direction from 0 for left to 7 for up-left and\n * -1 for no direction.\n */\n getDirection(): integer {\n return this.direction;\n }\n\n /**\n * This method won't change the direction used by the top-down movement\n * behavior.\n */\n _setDirection(direction: integer): void {\n this.direction = direction;\n }\n }\n\n // This should be a static attribute but it's not possible because of\n // declaration order.\n export const _topDownMovementHookContext = new gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext();\n\n /**\n * Allow extensions relying on the top-down movement to customize its\n * behavior a bit.\n */\n export interface TopDownMovementHook {\n /**\n * Return the direction to use instead of the direction given in\n * parameter.\n */\n overrideDirection(hookContext: TopDownMovementHookContext): integer;\n /**\n * Called before the acceleration and new direction is applied to the\n * velocity.\n */\n beforeSpeedUpdate(hookContext: TopDownMovementHookContext): void;\n /**\n * Called before the velocity is applied to the object position and\n * angle.\n */\n beforePositionUpdate(hookContext: TopDownMovementHookContext): void;\n }\n\n export interface BasisTransformation {\n toScreen(worldPoint: FloatPoint, screenPoint: FloatPoint): void;\n }\n\n export class IsometryTransformation\n implements gdjs.TopDownMovementRuntimeBehavior.BasisTransformation {\n private _screen: float[][];\n\n /**\n * @param angle between the x axis and the projected isometric x axis.\n * @throws if the angle is not in ]0; pi/4[. Note that 0 is a front viewpoint and pi/4 a top-down viewpoint.\n */\n constructor(angle: float) {\n if (angle <= 0 || angle >= Math.PI / 4)\n throw new RangeError(\n 'An isometry angle must be in ]0; pi/4] but was: ' + angle\n );\n\n const alpha = Math.asin(Math.tan(angle));\n const sinA = Math.sin(alpha);\n const cosB = Math.cos(Math.PI / 4);\n const sinB = cosB;\n // https://en.wikipedia.org/wiki/Isometric_projection\n //\n // / 1 0 0 \\ / cosB 0 -sinB \\ / 1 0 0 \\\n // | 0 cosA sinA | | 0 1 0 | | 0 0 -1 |\n // \\ 0 -sinA cosA / \\ sinB 0 cosB / \\ 0 1 0 /\n this._screen = [\n [cosB, -sinB],\n [sinA * sinB, sinA * cosB],\n ];\n }\n\n toScreen(worldPoint: FloatPoint, screenPoint: FloatPoint): void {\n const x =\n this._screen[0][0] * worldPoint[0] +\n this._screen[0][1] * worldPoint[1];\n const y =\n this._screen[1][0] * worldPoint[0] +\n this._screen[1][1] * worldPoint[1];\n screenPoint[0] = x;\n screenPoint[1] = y;\n }\n }\n }\n\n gdjs.registerBehavior(\n 'TopDownMovementBehavior::TopDownMovementBehavior',\n gdjs.TopDownMovementRuntimeBehavior\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1671,7 +1671,7 @@ module.exports = {
|
|
|
1671
1671
|
'Tweens the object opacity from its current value to a new one (note: the value shall stay between 0 and 255).'
|
|
1672
1672
|
),
|
|
1673
1673
|
_(
|
|
1674
|
-
'Tween the opacity of _PARAM0_ to _PARAM3_ with easing _PARAM4_ over _PARAM5_ seconds as _PARAM2_'
|
|
1674
|
+
'Tween the opacity of _PARAM0_ to _PARAM3_ with easing _PARAM4_ over _PARAM5_ seconds as _PARAM2_ and destroy: _PARAM6_'
|
|
1675
1675
|
),
|
|
1676
1676
|
_('Visibility'),
|
|
1677
1677
|
'JsPlatform/Extensions/tween_behavior24.png',
|
|
@@ -1768,7 +1768,7 @@ module.exports = {
|
|
|
1768
1768
|
)
|
|
1769
1769
|
.setDefaultValue('no')
|
|
1770
1770
|
.getCodeExtraInformation()
|
|
1771
|
-
.setFunctionName('
|
|
1771
|
+
.setFunctionName('addColorEffectPropertyTween');
|
|
1772
1772
|
|
|
1773
1773
|
// deprecated
|
|
1774
1774
|
behavior
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(c){const v=new c.Logger("Tween");function _(h){return h.setScaleX&&h.setScaleY&&h.getScaleX&&h.getScaleY}function C(h){return h.setOpacity&&h.getOpacity}function p(h){return h.setColor&&h.getColor}function R(h){return h.setCharacterSize&&h.getCharacterSize}const w=c.evtTools.common.lerp,m=c.evtTools.common.exponentialInterpolation;class P extends c.RuntimeBehavior{constructor(e,t,n){super(e,t,n);this._tweens=new c.evtTools.tween.TweenManager;this._isActive=!0}updateFromBehaviorData(e,t){return!0}doStepPreEvents(e){this._tweens.step()}_deleteFromScene(){this.owner.deleteFromScene(this.owner.getInstanceContainer())}addVariableTween(e,t,n,o,i,s,r){this._tweens.addSimpleTween(e,this.owner.getRuntimeScene(),s/1e3,i,w,n,o,a=>t.setNumber(a),r?()=>this._deleteFromScene():null)}addVariableTween2(e,t,n,o,i,s){this._addVariableTween(e,t,n,o,i/1e3,s,this.owner.getRuntimeScene())}addVariableTween3(e,t,n,o,i,s){this._addVariableTween(e,t,n,o,i,s,this.owner)}_addVariableTween(e,t,n,o,i,s,r){t.getType()==="number"&&this._tweens.addSimpleTween(e,r,i,o,w,t.getValue(),n,a=>t.setNumber(a),s?()=>this._deleteFromScene():null)}addValueTween(e,t,n,o,i,s,r){this._tweens.addSimpleTween(e,this.owner,i,o,s?m:w,t,n,a=>{},r?()=>this._deleteFromScene():null)}addObjectPositionTween(e,t,n,o,i,s){this._addObjectPositionTween(e,t,n,o,i/1e3,s,this.owner.getRuntimeScene())}addObjectPositionTween2(e,t,n,o,i,s){this._addObjectPositionTween(e,t,n,o,i,s,this.owner)}_addObjectPositionTween(e,t,n,o,i,s,r){this._tweens.addMultiTween(e,r,i,o,w,[this.owner.getX(),this.owner.getY()],[t,n],([a,l])=>this.owner.setPosition(a,l),s?()=>this._deleteFromScene():null)}addObjectPositionXTween(e,t,n,o,i){this._addObjectPositionXTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionXTween2(e,t,n,o,i){this._addObjectPositionXTween(e,t,n,o,i,this.owner)}_addObjectPositionXTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,w,this.owner.getX(),t,r=>this.owner.setX(r),i?()=>this._deleteFromScene():null)}addObjectPositionYTween(e,t,n,o,i){this._addObjectPositionYTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionYTween2(e,t,n,o,i){this._addObjectPositionYTween(e,t,n,o,i,this.owner)}_addObjectPositionYTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,w,this.owner.getY(),t,r=>this.owner.setY(r),i?()=>this._deleteFromScene():null)}addObjectPositionZTween(e,t,n,o,i){this._addObjectPositionZTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionZTween2(e,t,n,o,i,s){this._addObjectPositionZTween(t,n,o,i,s,this.owner)}_addObjectPositionZTween(e,t,n,o,i,s){const{owner:r}=this;r instanceof c.RuntimeObject3D&&this._tweens.addSimpleTween(e,s,o,n,w,r.getZ(),t,a=>r.setZ(a),i?()=>this._deleteFromScene():null)}addObjectAngleTween(e,t,n,o,i){this._addObjectAngleTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectAngleTween2(e,t,n,o,i){this._addObjectAngleTween(e,t,n,o,i,this.owner)}_addObjectAngleTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,w,this.owner.getAngle(),t,r=>this.owner.setAngle(r),i?()=>this._deleteFromScene():null)}addObjectRotationXTween(e,t,n,o,i,s){const{owner:r}=this;r instanceof c.RuntimeObject3D&&this._tweens.addSimpleTween(t,this.owner,i,o,w,r.getRotationX(),n,a=>r.setRotationX(a),s?()=>this._deleteFromScene():null)}addObjectRotationYTween(e,t,n,o,i,s){const{owner:r}=this;r instanceof c.RuntimeObject3D&&this._tweens.addSimpleTween(t,this.owner,i,o,w,r.getRotationY(),n,a=>r.setRotationY(a),s?()=>this._deleteFromScene():null)}addObjectScaleTween(e,t,n,o,i,s,r){this._addObjectScaleTween(e,t,n,o,i/1e3,s,r,this.owner.getRuntimeScene(),w)}addObjectScaleTween2(e,t,n,o,i,s,r){this._addObjectScaleTween(e,t,n,o,i,s,r,this.owner,m)}_addObjectScaleTween(e,t,n,o,i,s,r,a,l){const d=this.owner;if(!_(d))return;t<0&&(t=0),n<0&&(n=0);const g=r?([b,T])=>{const f=d.getCenterXInScene(),u=d.getCenterYInScene();d.setScaleX(b),d.setScaleY(T),d.setCenterPositionInScene(f,u)}:([b,T])=>{d.setScaleX(b),d.setScaleY(T)};this._tweens.addMultiTween(e,a,i,o,l,[d.getScaleX(),d.getScaleY()],[t,n],g,s?()=>this._deleteFromScene():null)}addObjectScaleTween3(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o,i,s,this.owner,m);const r=this.owner;if(!_(r))return;const a=c.RuntimeObject3D&&r instanceof c.RuntimeObject3D?r:null,l=s?d=>{const g=r.getCenterXInScene(),b=r.getCenterYInScene(),T=a?a.getCenterZInScene():0;r.setScale(d),r.setCenterXInScene(g),r.setCenterYInScene(b),a&&a.setCenterZInScene(T)}:d=>r.setScale(d);this._tweens.addSimpleTween(e,this.owner,o,n,m,r.getScale(),t,l,i?()=>this._deleteFromScene():null)}addObjectScaleXTween(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene(),w)}addObjectScaleXTween2(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o,i,s,this.owner,m)}_addObjectScaleXTween(e,t,n,o,i,s,r,a){const l=this.owner;if(!_(l))return;const d=s?g=>{const b=l.getCenterXInScene();l.setScaleX(g),l.setCenterXInScene(b)}:g=>l.setScaleX(g);this._tweens.addSimpleTween(e,r,o,n,a,l.getScaleX(),t,d,i?()=>this._deleteFromScene():null)}addObjectScaleYTween(e,t,n,o,i,s){this._addObjectScaleYTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene(),w)}addObjectScaleYTween2(e,t,n,o,i,s){this._addObjectScaleYTween(e,t,n,o,i,s,this.owner,m)}_addObjectScaleYTween(e,t,n,o,i,s,r,a){const l=this.owner;if(!_(l))return;const d=s?g=>{const b=l.getCenterYInScene();l.setScaleY(g),l.setCenterYInScene(b)}:g=>l.setScaleY(g);this._tweens.addSimpleTween(e,r,o,n,a,l.getScaleY(),t,d,i?()=>this._deleteFromScene():null)}addObjectOpacityTween(e,t,n,o,i){this._addObjectOpacityTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectOpacityTween2(e,t,n,o,i){this._addObjectOpacityTween(e,t,n,o,i,this.owner)}_addObjectOpacityTween(e,t,n,o,i,s){const r=this.owner;!C(r)||this._tweens.addSimpleTween(e,s,o,n,w,r.getOpacity(),t,a=>r.setOpacity(a),i?()=>this._deleteFromScene():null)}addNumberEffectPropertyTween(e,t,n,o,i,s,r,a){const l=this.owner.getRendererEffects()[o];l||v.error(`The object "${this.owner.name}" doesn't have any effect called "${o}"`),this._tweens.addSimpleTween(t,this.owner,r,s,w,l?l.getDoubleParameter(i):0,n,d=>{l&&l.updateDoubleParameter(i,d)},a?()=>this._deleteFromScene():null)}addColorEffectPropertyTween(e,t,n,o,i,s,r,a){const l=this.owner.getRendererEffects()[o];l||v.error(`The object "${this.owner.name}" doesn't have any effect called "${o}"`);const d=c.hexNumberToRGB(l?l.getColorParameter(i):0),g=c.rgbOrHexToRGBColor(n);this._tweens.addMultiTween(t,this.owner,r,s,w,c.evtTools.tween.rgbToHsl(d.r,d.g,d.b),c.evtTools.tween.rgbToHsl(g[0],g[1],g[2]),([b,T,f])=>{if(l){const u=c.evtTools.tween.hslToRgb(b,T,f);l.updateColorParameter(i,c.rgbToHexNumber(u[0],u[1],u[2]))}},a?()=>this._deleteFromScene():null)}addObjectColorTween(e,t,n,o,i,s){this._addObjectColorTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene())}addObjectColorTween2(e,t,n,o,i,s=!0){this._addObjectColorTween(e,t,n,o,i,s,this.owner)}_addObjectColorTween(e,t,n,o,i,s,r){const a=this.owner;if(!p(a))return;const l=c.rgbOrHexToRGBColor(a.getColor()),d=c.rgbOrHexToRGBColor(t);let g,b,T;s?(g=c.evtTools.tween.rgbToHsl(l[0],l[1],l[2]),b=c.evtTools.tween.rgbToHsl(d[0],d[1],d[2]),T=([f,u,S])=>{const j=c.evtTools.tween.hslToRgb(f,u,S);a.setColor(Math.floor(j[0])+";"+Math.floor(j[1])+";"+Math.floor(j[2]))}):(g=l,b=d,T=([f,u,S])=>{a.setColor(Math.floor(f)+";"+Math.floor(u)+";"+Math.floor(S))}),this._tweens.addMultiTween(e,r,o,n,w,g,b,T,i?()=>this._deleteFromScene():null)}addObjectColorHSLTween(e,t,n,o,i,s,r,a){this._addObjectColorHSLTween(e,t,n,o,i,s,r/1e3,a,this.owner.getRuntimeScene())}addObjectColorHSLTween2(e,t,n,o,i,s,r,a){this._addObjectColorHSLTween(e,t,n,o,i,s,r,a,this.owner)}_addObjectColorHSLTween(e,t,n,o,i,s,r,a,l){if(!p(this.owner))return;const d=this.owner,g=d.getColor().split(";");if(g.length<3)return;const b=c.evtTools.tween.rgbToHsl(parseFloat(g[0]),parseFloat(g[1]),parseFloat(g[2])),T=n?t:b[0],f=o===-1?b[1]:Math.min(Math.max(o,0),100),u=i===-1?b[2]:Math.min(Math.max(i,0),100);this._tweens.addMultiTween(e,l,r,s,w,b,[T,f,u],([S,j,F])=>{const O=c.evtTools.tween.hslToRgb(S,j,F);d.setColor(Math.floor(O[0])+";"+Math.floor(O[1])+";"+Math.floor(O[2]))},a?()=>this._deleteFromScene():null)}addTextObjectCharacterSizeTween(e,t,n,o,i){this._addTextObjectCharacterSizeTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene(),w)}addTextObjectCharacterSizeTween2(e,t,n,o,i){this._addTextObjectCharacterSizeTween(e,t,n,o,i,this.owner,m)}_addTextObjectCharacterSizeTween(e,t,n,o,i,s,r){const a=this.owner;!R(a)||this._tweens.addSimpleTween(e,s,o,n,r,a.getCharacterSize(),t,l=>a.setCharacterSize(l),i?()=>this._deleteFromScene():null)}addObjectWidthTween(e,t,n,o,i){this._addObjectWidthTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectWidthTween2(e,t,n,o,i){this._addObjectWidthTween(e,t,n,o,i,this.owner)}_addObjectWidthTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,w,this.owner.getWidth(),t,r=>this.owner.setWidth(r),i?()=>this._deleteFromScene():null)}addObjectHeightTween(e,t,n,o,i){this._addObjectHeightTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectHeightTween2(e,t,n,o,i){this._addObjectHeightTween(e,t,n,o,i,this.owner)}_addObjectHeightTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,w,this.owner.getHeight(),t,r=>this.owner.setHeight(r),i?()=>this._deleteFromScene():null)}addObjectDepthTween(e,t,n,o,i){this._addObjectDepthTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectDepthTween2(e,t,n,o,i,s){this._addObjectDepthTween(t,n,o,i,s,this.owner)}_addObjectDepthTween(e,t,n,o,i,s){const{owner:r}=this;r instanceof c.RuntimeObject3D&&this._tweens.addSimpleTween(e,s,o,n,w,r.getDepth(),t,a=>r.setDepth(a),i?()=>this._deleteFromScene():null)}isPlaying(e){return this._tweens.isPlaying(e)}exists(e){return this._tweens.exists(e)}hasFinished(e){return this._tweens.hasFinished(e)}pauseTween(e){this._isActive&&this._tweens.pauseTween(e)}stopTween(e,t){this._isActive&&this._tweens.stopTween(e,t)}resumeTween(e){this._isActive&&this._tweens.resumeTween(e)}removeTween(e){this._tweens.removeTween(e)}getProgress(e){return this._tweens.getProgress(e)}getValue(e){return this._tweens.getValue(e)}onDeActivate(){this._isActive=!1}onActivate(){this._isActive=!0}}c.TweenRuntimeBehavior=P,c.registerBehavior("Tween::TweenBehavior",c.TweenRuntimeBehavior)})(gdjs||(gdjs={}));
|
|
1
|
+
var gdjs;(function(w){const p=new w.Logger("Tween");function O(h){return h.setScaleX&&h.setScaleY&&h.getScaleX&&h.getScaleY}function R(h){return h.setOpacity&&h.getOpacity}function S(h){return h.getZ&&h.setZ}function C(h){return h.setColor&&h.getColor}function F(h){return h.setCharacterSize&&h.getCharacterSize}const g=w.evtTools.common.lerp,m=w.evtTools.common.exponentialInterpolation;class X extends w.RuntimeBehavior{constructor(e,t,n){super(e,t,n);this._tweens=new w.evtTools.tween.TweenManager;this._isActive=!0}updateFromBehaviorData(e,t){return!0}doStepPreEvents(e){this._tweens.step()}_deleteFromScene(){this.owner.deleteFromScene(this.owner.getInstanceContainer())}addVariableTween(e,t,n,o,i,s,r){this._tweens.addSimpleTween(e,this.owner.getRuntimeScene(),s/1e3,i,g,n,o,a=>t.setNumber(a),r?()=>this._deleteFromScene():null)}addVariableTween2(e,t,n,o,i,s){this._addVariableTween(e,t,n,o,i/1e3,s,this.owner.getRuntimeScene())}addVariableTween3(e,t,n,o,i,s){this._addVariableTween(e,t,n,o,i,s,this.owner)}_addVariableTween(e,t,n,o,i,s,r){t.getType()==="number"&&this._tweens.addSimpleTween(e,r,i,o,g,t.getValue(),n,a=>t.setNumber(a),s?()=>this._deleteFromScene():null)}addValueTween(e,t,n,o,i,s,r){this._tweens.addSimpleTween(e,this.owner,i,o,s?m:g,t,n,a=>{},r?()=>this._deleteFromScene():null)}addObjectPositionTween(e,t,n,o,i,s){this._addObjectPositionTween(e,t,n,o,i/1e3,s,this.owner.getRuntimeScene())}addObjectPositionTween2(e,t,n,o,i,s){this._addObjectPositionTween(e,t,n,o,i,s,this.owner)}_addObjectPositionTween(e,t,n,o,i,s,r){this._tweens.addMultiTween(e,r,i,o,g,[this.owner.getX(),this.owner.getY()],[t,n],([a,l])=>this.owner.setPosition(a,l),s?()=>this._deleteFromScene():null)}addObjectPositionXTween(e,t,n,o,i){this._addObjectPositionXTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionXTween2(e,t,n,o,i){this._addObjectPositionXTween(e,t,n,o,i,this.owner)}_addObjectPositionXTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,g,this.owner.getX(),t,r=>this.owner.setX(r),i?()=>this._deleteFromScene():null)}addObjectPositionYTween(e,t,n,o,i){this._addObjectPositionYTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionYTween2(e,t,n,o,i){this._addObjectPositionYTween(e,t,n,o,i,this.owner)}_addObjectPositionYTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,g,this.owner.getY(),t,r=>this.owner.setY(r),i?()=>this._deleteFromScene():null)}addObjectPositionZTween(e,t,n,o,i){this._addObjectPositionZTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectPositionZTween2(e,t,n,o,i,s){this._addObjectPositionZTween(t,n,o,i,s,this.owner)}_addObjectPositionZTween(e,t,n,o,i,s){const{owner:r}=this;!S(r)||this._tweens.addSimpleTween(e,s,o,n,g,r.getZ(),t,a=>r.setZ(a),i?()=>this._deleteFromScene():null)}addObjectAngleTween(e,t,n,o,i){this._addObjectAngleTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectAngleTween2(e,t,n,o,i){this._addObjectAngleTween(e,t,n,o,i,this.owner)}_addObjectAngleTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,g,this.owner.getAngle(),t,r=>this.owner.setAngle(r),i?()=>this._deleteFromScene():null)}addObjectRotationXTween(e,t,n,o,i,s){const{owner:r}=this;!S(r)||this._tweens.addSimpleTween(t,this.owner,i,o,g,r.getRotationX(),n,a=>r.setRotationX(a),s?()=>this._deleteFromScene():null)}addObjectRotationYTween(e,t,n,o,i,s){const{owner:r}=this;!S(r)||this._tweens.addSimpleTween(t,this.owner,i,o,g,r.getRotationY(),n,a=>r.setRotationY(a),s?()=>this._deleteFromScene():null)}addObjectScaleTween(e,t,n,o,i,s,r){this._addObjectScaleTween(e,t,n,o,i/1e3,s,r,this.owner.getRuntimeScene(),g)}addObjectScaleTween2(e,t,n,o,i,s,r){this._addObjectScaleTween(e,t,n,o,i,s,r,this.owner,m)}_addObjectScaleTween(e,t,n,o,i,s,r,a,l){const d=this.owner;if(!O(d))return;t<0&&(t=0),n<0&&(n=0);const c=r?([b,T])=>{const f=d.getCenterXInScene(),u=d.getCenterYInScene();d.setScaleX(b),d.setScaleY(T),d.setCenterPositionInScene(f,u)}:([b,T])=>{d.setScaleX(b),d.setScaleY(T)};this._tweens.addMultiTween(e,a,i,o,l,[d.getScaleX(),d.getScaleY()],[t,n],c,s?()=>this._deleteFromScene():null)}addObjectScaleTween3(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o,i,s,this.owner,m);const r=this.owner;if(!O(r))return;const a=S(r)?r:null,l=s?d=>{const c=r.getCenterXInScene(),b=r.getCenterYInScene(),T=a?a.getCenterZInScene():0;r.setScale(d),r.setCenterXInScene(c),r.setCenterYInScene(b),a&&a.setCenterZInScene(T)}:d=>r.setScale(d);this._tweens.addSimpleTween(e,this.owner,o,n,m,r.getScale(),t,l,i?()=>this._deleteFromScene():null)}addObjectScaleXTween(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene(),g)}addObjectScaleXTween2(e,t,n,o,i,s){this._addObjectScaleXTween(e,t,n,o,i,s,this.owner,m)}_addObjectScaleXTween(e,t,n,o,i,s,r,a){const l=this.owner;if(!O(l))return;const d=s?c=>{const b=l.getCenterXInScene();l.setScaleX(c),l.setCenterXInScene(b)}:c=>l.setScaleX(c);this._tweens.addSimpleTween(e,r,o,n,a,l.getScaleX(),t,d,i?()=>this._deleteFromScene():null)}addObjectScaleYTween(e,t,n,o,i,s){this._addObjectScaleYTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene(),g)}addObjectScaleYTween2(e,t,n,o,i,s){this._addObjectScaleYTween(e,t,n,o,i,s,this.owner,m)}_addObjectScaleYTween(e,t,n,o,i,s,r,a){const l=this.owner;if(!O(l))return;const d=s?c=>{const b=l.getCenterYInScene();l.setScaleY(c),l.setCenterYInScene(b)}:c=>l.setScaleY(c);this._tweens.addSimpleTween(e,r,o,n,a,l.getScaleY(),t,d,i?()=>this._deleteFromScene():null)}addObjectOpacityTween(e,t,n,o,i){this._addObjectOpacityTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectOpacityTween2(e,t,n,o,i){this._addObjectOpacityTween(e,t,n,o,i,this.owner)}_addObjectOpacityTween(e,t,n,o,i,s){const r=this.owner;!R(r)||this._tweens.addSimpleTween(e,s,o,n,g,r.getOpacity(),t,a=>r.setOpacity(a),i?()=>this._deleteFromScene():null)}addNumberEffectPropertyTween(e,t,n,o,i,s,r,a){const l=this.owner.getRendererEffects()[o];l||p.error(`The object "${this.owner.name}" doesn't have any effect called "${o}"`),this._tweens.addSimpleTween(t,this.owner,r,s,g,l?l.getDoubleParameter(i):0,n,d=>{l&&l.updateDoubleParameter(i,d)},a?()=>this._deleteFromScene():null)}addColorEffectPropertyTween(e,t,n,o,i,s,r,a){const l=this.owner.getRendererEffects()[o];l||p.error(`The object "${this.owner.name}" doesn't have any effect called "${o}"`);const d=w.hexNumberToRGB(l?l.getColorParameter(i):0),c=w.rgbOrHexToRGBColor(n);this._tweens.addMultiTween(t,this.owner,r,s,g,w.evtTools.tween.rgbToHsl(d.r,d.g,d.b),w.evtTools.tween.rgbToHsl(c[0],c[1],c[2]),([b,T,f])=>{if(l){const u=w.evtTools.tween.hslToRgb(b,T,f);l.updateColorParameter(i,w.rgbToHexNumber(u[0],u[1],u[2]))}},a?()=>this._deleteFromScene():null)}addObjectColorTween(e,t,n,o,i,s){this._addObjectColorTween(e,t,n,o/1e3,i,s,this.owner.getRuntimeScene())}addObjectColorTween2(e,t,n,o,i,s=!0){this._addObjectColorTween(e,t,n,o,i,s,this.owner)}_addObjectColorTween(e,t,n,o,i,s,r){const a=this.owner;if(!C(a))return;const l=w.rgbOrHexToRGBColor(a.getColor()),d=w.rgbOrHexToRGBColor(t);let c,b,T;s?(c=w.evtTools.tween.rgbToHsl(l[0],l[1],l[2]),b=w.evtTools.tween.rgbToHsl(d[0],d[1],d[2]),T=([f,u,j])=>{const _=w.evtTools.tween.hslToRgb(f,u,j);a.setColor(Math.floor(_[0])+";"+Math.floor(_[1])+";"+Math.floor(_[2]))}):(c=l,b=d,T=([f,u,j])=>{a.setColor(Math.floor(f)+";"+Math.floor(u)+";"+Math.floor(j))}),this._tweens.addMultiTween(e,r,o,n,g,c,b,T,i?()=>this._deleteFromScene():null)}addObjectColorHSLTween(e,t,n,o,i,s,r,a){this._addObjectColorHSLTween(e,t,n,o,i,s,r/1e3,a,this.owner.getRuntimeScene())}addObjectColorHSLTween2(e,t,n,o,i,s,r,a){this._addObjectColorHSLTween(e,t,n,o,i,s,r,a,this.owner)}_addObjectColorHSLTween(e,t,n,o,i,s,r,a,l){if(!C(this.owner))return;const d=this.owner,c=d.getColor().split(";");if(c.length<3)return;const b=w.evtTools.tween.rgbToHsl(parseFloat(c[0]),parseFloat(c[1]),parseFloat(c[2])),T=n?t:b[0],f=o===-1?b[1]:Math.min(Math.max(o,0),100),u=i===-1?b[2]:Math.min(Math.max(i,0),100);this._tweens.addMultiTween(e,l,r,s,g,b,[T,f,u],([j,_,P])=>{const v=w.evtTools.tween.hslToRgb(j,_,P);d.setColor(Math.floor(v[0])+";"+Math.floor(v[1])+";"+Math.floor(v[2]))},a?()=>this._deleteFromScene():null)}addTextObjectCharacterSizeTween(e,t,n,o,i){this._addTextObjectCharacterSizeTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene(),g)}addTextObjectCharacterSizeTween2(e,t,n,o,i){this._addTextObjectCharacterSizeTween(e,t,n,o,i,this.owner,m)}_addTextObjectCharacterSizeTween(e,t,n,o,i,s,r){const a=this.owner;!F(a)||this._tweens.addSimpleTween(e,s,o,n,r,a.getCharacterSize(),t,l=>a.setCharacterSize(l),i?()=>this._deleteFromScene():null)}addObjectWidthTween(e,t,n,o,i){this._addObjectWidthTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectWidthTween2(e,t,n,o,i){this._addObjectWidthTween(e,t,n,o,i,this.owner)}_addObjectWidthTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,g,this.owner.getWidth(),t,r=>this.owner.setWidth(r),i?()=>this._deleteFromScene():null)}addObjectHeightTween(e,t,n,o,i){this._addObjectHeightTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectHeightTween2(e,t,n,o,i){this._addObjectHeightTween(e,t,n,o,i,this.owner)}_addObjectHeightTween(e,t,n,o,i,s){this._tweens.addSimpleTween(e,s,o,n,g,this.owner.getHeight(),t,r=>this.owner.setHeight(r),i?()=>this._deleteFromScene():null)}addObjectDepthTween(e,t,n,o,i){this._addObjectDepthTween(e,t,n,o/1e3,i,this.owner.getRuntimeScene())}addObjectDepthTween2(e,t,n,o,i,s){this._addObjectDepthTween(t,n,o,i,s,this.owner)}_addObjectDepthTween(e,t,n,o,i,s){const{owner:r}=this;!S(r)||this._tweens.addSimpleTween(e,s,o,n,g,r.getDepth(),t,a=>r.setDepth(a),i?()=>this._deleteFromScene():null)}isPlaying(e){return this._tweens.isPlaying(e)}exists(e){return this._tweens.exists(e)}hasFinished(e){return this._tweens.hasFinished(e)}pauseTween(e){this._isActive&&this._tweens.pauseTween(e)}stopTween(e,t){this._isActive&&this._tweens.stopTween(e,t)}resumeTween(e){this._isActive&&this._tweens.resumeTween(e)}removeTween(e){this._tweens.removeTween(e)}getProgress(e){return this._tweens.getProgress(e)}getValue(e){return this._tweens.getValue(e)}onDeActivate(){this._isActive=!1}onActivate(){this._isActive=!0}}w.TweenRuntimeBehavior=X,w.registerBehavior("Tween::TweenBehavior",w.TweenRuntimeBehavior)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=tweenruntimebehavior.js.map
|