gdcore-tools 1.0.6 → 1.0.7
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/GDevelop/ExtLibs/7za.exe +0 -0
- package/GDevelop/ExtLibs/curl.exe +0 -0
- package/GDevelop/scripts/libgettextlib-0-17.dll +0 -0
- package/GDevelop/scripts/libgettextsrc-0-17.dll +0 -0
- package/LICENSE +1 -1
- package/dist/Runtime/AsyncTasksManager.js +5 -0
- package/dist/Runtime/AsyncTasksManager.js.map +7 -0
- package/dist/Runtime/Cordova/config.xml +44 -0
- package/dist/Runtime/Cordova/package.json +22 -0
- package/dist/Runtime/Cordova/www/index.html +45 -0
- package/dist/Runtime/CustomRuntimeObject.js +2 -0
- package/dist/Runtime/CustomRuntimeObject.js.map +7 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +2 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +7 -0
- package/dist/Runtime/Electron/main.js +65 -0
- package/dist/Runtime/Electron/package.json +26 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +2 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +7 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/AmbientLight.js +2 -0
- package/dist/Runtime/Extensions/3D/AmbientLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +2 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js +2 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/ExponentialFog.js +2 -0
- package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +7 -0
- package/dist/Runtime/Extensions/3D/HemisphereLight.js +2 -0
- package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/JsExtension.js +2809 -0
- package/dist/Runtime/Extensions/3D/LinearFog.js +2 -0
- package/dist/Runtime/Extensions/3D/LinearFog.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +2 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Scene3DTools.js +2 -0
- package/dist/Runtime/Extensions/3D/Scene3DTools.js.map +7 -0
- package/dist/Runtime/Extensions/AdMob/JsExtension.js +798 -0
- package/dist/Runtime/Extensions/AdMob/admobtools.js +2 -0
- package/dist/Runtime/Extensions/AdMob/admobtools.js.map +7 -0
- package/dist/Runtime/Extensions/AdvancedWindow/JsExtension.js +719 -0
- package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js +2 -0
- package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js.map +7 -0
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/JsExtension.js +639 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/pixi-multistyle-text/dist/pixi-multistyle-text.umd.js +1 -0
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +756 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/DebuggerTools/JsExtension.js +123 -0
- package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js +2 -0
- package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js.map +7 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/DeviceSensors/JsExtension.js +461 -0
- package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js +2 -0
- package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js.map +7 -0
- package/dist/Runtime/Extensions/DeviceVibration/JsExtension.js +108 -0
- package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js +2 -0
- package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js.map +7 -0
- package/dist/Runtime/Extensions/DialogueTree/JsExtension.js +730 -0
- package/dist/Runtime/Extensions/DialogueTree/bondage.js/dist/bondage.min.js +11 -0
- package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js +3 -0
- package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js.map +7 -0
- package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/JsExtension.js +1197 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +3 -0
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +3 -0
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-adjustment.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-advanced-bloom.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-ascii.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bevel.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bulge-pinch.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-map.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-replace.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-crt.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-dot.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-drop-shadow.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glitch.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glow.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-godray.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-kawase-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-old-film.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-outline.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-pixelate.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-radial-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-reflection.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-rgb-split.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-tilt-shift.js +171 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-twist.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-zoom-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/adjustment/types.d.ts +29 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/advanced-bloom/types.d.ts +30 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/ascii/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bevel/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bloom/types.d.ts +18 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bulge-pinch/types.d.ts +24 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-map/types.d.ts +22 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-overlay/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-replace/types.d.ts +17 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/convolution/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/cross-hatch/types.d.ts +10 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/crt/types.d.ts +35 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/dot/types.d.ts +12 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/drop-shadow/types.d.ts +33 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/emboss/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/glitch/types.d.ts +38 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/glow/types.d.ts +23 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/godray/types.d.ts +27 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/kawase-blur/types.d.ts +15 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/motion-blur/types.d.ts +17 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/multi-color-replace/types.d.ts +18 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/old-film/types.d.ts +33 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/outline/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/pixelate/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/radial-blur/types.d.ts +19 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/reflection/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/rgb-split/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/shockwave/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/simple-lightmap/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/tilt-shift/types.d.ts +19 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/twist/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/zoom-blur/types.d.ts +28 -0
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +589 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +3 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js.map +7 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/FBInstant.d.ts +2 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/JsExtension.js +379 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js +2 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js.map +7 -0
- package/dist/Runtime/Extensions/FileSystem/JsExtension.js +559 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +2 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/firebase.d.ts +10191 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/JsExtension.js +2323 -0
- package/dist/Runtime/Extensions/Inventory/inventory.js +2 -0
- package/dist/Runtime/Extensions/Inventory/inventory.js.map +7 -0
- package/dist/Runtime/Extensions/Inventory/inventorytools.js +2 -0
- package/dist/Runtime/Extensions/Inventory/inventorytools.js.map +7 -0
- package/dist/Runtime/Extensions/JsExtensionTypes.flow.js +34 -0
- package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +299 -0
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +2 -0
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +7 -0
- package/dist/Runtime/Extensions/Leaderboards/sha256.d.ts +234 -0
- package/dist/Runtime/Extensions/Leaderboards/sha256.js +21 -0
- package/dist/Runtime/Extensions/Lighting/JsExtension.js +371 -0
- package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js +40 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +2 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +7 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js +4 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -0
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js +2 -0
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +7 -0
- package/dist/Runtime/Extensions/P2P/JsExtension.js +483 -0
- package/dist/Runtime/Extensions/P2P/peerjs.d.ts +509 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +2 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/pixi-particles-pixi-renderer.min.js +3 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js.map +7 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.wasm +0 -0
- package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +4072 -0
- package/dist/Runtime/Extensions/Physics2Behavior/box2d.d.ts +1804 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js.map +7 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/box2djs/box2d.js +804 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js.map +7 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +218 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +5 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +7 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +2 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +7 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js +10 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js.map +1 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/Screenshot/JsExtension.js +68 -0
- package/dist/Runtime/Extensions/Screenshot/screenshottools.js +2 -0
- package/dist/Runtime/Extensions/Screenshot/screenshottools.js.map +7 -0
- package/dist/Runtime/Extensions/Shopify/shopify-buy.umd.polyfilled.min.js +2 -0
- package/dist/Runtime/Extensions/Shopify/shopifytools.js +2 -0
- package/dist/Runtime/Extensions/Shopify/shopifytools.js.map +7 -0
- package/dist/Runtime/Extensions/SpatialSound/JsExtension.js +92 -0
- package/dist/Runtime/Extensions/SpatialSound/howler.spatial.min.js +2 -0
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js +2 -0
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js.map +7 -0
- package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js +2 -0
- package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js.map +7 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TextInput/JsExtension.js +790 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +1653 -0
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +2 -0
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js +2 -0
- package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +2 -0
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/example/anotherIsland.json +5769 -0
- package/dist/Runtime/Extensions/TileMap/example/island.json +5823 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +25 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts +18 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts +589 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts +5 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts +343 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts +37 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +5 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts +45 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +361 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts +27 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +70 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +56 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts +24 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts +26 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts +21 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/pako/dist/pako.d.ts +166 -0
- package/dist/Runtime/Extensions/TileMap/pako/dist/pako.min.js +2 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/global-pixi-tilemap.d.ts +23 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.d.ts +270 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js +74 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +1087 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.d.ts +839 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.js +5 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.js.map +1 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweentools.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweentools.js.map +7 -0
- package/dist/Runtime/Extensions/Video/JsExtension.js +694 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +7 -0
- package/dist/Runtime/FacebookInstantGames/fbapp-config.json +17 -0
- package/dist/Runtime/FacebookInstantGames/index.html +68 -0
- package/dist/Runtime/Model3DManager.js +2 -0
- package/dist/Runtime/Model3DManager.js.map +7 -0
- package/dist/Runtime/RuntimeCustomObjectLayer.js +2 -0
- package/dist/Runtime/RuntimeCustomObjectLayer.js.map +7 -0
- package/dist/Runtime/RuntimeInstanceContainer.js +2 -0
- package/dist/Runtime/RuntimeInstanceContainer.js.map +7 -0
- package/dist/Runtime/RuntimeLayer.js +2 -0
- package/dist/Runtime/RuntimeLayer.js.map +7 -0
- package/dist/Runtime/affinetransformation.js +2 -0
- package/dist/Runtime/affinetransformation.js.map +7 -0
- package/dist/Runtime/debugger-client/abstract-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/abstract-debugger-client.js.map +7 -0
- package/dist/Runtime/debugger-client/hot-reloader.js +2 -0
- package/dist/Runtime/debugger-client/hot-reloader.js.map +7 -0
- package/dist/Runtime/debugger-client/websocket-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/websocket-debugger-client.js.map +7 -0
- package/dist/Runtime/debugger-client/window-message-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/window-message-debugger-client.js.map +7 -0
- package/dist/Runtime/events-tools/cameratools.js +2 -0
- package/dist/Runtime/events-tools/cameratools.js.map +7 -0
- package/dist/Runtime/events-tools/commontools.js +2 -0
- package/dist/Runtime/events-tools/commontools.js.map +7 -0
- package/dist/Runtime/events-tools/inputtools.js +2 -0
- package/dist/Runtime/events-tools/inputtools.js.map +7 -0
- package/dist/Runtime/events-tools/networktools.js +2 -0
- package/dist/Runtime/events-tools/networktools.js.map +7 -0
- package/dist/Runtime/events-tools/objecttools.js +2 -0
- package/dist/Runtime/events-tools/objecttools.js.map +7 -0
- package/dist/Runtime/events-tools/runtimescenetools.js +2 -0
- package/dist/Runtime/events-tools/runtimescenetools.js.map +7 -0
- package/dist/Runtime/events-tools/soundtools.js +2 -0
- package/dist/Runtime/events-tools/soundtools.js.map +7 -0
- package/dist/Runtime/events-tools/storagetools.js +2 -0
- package/dist/Runtime/events-tools/storagetools.js.map +7 -0
- package/dist/Runtime/events-tools/stringtools.js +3 -0
- package/dist/Runtime/events-tools/stringtools.js.map +7 -0
- package/dist/Runtime/events-tools/variabletools.js +2 -0
- package/dist/Runtime/events-tools/variabletools.js.map +7 -0
- package/dist/Runtime/events-tools/windowtools.js +2 -0
- package/dist/Runtime/events-tools/windowtools.js.map +7 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js +2 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js.map +7 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver.js +16 -0
- package/dist/Runtime/force.js +2 -0
- package/dist/Runtime/force.js.map +7 -0
- package/dist/Runtime/gd.js +2 -0
- package/dist/Runtime/gd.js.map +7 -0
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js +2 -0
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js.map +7 -0
- package/dist/Runtime/howler-sound-manager/howler.min.js +3 -0
- package/dist/Runtime/index.html +55 -0
- package/dist/Runtime/inputmanager.js +2 -0
- package/dist/Runtime/inputmanager.js.map +7 -0
- package/dist/Runtime/jsonmanager.js +2 -0
- package/dist/Runtime/jsonmanager.js.map +7 -0
- package/dist/Runtime/layer.js +2 -0
- package/dist/Runtime/layer.js.map +7 -0
- package/dist/Runtime/libs/CocoonJS/cocoon.min.js +4 -0
- package/dist/Runtime/libs/jshashtable.js +2 -0
- package/dist/Runtime/libs/jshashtable.js.map +7 -0
- package/dist/Runtime/libs/rbush.js +624 -0
- package/dist/Runtime/logger.js +2 -0
- package/dist/Runtime/logger.js.map +7 -0
- package/dist/Runtime/oncetriggers.js +2 -0
- package/dist/Runtime/oncetriggers.js.map +7 -0
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js +1 -0
- package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/ThreeAddons.js +2 -0
- package/dist/Runtime/pixi-renderers/draco/gltf/draco_decoder.wasm +0 -0
- package/dist/Runtime/pixi-renderers/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +15 -0
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-effects-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-effects-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi.js +11 -0
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js +3 -0
- package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/three.js +7 -0
- package/dist/Runtime/polygon.js +2 -0
- package/dist/Runtime/polygon.js.map +7 -0
- package/dist/Runtime/profiler.js +2 -0
- package/dist/Runtime/profiler.js.map +7 -0
- package/dist/Runtime/runtimebehavior.js +2 -0
- package/dist/Runtime/runtimebehavior.js.map +7 -0
- package/dist/Runtime/runtimegame.js +2 -0
- package/dist/Runtime/runtimegame.js.map +7 -0
- package/dist/Runtime/runtimeobject.js +2 -0
- package/dist/Runtime/runtimeobject.js.map +7 -0
- package/dist/Runtime/runtimescene.js +2 -0
- package/dist/Runtime/runtimescene.js.map +7 -0
- package/dist/Runtime/runtimewatermark.js +100 -0
- package/dist/Runtime/runtimewatermark.js.map +7 -0
- package/dist/Runtime/scenestack.js +2 -0
- package/dist/Runtime/scenestack.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-dark-colored.js +2 -0
- package/dist/Runtime/splash/gd-logo-dark-colored.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-dark.js +2 -0
- package/dist/Runtime/splash/gd-logo-dark.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-light-colored.js +2 -0
- package/dist/Runtime/splash/gd-logo-light-colored.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-light.js +2 -0
- package/dist/Runtime/splash/gd-logo-light.js.map +7 -0
- package/dist/Runtime/spriteruntimeobject.js +2 -0
- package/dist/Runtime/spriteruntimeobject.js.map +7 -0
- package/dist/Runtime/timemanager.js +2 -0
- package/dist/Runtime/timemanager.js.map +7 -0
- package/dist/Runtime/timer.js +2 -0
- package/dist/Runtime/timer.js.map +7 -0
- package/dist/Runtime/types/global-pixi.d.ts +22 -0
- package/dist/Runtime/types/global-three-addons.d.ts +9 -0
- package/dist/Runtime/types/global-three.d.ts +3 -0
- package/dist/Runtime/types/global-types.d.ts +61 -0
- package/dist/Runtime/types/howler.d.ts +313 -0
- package/dist/Runtime/types/project-data.d.ts +276 -0
- package/dist/Runtime/variable.js +2 -0
- package/dist/Runtime/variable.js.map +7 -0
- package/dist/Runtime/variablescontainer.js +2 -0
- package/dist/Runtime/variablescontainer.js.map +7 -0
- package/dist/lib/libGD.cjs +22 -0
- package/dist/lib/libGD.wasm +0 -0
- package/dist/loaders.js +1 -0
- package/package.json +24 -10
- package/src/downloadGD.js +0 -70
- package/src/index.js +21 -14
- package/examples/create-objects-from-json/assets/Blank button.png +0 -0
- package/examples/create-objects-from-json/game.json +0 -258
- package/examples/create-objects-from-json/index.js +0 -50
- package/examples/create-objects-from-json/mylist.json +0 -7
- package/examples/export-game/game.json +0 -205
- package/examples/export-game/index.js +0 -13
- package/src/CaseSensitiveSlug.js +0 -34
- package/src/EventsFunctionsExtensionsLoader/LocalEventsFunctionCodeWriter.js +0 -56
- package/src/EventsFunctionsExtensionsLoader/MetadataDeclarationHelpers.js +0 -489
- package/src/EventsFunctionsExtensionsLoader/index.js +0 -451
- package/src/JsExtensionsLoader/LocalJsExtensionsFinder.js +0 -42
- package/src/JsExtensionsLoader/LocalJsExtensionsLoader.js +0 -57
- package/src/JsExtensionsLoader/index.js +0 -101
- package/src/LocalFileSystem.js +0 -158
- package/src/LocalProjectOpener.js +0 -46
- package/src/LocalProjectWriter.js +0 -96
- package/src/MapFor.js +0 -46
- package/src/ObjectSplitter.js +0 -187
- package/src/Serializer.js +0 -35
- package/src/build.js +0 -51
- package/src/runtime-files-list.js +0 -143
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
/**
|
|
3
|
+
* This is a declaration of an extension for GDevelop 5.
|
|
4
|
+
*
|
|
5
|
+
* ℹ️ Changes in this file are watched and automatically imported if the editor
|
|
6
|
+
* is running. You can also manually run `node import-GDJS-Runtime.js` (in newIDE/app/scripts).
|
|
7
|
+
*
|
|
8
|
+
* The file must be named "JsExtension.js", otherwise GDevelop won't load it.
|
|
9
|
+
* ⚠️ If you make a change and the extension is not loaded, open the developer console
|
|
10
|
+
* and search for any errors.
|
|
11
|
+
*
|
|
12
|
+
* More information on https://github.com/4ian/GDevelop/blob/master/newIDE/README-extensions.md
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/*::
|
|
16
|
+
// Import types to allow Flow to do static type checking on this file.
|
|
17
|
+
// Extensions declaration are typed using Flow (like the editor), but the files
|
|
18
|
+
// for the game engine are checked with TypeScript annotations.
|
|
19
|
+
import { type ObjectsRenderingService, type ObjectsEditorService } from '../JsExtensionTypes.flow.js'
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
module.exports = {
|
|
23
|
+
createExtension: function (
|
|
24
|
+
_ /*: (string) => string */,
|
|
25
|
+
gd /*: libGDevelop */
|
|
26
|
+
) {
|
|
27
|
+
const extension = new gd.PlatformExtension();
|
|
28
|
+
extension
|
|
29
|
+
.setExtensionInformation(
|
|
30
|
+
'PlayerAuthentication',
|
|
31
|
+
_('Player Authentication'),
|
|
32
|
+
_('Allow your game to authenticate players.'),
|
|
33
|
+
'Florian Rival',
|
|
34
|
+
'Open source (MIT License)'
|
|
35
|
+
)
|
|
36
|
+
.setExtensionHelpPath('/all-features/player-authentication')
|
|
37
|
+
.setCategory('Players');
|
|
38
|
+
extension
|
|
39
|
+
.addInstructionOrExpressionGroupMetadata(_('Player Authentication'))
|
|
40
|
+
.setIcon('JsPlatform/Extensions/authentication.svg');
|
|
41
|
+
|
|
42
|
+
extension
|
|
43
|
+
.addDependency()
|
|
44
|
+
.setName('InAppBrowser Cordova plugin')
|
|
45
|
+
.setDependencyType('cordova')
|
|
46
|
+
.setExportName('cordova-plugin-inappbrowser');
|
|
47
|
+
|
|
48
|
+
extension
|
|
49
|
+
.addAction(
|
|
50
|
+
'DisplayAuthenticationBanner',
|
|
51
|
+
_('Display authentication banner'),
|
|
52
|
+
_(
|
|
53
|
+
'Display an authentication banner at the top of the game screen, for the player to log in.'
|
|
54
|
+
),
|
|
55
|
+
_('Display an authentication banner'),
|
|
56
|
+
'',
|
|
57
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
58
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
59
|
+
)
|
|
60
|
+
.addCodeOnlyParameter('currentScene', '')
|
|
61
|
+
.setHelpPath('/all-features/player-authentication')
|
|
62
|
+
.getCodeExtraInformation()
|
|
63
|
+
.setIncludeFile(
|
|
64
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
65
|
+
)
|
|
66
|
+
.addIncludeFile(
|
|
67
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
68
|
+
)
|
|
69
|
+
.setFunctionName('gdjs.playerAuthentication.displayAuthenticationBanner');
|
|
70
|
+
|
|
71
|
+
extension
|
|
72
|
+
.addAction(
|
|
73
|
+
'HideAuthenticationBanner',
|
|
74
|
+
_('Hide authentication banner'),
|
|
75
|
+
_(
|
|
76
|
+
'Hide the authentication banner from the top of the game screen.'
|
|
77
|
+
),
|
|
78
|
+
_('Hide the authentication banner'),
|
|
79
|
+
'',
|
|
80
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
81
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
82
|
+
)
|
|
83
|
+
.addCodeOnlyParameter('currentScene', '')
|
|
84
|
+
.setHelpPath('/all-features/player-authentication')
|
|
85
|
+
.getCodeExtraInformation()
|
|
86
|
+
.setIncludeFile(
|
|
87
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
88
|
+
)
|
|
89
|
+
.addIncludeFile(
|
|
90
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
91
|
+
)
|
|
92
|
+
.setFunctionName('gdjs.playerAuthentication.removeAuthenticationBanner');
|
|
93
|
+
|
|
94
|
+
extension
|
|
95
|
+
.addAction(
|
|
96
|
+
'OpenAuthenticationWindow',
|
|
97
|
+
_('Open authentication window'),
|
|
98
|
+
_('Open an authentication window for the player to log in.'),
|
|
99
|
+
_('Open an authentication window'),
|
|
100
|
+
'',
|
|
101
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
102
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
103
|
+
)
|
|
104
|
+
.addCodeOnlyParameter('currentScene', '')
|
|
105
|
+
.setHelpPath('/all-features/player-authentication')
|
|
106
|
+
.getCodeExtraInformation()
|
|
107
|
+
.setIncludeFile(
|
|
108
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
109
|
+
)
|
|
110
|
+
.addIncludeFile(
|
|
111
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
112
|
+
)
|
|
113
|
+
.setFunctionName('gdjs.playerAuthentication.openAuthenticationWindow');
|
|
114
|
+
|
|
115
|
+
extension
|
|
116
|
+
.addCondition(
|
|
117
|
+
'IsAuthenticationWindowOpen',
|
|
118
|
+
_('Authentication window is open'),
|
|
119
|
+
_('Check if the authentication window is open.'),
|
|
120
|
+
_('Authentication window is open'),
|
|
121
|
+
'',
|
|
122
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
123
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
124
|
+
)
|
|
125
|
+
.getCodeExtraInformation()
|
|
126
|
+
.setIncludeFile(
|
|
127
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
128
|
+
)
|
|
129
|
+
.addIncludeFile(
|
|
130
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
131
|
+
)
|
|
132
|
+
.setFunctionName('gdjs.playerAuthentication.isAuthenticationWindowOpen');
|
|
133
|
+
|
|
134
|
+
extension
|
|
135
|
+
.addAction(
|
|
136
|
+
'LogOut',
|
|
137
|
+
_('Log out the player'),
|
|
138
|
+
_('Log out the player.'),
|
|
139
|
+
_('Log out the player'),
|
|
140
|
+
'',
|
|
141
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
142
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
143
|
+
)
|
|
144
|
+
.addCodeOnlyParameter('currentScene', '')
|
|
145
|
+
.setHelpPath('/all-features/player-authentication')
|
|
146
|
+
.getCodeExtraInformation()
|
|
147
|
+
.setIncludeFile(
|
|
148
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
149
|
+
)
|
|
150
|
+
.addIncludeFile(
|
|
151
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
152
|
+
)
|
|
153
|
+
.setFunctionName('gdjs.playerAuthentication.logout');
|
|
154
|
+
|
|
155
|
+
extension
|
|
156
|
+
.addStrExpression(
|
|
157
|
+
'Username',
|
|
158
|
+
_('Username'),
|
|
159
|
+
_('Get the username of the authenticated player.'),
|
|
160
|
+
'',
|
|
161
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
162
|
+
)
|
|
163
|
+
.getCodeExtraInformation()
|
|
164
|
+
.setIncludeFile(
|
|
165
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
166
|
+
)
|
|
167
|
+
.addIncludeFile(
|
|
168
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
169
|
+
)
|
|
170
|
+
.setFunctionName('gdjs.playerAuthentication.getUsername');
|
|
171
|
+
|
|
172
|
+
extension
|
|
173
|
+
.addCondition(
|
|
174
|
+
'IsPlayerAuthenticated',
|
|
175
|
+
_('Player is authenticated'),
|
|
176
|
+
_('Check if the player is authenticated.'),
|
|
177
|
+
_('Player is authenticated'),
|
|
178
|
+
'',
|
|
179
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
180
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
181
|
+
)
|
|
182
|
+
.getCodeExtraInformation()
|
|
183
|
+
.setIncludeFile(
|
|
184
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
185
|
+
)
|
|
186
|
+
.addIncludeFile(
|
|
187
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
188
|
+
)
|
|
189
|
+
.setFunctionName('gdjs.playerAuthentication.isAuthenticated');
|
|
190
|
+
|
|
191
|
+
extension
|
|
192
|
+
.addCondition(
|
|
193
|
+
'HasPlayerLoggedIn',
|
|
194
|
+
_('Player has logged in'),
|
|
195
|
+
_('Check if the player has just logged in.'),
|
|
196
|
+
_('Player has logged in'),
|
|
197
|
+
'',
|
|
198
|
+
'JsPlatform/Extensions/authentication.svg',
|
|
199
|
+
'JsPlatform/Extensions/authentication.svg'
|
|
200
|
+
)
|
|
201
|
+
.getCodeExtraInformation()
|
|
202
|
+
.setIncludeFile(
|
|
203
|
+
'Extensions/PlayerAuthentication/playerauthenticationcomponents.js'
|
|
204
|
+
)
|
|
205
|
+
.addIncludeFile(
|
|
206
|
+
'Extensions/PlayerAuthentication/playerauthenticationtools.js'
|
|
207
|
+
)
|
|
208
|
+
.setFunctionName('gdjs.playerAuthentication.hasLoggedIn');
|
|
209
|
+
|
|
210
|
+
return extension;
|
|
211
|
+
},
|
|
212
|
+
runExtensionSanityTests: function (
|
|
213
|
+
gd /*: libGDevelop */,
|
|
214
|
+
extension /*: gdPlatformExtension*/
|
|
215
|
+
) {
|
|
216
|
+
return [];
|
|
217
|
+
},
|
|
218
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var gdjs;(y=>{const d=new y.Logger("Player Authentication");let m;(a=>{const u=({platform:o,isGameRegistered:t})=>t?{title:"Logging in...",text1:o==="cordova"?"One moment, we're opening a window for you to log in.":"One moment, we're opening a new page with your web browser for you to log in.",text2:"If the window did not open, please check your pop-up blocker and click the button below to try again."}:{title:"Publish your game!",text1:"GDevelop's player accounts are only available for published games.",text2:"Click the button below to learn how to publish your game then try again."};a.computeAuthenticationContainer=function(o){const t=document.createElement("div");t.id="authentication-root-container",t.style.position="relative",t.style.backgroundColor="rgba(14, 6, 45, 0.5)",t.style.opacity="1",t.style.width="100%",t.style.height="100%",t.style.zIndex="2",t.style.pointerEvents="all";const i=document.createElement("div");i.id="authentication-frame-container",i.style.backgroundColor="#FFFFFF",i.style.position="absolute",i.style.top="16px",i.style.bottom="16px",i.style.left="16px",i.style.right="16px",i.style.borderRadius="8px",i.style.boxShadow="0px 4px 4px rgba(0, 0, 0, 0.25)",i.style.padding="16px";const l=document.createElement("div");l.style.cursor="pointer",l.style.display="flex",l.style.justifyContent="right",l.style.alignItems="center",l.style.zIndex="3",r(l,o);const e=document.createElement("img");e.setAttribute("width","15px"),e.setAttribute("src","data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwIDAgOCA4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuODUzNTUgMC4xNDY0NDdDOC4wNDg4MiAwLjM0MTcwOSA4LjA0ODgyIDAuNjU4MjkxIDcuODUzNTUgMC44NTM1NTNMMC44NTM1NTMgNy44NTM1NUMwLjY1ODI5MSA4LjA0ODgyIDAuMzQxNzA5IDguMDQ4ODIgMC4xNDY0NDcgNy44NTM1NUMtMC4wNDg4MTU1IDcuNjU4MjkgLTAuMDQ4ODE1NSA3LjM0MTcxIDAuMTQ2NDQ3IDcuMTQ2NDVMNy4xNDY0NSAwLjE0NjQ0N0M3LjM0MTcxIC0wLjA0ODgxNTUgNy42NTgyOSAtMC4wNDg4MTU1IDcuODUzNTUgMC4xNDY0NDdaIiBmaWxsPSIjMUQxRDI2Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMC4xNDY0NDcgMC4xNDY0NDdDMC4zNDE3MDkgLTAuMDQ4ODE1NSAwLjY1ODI5MSAtMC4wNDg4MTU1IDAuODUzNTUzIDAuMTQ2NDQ3TDcuODUzNTUgNy4xNDY0NUM4LjA0ODgyIDcuMzQxNzEgOC4wNDg4MiA3LjY1ODI5IDcuODUzNTUgNy44NTM1NUM3LjY1ODI5IDguMDQ4ODIgNy4zNDE3MSA4LjA0ODgyIDcuMTQ2NDUgNy44NTM1NUwwLjE0NjQ0NyAwLjg1MzU1M0MtMC4wNDg4MTU1IDAuNjU4MjkxIC0wLjA0ODgxNTUgMC4zNDE3MDkgMC4xNDY0NDcgMC4xNDY0NDdaIiBmaWxsPSIjMUQxRDI2Ii8+Cjwvc3ZnPgo="),l.appendChild(e);const n=document.createElement("div");n.id="authentication-container-loader",n.style.display="flex",n.style.flexDirection="column",n.style.height="100%",n.style.width="100%",n.style.justifyContent="center",n.style.alignItems="center";const c=document.createElement("img");c.setAttribute("width","28px"),c.setAttribute("src","data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iYW5pbWF0ZS1zcGluIC1tbC0xIG1yLTMgaC01IHctNSB0ZXh0LXdoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CjxjaXJjbGUgb3BhY2l0eT0nMC4yNScgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSI0Ij48L2NpcmNsZT4KPHBhdGggb3BhY2l0eT0nMC43NScgZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNCAxMmE4IDggMCAwMTgtOFYwQzUuMzczIDAgMCA1LjM3MyAwIDEyaDR6bTIgNS4yOTFBNy45NjIgNy45NjIgMCAwMTQgMTJIMGMwIDMuMDQyIDEuMTM1IDUuODI0IDMgNy45MzhsMy0yLjY0N3oiPjwvcGF0aD4KPC9zdmc+"),c.style.marginTop="50px";try{c.animate([{transform:"rotate(0deg)"},{transform:"rotate(359deg)"}],{duration:3e3,iterations:1/0})}catch{d.warn("Animation not supported, loader will be fixed.")}n.appendChild(c);const s=document.createElement("div");return s.style.display="flex",s.style.flexDirection="column",s.style.height="100%",s.style.width="100%",s.style.justifyContent="stretch",s.style.alignItems="stretch",s.style.display="none",i.appendChild(l),i.appendChild(n),i.appendChild(s),t.appendChild(i),{rootContainer:t,loaderContainer:n,iframeContainer:s}},a.displayIframeInsideAuthenticationContainer=(o,t,i,l)=>{const e=document.createElement("iframe");e.setAttribute("sandbox","allow-forms allow-modals allow-orientation-lock allow-popups allow-same-origin allow-scripts"),e.addEventListener("load",()=>{o.style.display="flex",t.style.display="none"}),e.addEventListener("loaderror",()=>{(0,a.addAuthenticationUrlToTextsContainer)(()=>{o.removeChild(e),o.style.display="none",t.style.display="flex",(0,a.displayIframeInsideAuthenticationContainer)(o,t,i,l)},i)}),e.src=l,e.style.flex="1",e.style.border="0",o.appendChild(e)},a.addAuthenticationTextsToLoadingContainer=(o,t,i,l)=>{const e=document.createElement("div");e.id="authentication-container-texts",e.style.display="flex",e.style.flexDirection="column",e.style.width="100%",e.style.justifyContent="center",e.style.alignItems="center",e.style.position="relative",e.style.zIndex="3",e.style.fontSize="11pt",e.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';const n=u({platform:t,isGameRegistered:i}),c=document.createElement("h1");c.innerText=n.title,c.style.fontSize="20pt",c.style.fontWeight="bold";const s=document.createElement("p");s.innerText=n.text1;const D=document.createElement("p");if(D.innerText=n.text2,e.appendChild(c),e.appendChild(s),e.appendChild(D),!i&&(o.innerHTML="",l)){const M=document.createElement("a");r(M,l),M.innerText="How to publish my game",M.style.color="#0078d4",M.style.textDecoration="none",M.style.textDecoration="underline",M.style.cursor="pointer",e.appendChild(M)}return o.prepend(e),e},a.addAuthenticationUrlToTextsContainer=(o,t)=>{const i=document.createElement("a");r(i,o),i.innerText="Try again",i.style.color="#0078d4",i.style.textDecoration="none",i.style.textDecoration="underline",i.style.cursor="pointer",t.appendChild(i)},a.computeDismissableBanner=function(o){const t=document.createElement("div");t.id="authenticated-banner",t.style.position="absolute",t.style.pointerEvents="all",t.style.backgroundColor="#0E062D",t.style.top="0px",t.style.height="48px",t.style.left="0px",t.style.width="100%",t.style.padding="6px 16px",t.style.zIndex="1",t.style.display="flex",t.style.flexDirection="row-reverse",t.style.justifyContent="space-between",t.style.alignItems="center",t.style.boxShadow="0px 4px 4px rgba(0, 0, 0, 0.25)",t.style.fontSize="11pt",t.style.color="#FFFFFF",t.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';const i=document.createElement("div");i.style.cursor="pointer",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",i.style.zIndex="3",i.style.marginRight="32px",i.style.height="100%",r(i,o);const l=document.createElement("img");return l.setAttribute("width","30px"),l.setAttribute("src","data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzLjc1IDguMDEyNUwyMS45ODc1IDYuMjVMMTUgMTMuMjM3NUw4LjAxMjUgNi4yNUw2LjI1IDguMDEyNUwxMy4yMzc1IDE1TDYuMjUgMjEuOTg3NUw4LjAxMjUgMjMuNzVMMTUgMTYuNzYyNUwyMS45ODc1IDIzLjc1TDIzLjc1IDIxLjk4NzVMMTYuNzYyNSAxNUwyMy43NSA4LjAxMjVaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"),i.appendChild(l),t.appendChild(i),t},a.computeAuthenticatedBanner=function(o,t,i){const l=(0,a.computeDismissableBanner)(t),e=i||"Anonymous",n=document.createElement("div"),c=document.createElement("p");c.id="loggedText",c.innerHTML=`<img style="margin-right:4px" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K" />
|
|
2
|
+
Logged as ${e}`,c.style.margin="0px";const s=document.createElement("p");return s.id="changeAccountText",s.innerText="Click here to switch to another account.",s.style.margin="0px",s.style.marginTop="4px",s.style.textDecoration="underline",s.style.cursor="pointer",r(s,o),n.appendChild(c),n.appendChild(s),l.appendChild(n),l},a.computeNotAuthenticatedBanner=function(o,t){const i=(0,a.computeDismissableBanner)(t),l=document.createElement("div"),e=document.createElement("p");e.id="loggedText",e.innerHTML="You are not authenticated.",e.style.margin="0px";const n=document.createElement("p");return n.id="changeAccountText",n.innerText="Click here to log in.",n.style.margin="0px",n.style.marginTop="4px",n.style.textDecoration="underline",n.style.cursor="pointer",r(n,o),l.appendChild(e),l.appendChild(n),i.appendChild(l),i},a.displayLoggedInNotification=function(o,t){(0,a.showNotification)(o,"authenticated-notification",`<img style="margin-right:4px" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K" />
|
|
3
|
+
Logged as ${t}`,"success")},a.displayLoggedOutNotification=function(o){(0,a.showNotification)(o,"authenticated-notification",`<img style="margin-right:4px" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K" />
|
|
4
|
+
Logged out`,"success")},a.displayErrorNotification=function(o){(0,a.showNotification)(o,"error-notification","An error occurred while authenticating, please try again.","error")},a.showNotification=function(o,t,i,l){const e=document.createElement("div");e.id=t,e.style.position="absolute",e.style.pointerEvents="all",e.style.backgroundColor=l==="success"?"#0E062D":"red",e.style.top="12px",e.style.right="16px",e.style.padding="6px 32px 6px 6px",e.style.zIndex="1",e.style.display="flex",e.style.flexDirection="row-reverse",e.style.justifyContent="space-between",e.style.alignItems="center",e.style.boxShadow="0px 4px 4px rgba(0, 0, 0, 0.25)",e.style.borderRadius="4px",e.style.fontSize="11pt",e.style.color="#FFFFFF",e.style.fontFamily='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';try{e.animate([{transform:"translateY(-30px)",opacity:0},{transform:"translateY(0px)",opacity:1}],{duration:700,easing:"ease-out"})}catch{d.warn("Animation not supported, div will be fixed.")}const n=document.createElement("p");n.id="loggedText",n.innerHTML=i,n.style.margin="0px",e.appendChild(n),o.appendChild(e);const c=700,s=5e3;setTimeout(()=>{try{e.animate([{transform:"translateY(0px)",opacity:1},{transform:"translateY(-30px)",opacity:0}],{duration:c,easing:"ease-in"})}catch{d.warn("Animation not supported, div will be fixed.")}},s),setTimeout(()=>{e.remove()},s+c)};const r=function(o,t){o.addEventListener("touchstart",i=>{t()}),o.addEventListener("click",i=>{t()})}})(m=y.playerAuthenticationComponents||={})})(gdjs||={});
|
|
5
|
+
//# sourceMappingURL=playerauthenticationcomponents.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../GDevelop/Extensions/PlayerAuthentication/playerauthenticationcomponents.ts"],
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n const logger = new gdjs.Logger('Player Authentication');\n export namespace playerAuthenticationComponents {\n const getPlayerLoginMessages = ({\n platform,\n isGameRegistered,\n }: {\n platform: 'cordova' | 'electron' | 'web';\n isGameRegistered: boolean;\n }) =>\n isGameRegistered\n ? {\n title: 'Logging in...',\n text1:\n platform === 'cordova'\n ? \"One moment, we're opening a window for you to log in.\"\n : \"One moment, we're opening a new page with your web browser for you to log in.\",\n text2:\n 'If the window did not open, please check your pop-up blocker and click the button below to try again.',\n }\n : {\n title: 'Publish your game!',\n text1:\n \"GDevelop's player accounts are only available for published games.\",\n text2:\n 'Click the button below to learn how to publish your game then try again.',\n };\n\n /**\n * Creates a DOM element that will contain the loader or a message if the game is not registered.\n */\n export const computeAuthenticationContainer = function (\n onCloseAuthenticationContainer: () => void\n ): {\n rootContainer: HTMLDivElement;\n loaderContainer: HTMLDivElement;\n iframeContainer: HTMLDivElement;\n } {\n const rootContainer = document.createElement('div');\n rootContainer.id = 'authentication-root-container';\n rootContainer.style.position = 'relative';\n rootContainer.style.backgroundColor = 'rgba(14, 6, 45, 0.5)';\n rootContainer.style.opacity = '1';\n rootContainer.style.width = '100%';\n rootContainer.style.height = '100%';\n rootContainer.style.zIndex = '2';\n rootContainer.style.pointerEvents = 'all';\n\n const frameContainer = document.createElement('div');\n frameContainer.id = 'authentication-frame-container';\n frameContainer.style.backgroundColor = '#FFFFFF';\n frameContainer.style.position = 'absolute';\n frameContainer.style.top = '16px';\n frameContainer.style.bottom = '16px';\n frameContainer.style.left = '16px';\n frameContainer.style.right = '16px';\n frameContainer.style.borderRadius = '8px';\n frameContainer.style.boxShadow = '0px 4px 4px rgba(0, 0, 0, 0.25)';\n frameContainer.style.padding = '16px';\n\n const _closeContainer: HTMLDivElement = document.createElement('div');\n _closeContainer.style.cursor = 'pointer';\n _closeContainer.style.display = 'flex';\n _closeContainer.style.justifyContent = 'right';\n _closeContainer.style.alignItems = 'center';\n _closeContainer.style.zIndex = '3';\n addTouchAndClickEventListeners(\n _closeContainer,\n onCloseAuthenticationContainer\n );\n\n const _close = document.createElement('img');\n _close.setAttribute('width', '15px');\n _close.setAttribute(\n 'src',\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwIDAgOCA4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuODUzNTUgMC4xNDY0NDdDOC4wNDg4MiAwLjM0MTcwOSA4LjA0ODgyIDAuNjU4MjkxIDcuODUzNTUgMC44NTM1NTNMMC44NTM1NTMgNy44NTM1NUMwLjY1ODI5MSA4LjA0ODgyIDAuMzQxNzA5IDguMDQ4ODIgMC4xNDY0NDcgNy44NTM1NUMtMC4wNDg4MTU1IDcuNjU4MjkgLTAuMDQ4ODE1NSA3LjM0MTcxIDAuMTQ2NDQ3IDcuMTQ2NDVMNy4xNDY0NSAwLjE0NjQ0N0M3LjM0MTcxIC0wLjA0ODgxNTUgNy42NTgyOSAtMC4wNDg4MTU1IDcuODUzNTUgMC4xNDY0NDdaIiBmaWxsPSIjMUQxRDI2Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMC4xNDY0NDcgMC4xNDY0NDdDMC4zNDE3MDkgLTAuMDQ4ODE1NSAwLjY1ODI5MSAtMC4wNDg4MTU1IDAuODUzNTUzIDAuMTQ2NDQ3TDcuODUzNTUgNy4xNDY0NUM4LjA0ODgyIDcuMzQxNzEgOC4wNDg4MiA3LjY1ODI5IDcuODUzNTUgNy44NTM1NUM3LjY1ODI5IDguMDQ4ODIgNy4zNDE3MSA4LjA0ODgyIDcuMTQ2NDUgNy44NTM1NUwwLjE0NjQ0NyAwLjg1MzU1M0MtMC4wNDg4MTU1IDAuNjU4MjkxIC0wLjA0ODgxNTUgMC4zNDE3MDkgMC4xNDY0NDcgMC4xNDY0NDdaIiBmaWxsPSIjMUQxRDI2Ii8+Cjwvc3ZnPgo='\n );\n _closeContainer.appendChild(_close);\n\n const loaderContainer: HTMLDivElement = document.createElement('div');\n loaderContainer.id = 'authentication-container-loader';\n loaderContainer.style.display = 'flex';\n loaderContainer.style.flexDirection = 'column';\n loaderContainer.style.height = '100%';\n loaderContainer.style.width = '100%';\n loaderContainer.style.justifyContent = 'center';\n loaderContainer.style.alignItems = 'center';\n\n const _loader = document.createElement('img');\n _loader.setAttribute('width', '28px');\n _loader.setAttribute(\n 'src',\n 'data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iYW5pbWF0ZS1zcGluIC1tbC0xIG1yLTMgaC01IHctNSB0ZXh0LXdoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CjxjaXJjbGUgb3BhY2l0eT0nMC4yNScgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSI0Ij48L2NpcmNsZT4KPHBhdGggb3BhY2l0eT0nMC43NScgZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNCAxMmE4IDggMCAwMTgtOFYwQzUuMzczIDAgMCA1LjM3MyAwIDEyaDR6bTIgNS4yOTFBNy45NjIgNy45NjIgMCAwMTQgMTJIMGMwIDMuMDQyIDEuMTM1IDUuODI0IDMgNy45MzhsMy0yLjY0N3oiPjwvcGF0aD4KPC9zdmc+'\n );\n _loader.style.marginTop = '50px';\n try {\n _loader.animate(\n [{ transform: 'rotate(0deg)' }, { transform: 'rotate(359deg)' }],\n {\n duration: 3000,\n iterations: Infinity,\n }\n );\n } catch {\n logger.warn('Animation not supported, loader will be fixed.');\n }\n\n loaderContainer.appendChild(_loader);\n\n const iframeContainer: HTMLDivElement = document.createElement('div');\n iframeContainer.style.display = 'flex';\n iframeContainer.style.flexDirection = 'column';\n iframeContainer.style.height = '100%';\n iframeContainer.style.width = '100%';\n iframeContainer.style.justifyContent = 'stretch';\n iframeContainer.style.alignItems = 'stretch';\n iframeContainer.style.display = 'none';\n\n frameContainer.appendChild(_closeContainer);\n frameContainer.appendChild(loaderContainer);\n frameContainer.appendChild(iframeContainer);\n rootContainer.appendChild(frameContainer);\n\n return { rootContainer, loaderContainer, iframeContainer };\n };\n\n export const displayIframeInsideAuthenticationContainer = (\n iframeContainer: HTMLDivElement,\n loaderContainer: HTMLDivElement,\n textContainer: HTMLDivElement,\n url: string\n ) => {\n const iframe = document.createElement('iframe');\n iframe.setAttribute(\n 'sandbox',\n 'allow-forms allow-modals allow-orientation-lock allow-popups allow-same-origin allow-scripts'\n );\n iframe.addEventListener('load', () => {\n iframeContainer.style.display = 'flex';\n loaderContainer.style.display = 'none';\n });\n iframe.addEventListener('loaderror', () => {\n addAuthenticationUrlToTextsContainer(() => {\n // Try again.\n iframeContainer.removeChild(iframe);\n iframeContainer.style.display = 'none';\n loaderContainer.style.display = 'flex';\n displayIframeInsideAuthenticationContainer(\n iframeContainer,\n loaderContainer,\n textContainer,\n url\n );\n }, textContainer);\n });\n iframe.src = url;\n iframe.style.flex = '1';\n iframe.style.border = '0';\n\n iframeContainer.appendChild(iframe);\n };\n\n /**\n * Helper to add the texts to the authentication container\n * based on the platform or if the game is registered.\n */\n export const addAuthenticationTextsToLoadingContainer = (\n loaderContainer: HTMLDivElement,\n platform,\n isGameRegistered,\n wikiOpenAction\n ) => {\n const textContainer: HTMLDivElement = document.createElement('div');\n textContainer.id = 'authentication-container-texts';\n textContainer.style.display = 'flex';\n textContainer.style.flexDirection = 'column';\n textContainer.style.width = '100%';\n textContainer.style.justifyContent = 'center';\n textContainer.style.alignItems = 'center';\n textContainer.style.position = 'relative';\n textContainer.style.zIndex = '3';\n textContainer.style.fontSize = '11pt';\n textContainer.style.fontFamily =\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"';\n\n const messages = getPlayerLoginMessages({\n platform,\n isGameRegistered,\n });\n const title = document.createElement('h1');\n title.innerText = messages.title;\n title.style.fontSize = '20pt';\n title.style.fontWeight = 'bold';\n const text1 = document.createElement('p');\n text1.innerText = messages.text1;\n const text2 = document.createElement('p');\n text2.innerText = messages.text2;\n textContainer.appendChild(title);\n textContainer.appendChild(text1);\n textContainer.appendChild(text2);\n\n if (!isGameRegistered) {\n // Remove the loader and add the wiki link.\n loaderContainer.innerHTML = '';\n\n if (wikiOpenAction) {\n const link = document.createElement('a');\n addTouchAndClickEventListeners(link, wikiOpenAction);\n link.innerText = 'How to publish my game';\n link.style.color = '#0078d4';\n link.style.textDecoration = 'none';\n link.style.textDecoration = 'underline';\n link.style.cursor = 'pointer';\n\n textContainer.appendChild(link);\n }\n }\n\n loaderContainer.prepend(textContainer);\n\n return textContainer;\n };\n\n /**\n * Helper to add the authentication link in case the window hasn't opened properly.\n * Useful for Electron & Web platforms.\n */\n export const addAuthenticationUrlToTextsContainer = (\n onClick: () => void,\n textContainer: HTMLDivElement\n ) => {\n const link = document.createElement('a');\n addTouchAndClickEventListeners(link, onClick);\n link.innerText = 'Try again';\n link.style.color = '#0078d4';\n link.style.textDecoration = 'none';\n link.style.textDecoration = 'underline';\n link.style.cursor = 'pointer';\n\n textContainer.appendChild(link);\n };\n\n /**\n * Creates a DOM element to display a dismissable banner.\n */\n export const computeDismissableBanner = function (\n onDismissBanner: () => void\n ): HTMLDivElement {\n const divContainer = document.createElement('div');\n\n divContainer.id = 'authenticated-banner';\n divContainer.style.position = 'absolute';\n divContainer.style.pointerEvents = 'all';\n divContainer.style.backgroundColor = '#0E062D';\n divContainer.style.top = '0px';\n divContainer.style.height = '48px';\n divContainer.style.left = '0px';\n divContainer.style.width = '100%';\n divContainer.style.padding = '6px 16px';\n // Use zIndex 1 to make sure it is below the authentication iframe or webview.\n divContainer.style.zIndex = '1';\n divContainer.style.display = 'flex';\n divContainer.style.flexDirection = 'row-reverse';\n divContainer.style.justifyContent = 'space-between';\n divContainer.style.alignItems = 'center';\n divContainer.style.boxShadow = '0px 4px 4px rgba(0, 0, 0, 0.25)';\n divContainer.style.fontSize = '11pt';\n divContainer.style.color = '#FFFFFF';\n divContainer.style.fontFamily =\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"';\n\n const _closeContainer: HTMLDivElement = document.createElement('div');\n _closeContainer.style.cursor = 'pointer';\n _closeContainer.style.display = 'flex';\n _closeContainer.style.justifyContent = 'center';\n _closeContainer.style.alignItems = 'center';\n _closeContainer.style.zIndex = '3';\n _closeContainer.style.marginRight = '32px';\n _closeContainer.style.height = '100%';\n addTouchAndClickEventListeners(_closeContainer, onDismissBanner);\n\n const _close = document.createElement('img');\n _close.setAttribute('width', '30px');\n _close.setAttribute(\n 'src',\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzLjc1IDguMDEyNUwyMS45ODc1IDYuMjVMMTUgMTMuMjM3NUw4LjAxMjUgNi4yNUw2LjI1IDguMDEyNUwxMy4yMzc1IDE1TDYuMjUgMjEuOTg3NUw4LjAxMjUgMjMuNzVMMTUgMTYuNzYyNUwyMS45ODc1IDIzLjc1TDIzLjc1IDIxLjk4NzVMMTYuNzYyNSAxNUwyMy43NSA4LjAxMjVaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\n );\n\n _closeContainer.appendChild(_close);\n divContainer.appendChild(_closeContainer);\n\n return divContainer;\n };\n\n /**\n * Creates a DOM element representing a banner for the user to know which account\n * they're using and also to allow switching to another account.\n */\n export const computeAuthenticatedBanner = function (\n onOpenAuthenticationWindow: () => void,\n onDismissBanner: () => void,\n username: string | null\n ): HTMLDivElement {\n const divContainer = computeDismissableBanner(onDismissBanner);\n\n const playerUsername = username || 'Anonymous';\n\n const _textContainer: HTMLDivElement = document.createElement('div');\n const loggedText = document.createElement('p');\n loggedText.id = 'loggedText';\n loggedText.innerHTML = `<img style=\"margin-right:4px\" src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K\" />\n Logged as ${playerUsername}`;\n loggedText.style.margin = '0px';\n\n const changeAccountText = document.createElement('p');\n changeAccountText.id = 'changeAccountText';\n changeAccountText.innerText = `Click here to switch to another account.`;\n changeAccountText.style.margin = '0px';\n changeAccountText.style.marginTop = '4px';\n changeAccountText.style.textDecoration = 'underline';\n changeAccountText.style.cursor = 'pointer';\n addTouchAndClickEventListeners(\n changeAccountText,\n onOpenAuthenticationWindow\n );\n\n _textContainer.appendChild(loggedText);\n _textContainer.appendChild(changeAccountText);\n divContainer.appendChild(_textContainer);\n\n return divContainer;\n };\n\n /**\n * Creates a DOM element representing a banner for the user to know\n * they are not connected and to allow logging in.\n */\n export const computeNotAuthenticatedBanner = function (\n onOpenAuthenticationWindow: () => void,\n onDismissBanner: () => void\n ): HTMLDivElement {\n const divContainer = computeDismissableBanner(onDismissBanner);\n\n const _textContainer: HTMLDivElement = document.createElement('div');\n const loggedText = document.createElement('p');\n loggedText.id = 'loggedText';\n loggedText.innerHTML = `You are not authenticated.`;\n loggedText.style.margin = '0px';\n\n const changeAccountText = document.createElement('p');\n changeAccountText.id = 'changeAccountText';\n changeAccountText.innerText = `Click here to log in.`;\n changeAccountText.style.margin = '0px';\n changeAccountText.style.marginTop = '4px';\n changeAccountText.style.textDecoration = 'underline';\n changeAccountText.style.cursor = 'pointer';\n addTouchAndClickEventListeners(\n changeAccountText,\n onOpenAuthenticationWindow\n );\n\n _textContainer.appendChild(loggedText);\n _textContainer.appendChild(changeAccountText);\n divContainer.appendChild(_textContainer);\n\n return divContainer;\n };\n\n /**\n * Create, display, and hide the logged in confirmation.\n */\n export const displayLoggedInNotification = function (\n domContainer: HTMLDivElement,\n username: string\n ) {\n showNotification(\n domContainer,\n 'authenticated-notification',\n `<img style=\"margin-right:4px\" src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K\" />\n Logged as ${username}`,\n 'success'\n );\n };\n\n /**\n * Create, display, and hide the logged in confirmation.\n */\n export const displayLoggedOutNotification = function (\n domContainer: HTMLDivElement\n ) {\n showNotification(\n domContainer,\n 'authenticated-notification',\n `<img style=\"margin-right:4px\" src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgOSA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC4xNjY2NyAwQzEuODY2NjcgMCAwIDEuODY2NjcgMCA0LjE2NjY3QzAgNi40NjY2NyAxLjg2NjY3IDguMzMzMzMgNC4xNjY2NyA4LjMzMzMzQzYuNDY2NjcgOC4zMzMzMyA4LjMzMzMzIDYuNDY2NjcgOC4zMzMzMyA0LjE2NjY3QzguMzMzMzMgMS44NjY2NyA2LjQ2NjY3IDAgNC4xNjY2NyAwWk0zLjMzMzMzIDYuMjVMMS4yNSA0LjE2NjY3TDEuODM3NSAzLjU3OTE3TDMuMzMzMzMgNS4wNzA4M0w2LjQ5NTgzIDEuOTA4MzNMNy4wODMzMyAyLjVMMy4zMzMzMyA2LjI1WiIgZmlsbD0iIzAwQ0M4MyIvPgo8L3N2Zz4K\" />\n Logged out`,\n 'success'\n );\n };\n\n /**\n * Create, display, and hide an error notification.\n */\n export const displayErrorNotification = function (\n domContainer: HTMLDivElement\n ) {\n showNotification(\n domContainer,\n 'error-notification',\n 'An error occurred while authenticating, please try again.',\n 'error'\n );\n };\n\n /**\n * Helper to show a notification to the user, that disappears automatically.\n */\n export const showNotification = function (\n domContainer: HTMLDivElement,\n id: string,\n content: string,\n type: 'success' | 'error'\n ) {\n const divContainer = document.createElement('div');\n\n divContainer.id = id;\n divContainer.style.position = 'absolute';\n divContainer.style.pointerEvents = 'all';\n divContainer.style.backgroundColor =\n type === 'success' ? '#0E062D' : 'red';\n divContainer.style.top = '12px';\n divContainer.style.right = '16px';\n divContainer.style.padding = '6px 32px 6px 6px';\n // Use zIndex 1 to make sure it is below the authentication iframe or webview.\n divContainer.style.zIndex = '1';\n divContainer.style.display = 'flex';\n divContainer.style.flexDirection = 'row-reverse';\n divContainer.style.justifyContent = 'space-between';\n divContainer.style.alignItems = 'center';\n divContainer.style.boxShadow = '0px 4px 4px rgba(0, 0, 0, 0.25)';\n divContainer.style.borderRadius = '4px';\n divContainer.style.fontSize = '11pt';\n divContainer.style.color = '#FFFFFF';\n divContainer.style.fontFamily =\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"';\n try {\n divContainer.animate(\n [\n { transform: 'translateY(-30px)', opacity: 0 },\n { transform: 'translateY(0px)', opacity: 1 },\n ],\n {\n duration: 700,\n easing: 'ease-out',\n }\n );\n } catch {\n logger.warn('Animation not supported, div will be fixed.');\n }\n const loggedText = document.createElement('p');\n loggedText.id = 'loggedText';\n loggedText.innerHTML = content;\n loggedText.style.margin = '0px';\n\n divContainer.appendChild(loggedText);\n\n domContainer.appendChild(divContainer);\n const animationTime = 700;\n const notificationTime = 5000;\n setTimeout(() => {\n try {\n divContainer.animate(\n [\n { transform: 'translateY(0px)', opacity: 1 },\n { transform: 'translateY(-30px)', opacity: 0 },\n ],\n {\n duration: animationTime,\n easing: 'ease-in',\n }\n );\n } catch {\n logger.warn('Animation not supported, div will be fixed.');\n }\n }, notificationTime);\n // Use timeout because onanimationend listener does not work.\n setTimeout(() => {\n divContainer.remove();\n }, notificationTime + animationTime);\n };\n\n /**\n * Helper to add event listeners on a pressable/clickable element\n * to work on both desktop and mobile.\n */\n const addTouchAndClickEventListeners = function (\n element: HTMLElement,\n action: () => void\n ) {\n // Touch start event listener for mobile.\n element.addEventListener('touchstart', (event) => {\n action();\n });\n // Click event listener for desktop.\n element.addEventListener('click', (event) => {\n action();\n });\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["gdjs", "logger", "playerAuthenticationComponents", "getPlayerLoginMessages", "platform", "isGameRegistered", "onCloseAuthenticationContainer", "rootContainer", "frameContainer", "_closeContainer", "addTouchAndClickEventListeners", "_close", "loaderContainer", "_loader", "iframeContainer", "textContainer", "url", "iframe", "wikiOpenAction", "messages", "title", "text1", "text2", "link", "onClick", "onDismissBanner", "divContainer", "onOpenAuthenticationWindow", "username", "playerUsername", "_textContainer", "loggedText", "changeAccountText", "domContainer", "id", "content", "type", "animationTime", "notificationTime", "element", "action", "event"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var gdjs;(d=>{const a=new d.Logger("Player Authentication"),c=d.playerAuthenticationComponents;let S;(i=>{let f=null,T=null,p=null,M=!1,w=!1,G=null,b=null,E=null,C=null,D=null,h=null,l=null,x=null,W=null,u=null,_=null,g=null;d.registerRuntimeScenePostEventsCallback(()=>{M=!1}),d.registerFirstRuntimeSceneLoadedCallback(e=>{B(e)==="web"&&(L(),u=t=>{U(e,t,{checkOrigin:!0})},window.addEventListener("message",u,!0),a.info("Notifying parent window that player authentication is ready."),window.parent.postMessage({id:"playerAuthReady"},"*"),x=setTimeout(()=>{a.info("Removing initial authentication listener."),L()},3e3))});const O=e=>`${e}_authenticatedUser`,j=({runtimeGame:e,gameId:t,connectionId:n})=>`https://gd.games/auth?gameId=${t}${n?`&connectionId=${n}`:""}${e.isUsingGDevelopDevelopmentEnvironment()?"&dev=true":""}`,B=e=>e.getGame().getRenderer().getElectron()?"electron":typeof cordova<"u"?"cordova":"web",q=e=>{const t=e.getGame().getAdditionalOptions();return t&&t.isPreview&&t.allowAuthenticationUsingIframeForPreview};i.isAuthenticated=()=>(w||R(),p!==null),i.hasLoggedIn=()=>M,i.getUsername=()=>(w||R(),f||""),i.getUserToken=()=>(w||R(),p||null),i.getUserId=()=>(w||R(),T||null);const P=(e,t,n=0)=>{const r=`${e.isUsingGDevelopDevelopmentEnvironment()?"https://api-dev.gdevelop.io":"https://api.gdevelop.io"}/game/public-game/${t}`;return fetch(r,{method:"HEAD"}).then(s=>s.status!==200?(a.warn(`Error while fetching the game: ${s.status} ${s.statusText}`),s.status===404||n>2?!1:P(e,t,n+1)):!0,s=>(a.error("Error while fetching game:",s),!1))};i.logout=e=>{f=null,p=null,T=null;const t=d.projectData.properties.projectUuid;if(!t){a.error("Missing game id in project properties.");return}window.localStorage.removeItem(O(t)),k(e),(0,i.removeAuthenticationBanner)(e);const n=e.getGame().getRenderer().getDomElementContainer();if(!n){m(e,"The div element covering the game couldn't be found, the authentication banner cannot be displayed.");return}c.displayLoggedOutNotification(n)};const R=()=>{const e=d.projectData.properties.projectUuid;if(!e){a.error("Missing game id in project properties.");return}try{const t=window.localStorage.getItem(O(e));if(!t){w=!0;return}const n=JSON.parse(t);f=n.username,T=n.userId,p=n.userToken,w=!0}catch(t){a.warn("Unable to read authentication details from localStorage. Player authentication will not be available.",t)}},k=e=>{(0,i.removeAuthenticationContainer)(e),J(),g&&(g.close(),g=null),G&&(G.close(),G=null),b&&(b.close(),b=null)},F=({username:e,userId:t,userToken:n})=>{e||a.warn("The authenticated player does not have a username"),f=e,T=t,p=n,M=!0;const o=d.projectData.properties.projectUuid;if(!o){a.error("Missing game id in project properties.");return}try{window.localStorage.setItem(O(o),JSON.stringify({username:f,userId:T,userToken:p}))}catch(r){a.warn("Unable to save the authentication details to localStorage. Player authentication will not be available.",r)}},H=function(e,t,n,o){F({userId:t,username:n,userToken:o}),k(e),(0,i.removeAuthenticationBanner)(e);const r=e.getGame().getRenderer().getDomElementContainer();if(!r){m(e,"The div element covering the game couldn't be found, the authentication banner cannot be displayed.");return}c.displayLoggedInNotification(r,f||"Anonymous"),$(e)},U=function(e,t,{checkOrigin:n}){if(n&&!["https://liluo.io","https://gd.games"].includes(t.origin))throw new Error(`Unexpected origin: ${t.origin}`);if(!t.data.id)throw new Error("Malformed message");switch(t.data.id){case"authenticationResult":{if(!(t.data.body&&t.data.body.token))throw new Error("Malformed message.");H(e,t.data.body.userId,t.data.body.username,t.data.body.token);break}case"alreadyAuthenticated":{if(!(t.data.body&&t.data.body.token))throw new Error("Malformed message.");F({userId:t.data.body.userId,username:t.data.body.username,userToken:t.data.body.token}),L(),V(e);break}}},m=function(e,t){a.error(t),k(e);const n=e.getGame().getRenderer().getDomElementContainer();if(!n){m(e,"The div element covering the game couldn't be found, the authentication banner cannot be displayed.");return}c.displayErrorNotification(n),$(e)},z=e=>{J();const t=12*60*1e3;W=setTimeout(()=>{a.info("Authentication window did not send message in time. Closing it."),k(e),$(e)},t)},J=()=>{x&&clearTimeout(x),W&&clearTimeout(W)},K=function(e){const t=()=>{(0,i.removeAuthenticationBanner)(e)},n=()=>{(0,i.openAuthenticationWindow)(e)};return p?c.computeAuthenticatedBanner(n,t,f):c.computeNotAuthenticatedBanner(n,t)};i.displayAuthenticationBanner=function(e){if(l){l.style.opacity="1";return}w||R();const t=e.getGame().getRenderer().getDomElementContainer();if(!t){m(e,"The div element covering the game couldn't be found, the authentication banner cannot be displayed.");return}l=K(e),t.appendChild(l)};const V=function(e){if(!l)return;const t=e.getGame().getRenderer().getDomElementContainer();if(!t){m(e,"The div element covering the game couldn't be found, the authentication banner cannot be displayed.");return}const n=l;l=K(e),t.replaceChild(l,n)},X=(e,t)=>{const n=e.getGame().isUsingGDevelopDevelopmentEnvironment()?"wss://api-ws-dev.gdevelop.io/play":"wss://api-ws.gdevelop.io/play";g=new WebSocket(n),g.onopen=()=>{g&&g.send(JSON.stringify({action:"getConnectionId"}))},g.onerror=()=>{m(e,"Error while connecting to the authentication server.")},g.onmessage=o=>{if(o.data){const r=JSON.parse(o.data);switch(r.type){case"authenticationResult":{const s=r.data;H(e,s.userId,s.username,s.token);break}case"connectionId":{const v=r.data.connectionId;if(!v){a.error("No connectionId received");return}const y=j({runtimeGame:e.getGame(),gameId:t,connectionId:v}),I=e.getGame().getRenderer().getElectron(),A=()=>I.shell.openExternal(y);A(),h&&c.addAuthenticationUrlToTextsContainer(A,h);break}}}}},Y=(e,t)=>{const n=j({runtimeGame:e.getGame(),gameId:t});b=cordova.InAppBrowser.open(n,"authentication","location=yes"),b&&(_=o=>{U(e,o,{checkOrigin:!1})},b.addEventListener("message",_,!0))},Z=(e,t)=>{const n=j({runtimeGame:e.getGame(),gameId:t});u=y=>{U(e,y,{checkOrigin:!0})},window.addEventListener("message",u,!0);const o=screen.width/2-500/2,r=screen.height/2-600/2,s=`left=${o},top=${r},width=500,height=600`,v=()=>window.open(n,"authentication",s);G=v(),h&&c.addAuthenticationUrlToTextsContainer(v,h)},ee=(e,t)=>{if(!D||!C||!h){console.error("Can't open an authentication iframe - no iframe container, loader container or text container was opened for it.");return}const n=j({runtimeGame:e.getGame(),gameId:t});u=o=>{U(e,o,{checkOrigin:!0})},window.addEventListener("message",u,!0),c.displayIframeInsideAuthenticationContainer(D,C,h,n)};i.openAuthenticationWindow=function(e){const t=e.getGame().getRenderer().getDomElementContainer();if(!t){m(e,"The div element covering the game couldn't be found, the authentication window cannot be displayed.");return}const n=()=>{k(e),(0,i.displayAuthenticationBanner)(e)},o=d.projectData.properties.projectUuid;if(!o){m(e,"The game ID is missing, the authentication window cannot be opened.");return}l&&(l.style.opacity="0");const r=B(e),{rootContainer:s,loaderContainer:v,iframeContainer:y}=c.computeAuthenticationContainer(n);E=s,C=v,D=y,t.appendChild(E),P(e.getGame(),o).then(I=>{if(C){const A=e.getGame().getRenderer().getElectron(),oe=A?()=>A.shell.openExternal("https://wiki.gdevelop.io/gdevelop5/publishing/web"):null;h=c.addAuthenticationTextsToLoadingContainer(C,r,I,oe)}if(I)switch(z(e),r){case"electron":X(e,o);break;case"cordova":Y(e,o);break;case"web":default:q(e)?ee(e,o):Z(e,o);break}}).catch(I=>{m(e,"Error while checking if the game is registered."),a.error(I)})},i.isAuthenticationWindowOpen=function(){return!!E},i.removeAuthenticationContainer=function(e){L();const t=e.getGame().getRenderer().getDomElementContainer();if(!t){a.info("The div element covering the game couldn't be found, the authentication must be already closed.");return}E&&t.removeChild(E),E=null,C=null,D=null,h=null};const L=function(){u&&(window.removeEventListener("message",u,!0),u=null,_=null)};i.removeAuthenticationBanner=function(e){if(!l){a.info("The authentication banner couldn't be found, the authentication banner must be already closed.");return}const t=e.getGame().getRenderer().getDomElementContainer();if(!t){a.info("The div element covering the game couldn't be found, the authentication must be already closed.");return}t.removeChild(l),l=null};const $=function(e){const t=e.getGame().getRenderer().getCanvas();t&&t.focus()}})(S=d.playerAuthentication||={})})(gdjs||={});
|
|
2
|
+
//# sourceMappingURL=playerauthenticationtools.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../GDevelop/Extensions/PlayerAuthentication/playerauthenticationtools.ts"],
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n declare var cordova: any;\n\n const logger = new gdjs.Logger('Player Authentication');\n const authComponents = gdjs.playerAuthenticationComponents;\n // TODO EBO Replace runtimeScene to instanceContainer.\n export namespace playerAuthentication {\n // Authentication information.\n let _username: string | null = null;\n let _userId: string | null = null;\n let _userToken: string | null = null;\n let _justLoggedIn = false;\n\n let _checkedLocalStorage: boolean = false;\n\n // Authentication display\n let _authenticationWindow: Window | null = null; // For Web.\n let _authenticationInAppWindow: Window | null = null; // For Cordova.\n let _authenticationRootContainer: HTMLDivElement | null = null;\n let _authenticationLoaderContainer: HTMLDivElement | null = null;\n let _authenticationIframeContainer: HTMLDivElement | null = null;\n let _authenticationTextContainer: HTMLDivElement | null = null;\n let _authenticationBanner: HTMLDivElement | null = null;\n let _initialAuthenticationTimeoutId: NodeJS.Timeout | null = null;\n let _authenticationTimeoutId: NodeJS.Timeout | null = null;\n\n // Communication methods.\n let _authenticationMessageCallback:\n | ((event: MessageEvent) => void)\n | null = null;\n let _cordovaAuthenticationMessageCallback:\n | ((event: MessageEvent) => void)\n | null = null;\n let _websocket: WebSocket | null = null;\n\n // Ensure that the condition \"just logged in\" is valid only for one frame.\n gdjs.registerRuntimeScenePostEventsCallback(() => {\n _justLoggedIn = false;\n });\n\n // If the extension is used, register an eventlistener to know if the user is\n // logged in while playing the game on GDevelop games platform.\n // Then send a message to the parent iframe to say that the player auth is ready.\n gdjs.registerFirstRuntimeSceneLoadedCallback(\n (runtimeScene: RuntimeScene) => {\n if (getPlatform(runtimeScene) !== 'web') {\n // Automatic authentication is only valid when the game is hosted on GDevelop games platform.\n return;\n }\n removeAuthenticationCallbacks(); // Remove any callback that could have been registered before.\n _authenticationMessageCallback = (event: MessageEvent) => {\n receiveAuthenticationMessage(runtimeScene, event, {\n checkOrigin: true,\n });\n };\n window.addEventListener(\n 'message',\n _authenticationMessageCallback,\n true\n );\n logger.info(\n 'Notifying parent window that player authentication is ready.'\n );\n window.parent.postMessage(\n {\n id: 'playerAuthReady',\n },\n '*' // We could restrict to GDevelop games platform but it's not necessary as the message is not sensitive, and it allows easy debugging.\n );\n // If no answer after 3 seconds, assume that the game is not embedded in GDevelop games platform, and remove the listener.\n _initialAuthenticationTimeoutId = setTimeout(() => {\n logger.info('Removing initial authentication listener.');\n removeAuthenticationCallbacks();\n }, 3000);\n }\n );\n\n const getLocalStorageKey = (gameId: string) =>\n `${gameId}_authenticatedUser`;\n\n const getAuthWindowUrl = ({\n runtimeGame,\n gameId,\n connectionId,\n }: {\n runtimeGame: gdjs.RuntimeGame;\n gameId: string;\n connectionId?: string;\n }) => {\n // Uncomment to test the case of a failing loading:\n // return 'https://gd.games.wronglink';\n\n return `https://gd.games/auth?gameId=${gameId}${\n connectionId ? `&connectionId=${connectionId}` : ''\n }${\n runtimeGame.isUsingGDevelopDevelopmentEnvironment() ? '&dev=true' : ''\n }`;\n };\n\n /**\n * Helper returning the platform.\n */\n const getPlatform = (\n runtimeScene: RuntimeScene\n ): 'electron' | 'cordova' | 'web' => {\n const runtimeGame = runtimeScene.getGame();\n const electron = runtimeGame.getRenderer().getElectron();\n if (electron) {\n return 'electron';\n }\n if (typeof cordova !== 'undefined') return 'cordova';\n\n return 'web';\n };\n\n /**\n * Check if, in some exceptional cases, we allow authentication\n * to be done through a iframe.\n * This is usually discouraged as the user can't verify that the authentication\n * window is a genuine one. It's only to be used in trusted contexts.\n */\n const shouldAuthenticationUseIframe = (runtimeScene: RuntimeScene) => {\n const runtimeGameOptions = runtimeScene.getGame().getAdditionalOptions();\n return (\n runtimeGameOptions &&\n runtimeGameOptions.isPreview &&\n runtimeGameOptions.allowAuthenticationUsingIframeForPreview\n );\n };\n\n /**\n * Returns true if a user token is present in the local storage.\n */\n export const isAuthenticated = () => {\n if (!_checkedLocalStorage) {\n readAuthenticatedUserFromLocalStorage();\n }\n return _userToken !== null;\n };\n\n /**\n * Returns true if the user just logged in.\n * Useful to update username or trigger messages in the game.\n */\n export const hasLoggedIn = () => _justLoggedIn;\n\n /**\n * Returns the username from the local storage.\n */\n export const getUsername = () => {\n if (!_checkedLocalStorage) {\n readAuthenticatedUserFromLocalStorage();\n }\n return _username || '';\n };\n\n /**\n * Returns the user token from the local storage.\n */\n export const getUserToken = () => {\n if (!_checkedLocalStorage) {\n readAuthenticatedUserFromLocalStorage();\n }\n return _userToken || null;\n };\n\n /**\n * Returns the username from the local storage.\n */\n export const getUserId = () => {\n if (!_checkedLocalStorage) {\n readAuthenticatedUserFromLocalStorage();\n }\n return _userId || null;\n };\n\n /**\n * Returns true if the game is registered, false otherwise.\n * Useful to display a message to the user to register the game before logging in.\n */\n const checkIfGameIsRegistered = (\n runtimeGame: gdjs.RuntimeGame,\n gameId: string,\n tries: number = 0\n ): Promise<boolean> => {\n const rootApi = runtimeGame.isUsingGDevelopDevelopmentEnvironment()\n ? 'https://api-dev.gdevelop.io'\n : 'https://api.gdevelop.io';\n const url = `${rootApi}/game/public-game/${gameId}`;\n return fetch(url, { method: 'HEAD' }).then(\n (response) => {\n if (response.status !== 200) {\n logger.warn(\n `Error while fetching the game: ${response.status} ${response.statusText}`\n );\n\n // If the response is not 404, it may be a timeout, so retry a few times.\n if (response.status === 404 || tries > 2) {\n return false;\n }\n\n return checkIfGameIsRegistered(runtimeGame, gameId, tries + 1);\n }\n return true;\n },\n (err) => {\n logger.error('Error while fetching game:', err);\n return false;\n }\n );\n };\n\n /**\n * Remove the user information from the local storage.\n */\n export const logout = (runtimeScene: RuntimeScene) => {\n _username = null;\n _userToken = null;\n _userId = null;\n\n const gameId = gdjs.projectData.properties.projectUuid;\n if (!gameId) {\n logger.error('Missing game id in project properties.');\n return;\n }\n window.localStorage.removeItem(getLocalStorageKey(gameId));\n cleanUpAuthWindowAndCallbacks(runtimeScene);\n removeAuthenticationBanner(runtimeScene);\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication banner cannot be displayed.\"\n );\n return;\n }\n authComponents.displayLoggedOutNotification(domElementContainer);\n };\n\n /**\n * Retrieves the user information from the local storage, and store\n * them in the extension variables.\n */\n const readAuthenticatedUserFromLocalStorage = () => {\n const gameId = gdjs.projectData.properties.projectUuid;\n if (!gameId) {\n logger.error('Missing game id in project properties.');\n return;\n }\n try {\n const authenticatedUserStorageItem = window.localStorage.getItem(\n getLocalStorageKey(gameId)\n );\n if (!authenticatedUserStorageItem) {\n _checkedLocalStorage = true;\n return;\n }\n const authenticatedUser = JSON.parse(authenticatedUserStorageItem);\n\n _username = authenticatedUser.username;\n _userId = authenticatedUser.userId;\n _userToken = authenticatedUser.userToken;\n _checkedLocalStorage = true;\n } catch (err) {\n logger.warn(\n 'Unable to read authentication details from localStorage. Player authentication will not be available.',\n err\n );\n }\n };\n\n /**\n * Helper to be called on login or error.\n * Removes all the UI and callbacks.\n */\n const cleanUpAuthWindowAndCallbacks = (runtimeScene: RuntimeScene) => {\n removeAuthenticationContainer(runtimeScene);\n clearAuthenticationWindowTimeout();\n if (_websocket) {\n _websocket.close();\n _websocket = null;\n }\n // If a new window was opened (web), close it.\n if (_authenticationWindow) {\n _authenticationWindow.close();\n _authenticationWindow = null;\n }\n // If an in-app browser was used (cordova), close it.\n if (_authenticationInAppWindow) {\n _authenticationInAppWindow.close();\n _authenticationInAppWindow = null;\n }\n };\n\n const saveAuthKeyToStorage = ({\n username,\n userId,\n userToken,\n }: {\n username: string | null;\n userId: string;\n userToken: string;\n }) => {\n if (!username) {\n logger.warn('The authenticated player does not have a username');\n }\n _username = username;\n _userId = userId;\n _userToken = userToken;\n _justLoggedIn = true;\n\n const gameId = gdjs.projectData.properties.projectUuid;\n if (!gameId) {\n logger.error('Missing game id in project properties.');\n return;\n }\n try {\n window.localStorage.setItem(\n getLocalStorageKey(gameId),\n JSON.stringify({\n username: _username,\n userId: _userId,\n userToken: _userToken,\n })\n );\n } catch (err) {\n logger.warn(\n 'Unable to save the authentication details to localStorage. Player authentication will not be available.',\n err\n );\n }\n };\n\n /**\n * When the game receives the authentication result, close all the\n * authentication windows, display the notification and focus on the game.\n */\n const handleLoggedInEvent = function (\n runtimeScene: gdjs.RuntimeScene,\n userId: string,\n username: string | null,\n userToken: string\n ) {\n saveAuthKeyToStorage({ userId, username, userToken });\n cleanUpAuthWindowAndCallbacks(runtimeScene);\n removeAuthenticationBanner(runtimeScene);\n\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication banner cannot be displayed.\"\n );\n return;\n }\n authComponents.displayLoggedInNotification(\n domElementContainer,\n _username || 'Anonymous'\n );\n focusOnGame(runtimeScene);\n };\n\n /**\n * Reads the event sent by the authentication window and\n * display the appropriate banner.\n */\n const receiveAuthenticationMessage = function (\n runtimeScene: gdjs.RuntimeScene,\n event: MessageEvent,\n { checkOrigin }: { checkOrigin: boolean }\n ) {\n const allowedOrigins = ['https://liluo.io', 'https://gd.games'];\n\n // Check origin of message.\n if (checkOrigin && !allowedOrigins.includes(event.origin)) {\n throw new Error(`Unexpected origin: ${event.origin}`);\n }\n // Check that message is not malformed.\n if (!event.data.id) {\n throw new Error('Malformed message');\n }\n\n // Handle message.\n switch (event.data.id) {\n case 'authenticationResult': {\n if (!(event.data.body && event.data.body.token)) {\n throw new Error('Malformed message.');\n }\n\n handleLoggedInEvent(\n runtimeScene,\n event.data.body.userId,\n event.data.body.username,\n event.data.body.token\n );\n break;\n }\n case 'alreadyAuthenticated': {\n if (!(event.data.body && event.data.body.token)) {\n throw new Error('Malformed message.');\n }\n\n saveAuthKeyToStorage({\n userId: event.data.body.userId,\n username: event.data.body.username,\n userToken: event.data.body.token,\n });\n removeAuthenticationCallbacks();\n refreshAuthenticationBannerIfAny(runtimeScene);\n break;\n }\n }\n };\n\n /**\n * Handle any error that can occur as part of the authentication process.\n */\n const handleAuthenticationError = function (\n runtimeScene: gdjs.RuntimeScene,\n message: string\n ) {\n logger.error(message);\n cleanUpAuthWindowAndCallbacks(runtimeScene);\n\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication banner cannot be displayed.\"\n );\n return;\n }\n authComponents.displayErrorNotification(domElementContainer);\n focusOnGame(runtimeScene);\n };\n\n /**\n * If after 5min, no message has been received from the authentication window,\n * show a notification and remove the authentication container.\n */\n const startAuthenticationWindowTimeout = (\n runtimeScene: gdjs.RuntimeScene\n ) => {\n clearAuthenticationWindowTimeout();\n const time = 12 * 60 * 1000; // 12 minutes, in case the user needs time to authenticate.\n _authenticationTimeoutId = setTimeout(() => {\n logger.info(\n 'Authentication window did not send message in time. Closing it.'\n );\n cleanUpAuthWindowAndCallbacks(runtimeScene);\n focusOnGame(runtimeScene);\n }, time);\n };\n\n /**\n * Clear all existing authentication timeouts.\n * Useful when:\n * - a new authentication starts\n * - the authentication succeeded\n * - the authentication window is closed\n */\n const clearAuthenticationWindowTimeout = () => {\n if (_initialAuthenticationTimeoutId)\n clearTimeout(_initialAuthenticationTimeoutId);\n if (_authenticationTimeoutId) clearTimeout(_authenticationTimeoutId);\n };\n\n /**\n * Helper to create the authentication banner based on the authentication status.\n */\n const createAuthenticationBanner = function (\n runtimeScene: gdjs.RuntimeScene\n ): HTMLDivElement {\n const onDismissBanner = () => {\n removeAuthenticationBanner(runtimeScene);\n };\n const onOpenAuthenticationWindow = () => {\n openAuthenticationWindow(runtimeScene);\n };\n return _userToken\n ? authComponents.computeAuthenticatedBanner(\n onOpenAuthenticationWindow,\n onDismissBanner,\n _username\n )\n : authComponents.computeNotAuthenticatedBanner(\n onOpenAuthenticationWindow,\n onDismissBanner\n );\n };\n\n /**\n * Action to display the banner to the user, depending on their authentication status.\n */\n export const displayAuthenticationBanner = function (\n runtimeScene: gdjs.RuntimeScene\n ) {\n if (_authenticationBanner) {\n // Banner already displayed, ensure it's visible.\n _authenticationBanner.style.opacity = '1';\n return;\n }\n if (!_checkedLocalStorage) {\n readAuthenticatedUserFromLocalStorage();\n }\n\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication banner cannot be displayed.\"\n );\n return;\n }\n\n _authenticationBanner = createAuthenticationBanner(runtimeScene);\n domElementContainer.appendChild(_authenticationBanner);\n };\n\n /**\n * Helper to recompute the authentication banner.\n * This is useful if the user is already logged on GDevelop games platform\n * and we want to display the banner with the username.\n */\n const refreshAuthenticationBannerIfAny = function (\n runtimeScene: gdjs.RuntimeScene\n ) {\n if (!_authenticationBanner) return;\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication banner cannot be displayed.\"\n );\n return;\n }\n const oldAuthenticationBanner = _authenticationBanner;\n _authenticationBanner = createAuthenticationBanner(runtimeScene);\n domElementContainer.replaceChild(\n _authenticationBanner,\n oldAuthenticationBanner\n );\n };\n\n /**\n * Helper to handle authentication window on Electron.\n * We open a new window, and create a websocket to know when the user is logged in.\n */\n const openAuthenticationWindowForElectron = (\n runtimeScene: gdjs.RuntimeScene,\n gameId: string\n ) => {\n const wsPlayApi = runtimeScene\n .getGame()\n .isUsingGDevelopDevelopmentEnvironment()\n ? 'wss://api-ws-dev.gdevelop.io/play'\n : 'wss://api-ws.gdevelop.io/play';\n _websocket = new WebSocket(wsPlayApi);\n _websocket.onopen = () => {\n // When socket is open, ask for the connectionId, so that we can open the authentication window.\n if (_websocket) {\n _websocket.send(JSON.stringify({ action: 'getConnectionId' }));\n }\n };\n _websocket.onerror = () => {\n handleAuthenticationError(\n runtimeScene,\n 'Error while connecting to the authentication server.'\n );\n };\n _websocket.onmessage = (event) => {\n if (event.data) {\n const messageContent = JSON.parse(event.data);\n switch (messageContent.type) {\n case 'authenticationResult': {\n const messageData = messageContent.data;\n handleLoggedInEvent(\n runtimeScene,\n messageData.userId,\n messageData.username,\n messageData.token\n );\n break;\n }\n case 'connectionId': {\n const messageData = messageContent.data;\n const connectionId = messageData.connectionId;\n if (!connectionId) {\n logger.error('No connectionId received');\n return;\n }\n\n const targetUrl = getAuthWindowUrl({\n runtimeGame: runtimeScene.getGame(),\n gameId,\n connectionId,\n });\n\n const electron = runtimeScene\n .getGame()\n .getRenderer()\n .getElectron();\n const openWindow = () => electron.shell.openExternal(targetUrl);\n\n openWindow();\n\n // Add the link to the window in case a popup blocker is preventing the window from opening.\n if (_authenticationTextContainer) {\n authComponents.addAuthenticationUrlToTextsContainer(\n openWindow,\n _authenticationTextContainer\n );\n }\n\n break;\n }\n }\n }\n };\n };\n\n /**\n * Helper to handle authentication window on Cordova.\n * We open an InAppBrowser window, and listen to messages posted on this window.\n */\n const openAuthenticationWindowForCordova = (\n runtimeScene: gdjs.RuntimeScene,\n gameId: string\n ) => {\n const targetUrl = getAuthWindowUrl({\n runtimeGame: runtimeScene.getGame(),\n gameId,\n });\n\n _authenticationInAppWindow = cordova.InAppBrowser.open(\n targetUrl,\n 'authentication',\n 'location=yes' // location=yes is important to show the URL bar to the user.\n );\n // Listen to messages posted on the authentication window, so that we can\n // know when the user is authenticated.\n if (_authenticationInAppWindow) {\n _cordovaAuthenticationMessageCallback = (event: MessageEvent) => {\n receiveAuthenticationMessage(runtimeScene, event, {\n checkOrigin: false, // For Cordova we don't check the origin, as the message is read from the InAppBrowser directly.\n });\n };\n _authenticationInAppWindow.addEventListener(\n 'message',\n _cordovaAuthenticationMessageCallback,\n true\n );\n }\n };\n\n /**\n * Helper to handle authentication window on web.\n * We open a new window, and listen to messages posted back to the game window.\n */\n const openAuthenticationWindowForWeb = (\n runtimeScene: gdjs.RuntimeScene,\n gameId: string\n ) => {\n // If we're on a browser, open a new window.\n const targetUrl = getAuthWindowUrl({\n runtimeGame: runtimeScene.getGame(),\n gameId,\n });\n\n // Listen to messages posted by the authentication window, so that we can\n // know when the user is authenticated.\n _authenticationMessageCallback = (event: MessageEvent) => {\n receiveAuthenticationMessage(runtimeScene, event, {\n checkOrigin: true,\n });\n };\n window.addEventListener('message', _authenticationMessageCallback, true);\n\n const left = screen.width / 2 - 500 / 2;\n const top = screen.height / 2 - 600 / 2;\n const windowFeatures = `left=${left},top=${top},width=500,height=600`;\n const openWindow = () =>\n window.open(targetUrl, 'authentication', windowFeatures);\n _authenticationWindow = openWindow();\n\n // Add the link to the window in case a popup blocker is preventing the window from opening.\n if (_authenticationTextContainer) {\n authComponents.addAuthenticationUrlToTextsContainer(\n openWindow,\n _authenticationTextContainer\n );\n }\n };\n\n /**\n * Helper to handle authentication iframe on web.\n * We open an iframe, and listen to messages posted back to the game window.\n */\n const openAuthenticationIframeForWeb = (\n runtimeScene: gdjs.RuntimeScene,\n gameId: string\n ) => {\n if (\n !_authenticationIframeContainer ||\n !_authenticationLoaderContainer ||\n !_authenticationTextContainer\n ) {\n console.error(\n \"Can't open an authentication iframe - no iframe container, loader container or text container was opened for it.\"\n );\n return;\n }\n\n const targetUrl = getAuthWindowUrl({\n runtimeGame: runtimeScene.getGame(),\n gameId,\n });\n\n // Listen to messages posted by the authentication window, so that we can\n // know when the user is authenticated.\n _authenticationMessageCallback = (event: MessageEvent) => {\n receiveAuthenticationMessage(runtimeScene, event, {\n checkOrigin: true,\n });\n };\n window.addEventListener('message', _authenticationMessageCallback, true);\n\n authComponents.displayIframeInsideAuthenticationContainer(\n _authenticationIframeContainer,\n _authenticationLoaderContainer,\n _authenticationTextContainer,\n targetUrl\n );\n };\n\n /**\n * Action to display the authentication window to the user.\n */\n export const openAuthenticationWindow = function (\n runtimeScene: gdjs.RuntimeScene\n ) {\n // Create the authentication container for the player to wait.\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n handleAuthenticationError(\n runtimeScene,\n \"The div element covering the game couldn't be found, the authentication window cannot be displayed.\"\n );\n return;\n }\n\n const onAuthenticationContainerDismissed = () => {\n cleanUpAuthWindowAndCallbacks(runtimeScene);\n displayAuthenticationBanner(runtimeScene);\n };\n\n const _gameId = gdjs.projectData.properties.projectUuid;\n if (!_gameId) {\n handleAuthenticationError(\n runtimeScene,\n 'The game ID is missing, the authentication window cannot be opened.'\n );\n return;\n }\n\n // If the banner is displayed, hide it, so that it can be shown again if the user closes the window.\n if (_authenticationBanner) _authenticationBanner.style.opacity = '0';\n\n const platform = getPlatform(runtimeScene);\n const {\n rootContainer,\n loaderContainer,\n iframeContainer,\n } = authComponents.computeAuthenticationContainer(\n onAuthenticationContainerDismissed\n );\n _authenticationRootContainer = rootContainer;\n _authenticationLoaderContainer = loaderContainer;\n _authenticationIframeContainer = iframeContainer;\n\n // Display the authentication window right away, to show a loader\n // while the call for game registration is happening.\n domElementContainer.appendChild(_authenticationRootContainer);\n\n // If the game is registered, open the authentication window.\n // Otherwise, open the window indicating that the game is not registered.\n checkIfGameIsRegistered(runtimeScene.getGame(), _gameId)\n .then((isGameRegistered) => {\n if (_authenticationLoaderContainer) {\n const electron = runtimeScene.getGame().getRenderer().getElectron();\n const wikiOpenAction = electron\n ? () =>\n electron.shell.openExternal(\n 'https://wiki.gdevelop.io/gdevelop5/publishing/web'\n )\n : null; // Only show a link if we're on electron.\n\n _authenticationTextContainer = authComponents.addAuthenticationTextsToLoadingContainer(\n _authenticationLoaderContainer,\n platform,\n isGameRegistered,\n wikiOpenAction\n );\n }\n if (isGameRegistered) {\n startAuthenticationWindowTimeout(runtimeScene);\n\n // Based on which platform the game is running, we open the authentication window\n // with a different window, with or without a websocket.\n switch (platform) {\n case 'electron':\n openAuthenticationWindowForElectron(runtimeScene, _gameId);\n break;\n case 'cordova':\n openAuthenticationWindowForCordova(runtimeScene, _gameId);\n break;\n case 'web':\n default:\n if (shouldAuthenticationUseIframe(runtimeScene)) {\n openAuthenticationIframeForWeb(runtimeScene, _gameId);\n } else {\n openAuthenticationWindowForWeb(runtimeScene, _gameId);\n }\n break;\n }\n }\n })\n .catch((error) => {\n handleAuthenticationError(\n runtimeScene,\n 'Error while checking if the game is registered.'\n );\n logger.error(error);\n });\n };\n\n /**\n * Condition to check if the window is open, so that the game can be paused in the background.\n */\n export const isAuthenticationWindowOpen = function (): boolean {\n return !!_authenticationRootContainer;\n };\n\n /**\n * Remove the container displaying the authentication window and the callback.\n */\n export const removeAuthenticationContainer = function (\n runtimeScene: gdjs.RuntimeScene\n ) {\n removeAuthenticationCallbacks();\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n logger.info(\n \"The div element covering the game couldn't be found, the authentication must be already closed.\"\n );\n return;\n }\n\n // Remove the authentication root container.\n if (_authenticationRootContainer) {\n domElementContainer.removeChild(_authenticationRootContainer);\n }\n\n _authenticationRootContainer = null;\n _authenticationLoaderContainer = null;\n _authenticationIframeContainer = null;\n _authenticationTextContainer = null;\n };\n\n /*\n * Remove the authentication callbacks from web or cordova.\n */\n const removeAuthenticationCallbacks = function () {\n // Remove the authentication callbacks.\n if (_authenticationMessageCallback) {\n window.removeEventListener(\n 'message',\n _authenticationMessageCallback,\n true\n );\n _authenticationMessageCallback = null;\n // No need to detach the callback from the InAppBrowser, as it's destroyed when the window is closed.\n _cordovaAuthenticationMessageCallback = null;\n }\n };\n\n /**\n * Remove the banner displaying the authentication status.\n */\n export const removeAuthenticationBanner = function (\n runtimeScene: gdjs.RuntimeScene\n ) {\n if (!_authenticationBanner) {\n logger.info(\n \"The authentication banner couldn't be found, the authentication banner must be already closed.\"\n );\n return;\n }\n const domElementContainer = runtimeScene\n .getGame()\n .getRenderer()\n .getDomElementContainer();\n if (!domElementContainer) {\n logger.info(\n \"The div element covering the game couldn't be found, the authentication must be already closed.\"\n );\n return;\n }\n\n domElementContainer.removeChild(_authenticationBanner);\n _authenticationBanner = null;\n };\n\n /**\n * Focus on game canvas to allow user to interact with it.\n */\n const focusOnGame = function (runtimeScene: gdjs.RuntimeScene) {\n const gameCanvas = runtimeScene.getGame().getRenderer().getCanvas();\n if (gameCanvas) gameCanvas.focus();\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["gdjs", "logger", "authComponents", "playerAuthentication", "_username", "_userId", "_userToken", "_justLoggedIn", "_checkedLocalStorage", "_authenticationWindow", "_authenticationInAppWindow", "_authenticationRootContainer", "_authenticationLoaderContainer", "_authenticationIframeContainer", "_authenticationTextContainer", "_authenticationBanner", "_initialAuthenticationTimeoutId", "_authenticationTimeoutId", "_authenticationMessageCallback", "_cordovaAuthenticationMessageCallback", "_websocket", "runtimeScene", "getPlatform", "removeAuthenticationCallbacks", "event", "receiveAuthenticationMessage", "getLocalStorageKey", "gameId", "getAuthWindowUrl", "runtimeGame", "connectionId", "shouldAuthenticationUseIframe", "runtimeGameOptions", "readAuthenticatedUserFromLocalStorage", "checkIfGameIsRegistered", "tries", "url", "response", "err", "cleanUpAuthWindowAndCallbacks", "domElementContainer", "handleAuthenticationError", "authenticatedUserStorageItem", "authenticatedUser", "clearAuthenticationWindowTimeout", "saveAuthKeyToStorage", "username", "userId", "userToken", "handleLoggedInEvent", "focusOnGame", "checkOrigin", "refreshAuthenticationBannerIfAny", "message", "startAuthenticationWindowTimeout", "time", "createAuthenticationBanner", "onDismissBanner", "onOpenAuthenticationWindow", "oldAuthenticationBanner", "openAuthenticationWindowForElectron", "wsPlayApi", "messageContent", "messageData", "targetUrl", "electron", "openWindow", "openAuthenticationWindowForCordova", "openAuthenticationWindowForWeb", "left", "top", "windowFeatures", "openAuthenticationIframeForWeb", "onAuthenticationContainerDismissed", "_gameId", "platform", "rootContainer", "loaderContainer", "iframeContainer", "isGameRegistered", "wikiOpenAction", "error", "gameCanvas"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @pixi/graphics-extras - v6.0.0
|
|
3
|
+
* Compiled Tue, 02 Mar 2021 21:45:03 UTC
|
|
4
|
+
*
|
|
5
|
+
* @pixi/graphics-extras is licensed under the MIT License.
|
|
6
|
+
* http://www.opensource.org/licenses/mit-license
|
|
7
|
+
*/
|
|
8
|
+
this.PIXI=this.PIXI||{},function(t,r){"use strict";var o=function(t,r){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])})(t,r)};var n=function(t){function n(o,n,a,i,e,h){void 0===h&&(h=0);e=e||i/2;for(var c=-1*Math.PI/2+h,s=2*a,u=r.PI_2/s,l=[],f=0;f<s;f++){var P=f%2?e:i,v=f*u+c;l.push(o+P*Math.cos(v),n+P*Math.sin(v))}return t.call(this,l)||this}return function(t,r){function n(){this.constructor=t}o(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}(n,t),n}(r.Polygon);Object.defineProperties(t.Graphics.prototype,{drawTorus:{value:function(t,r,o,n,a,i){return void 0===a&&(a=0),void 0===i&&(i=2*Math.PI),Math.abs(i-a)>=2*Math.PI?this.drawCircle(t,r,n).beginHole().drawCircle(t,r,o).endHole():(this.finishPoly(),this.arc(t,r,o,i,a,!0).arc(t,r,n,a,i,!1).finishPoly(),this)}},drawChamferRect:{value:function(t,r,o,n,a){if(0===a)return this.drawRect(t,r,o,n);var i=Math.min(o,n)/2,e=Math.min(i,Math.max(-i,a)),h=t+o,c=r+n,s=e<0?-e:0,u=Math.abs(e);return this.moveTo(t,r+u).arcTo(t+s,r+s,t+u,r,u).lineTo(h-u,r).arcTo(h-s,r+s,h,r+u,u).lineTo(h,c-u).arcTo(h-s,c-s,t+o-u,c,u).lineTo(t+u,c).arcTo(t+s,c-s,t,c-u,u).closePath()}},drawFilletRect:{value:function(t,r,o,n,a){if(a<=0)return this.drawRect(t,r,o,n);for(var i=Math.min(a,Math.min(o,n)/2),e=t+o,h=r+n,c=[t+i,r,e-i,r,e,r+i,e,h-i,e-i,h,t+i,h,t,h-i,t,r+i],s=c.length-1;s>=2;s-=2)c[s]===c[s-2]&&c[s-1]===c[s-3]&&c.splice(s-1,2);return this.drawPolygon(c)}},drawRegularPolygon:{value:function(t,r,o,n,a){void 0===a&&(a=0),n=Math.max(0|n,3);for(var i=-1*Math.PI/2+a,e=2*Math.PI/n,h=[],c=0;c<n;c++){var s=c*e+i;h.push(t+o*Math.cos(s),r+o*Math.sin(s))}return this.drawPolygon(h)}},drawStar:{value:function(t,r,o,a,i,e){return void 0===e&&(e=0),this.drawPolygon(new n(t,r,o,a,i,e))}}})}(PIXI,PIXI);
|
|
9
|
+
// Disabled to avoid warnings in Chrome (see https://github.com/4ian/GDevelop/pull/3947)
|
|
10
|
+
// //# sourceMappingURL=graphics-extras.min.js.map
|
package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphics-extras.min.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../src/drawStar.ts","../../src/index.ts","../../src/drawTorus.ts","../../src/drawChamferRect.ts","../../src/drawFilletRect.ts","../../src/drawRegularPolygon.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import type { Graphics } from '@pixi/graphics';\nimport { Polygon, PI_2 } from '@pixi/math';\n\n/**\n * Draw a star shape with an arbitrary number of points.\n *\n * @ignore\n */\nclass Star extends Polygon\n{\n /**\n * @param {number} x - Center X position of the star\n * @param {number} y - Center Y position of the star\n * @param {number} points - The number of points of the star, must be > 1\n * @param {number} radius - The outer radius of the star\n * @param {number} [innerRadius] - The inner radius between points, default half `radius`\n * @param {number} [rotation=0] - The rotation of the star in radians, where 0 is vertical\n */\n constructor(x: number, y: number, points: number, radius: number, innerRadius?: number, rotation = 0)\n {\n innerRadius = innerRadius || radius / 2;\n\n const startAngle = (-1 * Math.PI / 2) + rotation;\n const len = points * 2;\n const delta = PI_2 / len;\n const polygon = [];\n\n for (let i = 0; i < len; i++)\n {\n const r = i % 2 ? innerRadius : radius;\n const angle = (i * delta) + startAngle;\n\n polygon.push(\n x + (r * Math.cos(angle)),\n y + (r * Math.sin(angle))\n );\n }\n\n super(polygon);\n }\n}\n\n/**\n * Draw a star shape with an arbitrary number of points.\n *\n * _Note: Only available with **@pixi/graphics-extras**._\n *\n * @instance\n * @memberof PIXI.Graphics\n * @method drawStar\n * @param {number} x - Center X position of the star\n * @param {number} y - Center Y position of the star\n * @param {number} points - The number of points of the star, must be > 1\n * @param {number} radius - The outer radius of the star\n * @param {number} [innerRadius] - The inner radius between points, default half `radius`\n * @param {number} [rotation=0] - The rotation of the star in radians, where 0 is vertical\n * @return {PIXI.Graphics} This Graphics object. Good for chaining method calls\n */\nexport function drawStar(this: Graphics,\n x: number,\n y: number,\n points: number,\n radius: number,\n innerRadius: number,\n rotation = 0): Graphics\n{\n return this.drawPolygon(new Star(x, y, points, radius, innerRadius, rotation) as Polygon);\n}\n","import { Graphics } from '@pixi/graphics';\nimport { drawTorus } from './drawTorus';\nimport { drawChamferRect } from './drawChamferRect';\nimport { drawFilletRect } from './drawFilletRect';\nimport { drawRegularPolygon } from './drawRegularPolygon';\nimport { drawStar } from './drawStar';\n\nexport interface IGraphicsExtras {\n drawTorus: typeof drawTorus;\n drawChamferRect: typeof drawChamferRect;\n drawFilletRect: typeof drawFilletRect;\n drawRegularPolygon: typeof drawRegularPolygon;\n drawStar: typeof drawStar;\n}\n\n// Assign extras to Graphics\nObject.defineProperties(Graphics.prototype, {\n drawTorus: { value: drawTorus },\n drawChamferRect: { value: drawChamferRect },\n drawFilletRect: { value: drawFilletRect },\n drawRegularPolygon: { value: drawRegularPolygon },\n drawStar: { value: drawStar },\n});\n","import type { Graphics } from '@pixi/graphics';\n\n/**\n * Draw a torus shape, like a donut. Can be used for something like a circle loader.\n *\n * _Note: Only available with **@pixi/graphics-extras**._\n *\n * @instance\n * @memberof PIXI.Graphics\n * @method drawTorus\n * @param {number} x - X position\n * @param {number} y - Y position\n * @param {number} innerRadius - Inner circle radius\n * @param {number} outerRadius - Outer circle radius\n * @param {number} [startArc=0] - Where to begin sweep, in radians, 0.0 = to the right\n * @param {number} [endArc=Math.PI*2] - Where to end sweep, in radians\n * @return {PIXI.Graphics}\n */\nexport function drawTorus(this: Graphics,\n x: number,\n y: number,\n innerRadius: number,\n outerRadius: number,\n startArc = 0,\n endArc: number = Math.PI * 2): Graphics\n{\n if (Math.abs(endArc - startArc) >= Math.PI * 2)\n {\n return this\n .drawCircle(x, y, outerRadius)\n .beginHole()\n .drawCircle(x, y, innerRadius)\n .endHole();\n }\n\n this.finishPoly();\n this\n .arc(x, y, innerRadius, endArc, startArc, true)\n .arc(x, y, outerRadius, startArc, endArc, false)\n .finishPoly();\n\n return this;\n}\n","import type { Graphics } from '@pixi/graphics';\n\n/**\n * Draw Rectangle with chamfer corners.\n *\n * _Note: Only available with **@pixi/graphics-extras**._\n *\n * @instance\n * @memberof PIXI.Graphics\n * @method drawChamferRect\n * @param {number} x - Upper left corner of rect\n * @param {number} y - Upper right corner of rect\n * @param {number} width - Width of rect\n * @param {number} height - Height of rect\n * @param {number} chamfer - accept negative or positive values\n * @return {PIXI.Graphics} Returns self.\n */\nexport function drawChamferRect(this: Graphics,\n x: number,\n y: number,\n width: number,\n height: number,\n chamfer: number): Graphics\n{\n if (chamfer === 0)\n {\n return this.drawRect(x, y, width, height);\n }\n\n const maxChamfer = Math.min(width, height) / 2;\n const inset = Math.min(maxChamfer, Math.max(-maxChamfer, chamfer));\n const right = x + width;\n const bottom = y + height;\n const dir = inset < 0 ? -inset : 0;\n const size = Math.abs(inset);\n\n return this\n .moveTo(x, y + size)\n .arcTo(x + dir, y + dir, x + size, y, size)\n .lineTo(right - size, y)\n .arcTo(right - dir, y + dir, right, y + size, size)\n .lineTo(right, bottom - size)\n .arcTo(right - dir, bottom - dir, x + width - size, bottom, size)\n .lineTo(x + size, bottom)\n .arcTo(x + dir, bottom - dir, x, bottom - size, size)\n .closePath();\n}\n","import type { Graphics } from '@pixi/graphics';\n\n/**\n * Draw Rectangle with fillet corners.\n *\n * _Note: Only available with **@pixi/graphics-extras**._\n *\n * @instance\n * @memberof PIXI.Graphics\n * @method drawFilletRect\n * @param {number} x - Upper left corner of rect\n * @param {number} y - Upper right corner of rect\n * @param {number} width - Width of rect\n * @param {number} height - Height of rect\n * @param {number} fillet - non-zero real number, size of corner cutout\n * @return {PIXI.Graphics} Returns self.\n */\nexport function drawFilletRect(this: Graphics,\n x: number,\n y: number,\n width: number,\n height: number,\n fillet: number): Graphics\n{\n if (fillet <= 0)\n {\n return this.drawRect(x, y, width, height);\n }\n\n const inset = Math.min(fillet, Math.min(width, height) / 2);\n const right = x + width;\n const bottom = y + height;\n const points = [\n x + inset, y,\n right - inset, y,\n right, y + inset,\n right, bottom - inset,\n right - inset, bottom,\n x + inset, bottom,\n x, bottom - inset,\n x, y + inset,\n ];\n\n // Remove overlapping points\n for (let i = points.length - 1; i >= 2; i -= 2)\n {\n if (points[i] === points[i - 2] && points[i - 1] === points[i - 3])\n {\n points.splice(i - 1, 2);\n }\n }\n\n return this.drawPolygon(points);\n}\n","import type { Graphics } from '@pixi/graphics';\n\n/**\n * Draw a regular polygon where all sides are the same length.\n *\n * _Note: Only available with **@pixi/graphics-extras**._\n *\n * @instance\n * @memberof PIXI.Graphics\n * @method drawRegularPolygon\n * @param {number} x - X position\n * @param {number} y - Y position\n * @param {number} radius - Polygon radius\n * @param {number} sides - Minimum value is 3\n * @param {number} rotation - Starting rotation values in radians..\n * @return {PIXI.Graphics}\n */\nexport function drawRegularPolygon(this: Graphics,\n x: number,\n y: number,\n radius: number,\n sides: number,\n rotation = 0): Graphics\n{\n sides = Math.max(sides | 0, 3);\n const startAngle = (-1 * Math.PI / 2) + rotation;\n const delta = (Math.PI * 2) / sides;\n const polygon = [];\n\n for (let i = 0; i < sides; i++)\n {\n const angle = (i * delta) + startAngle;\n\n polygon.push(\n x + (radius * Math.cos(angle)),\n y + (radius * Math.sin(angle))\n );\n }\n\n return this.drawPolygon(polygon);\n}\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","x","y","points","radius","innerRadius","rotation","startAngle","Math","PI","len","delta","PI_2","polygon","i","r","angle","push","cos","sin","_super","__","this","constructor","prototype","create","__extends","Polygon","defineProperties","Graphics","drawTorus","value","outerRadius","startArc","endArc","abs","drawCircle","beginHole","endHole","finishPoly","arc","drawChamferRect","width","height","chamfer","drawRect","maxChamfer","min","inset","max","right","bottom","dir","size","moveTo","arcTo","lineTo","closePath","drawFilletRect","fillet","length","splice","drawPolygon","drawRegularPolygon","sides","drawStar","Star"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var gdjs;(l=>{const n=GlobalPIXIModule.PIXI;class c{_object;_graphics;_positionXIsUpToDate=!1;_positionYIsUpToDate=!1;_transformationIsUpToDate=!1;_antialiasingFilter=null;static _positionForTransformation={x:0,y:0};constructor(t,i){this._object=t,this._graphics=new n.Graphics,i.getLayer("").getRenderer().addRendererObject(this._graphics,t.getZOrder()),this.updateAntialiasing()}getRendererObject(){return this._graphics}clear(){this._graphics.clear(),this.invalidateBounds()}drawRectangle(t,i,a,s){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.drawRect(t,i,a-t,s-i),this._graphics.endFill(),this.invalidateBounds()}drawCircle(t,i,a){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.drawCircle(t,i,a),this._graphics.endFill(),this.invalidateBounds()}drawLine(t,i,a,s,e){if(this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),s===i)this._graphics.drawRect(t,i-e/2,a-t,e);else{const o=Math.atan2(s-i,a-t),h=Math.sin(o)*e,r=Math.cos(o)*e;this._graphics.drawPolygon(t+h,i-r,t-h,i+r,a-h,s+r,a+h,s-r)}this._graphics.endFill(),this.invalidateBounds()}drawLineV2(t,i,a,s,e){this._graphics.lineStyle(e,this._object._outlineColor,this._object._outlineOpacity/255),this._graphics.moveTo(t,i),this._graphics.lineTo(a,s),this._graphics.endFill(),this.invalidateBounds()}drawEllipse(t,i,a,s){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.drawEllipse(t,i,a/2,s/2),this._graphics.endFill(),this.invalidateBounds()}drawRoundedRectangle(t,i,a,s,e){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.drawRoundedRect(t,i,a-t,s-i,e),this._graphics.closePath(),this._graphics.endFill(),this.invalidateBounds()}drawStar(t,i,a,s,e,o){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.drawStar(t,i,a,s,e||s/2,o?l.toRad(o):0),this._graphics.closePath(),this._graphics.endFill(),this.invalidateBounds()}drawArc(t,i,a,s,e,o,h){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.moveTo(t+a*Math.cos(l.toRad(s)),i+a*Math.sin(l.toRad(s))),this._graphics.arc(t,i,a,l.toRad(s),l.toRad(e),!!o),h&&this._graphics.closePath(),this._graphics.endFill(),this.invalidateBounds()}drawBezierCurve(t,i,a,s,e,o,h,r){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.moveTo(t,i),this._graphics.bezierCurveTo(a,s,e,o,h,r),this._graphics.endFill(),this.invalidateBounds()}drawQuadraticCurve(t,i,a,s,e,o){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255),this._graphics.moveTo(t,i),this._graphics.quadraticCurveTo(a,s,e,o),this._graphics.endFill(),this.invalidateBounds()}beginFillPath(){this.updateOutline(),this._graphics.beginFill(this._object._fillColor,this._object._fillOpacity/255)}endFillPath(){this._graphics.endFill(),this.invalidateBounds()}drawPathMoveTo(t,i){this._graphics.moveTo(t,i)}drawPathLineTo(t,i){this._graphics.lineTo(t,i),this.invalidateBounds()}drawPathBezierCurveTo(t,i,a,s,e,o){this._graphics.bezierCurveTo(t,i,a,s,e,o),this.invalidateBounds()}drawPathArc(t,i,a,s,e,o){this._graphics.arc(t,i,a,l.toRad(s),l.toRad(e),!!o),this.invalidateBounds()}drawPathQuadraticCurveTo(t,i,a,s){this._graphics.quadraticCurveTo(t,i,a,s),this.invalidateBounds()}closePath(){this._graphics.closePath(),this.invalidateBounds()}updateOutline(){this._graphics.lineStyle(this._object._outlineSize,this._object._outlineColor,this._object._outlineOpacity/255)}invalidateBounds(){this._object.invalidateBounds(),this._positionXIsUpToDate=!1,this._positionYIsUpToDate=!1}updatePreRender(){this.updatePositionIfNeeded()}updatePositionX(){this._object._useAbsoluteCoordinates?(this._graphics.pivot.x=0,this._graphics.position.x=0):(this._graphics.pivot.x=this._object.getRotationCenterX(),this._graphics.position.x=this._object.x+this._graphics.pivot.x*Math.abs(this._graphics.scale.x)),this._transformationIsUpToDate=!1}updatePositionY(){this._object._useAbsoluteCoordinates?(this._graphics.pivot.y=0,this._graphics.position.y=0):(this._graphics.pivot.y=this._object.getRotationCenterY(),this._graphics.position.y=this._object.y+this._graphics.pivot.y*Math.abs(this._graphics.scale.y)),this._transformationIsUpToDate=!1}updatePositionIfNeeded(){this._positionXIsUpToDate||(this.updatePositionX(),this._positionXIsUpToDate=!0),this._positionYIsUpToDate||(this.updatePositionY(),this._positionYIsUpToDate=!0)}updateTransformationIfNeeded(){this._transformationIsUpToDate||(this.updatePositionIfNeeded(),this._graphics.updateTransform()),this._transformationIsUpToDate=!0}updateRotationCenter(){this._positionXIsUpToDate=!1,this._positionYIsUpToDate=!1,this._transformationIsUpToDate=!1}updateAngle(){this._object._useAbsoluteCoordinates?this._graphics.angle=0:this._graphics.angle=this._object.angle,this._transformationIsUpToDate=!1}updateScaleX(){this._object._useAbsoluteCoordinates?this._graphics.scale.x=1:this._graphics.scale.x=this._object._scaleX,this._positionXIsUpToDate=!1,this._transformationIsUpToDate=!1}updateScaleY(){this._object._useAbsoluteCoordinates?this._graphics.scale.y=1:this._graphics.scale.y=this._object._scaleY,this._positionYIsUpToDate=!1,this._transformationIsUpToDate=!1}getDrawableX(){if(this._object._useAbsoluteCoordinates)return this._graphics.getLocalBounds().left;let t=this._graphics.getLocalBounds().left;return this._object._flippedX&&(t=2*this._object.getRotationCenterX()-t),this._object.getX()+t*Math.abs(this._graphics.scale.x)}getDrawableY(){if(this._object._useAbsoluteCoordinates)return this._graphics.getLocalBounds().top;let t=this._graphics.getLocalBounds().top;return this._object._flippedY&&(t=2*this._object.getRotationCenterY()-t),this._object.getY()+t*Math.abs(this._graphics.scale.y)}getWidth(){return this._graphics.width}getHeight(){return this._graphics.height}getUnscaledWidth(){return this._graphics.getLocalBounds().width}getUnscaledHeight(){return this._graphics.getLocalBounds().height}getFrameRelativeOriginX(){return-this._graphics.getLocalBounds().left}getFrameRelativeOriginY(){return-this._graphics.getLocalBounds().top}transformToDrawing(t){this.updateTransformationIfNeeded();const i=c._positionForTransformation;return i.x=t[0],i.y=t[1],this._graphics.localTransform.applyInverse(i,i),t[0]=i.x,t[1]=i.y,t}transformToScene(t){this.updateTransformationIfNeeded();const i=c._positionForTransformation;return i.x=t[0],i.y=t[1],this._graphics.localTransform.apply(i,i),t[0]=i.x,t[1]=i.y,t}updateAntialiasing(){if(this._object.getAntialiasing()!=="none"){this._antialiasingFilter||(this._antialiasingFilter=new n.filters.FXAAFilter);const t=this._antialiasingFilter;t.enabled=!0,t.multisample=n.MSAA_QUALITY[this._object.getAntialiasing().toUpperCase()]||n.MSAA_QUALITY.LOW,this._graphics.filters||(this._graphics.filters=[]),this._graphics.filters.indexOf(t)===-1&&this._graphics.filters.push(t)}else if(this._antialiasingFilter!==null){if(!this._graphics.filters)return;const t=this._graphics.filters.indexOf(this._antialiasingFilter);t!==-1&&this._graphics.filters.splice(t,1)}}}l.ShapePainterRuntimeObjectRenderer=c})(gdjs||={});
|
|
2
|
+
//# sourceMappingURL=shapepainterruntimeobject-pixi-renderer.js.map
|