From e55b7634dc535737decb1d4c117bef6862089c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 6 Aug 2023 00:04:38 +0200 Subject: [PATCH 01/53] Add some models. --- examples/3d-bomberman/3d-bomberman.json | 28860 ++++++++++++++++ examples/3d-bomberman/README.md | 1 + examples/3d-bomberman/TAGS.md | 1 + examples/3d-bomberman/assets/BlueBunny.glb | Bin 0 -> 1027532 bytes examples/3d-bomberman/assets/BombeBonus-1.png | Bin 0 -> 947 bytes examples/3d-bomberman/assets/Bulle.png | Bin 0 -> 144 bytes examples/3d-bomberman/assets/Cabbage.glb | Bin 0 -> 13616 bytes .../assets/ExplosionBras-Anim1.png | Bin 0 -> 435 bytes .../assets/ExplosionBras-Anim2.png | Bin 0 -> 487 bytes .../assets/ExplosionBras-Anim3.png | Bin 0 -> 554 bytes .../assets/ExplosionBras-Anim4.png | Bin 0 -> 595 bytes .../assets/ExplosionCentre-Anim1.png | Bin 0 -> 793 bytes .../assets/ExplosionCentre-Anim2.png | Bin 0 -> 952 bytes .../assets/ExplosionCentre-Anim3.png | Bin 0 -> 955 bytes .../assets/ExplosionCentre-Anim4.png | Bin 0 -> 956 bytes .../assets/ExplosionDoigt-Anim1.png | Bin 0 -> 531 bytes .../assets/ExplosionDoigt-Anim2.png | Bin 0 -> 643 bytes .../assets/ExplosionDoigt-Anim3.png | Bin 0 -> 814 bytes .../assets/ExplosionDoigt-Anim4.png | Bin 0 -> 923 bytes examples/3d-bomberman/assets/FlammeBonus.png | Bin 0 -> 1045 bytes examples/3d-bomberman/assets/Fleche.png | Bin 0 -> 168 bytes .../assets/JoueurSelectionMask.png | Bin 0 -> 180 bytes examples/3d-bomberman/assets/MurHerbe.png | Bin 0 -> 364 bytes examples/3d-bomberman/assets/Nenuphar.png | Bin 0 -> 2461 bytes examples/3d-bomberman/assets/NewSprite.png | Bin 0 -> 205 bytes .../3d-bomberman/assets/NiveauClassique.png | Bin 0 -> 2246 bytes examples/3d-bomberman/assets/NiveauVide.png | Bin 0 -> 1035 bytes examples/3d-bomberman/assets/OeufBombe.png | Bin 0 -> 1466 bytes .../3d-bomberman/assets/OieBlancheBas.png | Bin 0 -> 1494 bytes .../3d-bomberman/assets/OieBlancheDroite.png | Bin 0 -> 962 bytes .../3d-bomberman/assets/OieBlancheGauche.png | Bin 0 -> 952 bytes .../3d-bomberman/assets/OieBlancheHaut.png | Bin 0 -> 1173 bytes examples/3d-bomberman/assets/OieGrand.png | Bin 0 -> 7473 bytes examples/3d-bomberman/assets/OieGriseBas.png | Bin 0 -> 1641 bytes .../3d-bomberman/assets/OieGriseDroite.png | Bin 0 -> 1093 bytes .../3d-bomberman/assets/OieGriseGauche.png | Bin 0 -> 1094 bytes examples/3d-bomberman/assets/OieGriseHaut.png | Bin 0 -> 1350 bytes examples/3d-bomberman/assets/OieMarronBas.png | Bin 0 -> 1905 bytes .../3d-bomberman/assets/OieMarronDroite.png | Bin 0 -> 1153 bytes .../3d-bomberman/assets/OieMarronGauche.png | Bin 0 -> 1145 bytes .../3d-bomberman/assets/OieMarronHaut.png | Bin 0 -> 1518 bytes examples/3d-bomberman/assets/OieRoseBas.png | Bin 0 -> 1877 bytes .../3d-bomberman/assets/OieRoseDroite.png | Bin 0 -> 1150 bytes .../3d-bomberman/assets/OieRoseGauche.png | Bin 0 -> 1154 bytes examples/3d-bomberman/assets/OieRoseHaut.png | Bin 0 -> 1475 bytes examples/3d-bomberman/assets/Rock Moss 3.glb | Bin 0 -> 5496 bytes .../3d-bomberman/assets/blockRoundedLong.glb | Bin 0 -> 20732 bytes examples/3d-bomberman/assets/fence.glb | Bin 0 -> 10036 bytes examples/3d-bomberman/preview.png | Bin 0 -> 57493 bytes examples/3d-bomberman/square-icon.png | Bin 0 -> 2414 bytes 50 files changed, 28862 insertions(+) create mode 100644 examples/3d-bomberman/3d-bomberman.json create mode 100644 examples/3d-bomberman/README.md create mode 100644 examples/3d-bomberman/TAGS.md create mode 100644 examples/3d-bomberman/assets/BlueBunny.glb create mode 100644 examples/3d-bomberman/assets/BombeBonus-1.png create mode 100644 examples/3d-bomberman/assets/Bulle.png create mode 100644 examples/3d-bomberman/assets/Cabbage.glb create mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim1.png create mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim2.png create mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim3.png create mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim4.png create mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim1.png create mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim2.png create mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim3.png create mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim4.png create mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim1.png create mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png create mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim3.png create mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png create mode 100644 examples/3d-bomberman/assets/FlammeBonus.png create mode 100644 examples/3d-bomberman/assets/Fleche.png create mode 100644 examples/3d-bomberman/assets/JoueurSelectionMask.png create mode 100644 examples/3d-bomberman/assets/MurHerbe.png create mode 100644 examples/3d-bomberman/assets/Nenuphar.png create mode 100644 examples/3d-bomberman/assets/NewSprite.png create mode 100644 examples/3d-bomberman/assets/NiveauClassique.png create mode 100644 examples/3d-bomberman/assets/NiveauVide.png create mode 100644 examples/3d-bomberman/assets/OeufBombe.png create mode 100644 examples/3d-bomberman/assets/OieBlancheBas.png create mode 100644 examples/3d-bomberman/assets/OieBlancheDroite.png create mode 100644 examples/3d-bomberman/assets/OieBlancheGauche.png create mode 100644 examples/3d-bomberman/assets/OieBlancheHaut.png create mode 100644 examples/3d-bomberman/assets/OieGrand.png create mode 100644 examples/3d-bomberman/assets/OieGriseBas.png create mode 100644 examples/3d-bomberman/assets/OieGriseDroite.png create mode 100644 examples/3d-bomberman/assets/OieGriseGauche.png create mode 100644 examples/3d-bomberman/assets/OieGriseHaut.png create mode 100644 examples/3d-bomberman/assets/OieMarronBas.png create mode 100644 examples/3d-bomberman/assets/OieMarronDroite.png create mode 100644 examples/3d-bomberman/assets/OieMarronGauche.png create mode 100644 examples/3d-bomberman/assets/OieMarronHaut.png create mode 100644 examples/3d-bomberman/assets/OieRoseBas.png create mode 100644 examples/3d-bomberman/assets/OieRoseDroite.png create mode 100644 examples/3d-bomberman/assets/OieRoseGauche.png create mode 100644 examples/3d-bomberman/assets/OieRoseHaut.png create mode 100644 examples/3d-bomberman/assets/Rock Moss 3.glb create mode 100644 examples/3d-bomberman/assets/blockRoundedLong.glb create mode 100644 examples/3d-bomberman/assets/fence.glb create mode 100644 examples/3d-bomberman/preview.png create mode 100644 examples/3d-bomberman/square-icon.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json new file mode 100644 index 000000000..fb81b1aad --- /dev/null +++ b/examples/3d-bomberman/3d-bomberman.json @@ -0,0 +1,28860 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 99, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adaptGameResolutionAtRuntime": true, + "antialiasingMode": "MSAA", + "antialisingEnabledOnMobile": false, + "folderProject": false, + "orientation": "landscape", + "packageName": "com.example.goosebomberman", + "pixelsRounding": false, + "projectUuid": "d6d0b476-695b-4c95-a500-db2594bacf92", + "scaleMode": "linear", + "sizeOnStartupMode": "", + "templateSlug": "", + "useExternalSourceFiles": false, + "version": "1.0.0", + "name": "Sans Foie Nie l'Oie", + "description": "This is a game example to show how to do a Bomberman clone with GDevelop. The source can be found directly in GDevelop in the examples list.\n\nControls are:\n\n- arrows and RShift\n- ESDF and LShift\n- IJKL and H\n- 8456 and 0\n- or gamepads", + "author": "", + "windowWidth": 1280, + "windowHeight": 720, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 20, + "verticalSync": false, + "platformSpecificAssets": { + "android-icon-144": "", + "android-icon-192": "", + "android-icon-36": "", + "android-icon-48": "", + "android-icon-72": "", + "android-icon-96": "", + "android-windowSplashScreenAnimatedIcon": "", + "desktop-icon-512": "", + "ios-icon-100": "", + "ios-icon-1024": "", + "ios-icon-114": "", + "ios-icon-120": "", + "ios-icon-144": "", + "ios-icon-152": "", + "ios-icon-167": "", + "ios-icon-180": "", + "ios-icon-20": "", + "ios-icon-29": "", + "ios-icon-40": "", + "ios-icon-50": "", + "ios-icon-57": "", + "ios-icon-58": "", + "ios-icon-60": "", + "ios-icon-72": "", + "ios-icon-76": "", + "ios-icon-80": "", + "ios-icon-87": "", + "liluo-thumbnail": "preview.png" + }, + "loadingScreen": { + "backgroundColor": 0, + "backgroundFadeInDuration": 0.2, + "backgroundImageResourceName": "", + "gdevelopLogoStyle": "light", + "logoAndProgressFadeInDuration": 0.2, + "logoAndProgressLogoFadeInDelay": 0.2, + "minDuration": 0, + "progressBarColor": 16777215, + "progressBarHeight": 20, + "progressBarMaxWidth": 200, + "progressBarMinWidth": 40, + "progressBarWidthPercent": 30, + "showGDevelopSplash": false, + "showProgressBar": false + }, + "watermark": { + "placement": "bottom-left", + "showWatermark": true + }, + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "authorUsernames": [], + "categories": [ + "action", + "multiplayer" + ], + "playableDevices": [ + "keyboard", + "gamepad" + ], + "extensionProperties": [], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "assets/BombeBonus-1.png", + "kind": "image", + "metadata": "", + "name": "BombeBonus-1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/NiveauClassique.png", + "kind": "image", + "metadata": "", + "name": "NiveauClassique.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/NiveauVide.png", + "kind": "image", + "metadata": "", + "name": "NiveauVide.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/OieBlancheDroite.png", + "kind": "image", + "metadata": "", + "name": "OieBlancheDroite.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieBlancheGauche.png", + "kind": "image", + "metadata": "", + "name": "OieBlancheGauche.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieBlancheHaut.png", + "kind": "image", + "metadata": "", + "name": "OieBlancheHaut.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieBlancheBas.png", + "kind": "image", + "metadata": "", + "name": "OieBlancheBas.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieGriseDroite.png", + "kind": "image", + "metadata": "", + "name": "OieGriseDroite.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieGriseGauche.png", + "kind": "image", + "metadata": "", + "name": "OieGriseGauche.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieGriseHaut.png", + "kind": "image", + "metadata": "", + "name": "OieGriseHaut.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieGriseBas.png", + "kind": "image", + "metadata": "", + "name": "OieGriseBas.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieRoseDroite.png", + "kind": "image", + "metadata": "", + "name": "OieRoseDroite.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieRoseGauche.png", + "kind": "image", + "metadata": "", + "name": "OieRoseGauche.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieRoseHaut.png", + "kind": "image", + "metadata": "", + "name": "OieRoseHaut.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieRoseBas.png", + "kind": "image", + "metadata": "", + "name": "OieRoseBas.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieMarronDroite.png", + "kind": "image", + "metadata": "", + "name": "OieMarronDroite.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieMarronGauche.png", + "kind": "image", + "metadata": "", + "name": "OieMarronGauche.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieMarronHaut.png", + "kind": "image", + "metadata": "", + "name": "OieMarronHaut.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieMarronBas.png", + "kind": "image", + "metadata": "", + "name": "OieMarronBas.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/MurHerbe.png", + "kind": "image", + "metadata": "", + "name": "MurHerbe.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Nenuphar.png", + "kind": "image", + "metadata": "", + "name": "Nenuphar.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OeufBombe.png", + "kind": "image", + "metadata": "", + "name": "OeufBombe.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OieGrand.png", + "kind": "image", + "metadata": "", + "name": "OieGrand.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Bulle.png", + "kind": "image", + "metadata": "", + "name": "Bulle.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Fleche.png", + "kind": "image", + "metadata": "", + "name": "Fleche.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/JoueurSelectionMask.png", + "kind": "image", + "metadata": "", + "name": "JoueurSelectionMask.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionCentre-Anim1.png", + "kind": "image", + "metadata": "", + "name": "ExplosionCentre-Anim1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionCentre-Anim2.png", + "kind": "image", + "metadata": "", + "name": "ExplosionCentre-Anim2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionCentre-Anim3.png", + "kind": "image", + "metadata": "", + "name": "ExplosionCentre-Anim3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionCentre-Anim4.png", + "kind": "image", + "metadata": "", + "name": "ExplosionCentre-Anim4.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionBras-Anim1.png", + "kind": "image", + "metadata": "", + "name": "ExplosionBras-Anim1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionBras-Anim2.png", + "kind": "image", + "metadata": "", + "name": "ExplosionBras-Anim2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionBras-Anim3.png", + "kind": "image", + "metadata": "", + "name": "ExplosionBras-Anim3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionBras-Anim4.png", + "kind": "image", + "metadata": "", + "name": "ExplosionBras-Anim4.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionDoigt-Anim1.png", + "kind": "image", + "metadata": "", + "name": "ExplosionDoigt-Anim1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionDoigt-Anim2.png", + "kind": "image", + "metadata": "", + "name": "ExplosionDoigt-Anim2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionDoigt-Anim3.png", + "kind": "image", + "metadata": "", + "name": "ExplosionDoigt-Anim3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionDoigt-Anim4.png", + "kind": "image", + "metadata": "", + "name": "ExplosionDoigt-Anim4.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/FlammeBonus.png", + "kind": "image", + "metadata": "", + "name": "assets\\FlammeBonus.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "preview.png", + "kind": "image", + "metadata": "", + "name": "preview.png", + "smoothed": true, + "userAdded": true + }, + { + "file": "assets/Rock Moss 3.glb", + "kind": "model3D", + "metadata": "", + "name": "Rock Moss 3.glb", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Rocks and Trees/Rock/d60c181205898dd44cd84d86cbee135652e1928639f9a791dd9ba935a46c7d59_Rock Moss 3.glb", + "name": "Rock Moss 3.glb" + } + }, + { + "file": "assets/Cabbage.glb", + "kind": "model3D", + "metadata": "", + "name": "Cabbage.glb", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Food/Vegetable/9dc8da10b4175e52ea9142bdaaae9daf1499c92fa46bd504cd2d00cf257492fa_Cabbage.glb", + "name": "Cabbage.glb" + } + }, + { + "file": "assets/blockRoundedLong.glb", + "kind": "model3D", + "metadata": "", + "name": "blockRoundedLong.glb", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Platformer Kit/ground/77ab9160f1ee5bbb1e5135ddfda9848a109520ca4ffc982dd29aeab1a7a422b1_blockRoundedLong.glb", + "name": "blockRoundedLong.glb" + } + }, + { + "file": "assets/fence.glb", + "kind": "model3D", + "metadata": "", + "name": "fence.glb", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Platformer Kit/ground/b2670e24563f56caf557b045d88dbe4604cc560ac715bbbb2ce022fbdcf7064f_fence.glb", + "name": "fence.glb" + } + }, + { + "alwaysLoaded": false, + "file": "assets/NewSprite.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "NewSprite", + "smoothed": true, + "userAdded": true + }, + { + "file": "assets/BlueBunny.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\BlueBunny.glb", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/NewSprite.png", + "kind": "image", + "metadata": "", + "name": "assets\\NewSprite.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [ + { + "name": "Score", + "type": "string", + "value": "" + }, + { + "name": "PlayerCount", + "type": "number", + "value": 4 + }, + { + "name": "Level", + "type": "string", + "value": "TestLevel" + }, + { + "name": "Bomb", + "type": "string", + "value": "2" + }, + { + "name": "Flame", + "type": "string", + "value": "2" + } + ], + "layouts": [ + { + "b": 219, + "disableInputWhenNotFocused": true, + "mangledName": "Selection", + "name": "Selection", + "r": 175, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 12, + "gridHeight": 12, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.6864000000000002, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Level", + "objects": [ + { + "name": "ClassicLevel" + }, + { + "name": "EmptyLevel" + } + ] + } + ], + "variables": [ + { + "name": "Messages", + "type": "structure", + "children": [ + { + "name": "0", + "type": "string", + "value": "Ça me gave.\nChoose a level." + }, + { + "name": "1", + "type": "string", + "value": "Hé ouais, 2 niveaux.\nÇa te cloue le bec !" + }, + { + "name": "2", + "type": "string", + "value": "Là, l'oie, c'est moi !\nChoose a level." + }, + { + "name": "3", + "type": "string", + "value": "Ça casse pas 3 pattes à un canard.\nChoose a level." + }, + { + "name": "4", + "type": "string", + "value": "Me vole pas dans les plumes.\nChoose a level." + }, + { + "name": "5", + "type": "string", + "value": "Prêt à canarder ?\nChoose a level." + }, + { + "name": "6", + "type": "string", + "value": "L'oisiveté, hein ?\nChoose a level." + }, + { + "name": "7", + "type": "string", + "value": "Dépêche, fait un froid de canard.\nChoose a level." + }, + { + "name": "8", + "type": "string", + "value": "What's up, duck?\nChoose a level." + }, + { + "name": "9", + "type": "string", + "value": "Fais-moi signe.\nChoose a level." + } + ] + } + ], + "instances": [ + { + "angle": 0, + "customSize": true, + "height": 120, + "layer": "", + "name": "PlayerX2", + "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", + "width": 120, + "x": 288, + "y": 192, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 120, + "layer": "", + "name": "PlayerX3", + "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", + "width": 120, + "x": 468, + "y": 192, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 120, + "layer": "", + "name": "PlayerX4", + "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", + "width": 120, + "x": 648, + "y": 192, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "ClassicLevel", + "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", + "width": 0, + "x": 288, + "y": 360, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "EmptyLevel", + "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", + "width": 0, + "x": 564, + "y": 360, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 72, + "layer": "", + "name": "Message", + "persistentUuid": "102af169-1519-4d29-8d02-fdb4dd10ed38", + "width": 528, + "x": 288, + "y": 48, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 120, + "layer": "", + "name": "Bubble", + "persistentUuid": "dc4421a9-d865-4d35-b679-d0ea94864f69", + "width": 528, + "x": 264, + "y": 24, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Arrow", + "persistentUuid": "1b867022-f84c-498a-87ee-b8cf9aed916b", + "width": 0, + "x": 264, + "y": 144, + "zOrder": 7, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Narrator", + "persistentUuid": "8c98d64d-ae30-43d0-8756-61f3be3dc933", + "width": 0, + "x": -24, + "y": 144, + "zOrder": 8, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose1", + "persistentUuid": "84f0fccf-dfbf-41ad-816b-22107bae2126", + "width": 0, + "x": 312, + "y": 240, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose1", + "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", + "width": 0, + "x": 660, + "y": 240, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose1", + "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", + "width": 0, + "x": 480, + "y": 240, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose2", + "persistentUuid": "d6379345-b3b8-49f9-a5f2-2d2d860acbc2", + "width": 0, + "x": 324, + "y": 228, + "zOrder": 14, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose2", + "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", + "width": 0, + "x": 492, + "y": 228, + "zOrder": 14, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose2", + "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", + "width": 0, + "x": 672, + "y": 228, + "zOrder": 14, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose3", + "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", + "width": 0, + "x": 504, + "y": 216, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose3", + "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", + "width": 0, + "x": 684, + "y": 216, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Goose4", + "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", + "width": 0, + "x": 696, + "y": 204, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 48, + "layer": "", + "name": "Controls", + "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", + "width": 480, + "x": 288, + "y": 552, + "zOrder": 21, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "4P", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ClassicLevel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Name", + "type": "string", + "value": "ClassicLevel" + }, + { + "name": "Bomb", + "type": "string", + "value": "1" + }, + { + "name": "Flame", + "type": "string", + "value": "2" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "NiveauClassique.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "EmptyLevel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Name", + "type": "string", + "value": "EmptyLevel" + }, + { + "name": "Bomb", + "type": "string", + "value": "4" + }, + { + "name": "Flame", + "type": "string", + "value": "6" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "NiveauVide.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Message", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Bla, bla.\nBla, bla.", + "font": "", + "textAlignment": "", + "characterSize": 32, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bubble", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bulle.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Arrow", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Fleche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Narrator", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieGrand.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose1", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieBlancheDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieGriseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieRoseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Controls", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "arrows and RShift - ESDF and LShift - IJKL and H - 8456 and 0\nor gamepads", + "font": "", + "textAlignment": "", + "characterSize": 16, + "color": { + "b": 66, + "g": 61, + "r": 41 + } + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Players count selection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "2" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX2" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX2", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "2" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX2" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX3", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX4", + "" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX3", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "3" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX2", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX3" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX4", + "" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX2", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX4", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "4" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX2", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX3", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX4" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX2", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Level selection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Level", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobalTxt" + }, + "parameters": [ + "Level", + "=", + "Level.VariableString(Name)" + ] + }, + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Bomb", + "=", + "Level.Variable(Bomb)" + ] + }, + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Flame", + "=", + "Level.Variable(Flame)" + ] + }, + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bubble messages", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Message" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Narrator", + "", + "", + "" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Bubble", + "", + "", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "", + "10", + "\"ChangeBuble\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Message" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Bubble" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Arrow" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + }, + { + "type": { + "value": "UnPauseTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "", + "1", + "\"ShowBuble\"" + ] + }, + { + "type": { + "inverted": true, + "value": "TimerPaused" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Message", + "=", + "VariableString(Messages[ToString(RandomInRange(0, VariableChildCount(Messages) - 1))])" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Message", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Bubble", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Arrow", + "" + ] + }, + { + "type": { + "value": "PauseTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"ChangeBuble\"" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "ambientLightColorB": 8099672, + "ambientLightColorG": 8127688, + "ambientLightColorR": 8867392, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + } + ], + "behaviorsSharedData": [] + }, + { + "b": 48, + "disableInputWhenNotFocused": true, + "mangledName": "Game", + "name": "Game", + "r": 80, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 64, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 12, + "gridHeight": 12, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 1.1680000030517574, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Obstacle", + "objects": [ + { + "name": "Wall" + }, + { + "name": "Crate" + } + ] + }, + { + "name": "Player", + "objects": [ + { + "name": "Player1" + }, + { + "name": "Player2" + }, + { + "name": "Player3" + }, + { + "name": "Player4" + } + ] + }, + { + "name": "ScoreIcon", + "objects": [ + { + "name": "ScoreIcon1" + }, + { + "name": "ScoreIcon2" + }, + { + "name": "ScoreIcon3" + }, + { + "name": "ScoreIcon4" + } + ] + } + ], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": true, + "height": 24, + "layer": "", + "name": "Score", + "persistentUuid": "42e783b6-213a-45b7-93dd-5d15c9482f94", + "width": 48, + "x": 72, + "y": 0, + "zOrder": 1000, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 23, + "layer": "", + "name": "ScoreIcon1", + "persistentUuid": "906f526d-ae6c-414a-8084-114f9a51cd0a", + "width": 33, + "x": 36, + "y": 0, + "zOrder": 1001, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 23, + "layer": "", + "name": "ScoreIcon2", + "persistentUuid": "2cc418a5-16ad-465f-a4bc-ff0f479488b8", + "width": 33, + "x": 132, + "y": 0, + "zOrder": 1002, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 23, + "layer": "", + "name": "ScoreIcon4", + "persistentUuid": "1713db2a-fecc-4906-b55c-8a68cc53ab88", + "width": 33, + "x": 324, + "y": 0, + "zOrder": 1003, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "4" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 23, + "layer": "", + "name": "ScoreIcon3", + "persistentUuid": "69e1ebf6-95a0-4c89-a026-0666d11c2762", + "width": 33, + "x": 228, + "y": 0, + "zOrder": 1004, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 24, + "layer": "", + "name": "Score", + "persistentUuid": "c9cc7551-b991-48ff-ae7e-10ca7eedc420", + "width": 48, + "x": 360, + "y": 0, + "zOrder": 1000, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "4" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 24, + "layer": "", + "name": "Score", + "persistentUuid": "b35a1096-fe26-4162-988f-887c1db68133", + "width": 48, + "x": 264, + "y": 0, + "zOrder": 1000, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 24, + "layer": "", + "name": "Score", + "persistentUuid": "970d4113-26f4-41fa-9bb3-716987e4632d", + "width": 48, + "x": 168, + "y": 0, + "zOrder": 1000, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "2" + } + ] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Wall", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 32 + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 10 + } + ], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "MurHerbe.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 12 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 12 + }, + { + "x": 48, + "y": 12 + }, + { + "x": 48, + "y": 60 + }, + { + "x": 0, + "y": 60 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Crate", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 32 + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 10 + } + ], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Nenuphar.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 4 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 4 + }, + { + "x": 48, + "y": 4 + }, + { + "x": 48, + "y": 52 + }, + { + "x": 0, + "y": 52 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Player1", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Number", + "type": "string", + "value": "1" + }, + { + "name": "Keys", + "type": "structure", + "children": [ + { + "name": "Bomb", + "type": "string", + "value": "RShift" + }, + { + "name": "Down", + "type": "string", + "value": "Down" + }, + { + "name": "Left", + "type": "string", + "value": "Left" + }, + { + "name": "Right", + "type": "string", + "value": "Right" + }, + { + "name": "Up", + "type": "string", + "value": "Up" + } + ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Range", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "Up", + "Left": "Left", + "Right": "Right", + "Down": "Down", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 1, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "angularMaxSpeed": 450, + "maxSpeed": 300, + "name": "TopDownMovement", + "rotateObject": true, + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "deceleration": 16000, + "allowDiagonals": true, + "angleOffset": 0, + "ignoreDefaultControls": true + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement", + "AnimationName": "Walk", + "DirectionCount": 4, + "IsScalingAnimation": false + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "assets\\NewSprite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Player2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Keys", + "type": "structure", + "children": [ + { + "name": "Bomb", + "type": "string", + "value": "LShift" + }, + { + "name": "Down", + "type": "string", + "value": "d" + }, + { + "name": "Left", + "type": "string", + "value": "s" + }, + { + "name": "Right", + "type": "string", + "value": "f" + }, + { + "name": "Up", + "type": "string", + "value": "e" + } + ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Number", + "type": "string", + "value": "2" + }, + { + "name": "Range", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "e", + "Left": "s", + "Right": "f", + "Down": "d", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 2, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "deceleration": 16000, + "ignoreDefaultControls": true, + "maxSpeed": 200, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ + { + "name": "Walk0", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieGriseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk1", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieGriseBas.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk2", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieGriseGauche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk3", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieGriseHaut.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 27 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Player3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Number", + "type": "string", + "value": "3" + }, + { + "name": "Keys", + "type": "structure", + "children": [ + { + "name": "Bomb", + "type": "string", + "value": "h" + }, + { + "name": "Down", + "type": "string", + "value": "k" + }, + { + "name": "Left", + "type": "string", + "value": "j" + }, + { + "name": "Right", + "type": "string", + "value": "l" + }, + { + "name": "Up", + "type": "string", + "value": "i" + } + ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Range", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "i", + "Left": "j", + "Right": "l", + "Down": "k", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 3, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "deceleration": 16000, + "maxSpeed": 200, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "ignoreDefaultControls": true, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ + { + "name": "Walk0", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieRoseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk1", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieRoseBas.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk2", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieRoseGauche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk3", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieRoseHaut.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 27 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Player4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Number", + "type": "string", + "value": "4" + }, + { + "name": "Keys", + "type": "structure", + "children": [ + { + "name": "Bomb", + "type": "string", + "value": "Numpad0" + }, + { + "name": "Down", + "type": "string", + "value": "Numpad5" + }, + { + "name": "Left", + "type": "string", + "value": "Numpad4" + }, + { + "name": "Right", + "type": "string", + "value": "Numpad6" + }, + { + "name": "Up", + "type": "string", + "value": "Numpad8" + } + ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Range", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "Numpad8", + "Left": "Numpad4", + "Right": "Numpad6", + "Down": "Numpad5", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 4, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "deceleration": 16000, + "maxSpeed": 200, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "ignoreDefaultControls": true, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ + { + "name": "Walk0", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk1", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronBas.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk2", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronGauche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Walk3", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronHaut.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 27 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bomb", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Range", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OeufBombe.png", + "points": [], + "originPoint": { + "name": "origine", + "x": -5, + "y": 20 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 26 + }, + { + "x": 36, + "y": 26 + }, + { + "x": 36, + "y": 62 + }, + { + "x": 0, + "y": 62 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Explosion", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ExplosionAnimator", + "type": "BombExplosion::ExplosionAnimator" + } + ], + "animations": [ + { + "name": "ExplosionCenter", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + }, + { + "name": "ExplosionArm", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + }, + { + "name": "ExplosionFinger", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + }, + { + "name": "ExplosionCenterEnding", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + }, + { + "name": "ExplosionArmEnding", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + }, + { + "name": "ExplosionFingerEnding", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bonus", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "BombBonus", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "BombeBonus-1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 16, + "y": 16 + }, + { + "x": 32, + "y": 16 + }, + { + "x": 32, + "y": 32 + }, + { + "x": 16, + "y": 32 + } + ] + ] + } + ] + } + ] + }, + { + "name": "FlameBonus", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets\\FlammeBonus.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 16, + "y": 16 + }, + { + "x": 32, + "y": 16 + }, + { + "x": 32, + "y": 32 + }, + { + "x": 16, + "y": 32 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Score", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [], + "string": "Score", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon1", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieBlancheDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieGriseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "3" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieRoseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", + "name": "Rock", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 0 + } + ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Rock Moss 3.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "9c628d2e17c64382fccfe686ec2106319f395e38b8d77b764a8ba9838b65734d", + "name": "Cabbage", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Cabbage.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "ca4c977991d157fdc33034d1882a0f0973d7332a8df743aa0f38c7c436022ceb", + "name": "BlockRoundedLong", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 60, + "height": 120, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "blockRoundedLong.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", + "name": "Fence", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 110, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "fence.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 30, + "animations": [] + } + }, + { + "assetStoreId": "", + "name": "New3DModel", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\BlueBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + }, + "parameters": [ + "", + "GlobalVariableString(Level)", + "0", + "0" + ] + }, + { + "type": { + "value": "Scene3D::SetCameraRotationX" + }, + "parameters": [ + "", + "=", + "20", + "", + "" + ] + }, + { + "type": { + "value": "SetCameraCenterY" + }, + "parameters": [ + "", + "=", + "650", + "", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Settings chosen in the scene \"Selection\" are applied." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Player", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "ScoreIcon", + "PlayerNum", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "ScoreIcon", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Score", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Print score" + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "New3DModel", + "=", + "\"Run\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bonus", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bonus", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::Player::PickUpBonus" + }, + "parameters": [ + "Player", + "Player", + "Bonus", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bomb", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Players put bombs", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The player variables can't be used in an expression if no condition nor action referred to it. The repeat loop takes that role." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Player.VariableString(Keys.Bomb)" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Player.Variable(Number)", + "\"A\"", + "" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Check that no bomb is already on this square.\nThe negation of \"Is there at least one bomb on this square?\" is equivalent to \"Is there no bomb on this square?\".\nThis is not the same as having the negation directly on the condition because it would mean \"Is there a bomb that is not on this square?\"." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "<", + "Player.Variable(BombCapacity)" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Not" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Bomb", + "round(Player.X() / 48) * 48 + 24", + "round(Player.Y() / 48) * 48 + 24" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "round(Player.X() / 48) * 48", + "round(Player.Y() / 48) * 48", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Bomb", + "=", + "Bomb.Y() + 10" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Bomb", + "\"Detonator\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "+", + "1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "Range", + "=", + "Player.Variable(Range)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombX", + "=", + "Bomb.X()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombY", + "=", + "Bomb.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsNew", + "True" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The variable IsNew allows to apply some actions on the created bombes without the player in the context.\nOtherwise, the loop on the players wouldn't work because GDevelop couldn't tell on which player to apply actions." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsNew", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsNew", + "=" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Other players can be on the square where the bomb is put." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Collision between bombs and players", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The player no longer overlaps the bomb. It becomes solid for this player." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + }, + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ObjectVariableRemoveChild" + }, + "parameters": [ + "Bomb", + "IsOverlaping", + "Player.VariableString(Number)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SeparateFromObjects" + }, + "parameters": [ + "Player", + "Bomb", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bomb detonation", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "A bomb can explode because of the detonator..." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Bomb", + "\"Detonator\"", + "3" + ] + } + ], + "actions": [ + { + "type": { + "value": "BombExplosion::Explode" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Check explosion collision" + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "...or by chain reaction" + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Bomb", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "BombExplosion::Explode" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Check explosion collision" + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Death", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every death counts." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "scoreHasChanged", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Explosion", + "", + "", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "Respawn::Respawn::isInvincible" + }, + "parameters": [ + "Player", + "Respawn", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Death", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "scoreHasChanged", + "True" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "!=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Score[Explosion.VariableString(PlayerNum)]", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Score[Explosion.VariableString(PlayerNum)]", + "-", + "1" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Dead players come back to their initial location." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "False" + ] + }, + { + "type": { + "value": "Respawn::Respawn::respawn" + }, + "parameters": [ + "Player", + "Respawn", + "" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "Player", + "=", + "127" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "=", + "0" + ] + }, + { + "type": { + "value": "Player::Player::GiveBackBonuses" + }, + "parameters": [ + "Player", + "Player", + "Bonus", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "scoreHasChanged", + "True" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Print score" + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Respawn::Respawn::isInvincible" + }, + "parameters": [ + "Player", + "Respawn", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "Player", + "=", + "255" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "New3DModel", + "=", + "Player1.CenterX() - 4", + "=", + "Player1.CenterY()" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "New3DModel", + "=", + "Player1.Angle()" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "New3DModel", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "New3DModel", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "New3DModel", + "45" + ] + } + ] + } + ], + "layers": [ + { + "ambientLightColorB": 16, + "ambientLightColorG": 150995056, + "ambientLightColorR": 1869181824, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "Effect", + "doubleParameters": { + "elevation": 90, + "intensity": 1.5, + "rotation": 0 + }, + "stringParameters": { + "groundColor": "127;127;127", + "skyColor": "255;255;255", + "top": "Z+" + }, + "booleanParameters": {} + } + ] + } + ], + "behaviorsSharedData": [ + { + "name": "ExplosionAnimator", + "type": "BombExplosion::ExplosionAnimator" + }, + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn" + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider" + }, + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle" + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior" + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator" + }, + { + "name": "YSort", + "type": "YSort::YSort" + } + ] + } + ], + "externalEvents": [ + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Check explosion collision", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Wall", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Crate", + "", + "", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Random bonus creation" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "RandomInRange(1,4)", + "<=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "3D particle emitter (experimental)", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZpcmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTcuNjYgMTEuMkMxNy40MyAxMC45IDE3LjE1IDEwLjY0IDE2Ljg5IDEwLjM4QzE2LjIyIDkuNzggMTUuNDYgOS4zNSAxNC44MiA4LjcyQzEzLjMzIDcuMjYgMTMgNC44NSAxMy45NSAzQzEzIDMuMjMgMTIuMTcgMy43NSAxMS40NiA0LjMyQzguODcgNi40IDcuODUgMTAuMDcgOS4wNyAxMy4yMkM5LjExIDEzLjMyIDkuMTUgMTMuNDIgOS4xNSAxMy41NUM5LjE1IDEzLjc3IDkgMTMuOTcgOC44IDE0LjA1QzguNTcgMTQuMTUgOC4zMyAxNC4wOSA4LjE0IDEzLjkzQzguMDggMTMuODggOC4wNCAxMy44MyA4IDEzLjc2QzYuODcgMTIuMzMgNi42OSAxMC4yOCA3LjQ1IDguNjRDNS43OCAxMCA0Ljg3IDEyLjMgNSAxNC40N0M1LjA2IDE0Ljk3IDUuMTIgMTUuNDcgNS4yOSAxNS45N0M1LjQzIDE2LjU3IDUuNyAxNy4xNyA2IDE3LjdDNy4wOCAxOS40MyA4Ljk1IDIwLjY3IDEwLjk2IDIwLjkyQzEzLjEgMjEuMTkgMTUuMzkgMjAuOCAxNy4wMyAxOS4zMkMxOC44NiAxNy42NiAxOS41IDE1IDE4LjU2IDEyLjcyTDE4LjQzIDEyLjQ2QzE4LjIyIDEyIDE3LjY2IDExLjIgMTcuNjYgMTEuMk0xNC41IDE3LjVDMTQuMjIgMTcuNzQgMTMuNzYgMTggMTMuNCAxOC4xQzEyLjI4IDE4LjUgMTEuMTYgMTcuOTQgMTAuNSAxNy4yOEMxMS42OSAxNyAxMi40IDE2LjEyIDEyLjYxIDE1LjIzQzEyLjc4IDE0LjQzIDEyLjQ2IDEzLjc3IDEyLjMzIDEzQzEyLjIxIDEyLjI2IDEyLjIzIDExLjYzIDEyLjUgMTAuOTRDMTIuNjkgMTEuMzIgMTIuODkgMTEuNyAxMy4xMyAxMkMxMy45IDEzIDE1LjExIDEzLjQ0IDE1LjM3IDE0LjhDMTUuNDEgMTQuOTQgMTUuNDMgMTUuMDggMTUuNDMgMTUuMjNDMTUuNDYgMTYuMDUgMTUuMSAxNi45NSAxNC41IDE3LjVIMTQuNVoiIC8+PC9zdmc+", + "name": "ParticleEmitter3D", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", + "shortDescription": "Display a large number of particles to create visual effects.", + "version": "0.0.1", + "description": [ + "Particle emitters can be used to display:", + "- Fire", + "- Smoke", + "- Splashes", + "- Lights" + ], + "origin": { + "identifier": "ParticleEmitter3D", + "name": "gdevelop-extension-store" + }, + "tags": [ + "3d", + "particle", + "explosion", + "fire", + "smoke", + "splash", + "light" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Define helper classes JavaScript code.", + "fullName": "Define helper classes", + "functionType": "Action", + "name": "DefineHelperClasses", + "private": true, + "sentence": "Define helper classes JavaScript code", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GlobalVariableAsBoolean" + }, + "parameters": [ + "_ParticleEmmiter3DExtension_ClassesDefined", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetGlobalVariableAsBoolean" + }, + "parameters": [ + "_ParticleEmmiter3DExtension_ClassesDefined", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "gdjs.__particleEmmiter3DExtension = gdjs.__particleEmmiter3DExtension || {};", + "", + "/**", + " * @param {string} colorString", + " * @param {THREE.Vector4} threeColor", + " */", + "const setThreeColor = (colorString, threeColor = new THREE.Vector4()) => {", + " const integerColor = gdjs.rgbOrHexToRGBColor(colorString);", + " threeColor.x = integerColor[0] / 255;", + " threeColor.y = integerColor[1] / 255;", + " threeColor.z = integerColor[2] / 255;", + "};", + "", + "/**", + " * @param {string} integerOpacity", + " * @param {THREE.Vector4} threeColor", + " */", + "const setThreeOpacity = (integerOpacity, threeColor = new THREE.Vector4()) => {", + " threeColor.w = integerOpacity / 255;", + "};", + "", + "class ParticleEmitterAdapter {", + " /**", + " * @param particleSystem {ParticleSystem}", + " * @param colorOverLife {ColorOverLife}", + " * @param sizeOverLife {SizeOverLife}", + " * @param applyForce {ApplyForce}", + " */", + " constructor(particleSystem, colorOverLife, sizeOverLife, applyForce) {", + " this.particleSystem = particleSystem;", + " this.colorOverLife = colorOverLife;", + " this.sizeOverLife = sizeOverLife;", + " this.applyForce = applyForce;", + " }", + "", + " /**", + " * @param startColor {string}", + " */", + " setStartColor(startColor) {", + " setThreeColor(startColor, this.colorOverLife.color.a);", + " }", + "", + " /**", + " * @param endColor {string}", + " */", + " setEndColor(endColor) {", + " setThreeColor(endColor, this.colorOverLife.color.b);", + " }", + "", + " /**", + " * @param startOpacity {number}", + " */", + " setStartOpacity(startOpacity) {", + " setThreeOpacity(startOpacity, this.colorOverLife.color.a);", + " }", + "", + " /**", + " * @param endOpacity {number}", + " */", + " setEndOpacity(endOpacity) {", + " setThreeOpacity(endOpacity, this.colorOverLife.color.b);", + " }", + "", + " /**", + " * @param flow {number}", + " */", + " setFlow(flow) {", + " this.particleSystem.emissionOverTime.value = flow;", + " }", + "", + " /**", + " * @param startMinSize {number}", + " */", + " setStartMinSize(startMinSize) {", + " this.particleSystem.startSize.a = startMinSize;", + " }", + "", + " /**", + " * @param startMaxSize {number}", + " */", + " setStartMaxSize(startMaxSize) {", + " this.particleSystem.startSize.b = startMaxSize;", + " }", + "", + " /**", + " * @param endScale {number}", + " */", + " setEndScale(endScale) {", + " /** @type Bezier */", + " const bezier = this.sizeOverLife.functions[0];", + " bezier.p[0] = 1;", + " bezier.p[1] = gdjs.evtTools.common.lerp(1, endScale, 1 / 3);", + " bezier.p[2] = gdjs.evtTools.common.lerp(1, endScale, 2 / 3);", + " bezier.p[3] = endScale;", + " }", + "", + " /**", + " * @param startSpeedMin {number}", + " */", + " setStartSpeedMin(startSpeedMin) {", + " this.particleSystem.startSpeed.a = startSpeedMin;", + " }", + "", + " /**", + " * @param startSpeedMax {number}", + " */", + " setStartSpeedMax(startSpeedMax) {", + " this.particleSystem.startSpeed.b = startSpeedMax;", + " }", + "", + " /**", + " * @param lifespanMin {number}", + " */", + " setLifespanMin(lifespanMin) {", + " this.particleSystem.startLife.a = lifespanMin;", + " }", + "", + " /**", + " * @param lifespanMax {number}", + " */", + " setLifespanMax(lifespanMax) {", + " this.particleSystem.startLife.b = lifespanMax;", + " }", + "", + " /**", + " * @param duration {number}", + " */", + " setDuration(duration) {", + " this.particleSystem.duration = duration || Number.POSITIVE_INFINITY;", + " }", + "", + " /**", + " * @param areParticlesRelative {boolean}", + " */", + " setParticlesRelative(areParticlesRelative) {", + " this.particleSystem.worldSpace = !areParticlesRelative;", + " }", + "", + " /**", + " * @param sprayConeAngle {number}", + " */", + " setSprayConeAngle(sprayConeAngle) {", + " if (0 < sprayConeAngle && sprayConeAngle <= 180) {", + " if (!this.particleSystem.emitterShape.angle) {", + " this.particleSystem.emitterShape = new ConeEmitter({ radius: 0.1, angle: Math.PI / 8 });", + " }", + " this.particleSystem.emitterShape.angle = sprayConeAngle * Math.PI / 180;", + " }", + " else {", + " if (this.particleSystem.emitterShape.angle) {", + " this.particleSystem.emitterShape = new PointEmitter();", + " }", + " }", + " }", + "", + " /**", + " * @param blending {string}", + " */", + " setBlending(blendingString) {", + " const blending =", + " blendingString === \"Additive\" ? THREE.AdditiveBlending :", + " blendingString === \"Normal\" ? THREE.NormalBlending :", + " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", + " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", + " blendingString === \"None\" ? THREE.NoBlending :", + " THREE.AdditiveBlending;", + " // TODO This doesn't work.", + " this.particleSystem.blending = blending;", + " }", + " ", + " /**", + " * @param gravity {number}", + " */", + " setGravity(gravity) {", + " this.applyForce.magnitude.value = gravity;", + " }", + " ", + " /**", + " * @param gravityTop {string}", + " */", + " setGravityTop(gravityTop) {", + " // TODO Make gravity absolute even when \"relative\" is enabled. ", + " switch (gravityTop) {", + " case \"Z+\":", + " this.applyForce.direction.set(0, 0, -1);", + " break;", + "", + " case \"Y-\":", + " this.applyForce.direction.set(0, 1, 0);", + " break;", + " }", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter = ParticleEmitterAdapter;", + "", + "/**", + " * three.quarks v0.10.3 build Fri Jul 28 2023", + " * https://github.com/Alchemist0823/three.quarks#readme", + " * Copyright 2023 Alchemist0823 , MIT", + " */", + "class ParticleEmitter extends THREE.Object3D {", + " //interleavedBuffer: InterleavedBuffer;", + " constructor(system) {", + " super();", + " this.type = \"ParticleEmitter\";", + " this.system = system;", + " // this.visible = false;", + " // TODO: implement boundingVolume", + " }", + " clone() {", + " const system = this.system.clone();", + " system.emitter.copy(this, true);", + " return system.emitter;", + " }", + " dispose() {", + " }", + " // extract data from the cache hash", + " // remove metadata on each item", + " // and return as array", + " extractFromCache(cache) {", + " const values = [];", + " for (const key in cache) {", + " const data = cache[key];", + " delete data.metadata;", + " values.push(data);", + " }", + " return values;", + " }", + " toJSON(meta, options = {}) {", + " // meta is a string when called from JSON.stringify", + " const isRootObject = (meta === undefined || typeof meta === 'string');", + " const output = {};", + " // meta is a hash used to collect geometries, materials.", + " // not providing it implies that this is the root object", + " // being serialized.", + " if (isRootObject) {", + " // initialize meta obj", + " meta = {", + " geometries: {},", + " materials: {},", + " textures: {},", + " images: {},", + " shapes: {},", + " skeletons: {},", + " animations: {},", + " nodes: {}", + " };", + " output.metadata = {", + " version: 4.5,", + " type: 'Object',", + " generator: 'Object3D.toJSON'", + " };", + " }", + " // standard Object3D serialization", + " const object = {};", + " object.uuid = this.uuid;", + " object.type = this.type;", + " if (this.name !== '')", + " object.name = this.name;", + " if (this.castShadow === true)", + " object.castShadow = true;", + " if (this.receiveShadow === true)", + " object.receiveShadow = true;", + " if (this.visible === false)", + " object.visible = false;", + " if (this.frustumCulled === false)", + " object.frustumCulled = false;", + " if (this.renderOrder !== 0)", + " object.renderOrder = this.renderOrder;", + " if (JSON.stringify(this.userData) !== '{}')", + " object.userData = this.userData;", + " object.layers = this.layers.mask;", + " object.matrix = this.matrix.toArray();", + " if (this.matrixAutoUpdate === false)", + " object.matrixAutoUpdate = false;", + " // object specific properties", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " if (this.system !== null)", + " object.ps = this.system.toJSON(meta, options);", + " if (this.children.length > 0) {", + " object.children = [];", + " for (let i = 0; i < this.children.length; i++) {", + " if (this.children[i].type !== \"ParticleSystemPreview\") {", + " object.children.push(this.children[i].toJSON(meta).object);", + " }", + " }", + " }", + " if (isRootObject) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const geometries = this.extractFromCache(meta.geometries);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const materials = this.extractFromCache(meta.materials);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const textures = this.extractFromCache(meta.textures);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const images = this.extractFromCache(meta.images);", + " if (geometries.length > 0)", + " output.geometries = geometries;", + " if (materials.length > 0)", + " output.materials = materials;", + " if (textures.length > 0)", + " output.textures = textures;", + " if (images.length > 0)", + " output.images = images;", + " }", + " output.object = object;", + " return output;", + " }", + "}", + "", + "class LinkedListNode {", + " constructor(data) {", + " this.data = data;", + " this.next = null;", + " this.prev = null;", + " }", + " hasPrev() {", + " return this.prev !== null;", + " }", + " hasNext() {", + " return this.next !== null;", + " }", + "}", + "class LinkedList {", + " constructor() {", + " this.length = 0;", + " this.head = this.tail = null;", + " }", + " isEmpty() {", + " return this.head === null;", + " }", + " clear() {", + " this.length = 0;", + " this.head = this.tail = null;", + " }", + " front() {", + " if (this.head === null)", + " return null;", + " return this.head.data;", + " }", + " back() {", + " if (this.tail === null)", + " return null;", + " return this.tail.data;", + " }", + " /**", + " * remove at head in O(1)", + " */", + " dequeue() {", + " if (this.head) {", + " const value = this.head.data;", + " this.head = this.head.next;", + " if (!this.head) {", + " this.tail = null;", + " }", + " else {", + " this.head.prev = null;", + " }", + " this.length--;", + " return value;", + " }", + " return undefined;", + " }", + " /**", + " * remove at tail in O(1)", + " */", + " pop() {", + " if (this.tail) {", + " const value = this.tail.data;", + " this.tail = this.tail.prev;", + " if (!this.tail) {", + " this.head = null;", + " }", + " else {", + " this.tail.next = null;", + " }", + " this.length--;", + " return value;", + " }", + " return undefined;", + " }", + " /**", + " * add at head in O(1)", + " */", + " queue(data) {", + " const node = new LinkedListNode(data);", + " if (!this.tail) {", + " this.tail = node;", + " }", + " if (this.head) {", + " this.head.prev = node;", + " node.next = this.head;", + " }", + " this.head = node;", + " this.length++;", + " }", + " /**", + " * add at tail in O(1)", + " */", + " push(data) {", + " const node = new LinkedListNode(data);", + " if (!this.head) {", + " this.head = node;", + " }", + " if (this.tail) {", + " this.tail.next = node;", + " node.prev = this.tail;", + " }", + " this.tail = node;", + " this.length++;", + " }", + " insertBefore(node, data) {", + " const newNode = new LinkedListNode(data);", + " newNode.next = node;", + " newNode.prev = node.prev;", + " if (newNode.prev !== null) {", + " newNode.prev.next = newNode;", + " }", + " newNode.next.prev = newNode;", + " if (node == this.head) {", + " this.head = newNode;", + " }", + " this.length++;", + " }", + " remove(data) {", + " if (this.head === null || this.tail === null) {", + " return;", + " }", + " let tempNode = this.head;", + " if (data === this.head.data) {", + " this.head = this.head.next;", + " }", + " if (data === this.tail.data) {", + " this.tail = this.tail.prev;", + " }", + " while (tempNode.next !== null && tempNode.data !== data) {", + " tempNode = tempNode.next;", + " }", + " if (tempNode.data === data) {", + " if (tempNode.prev !== null)", + " tempNode.prev.next = tempNode.next;", + " if (tempNode.next !== null)", + " tempNode.next.prev = tempNode.prev;", + " this.length--;", + " }", + " }", + " /**", + " * Returns an iterator over the values", + " */", + " *values() {", + " let current = this.head;", + " while (current !== null) {", + " yield current.data;", + " current = current.next;", + " }", + " }", + "}", + "", + "class SpriteParticle {", + " constructor() {", + " // CPU", + " this.startSpeed = 0;", + " this.startColor = new THREE.Vector4();", + " this.startSize = 1;", + " this.position = new THREE.Vector3();", + " this.velocity = new THREE.Vector3();", + " this.age = 0;", + " this.life = 1;", + " this.size = 1;", + " // GPU", + " this.rotation = 0;", + " this.color = new THREE.Vector4();", + " this.uvTile = 0;", + " }", + " get died() {", + " return this.age >= this.life;", + " }", + "}", + "class RecordState {", + " constructor(position, size, color) {", + " this.position = position;", + " this.size = size;", + " this.color = color;", + " }", + "}", + "class TrailParticle {", + " constructor() {", + " this.startSpeed = 0;", + " this.startColor = new THREE.Vector4();", + " this.startSize = 1;", + " this.position = new THREE.Vector3();", + " this.velocity = new THREE.Vector3();", + " this.age = 0;", + " this.life = 1;", + " this.size = 1;", + " this.length = 100;", + " // GPU", + " this.color = new THREE.Vector4();", + " // use link list instead", + " this.previous = new LinkedList();", + " this.uvTile = 0;", + " }", + " update() {", + " if (this.age <= this.life) {", + " this.previous.push(new RecordState(this.position.clone(), this.size, this.color.clone()));", + " }", + " else {", + " if (this.previous.length > 0) {", + " this.previous.dequeue();", + " }", + " }", + " while (this.previous.length > this.length) {", + " this.previous.dequeue();", + " }", + " }", + " get died() {", + " return this.age >= this.life;", + " }", + " reset() {", + " this.previous.clear();", + " }", + "}", + "", + "class ConstantValue {", + " constructor(value) {", + " this.value = value;", + " this.type = 'value';", + " }", + " genValue() {", + " return this.value;", + " }", + " toJSON() {", + " return {", + " type: \"ConstantValue\",", + " value: this.value", + " };", + " }", + " static fromJSON(json) {", + " return new ConstantValue(json.value);", + " }", + " clone() {", + " return new ConstantValue(this.value);", + " }", + "}", + "", + "class IntervalValue {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"value\";", + " }", + " genValue() {", + " return THREE.MathUtils.lerp(this.a, this.b, Math.random());", + " }", + " toJSON() {", + " return {", + " type: \"IntervalValue\",", + " a: this.a,", + " b: this.b,", + " };", + " }", + " static fromJSON(json) {", + " return new IntervalValue(json.a, json.b);", + " }", + " clone() {", + " return new IntervalValue(this.a, this.b);", + " }", + "}", + "", + "class PiecewiseFunction {", + " constructor() {", + " this.functions = new Array();", + " }", + " findFunction(t) {", + " let mid = 0;", + " let left = 0, right = this.functions.length - 1;", + " while (left + 1 < right) {", + " mid = Math.floor((left + right) / 2);", + " if (t < this.getStartX(mid))", + " right = mid - 1;", + " else if (t > this.getEndX(mid))", + " left = mid + 1;", + " else", + " return mid;", + " }", + " for (let i = left; i <= right; i++) {", + " if (t >= this.functions[i][1] && t <= this.getEndX(i))", + " return i;", + " }", + " return -1;", + " }", + " getStartX(index) {", + " return this.functions[index][1];", + " }", + " setStartX(index, x) {", + " if (index > 0)", + " this.functions[index][1] = x;", + " }", + " getEndX(index) {", + " if (index + 1 < this.functions.length)", + " return this.functions[index + 1][1];", + " return 1;", + " }", + " setEndX(index, x) {", + " if (index + 1 < this.functions.length)", + " this.functions[index + 1][1] = x;", + " }", + " insertFunction(t, func) {", + " const index = this.findFunction(t);", + " this.functions.splice(index + 1, 0, [func, t]);", + " }", + " removeFunction(index) {", + " return this.functions.splice(index, 1)[0][0];", + " }", + " getFunction(index) {", + " return this.functions[index][0];", + " }", + " setFunction(index, func) {", + " this.functions[index][0] = func;", + " }", + " get numOfFunctions() {", + " return this.functions.length;", + " }", + "}", + "", + "class Bezier {", + " constructor(p1, p2, p3, p4) {", + " this.p = [p1, p2, p3, p4];", + " }", + " genValue(t) {", + " const t2 = t * t;", + " const t3 = t * t * t;", + " const mt = 1 - t;", + " const mt2 = mt * mt;", + " const mt3 = mt2 * mt;", + " return this.p[0] * mt3 + this.p[1] * mt2 * t * 3 + this.p[2] * mt * t2 * 3 + this.p[3] * t3;", + " }", + " // get the coefficients of the polynomial's derivatives", + " derivativeCoefficients(points) {", + " const dpoints = [];", + " for (let p = points, c = p.length - 1; c > 0; c--) {", + " const list = [];", + " for (let j = 0; j < c; j++) {", + " const dpt = c * (p[j + 1] - p[j]);", + " list.push(dpt);", + " }", + " dpoints.push(list);", + " p = list;", + " }", + " return dpoints;", + " }", + " // calculate the slope", + " getSlope(t) {", + " const p = this.derivativeCoefficients(this.p)[0];", + " const mt = 1 - t;", + " const a = mt * mt;", + " const b = mt * t * 2;", + " const c = t * t;", + " return a * p[0] + b * p[1] + c * p[2];", + " //return a * (p[1] - p[0]) * 3 + b * (p[2] - p[1]) * 3 + c * (p[3] - p[2]) * 3;", + " }", + " // derivative(0) = (p[1] - p[0]) * 3", + " // derivative(1) = (p[3] - p[2]) * 3", + " controlCurve(d0, d1) {", + " this.p[1] = d0 / 3 + this.p[0];", + " this.p[2] = this.p[3] - d1 / 3;", + " }", + " hull(t) {", + " let p = this.p;", + " let _p = [], pt, idx = 0, i = 0, l = 0;", + " const q = [];", + " q[idx++] = p[0];", + " q[idx++] = p[1];", + " q[idx++] = p[2];", + " q[idx++] = p[3];", + " // we lerp between all points at each iteration, until we have 1 point left.", + " while (p.length > 1) {", + " _p = [];", + " for (i = 0, l = p.length - 1; i < l; i++) {", + " pt = t * p[i] + (1 - t) * p[i + 1];", + " q[idx++] = pt;", + " _p.push(pt);", + " }", + " p = _p;", + " }", + " return q;", + " }", + " split(t) {", + " // no shortcut: use \"de Casteljau\" iteration.", + " const q = this.hull(t);", + " const result = {", + " left: new Bezier(q[0], q[4], q[7], q[9]),", + " right: new Bezier(q[9], q[8], q[6], q[3]),", + " span: q", + " };", + " return result;", + " }", + " clone() {", + " return new Bezier(this.p[0], this.p[1], this.p[2], this.p[3]);", + " }", + " toJSON() {", + " return {", + " p0: this.p[0],", + " p1: this.p[1],", + " p2: this.p[2],", + " p3: this.p[3],", + " };", + " }", + " static fromJSON(json) {", + " return new Bezier(json.p0, json.p1, json.p2, json.p3);", + " }", + "}", + "", + "class PiecewiseBezier extends PiecewiseFunction {", + " // default linear bezier", + " constructor(curves = [[new Bezier(0, 1.0 / 3, 1.0 / 3 * 2, 1), 0]]) {", + " super();", + " this.type = \"function\";", + " this.functions = curves;", + " }", + " genValue(t = 0) {", + " const index = this.findFunction(t);", + " if (index === -1) {", + " return 0;", + " }", + " return this.functions[index][0].genValue((t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", + " }", + " toSVG(length, segments) {", + " if (segments < 1)", + " return \"\";", + " let result = [\"M\", 0, this.functions[0][0].p[0]].join(\" \");", + " for (let i = 1.0 / segments; i <= 1; i += 1.0 / segments) {", + " result = [result, \"L\", i * length, this.genValue(i)].join(\" \");", + " }", + " return result;", + " }", + " toJSON() {", + " return {", + " type: \"PiecewiseBezier\",", + " functions: this.functions.map(([bezier, start]) => ({ function: bezier.toJSON(), start: start })),", + " };", + " }", + " static fromJSON(json) {", + " return new PiecewiseBezier(json.functions.map((piecewiseFunction) => ([Bezier.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", + " }", + " clone() {", + " return new PiecewiseBezier(this.functions.map(([bezier, start]) => ([bezier.clone(), start])));", + " }", + "}", + "", + "function ValueGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantValue':", + " return ConstantValue.fromJSON(json);", + " case 'IntervalValue':", + " return IntervalValue.fromJSON(json);", + " case 'PiecewiseBezier':", + " return PiecewiseBezier.fromJSON(json);", + " default:", + " return new ConstantValue(0);", + " }", + "}", + "", + "const ColorToJSON = (color) => {", + " return { r: color.x, g: color.y, b: color.z, a: color.w };", + "};", + "const JSONToColor = (json) => {", + " return new THREE.Vector4(json.r, json.g, json.b, json.a);", + "};", + "", + "class RandomColor {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"value\";", + " }", + " genColor(color) {", + " const rand = Math.random();", + " return color.copy(this.a).lerp(this.b, rand);", + " }", + " toJSON() {", + " return {", + " type: \"RandomColor\",", + " a: ColorToJSON(this.a),", + " b: ColorToJSON(this.b),", + " };", + " }", + " static fromJSON(json) {", + " return new RandomColor(JSONToColor(json.a), JSONToColor(json.b));", + " }", + " clone() {", + " return new RandomColor(this.a.clone(), this.b.clone());", + " }", + "}", + "", + "class ColorRange {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"function\";", + " }", + " genColor(color, t) {", + " return color.copy(this.a).lerp(this.b, t);", + " }", + " toJSON() {", + " return {", + " type: \"ColorRange\",", + " a: ColorToJSON(this.a),", + " b: ColorToJSON(this.b),", + " };", + " }", + " static fromJSON(json) {", + " return new ColorRange(JSONToColor(json.a), JSONToColor(json.b));", + " }", + " clone() {", + " return new ColorRange(this.a.clone(), this.b.clone());", + " }", + "}", + "", + "class Gradient extends PiecewiseFunction {", + " // default linear bezier", + " constructor(functions = [[new ColorRange(new THREE.Vector4(0, 0, 0, 1), new THREE.Vector4(1, 1, 1, 1)), 0]]) {", + " super();", + " this.type = \"function\";", + " this.functions = functions;", + " }", + " genColor(color, t) {", + " const index = this.findFunction(t);", + " if (index === -1) {", + " return color.copy(this.functions[0][0].a);", + " }", + " return this.getFunction(index).genColor(color, (t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", + " }", + " toJSON() {", + " return {", + " type: \"Gradient\",", + " functions: this.functions.map(([range, start]) => ({ function: range.toJSON(), start: start })),", + " };", + " }", + " static fromJSON(json) {", + " return new Gradient(json.functions.map((piecewiseFunction) => ([ColorRange.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", + " }", + " clone() {", + " return new Gradient(this.functions.map(([range, start]) => ([range.clone(), start])));", + " }", + "}", + "", + "const tempColor = new THREE.Vector4();", + "// generate a random color from the start two gradients", + "class RandomColorBetweenGradient {", + " constructor(gradient1, gradient2) {", + " this.type = 'memorizedFunction';", + " this.gradient1 = gradient1;", + " this.gradient2 = gradient2;", + " }", + " startGen(memory) {", + " memory.rand = Math.random();", + " }", + " genColor(color, t, memory) {", + " this.gradient1.genColor(color, t);", + " this.gradient2.genColor(tempColor, t);", + " color.lerp(tempColor, memory.rand);", + " return color;", + " }", + " toJSON() {", + " return {", + " type: 'RandomColorBetweenGradient',", + " gradient1: this.gradient1.toJSON(),", + " gradient2: this.gradient2.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new RandomColorBetweenGradient(Gradient.fromJSON(json.gradient1), Gradient.fromJSON(json.gradient2));", + " }", + " clone() {", + " return new RandomColorBetweenGradient(this.gradient1.clone(), this.gradient2.clone());", + " }", + "}", + "", + "class ConstantColor {", + " constructor(color) {", + " this.color = color;", + " this.type = 'value';", + " }", + " genColor(color) {", + " return color.copy(this.color);", + " }", + " toJSON() {", + " return {", + " type: 'ConstantColor',", + " color: ColorToJSON(this.color),", + " };", + " }", + " static fromJSON(json) {", + " return new ConstantColor(JSONToColor(json.color));", + " }", + " clone() {", + " return new ConstantColor(this.color.clone());", + " }", + "}", + "function ColorGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantColor':", + " return ConstantColor.fromJSON(json);", + " case 'ColorRange':", + " return ColorRange.fromJSON(json);", + " case 'RandomColor':", + " return RandomColor.fromJSON(json);", + " case 'Gradient':", + " return Gradient.fromJSON(json);", + " case 'RandomColorBetweenGradient':", + " return RandomColorBetweenGradient.fromJSON(json);", + " default:", + " return new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", + " }", + "}", + "", + "class RandomQuatGenerator {", + " constructor() {", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " let x, y, z, u, v, w;", + " do {", + " x = Math.random() * 2 - 1;", + " y = Math.random() * 2 - 1;", + " z = x * x + y * y;", + " } while (z > 1);", + " do {", + " u = Math.random() * 2 - 1;", + " v = Math.random() * 2 - 1;", + " w = u * u + v * v;", + " } while (w > 1);", + " const s = Math.sqrt((1 - z) / w);", + " quat.set(x, y, s * u, s * v);", + " return quat;", + " }", + " toJSON() {", + " return {", + " type: \"RandomQuat\"", + " };", + " }", + " static fromJSON(json) {", + " return new RandomQuatGenerator();", + " }", + " clone() {", + " return new RandomQuatGenerator();", + " }", + "}", + "", + "class AxisAngleGenerator {", + " constructor(axis, angle) {", + " this.axis = axis;", + " this.angle = angle;", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " return quat.setFromAxisAngle(this.axis, this.angle.genValue(t));", + " }", + " toJSON() {", + " return {", + " type: \"AxisAngle\",", + " axis: { x: this.axis.x, y: this.axis.y, z: this.axis.z },", + " angle: this.angle.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new AxisAngleGenerator(json.axis, ValueGeneratorFromJSON(json.angle));", + " }", + " clone() {", + " return new AxisAngleGenerator(this.axis.clone(), this.angle.clone());", + " }", + "}", + "", + "class EulerGenerator {", + " constructor(angleX, angleY, angleZ) {", + " this.angleX = angleX;", + " this.angleY = angleY;", + " this.angleZ = angleZ;", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " return quat.setFromEuler(new THREE.Euler(this.angleX.genValue(t), this.angleY.genValue(t), this.angleZ.genValue(t)));", + " }", + " toJSON() {", + " return {", + " type: \"Euler\",", + " angleX: this.angleX.toJSON(),", + " angleY: this.angleY.toJSON(),", + " angleZ: this.angleZ.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new EulerGenerator(ValueGeneratorFromJSON(json.angleX), ValueGeneratorFromJSON(json.angleY), ValueGeneratorFromJSON(json.angleZ));", + " }", + " clone() {", + " return new EulerGenerator(this.angleX, this.angleY, this.angleZ);", + " }", + "}", + "", + "function RotationGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'AxisAngle':", + " return AxisAngleGenerator.fromJSON(json);", + " case 'Euler':", + " return EulerGenerator.fromJSON(json);", + " case 'RandomQuat':", + " return RandomQuatGenerator.fromJSON(json);", + " default:", + " return new RandomQuatGenerator();", + " }", + "}", + "", + "function GeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantValue':", + " case 'IntervalValue':", + " case 'PiecewiseBezier':", + " return ValueGeneratorFromJSON(json);", + " case 'AxisAngle':", + " case 'RandomQuat':", + " case 'Euler':", + " return RotationGeneratorFromJSON(json);", + " default:", + " return new ConstantValue(0);", + " }", + "}", + "", + "class ColorOverLife {", + " constructor(color) {", + " this.color = color;", + " this.type = 'ColorOverLife';", + " }", + " initialize(particle) {", + " if (this.color.type === 'memorizedFunction') {", + " particle.colorOverLifeMemory = {};", + " this.color.startGen(particle.colorOverLifeMemory);", + " }", + " }", + " update(particle, delta) {", + " if (this.color.type === 'memorizedFunction') {", + " this.color.genColor(particle.color, particle.age / particle.life, particle.colorOverLifeMemory);", + " }", + " else {", + " this.color.genColor(particle.color, particle.age / particle.life);", + " }", + " particle.color.x *= particle.startColor.x;", + " particle.color.y *= particle.startColor.y;", + " particle.color.z *= particle.startColor.z;", + " particle.color.w *= particle.startColor.w;", + " }", + " frameUpdate(delta) { }", + " toJSON() {", + " return {", + " type: this.type,", + " color: this.color.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ColorOverLife(ColorGeneratorFromJSON(json.color));", + " }", + " clone() {", + " return new ColorOverLife(this.color.clone());", + " }", + " reset() { }", + "}", + "", + "class RotationOverLife {", + " constructor(angularVelocity, dynamic) {", + " this.angularVelocity = angularVelocity;", + " this.dynamic = dynamic;", + " this.type = 'RotationOverLife';", + " this.tempQuat = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " if (!this.dynamic && particle instanceof SpriteParticle) {", + " particle.angularVelocity = this.angularVelocity.genValue();", + " }", + " }", + " update(particle, delta) {", + " if (!this.dynamic) {", + " if (particle instanceof SpriteParticle) {", + " particle.rotation += delta * particle.angularVelocity;", + " }", + " }", + " else {", + " particle.rotation += delta * this.angularVelocity.genValue(particle.age / particle.life);", + " }", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angularVelocity: this.angularVelocity.toJSON(),", + " dynamic: this.dynamic,", + " };", + " }", + " static fromJSON(json) {", + " return new RotationOverLife(ValueGeneratorFromJSON(json.angularVelocity), json.dynamic);", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new RotationOverLife(this.angularVelocity.clone(), this.dynamic);", + " }", + " reset() {", + " }", + "}", + "", + "class SizeOverLife {", + " initialize(particle) {", + " }", + " constructor(size) {", + " this.size = size;", + " this.type = 'SizeOverLife';", + " }", + " update(particle) {", + " particle.size = particle.startSize * this.size.genValue(particle.age / particle.life);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " size: this.size.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new SizeOverLife(ValueGeneratorFromJSON(json.size));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new SizeOverLife(this.size.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class SpeedOverLife {", + " initialize(particle) {", + " }", + " constructor(speed) {", + " this.speed = speed;", + " this.type = 'SpeedOverLife';", + " }", + " update(particle) {", + " particle.velocity.normalize().multiplyScalar(particle.startSpeed * this.speed.genValue(particle.age / particle.life));", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " speed: this.speed.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new SpeedOverLife(ValueGeneratorFromJSON(json.speed));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new SpeedOverLife(this.speed.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class FrameOverLife {", + " constructor(frame) {", + " this.frame = frame;", + " this.type = 'FrameOverLife';", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " particle.uvTile = Math.floor(this.frame.genValue(particle.age / particle.life));", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " frame: this.frame.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new FrameOverLife(ValueGeneratorFromJSON(json.frame));", + " }", + " clone() {", + " return new FrameOverLife(this.frame.clone());", + " }", + " reset() {", + " }", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class OrbitOverLife {", + " constructor(orbitSpeed, axis = new THREE.Vector3(0, 1, 0)) {", + " this.orbitSpeed = orbitSpeed;", + " this.axis = axis;", + " this.type = 'OrbitOverLife';", + " this.temp = new THREE.Vector3();", + " this.rotation = new THREE.Quaternion();", + " this.line = new THREE.Line3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " this.line.set(new THREE.Vector3(0, 0, 0), this.axis);", + " this.line.closestPointToPoint(particle.position, false, this.temp);", + " this.rotation.setFromAxisAngle(this.axis, this.orbitSpeed.genValue(particle.age / particle.life) * delta);", + " particle.position.sub(this.temp);", + " particle.position.applyQuaternion(this.rotation);", + " particle.position.add(this.temp);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " orbitSpeed: this.orbitSpeed.toJSON(),", + " axis: [this.axis.x, this.axis.y, this.axis.z],", + " };", + " }", + " static fromJSON(json) {", + " return new OrbitOverLife(ValueGeneratorFromJSON(json.orbitSpeed), json.axis ? new THREE.Vector3(json.axis[0], json.axis[1], json.axis[2]) : undefined);", + " }", + " clone() {", + " return new OrbitOverLife(this.orbitSpeed.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class ApplyForce {", + " constructor(direction, magnitude) {", + " this.direction = direction;", + " this.magnitude = magnitude;", + " this.type = 'ApplyForce';", + " this.magnitudeValue = this.magnitude.genValue();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " particle.velocity.addScaledVector(this.direction, this.magnitudeValue * delta);", + " }", + " frameUpdate(delta) {", + " this.magnitudeValue = this.magnitude.genValue();", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " direction: [this.direction.x, this.direction.y, this.direction.z],", + " magnitude: this.magnitude.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " var _a;", + " return new ApplyForce(new THREE.Vector3(json.direction[0], json.direction[1], json.direction[2]), ValueGeneratorFromJSON((_a = json.magnitude) !== null && _a !== void 0 ? _a : json.force));", + " }", + " clone() {", + " return new ApplyForce(this.direction.clone(), this.magnitude.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class GravityForce {", + " constructor(center, magnitude) {", + " this.center = center;", + " this.magnitude = magnitude;", + " this.type = 'GravityForce';", + " this.temp = new THREE.Vector3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " this.temp.copy(this.center).sub(particle.position).normalize();", + " particle.velocity.addScaledVector(this.temp, this.magnitude / particle.position.distanceToSquared(this.center) * delta);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " center: [this.center.x, this.center.y, this.center.z],", + " magnitude: this.magnitude,", + " };", + " }", + " static fromJSON(json) {", + " return new GravityForce(new THREE.Vector3(json.center[0], json.center[1], json.center[2]), json.magnitude);", + " }", + " clone() {", + " return new GravityForce(this.center.clone(), this.magnitude);", + " }", + " reset() {", + " }", + "}", + "", + "class WidthOverLength {", + " initialize(particle) {", + " }", + " constructor(width) {", + " this.width = width;", + " this.type = 'WidthOverLength';", + " }", + " update(particle) {", + " if (particle instanceof TrailParticle) {", + " const iter = particle.previous.values();", + " for (let i = 0; i < particle.previous.length; i++) {", + " const cur = iter.next();", + " cur.value.size = this.width.genValue((particle.previous.length - i) / particle.length);", + " }", + " }", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " width: this.width.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new WidthOverLength(ValueGeneratorFromJSON(json.width));", + " }", + " clone() {", + " return new WidthOverLength(this.width.clone());", + " }", + " reset() {", + " }", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class ChangeEmitDirection {", + " constructor(angle) {", + " this.angle = angle;", + " this.type = 'ChangeEmitDirection';", + " this._temp = new THREE.Vector3();", + " this._q = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " const len = particle.velocity.length();", + " if (len == 0)", + " return;", + " particle.velocity.normalize();", + " if (particle.velocity.x === 0 && particle.velocity.y === 0) {", + " this._temp.set(0, particle.velocity.z, 0);", + " }", + " else {", + " this._temp.set(-particle.velocity.y, particle.velocity.x, 0);", + " }", + " this._q.setFromAxisAngle(this._temp.normalize(), this.angle.genValue());", + " this._temp.copy(particle.velocity);", + " particle.velocity.applyQuaternion(this._q);", + " this._q.setFromAxisAngle(this._temp, Math.random() * Math.PI * 2);", + " particle.velocity.applyQuaternion(this._q);", + " particle.velocity.setLength(len);", + " }", + " update(particle, delta) {", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angle: this.angle.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ChangeEmitDirection(ValueGeneratorFromJSON(json.angle));", + " }", + " clone() {", + " return new ChangeEmitDirection(this.angle);", + " }", + " reset() {", + " }", + "}", + "", + "const VECTOR_ONE = new THREE.Vector3(1, 1, 1);", + "const VECTOR_Z = new THREE.Vector3(0, 0, 1);", + "class EmitSubParticleSystem {", + " constructor(particleSystem, useVelocityAsBasis, subParticleSystem) {", + " this.particleSystem = particleSystem;", + " this.useVelocityAsBasis = useVelocityAsBasis;", + " this.subParticleSystem = subParticleSystem;", + " this.type = \"EmitSubParticleSystem\";", + " //private matrix_ = new Matrix4();", + " this.q_ = new THREE.Quaternion();", + " this.v_ = new THREE.Vector3();", + " this.v2_ = new THREE.Vector3();", + " if (this.subParticleSystem && this.subParticleSystem.system) {", + " this.subParticleSystem.system.onlyUsedByOther = true;", + " }", + " }", + " initialize(particle) {", + " particle.emissionState = {", + " burstIndex: 0,", + " burstWaveIndex: 0,", + " time: 0,", + " waitEmiting: 0,", + " matrix: new THREE.Matrix4(),", + " };", + " }", + " update(particle, delta) {", + " if (!this.subParticleSystem || !particle.emissionState)", + " return;", + " const m = particle.emissionState.matrix;", + " let rotation;", + " if (particle.rotation === undefined || this.useVelocityAsBasis) {", + " if (particle.velocity.x === 0 && particle.velocity.y === 0 && (particle.velocity.z === 1 || particle.velocity.z === 0)) {", + " m.set(1, 0, 0, particle.position.x, 0, 1, 0, particle.position.y, 0, 0, 1, particle.position.z, 0, 0, 0, 1);", + " }", + " else {", + " this.v_.copy(VECTOR_Z).cross(particle.velocity);", + " this.v2_.copy(particle.velocity).cross(this.v_);", + " const len = this.v_.length();", + " const len2 = this.v2_.length();", + " m.set(this.v_.x / len, this.v2_.x / len2, particle.velocity.x, particle.position.x, this.v_.y / len, this.v2_.y / len2, particle.velocity.y, particle.position.y, this.v_.z / len, this.v2_.z / len2, particle.velocity.z, particle.position.z, 0, 0, 0, 1);", + " }", + " }", + " else {", + " if (particle.rotation instanceof THREE.Quaternion) {", + " rotation = particle.rotation;", + " }", + " else {", + " this.q_.setFromAxisAngle(VECTOR_Z, particle.rotation);", + " rotation = this.q_;", + " }", + " m.compose(particle.position, rotation, VECTOR_ONE);", + " }", + " if (!this.particleSystem.worldSpace) {", + " m.multiplyMatrices(this.particleSystem.emitter.matrixWorld, m);", + " }", + " this.subParticleSystem.system.emit(delta, particle.emissionState, m);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " subParticleSystem: this.subParticleSystem ? this.subParticleSystem.uuid : \"\",", + " useVelocityAsBasis: this.useVelocityAsBasis", + " };", + " }", + " static fromJSON(json, particleSystem) {", + " return new EmitSubParticleSystem(particleSystem, json.useVelocityAsBasis, json.subParticleSystem);", + " }", + " clone() {", + " return new EmitSubParticleSystem(this.particleSystem, this.useVelocityAsBasis, this.subParticleSystem);", + " }", + " reset() {", + " }", + "}", + "", + "/*", + " * A fast javascript implementation of simplex noise by Jonas Wagner", + "Based on a speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.", + "Which is based on example code by Stefan Gustavson (stegu@itn.liu.se).", + "With Optimisations by Peter Eastman (peastman@drizzle.stanford.edu).", + "Better rank ordering method by Stefan Gustavson in 2012.", + " Copyright (c) 2021 Jonas Wagner", + " Permission is hereby granted, free of charge, to any person obtaining a copy", + " of this software and associated documentation files (the \"Software\"), to deal", + " in the Software without restriction, including without limitation the rights", + " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", + " copies of the Software, and to permit persons to whom the Software is", + " furnished to do so, subject to the following conditions:", + " The above copyright notice and this permission notice shall be included in all", + " copies or substantial portions of the Software.", + " THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", + " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", + " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", + " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", + " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", + " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE", + " SOFTWARE.", + " */", + "const F2 = 0.5 * (Math.sqrt(3.0) - 1.0);", + "const G2 = (3.0 - Math.sqrt(3.0)) / 6.0;", + "const F3 = 1.0 / 3.0;", + "const G3 = 1.0 / 6.0;", + "const F4 = (Math.sqrt(5.0) - 1.0) / 4.0;", + "const G4 = (5.0 - Math.sqrt(5.0)) / 20.0;", + "const grad3 = new Float32Array([1, 1, 0,", + " -1, 1, 0,", + " 1, -1, 0,", + " -1, -1, 0,", + " 1, 0, 1,", + " -1, 0, 1,", + " 1, 0, -1,", + " -1, 0, -1,", + " 0, 1, 1,", + " 0, -1, 1,", + " 0, 1, -1,", + " 0, -1, -1]);", + "const grad4 = new Float32Array([0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1,", + " 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1,", + " 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1,", + " -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1,", + " 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1,", + " -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1,", + " 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0,", + " -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0]);", + "/** Deterministic simplex noise generator suitable for 2D, 3D and 4D spaces. */", + "class SimplexNoise {", + " /**", + " * Creates a new `SimplexNoise` instance.", + " * This involves some setup. You can save a few cpu cycles by reusing the same instance.", + " * @param randomOrSeed A random number generator or a seed (string|number).", + " * Defaults to Math.random (random irreproducible initialization).", + " */", + " constructor(randomOrSeed = Math.random) {", + " const random = typeof randomOrSeed == 'function' ? randomOrSeed : alea(randomOrSeed);", + " this.p = buildPermutationTable(random);", + " this.perm = new Uint8Array(512);", + " this.permMod12 = new Uint8Array(512);", + " for (let i = 0; i < 512; i++) {", + " this.perm[i] = this.p[i & 255];", + " this.permMod12[i] = this.perm[i] % 12;", + " }", + " }", + " /**", + " * Samples the noise field in 2 dimensions", + " * @param x", + " * @param y", + " * @returns a number in the interval [-1, 1]", + " */", + " noise2D(x, y) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0 = 0; // Noise contributions from the three corners", + " let n1 = 0;", + " let n2 = 0;", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y) * F2; // Hairy factor for 2D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const t = (i + j) * G2;", + " const X0 = i - t; // Unskew the cell origin back to (x,y) space", + " const Y0 = j - t;", + " const x0 = x - X0; // The x,y distances from the cell origin", + " const y0 = y - Y0;", + " // For the 2D case, the simplex shape is an equilateral triangle.", + " // Determine which simplex we are in.", + " let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords", + " if (x0 > y0) {", + " i1 = 1;", + " j1 = 0;", + " } // lower triangle, XY order: (0,0)->(1,0)->(1,1)", + " else {", + " i1 = 0;", + " j1 = 1;", + " } // upper triangle, YX order: (0,0)->(0,1)->(1,1)", + " // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and", + " // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where", + " // c = (3-sqrt(3))/6", + " const x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords", + " const y1 = y0 - j1 + G2;", + " const x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) unskewed coords", + " const y2 = y0 - 1.0 + 2.0 * G2;", + " // Work out the hashed gradient indices of the three simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " // Calculate the contribution from the three corners", + " let t0 = 0.5 - x0 * x0 - y0 * y0;", + " if (t0 >= 0) {", + " const gi0 = permMod12[ii + perm[jj]] * 3;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad3[gi0] * x0 + grad3[gi0 + 1] * y0); // (x,y) of grad3 used for 2D gradient", + " }", + " let t1 = 0.5 - x1 * x1 - y1 * y1;", + " if (t1 >= 0) {", + " const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad3[gi1] * x1 + grad3[gi1 + 1] * y1);", + " }", + " let t2 = 0.5 - x2 * x2 - y2 * y2;", + " if (t2 >= 0) {", + " const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad3[gi2] * x2 + grad3[gi2 + 1] * y2);", + " }", + " // Add contributions from each corner to get the final noise value.", + " // The result is scaled to return values in the interval [-1,1].", + " return 70.0 * (n0 + n1 + n2);", + " }", + " /**", + " * Samples the noise field in 3 dimensions", + " * @param x", + " * @param y", + " * @param z", + " * @returns a number in the interval [-1, 1]", + " */", + " noise3D(x, y, z) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0, n1, n2, n3; // Noise contributions from the four corners", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y + z) * F3; // Very nice and simple skew factor for 3D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const k = Math.floor(z + s);", + " const t = (i + j + k) * G3;", + " const X0 = i - t; // Unskew the cell origin back to (x,y,z) space", + " const Y0 = j - t;", + " const Z0 = k - t;", + " const x0 = x - X0; // The x,y,z distances from the cell origin", + " const y0 = y - Y0;", + " const z0 = z - Z0;", + " // For the 3D case, the simplex shape is a slightly irregular tetrahedron.", + " // Determine which simplex we are in.", + " let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords", + " let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords", + " if (x0 >= y0) {", + " if (y0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 1;", + " k2 = 0;", + " } // X Y Z order", + " else if (x0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // X Z Y order", + " else {", + " i1 = 0;", + " j1 = 0;", + " k1 = 1;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // Z X Y order", + " }", + " else { // x0 y0)", + " rankx++;", + " else", + " ranky++;", + " if (x0 > z0)", + " rankx++;", + " else", + " rankz++;", + " if (x0 > w0)", + " rankx++;", + " else", + " rankw++;", + " if (y0 > z0)", + " ranky++;", + " else", + " rankz++;", + " if (y0 > w0)", + " ranky++;", + " else", + " rankw++;", + " if (z0 > w0)", + " rankz++;", + " else", + " rankw++;", + " // simplex[c] is a 4-vector with the numbers 0, 1, 2 and 3 in some order.", + " // Many values of c will never occur, since e.g. x>y>z>w makes x= 3 ? 1 : 0;", + " const j1 = ranky >= 3 ? 1 : 0;", + " const k1 = rankz >= 3 ? 1 : 0;", + " const l1 = rankw >= 3 ? 1 : 0;", + " // The integer offsets for the third simplex corner", + " const i2 = rankx >= 2 ? 1 : 0;", + " const j2 = ranky >= 2 ? 1 : 0;", + " const k2 = rankz >= 2 ? 1 : 0;", + " const l2 = rankw >= 2 ? 1 : 0;", + " // The integer offsets for the fourth simplex corner", + " const i3 = rankx >= 1 ? 1 : 0;", + " const j3 = ranky >= 1 ? 1 : 0;", + " const k3 = rankz >= 1 ? 1 : 0;", + " const l3 = rankw >= 1 ? 1 : 0;", + " // The fifth corner has all coordinate offsets = 1, so no need to compute that.", + " const x1 = x0 - i1 + G4; // Offsets for second corner in (x,y,z,w) coords", + " const y1 = y0 - j1 + G4;", + " const z1 = z0 - k1 + G4;", + " const w1 = w0 - l1 + G4;", + " const x2 = x0 - i2 + 2.0 * G4; // Offsets for third corner in (x,y,z,w) coords", + " const y2 = y0 - j2 + 2.0 * G4;", + " const z2 = z0 - k2 + 2.0 * G4;", + " const w2 = w0 - l2 + 2.0 * G4;", + " const x3 = x0 - i3 + 3.0 * G4; // Offsets for fourth corner in (x,y,z,w) coords", + " const y3 = y0 - j3 + 3.0 * G4;", + " const z3 = z0 - k3 + 3.0 * G4;", + " const w3 = w0 - l3 + 3.0 * G4;", + " const x4 = x0 - 1.0 + 4.0 * G4; // Offsets for last corner in (x,y,z,w) coords", + " const y4 = y0 - 1.0 + 4.0 * G4;", + " const z4 = z0 - 1.0 + 4.0 * G4;", + " const w4 = w0 - 1.0 + 4.0 * G4;", + " // Work out the hashed gradient indices of the five simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " const kk = k & 255;", + " const ll = l & 255;", + " // Calculate the contribution from the five corners", + " let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;", + " if (t0 < 0)", + " n0 = 0.0;", + " else {", + " const gi0 = (perm[ii + perm[jj + perm[kk + perm[ll]]]] % 32) * 4;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad4[gi0] * x0 + grad4[gi0 + 1] * y0 + grad4[gi0 + 2] * z0 + grad4[gi0 + 3] * w0);", + " }", + " let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;", + " if (t1 < 0)", + " n1 = 0.0;", + " else {", + " const gi1 = (perm[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] % 32) * 4;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad4[gi1] * x1 + grad4[gi1 + 1] * y1 + grad4[gi1 + 2] * z1 + grad4[gi1 + 3] * w1);", + " }", + " let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;", + " if (t2 < 0)", + " n2 = 0.0;", + " else {", + " const gi2 = (perm[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] % 32) * 4;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad4[gi2] * x2 + grad4[gi2 + 1] * y2 + grad4[gi2 + 2] * z2 + grad4[gi2 + 3] * w2);", + " }", + " let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;", + " if (t3 < 0)", + " n3 = 0.0;", + " else {", + " const gi3 = (perm[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] % 32) * 4;", + " t3 *= t3;", + " n3 = t3 * t3 * (grad4[gi3] * x3 + grad4[gi3 + 1] * y3 + grad4[gi3 + 2] * z3 + grad4[gi3 + 3] * w3);", + " }", + " let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;", + " if (t4 < 0)", + " n4 = 0.0;", + " else {", + " const gi4 = (perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32) * 4;", + " t4 *= t4;", + " n4 = t4 * t4 * (grad4[gi4] * x4 + grad4[gi4 + 1] * y4 + grad4[gi4 + 2] * z4 + grad4[gi4 + 3] * w4);", + " }", + " // Sum up and scale the result to cover the range [-1,1]", + " return 27.0 * (n0 + n1 + n2 + n3 + n4);", + " }", + "}", + "/**", + " * Builds a random permutation table.", + " * This is exported only for (internal) testing purposes.", + " * Do not rely on this export.", + " * @private", + " */", + "function buildPermutationTable(random) {", + " const p = new Uint8Array(256);", + " for (let i = 0; i < 256; i++) {", + " p[i] = i;", + " }", + " for (let i = 0; i < 255; i++) {", + " const r = i + ~~(random() * (256 - i));", + " const aux = p[i];", + " p[i] = p[r];", + " p[r] = aux;", + " }", + " return p;", + "}", + "/*", + "The ALEA PRNG and masher code used by simplex-noise.js", + "is based on code by Johannes Baagøe, modified by Jonas Wagner.", + "See alea.md for the full license.", + "*/", + "function alea(seed) {", + " let s0 = 0;", + " let s1 = 0;", + " let s2 = 0;", + " let c = 1;", + " const mash = masher();", + " s0 = mash(' ');", + " s1 = mash(' ');", + " s2 = mash(' ');", + " s0 -= mash(seed);", + " if (s0 < 0) {", + " s0 += 1;", + " }", + " s1 -= mash(seed);", + " if (s1 < 0) {", + " s1 += 1;", + " }", + " s2 -= mash(seed);", + " if (s2 < 0) {", + " s2 += 1;", + " }", + " return function () {", + " const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32", + " s0 = s1;", + " s1 = s2;", + " return s2 = t - (c = t | 0);", + " };", + "}", + "function masher() {", + " let n = 0xefc8249d;", + " return function (data) {", + " data = data.toString();", + " for (let i = 0; i < data.length; i++) {", + " n += data.charCodeAt(i);", + " let h = 0.02519603282416938 * n;", + " n = h >>> 0;", + " h -= n;", + " h *= n;", + " n = h >>> 0;", + " h -= n;", + " n += h * 0x100000000; // 2^32", + " }", + " return (n >>> 0) * 2.3283064365386963e-10; // 2^-32", + " };", + "}", + "", + "class TurbulenceField {", + " constructor(scale, octaves, velocityMultiplier, timeScale) {", + " this.scale = scale;", + " this.octaves = octaves;", + " this.velocityMultiplier = velocityMultiplier;", + " this.timeScale = timeScale;", + " this.type = 'TurbulenceField';", + " this.generator = new SimplexNoise();", + " this.timeOffset = new THREE.Vector3();", + " this.temp = new THREE.Vector3();", + " this.temp2 = new THREE.Vector3();", + " this.timeOffset.x = Math.random() / this.scale.x * this.timeScale.x;", + " this.timeOffset.y = Math.random() / this.scale.y * this.timeScale.y;", + " this.timeOffset.z = Math.random() / this.scale.z * this.timeScale.z;", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " const x = particle.position.x / this.scale.x;", + " const y = particle.position.y / this.scale.y;", + " const z = particle.position.z / this.scale.z;", + " this.temp.set(0, 0, 0);", + " let lvl = 1;", + " for (let i = 0; i < this.octaves; i++) {", + " this.temp2.set(this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.x * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.y * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.z * lvl) / lvl);", + " this.temp.add(this.temp2);", + " lvl *= 2;", + " }", + " this.temp.multiply(this.velocityMultiplier);", + " particle.velocity.addScaledVector(this.temp, delta);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " scale: [this.scale.x, this.scale.y, this.scale.z],", + " octaves: this.octaves,", + " velocityMultiplier: [this.velocityMultiplier.x, this.velocityMultiplier.y, this.velocityMultiplier.z],", + " timeScale: [this.timeScale.x, this.timeScale.y, this.timeScale.z],", + " };", + " }", + " frameUpdate(delta) {", + " this.timeOffset.x += delta * this.timeScale.x;", + " this.timeOffset.y += delta * this.timeScale.y;", + " this.timeOffset.z += delta * this.timeScale.z;", + " }", + " static fromJSON(json) {", + " return new TurbulenceField(new THREE.Vector3(json.scale[0], json.scale[1], json.scale[2]), json.octaves, new THREE.Vector3(json.velocityMultiplier[0], json.velocityMultiplier[1], json.velocityMultiplier[2]), new THREE.Vector3(json.timeScale[0], json.timeScale[1], json.timeScale[2]));", + " }", + " clone() {", + " return new TurbulenceField(this.scale.clone(), this.octaves, this.velocityMultiplier.clone(), this.timeScale.clone());", + " }", + " reset() {", + " }", + "}", + "", + "const IdentityQuaternion = new THREE.Quaternion();", + "class Rotation3DOverLife {", + " constructor(angularVelocity, dynamic) {", + " this.angularVelocity = angularVelocity;", + " this.dynamic = dynamic;", + " this.type = 'Rotation3DOverLife';", + " this.tempQuat = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " if (!this.dynamic && particle instanceof SpriteParticle) {", + " particle.angularVelocity = new THREE.Quaternion();", + " this.angularVelocity.genValue(particle.angularVelocity);", + " }", + " }", + " update(particle, delta) {", + " if (!this.dynamic) {", + " if (particle instanceof SpriteParticle) {", + " this.tempQuat.slerpQuaternions(IdentityQuaternion, particle.angularVelocity, delta);", + " particle.rotation.multiply(this.tempQuat);", + " }", + " }", + " else {", + " this.angularVelocity.genValue(this.tempQuat, particle.age / particle.life);", + " this.tempQuat.slerpQuaternions(IdentityQuaternion, this.tempQuat, delta);", + " particle.rotation.multiply(this.tempQuat);", + " }", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angularVelocity: this.angularVelocity.toJSON(),", + " dynamic: this.dynamic,", + " };", + " }", + " static fromJSON(json) {", + " return new Rotation3DOverLife(RotationGeneratorFromJSON(json.angularVelocity), json.dynamic);", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new Rotation3DOverLife(this.angularVelocity.clone(), this.dynamic);", + " }", + " reset() {", + " }", + "}", + "", + "class ForceOverLife {", + " initialize(particle) {", + " }", + " constructor(x, y, z) {", + " this.x = x;", + " this.y = y;", + " this.z = z;", + " this.type = 'ForceOverLife';", + " this._temp = new THREE.Vector3();", + " }", + " update(particle) {", + " this._temp.set(this.x.genValue(particle.age / particle.life), this.y.genValue(particle.age / particle.life), this.z.genValue(particle.age / particle.life));", + " particle.velocity.add(this._temp);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " x: this.x.toJSON(),", + " y: this.y.toJSON(),", + " z: this.z.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ForceOverLife(ValueGeneratorFromJSON(json.x), ValueGeneratorFromJSON(json.y), ValueGeneratorFromJSON(json.z));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new ForceOverLife(this.x.clone(), this.y.clone(), this.z.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class Noise {", + " constructor(frequency, power) {", + " this.frequency = frequency;", + " this.power = power;", + " this.type = 'Noise';", + " this.generator = new SimplexNoise();", + " this.duration = 0;", + " this.temp = new THREE.Vector3();", + " }", + " initialize(particle) {", + " particle.startTime = this.duration;", + " }", + " update(particle, delta) {", + " this.temp.set(this.generator.noise2D(particle.startTime * this.frequency.x, particle.life / particle.age * this.frequency.x), this.generator.noise2D(particle.startTime * this.frequency.y + 100.25, particle.life / particle.age * this.frequency.y + 100.154), this.generator.noise2D(particle.startTime * this.frequency.z + 200.89, particle.life / particle.age * this.frequency.z + 200.1)).multiply(this.power);", + " particle.position.addScaledVector(this.temp, delta);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " frequency: [this.frequency.x, this.frequency.y, this.frequency.z],", + " power: [this.power.x, this.power.y, this.power.z],", + " };", + " }", + " frameUpdate(delta) {", + " this.duration += delta;", + " }", + " static fromJSON(json) {", + " return new Noise(new THREE.Vector3(json.frequency[0], json.frequency[1], json.frequency[2]), new THREE.Vector3(json.power[0], json.power[1], json.power[2]));", + " }", + " clone() {", + " return new Noise(this.frequency.clone(), this.power.clone());", + " }", + " reset() {", + " }", + "}", + "", + "const BehaviorTypes = {", + " \"ApplyForce\": { type: \"ApplyForce\", constructor: ApplyForce, params: [[\"direction\", \"vec3\"], [\"magnitude\", \"value\"]], loadJSON: ApplyForce.fromJSON },", + " \"Noise\": { type: \"Noise\", constructor: Noise, params: [[\"frequency\", \"vec3\"], [\"power\", \"vec3\"]], loadJSON: Noise.fromJSON },", + " \"TurbulenceField\": { type: \"TurbulenceField\", constructor: TurbulenceField, params: [[\"scale\", \"vec3\"], [\"octaves\", \"number\"], [\"velocityMultiplier\", \"vec3\"], [\"timeScale\", \"vec3\"]], loadJSON: TurbulenceField.fromJSON },", + " \"GravityForce\": { type: \"GravityForce\", constructor: GravityForce, params: [[\"center\", \"vec3\"], [\"magnitude\", \"number\"]], loadJSON: GravityForce.fromJSON },", + " \"ColorOverLife\": { type: \"ColorOverLife\", constructor: ColorOverLife, params: [[\"color\", \"colorFunc\"]], loadJSON: ColorOverLife.fromJSON },", + " \"RotationOverLife\": { type: \"RotationOverLife\", constructor: RotationOverLife, params: [[\"angularVelocity\", \"valueFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: RotationOverLife.fromJSON },", + " \"Rotation3DOverLife\": { type: \"Rotation3DOverLife\", constructor: Rotation3DOverLife, params: [[\"angularVelocity\", \"rotationFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: Rotation3DOverLife.fromJSON },", + " \"SizeOverLife\": { type: \"SizeOverLife\", constructor: SizeOverLife, params: [[\"size\", \"valueFunc\"]], loadJSON: SizeOverLife.fromJSON },", + " \"SpeedOverLife\": { type: \"SpeedOverLife\", constructor: SpeedOverLife, params: [[\"speed\", \"valueFunc\"]], loadJSON: SpeedOverLife.fromJSON },", + " \"FrameOverLife\": { type: \"FrameOverLife\", constructor: FrameOverLife, params: [[\"frame\", \"valueFunc\"]], loadJSON: FrameOverLife.fromJSON },", + " \"ForceOverLife\": { type: \"ForceOverLife\", constructor: ForceOverLife, params: [[\"x\", \"valueFunc\"], [\"y\", \"valueFunc\"], [\"z\", \"valueFunc\"]], loadJSON: ForceOverLife.fromJSON },", + " \"OrbitOverLife\": { type: \"OrbitOverLife\", constructor: OrbitOverLife, params: [[\"orbitSpeed\", \"valueFunc\"], [\"axis\", \"vec3\"],], loadJSON: OrbitOverLife.fromJSON },", + " \"WidthOverLength\": { type: \"WidthOverLength\", constructor: WidthOverLength, params: [[\"width\", \"valueFunc\"]], loadJSON: WidthOverLength.fromJSON },", + " \"ChangeEmitDirection\": { type: \"ChangeEmitDirection\", constructor: ChangeEmitDirection, params: [[\"angle\", \"value\"]], loadJSON: ChangeEmitDirection.fromJSON },", + " \"EmitSubParticleSystem\": { type: \"EmitSubParticleSystem\", constructor: EmitSubParticleSystem, params: [[\"particleSystem\", \"self\"], ['useVelocityAsBasis', 'boolean'], [\"subParticleSystem\", \"particleSystem\"]], loadJSON: EmitSubParticleSystem.fromJSON },", + "};", + "function BehaviorFromJSON(json, particleSystem) {", + " return BehaviorTypes[json.type].loadJSON(json, particleSystem);", + "}", + "", + "class ConeEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"cone\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const r = Math.sqrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " p.position.x = r * cosTheta;", + " p.position.y = r * sinTheta;", + " p.position.z = 0;", + " const angle = this.angle * r;", + " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", + " //const v = Math.random();", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"cone\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " };", + " }", + " static fromJSON(json) {", + " return new ConeEmitter(json);", + " }", + " clone() {", + " return new ConeEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " });", + " }", + "}", + "", + "class DonutEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"donut\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const rand = THREE.MathUtils.lerp(this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const r = Math.sqrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " p.position.x = r * cosTheta;", + " p.position.y = r * sinTheta;", + " p.position.z = 0;", + " const angle = this.angle * r;", + " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", + " //const v = Math.random();", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"donut\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle", + " };", + " }", + " static fromJSON(json) {", + " return new DonutEmitter(json);", + " }", + " clone() {", + " return new DonutEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " });", + " }", + "}", + "", + "class PointEmitter {", + " constructor() {", + " this.type = \"point\";", + " }", + " initialize(p) {", + " const u = Math.random();", + " const v = Math.random();", + " const theta = u * Math.PI * 2;", + " const phi = Math.acos(2.0 * v - 1.0);", + " const r = Math.cbrt(Math.random());", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " const sinPhi = Math.sin(phi);", + " const cosPhi = Math.cos(phi);", + " p.velocity.x = r * sinPhi * cosTheta;", + " p.velocity.y = r * sinPhi * sinTheta;", + " p.velocity.z = r * cosPhi;", + " p.velocity.multiplyScalar(p.startSpeed);", + " p.position.setScalar(0);", + " }", + " toJSON() {", + " return {", + " type: 'point',", + " };", + " }", + " static fromJSON(json) {", + " return new PointEmitter();", + " }", + " clone() {", + " return new PointEmitter();", + " }", + "}", + "", + "class SphereEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c;", + " this.type = \"sphere\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const v = Math.random();", + " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const phi = Math.acos(2.0 * v - 1.0);", + " const r = Math.cbrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " const sinPhi = Math.sin(phi);", + " const cosPhi = Math.cos(phi);", + " p.position.x = r * sinPhi * cosTheta;", + " p.position.y = r * sinPhi * sinTheta;", + " p.position.z = r * cosPhi;", + " p.velocity.setScalar(0).addScaledVector(p.position, p.startSpeed);", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"sphere\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " };", + " }", + " static fromJSON(json) {", + " return new SphereEmitter(json);", + " }", + " clone() {", + " return new SphereEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " });", + " }", + "}", + "", + "class MeshSurfaceEmitter {", + " get geometry() {", + " return this._geometry;", + " }", + " set geometry(geometry) {", + " this._geometry = geometry;", + " if (geometry === undefined) {", + " return;", + " }", + " if (typeof geometry === \"string\") {", + " return;", + " }", + " // optimization", + " /*if (mesh.userData.triangleIndexToArea) {", + " this._triangleIndexToArea = mesh.userData.triangleIndexToArea;", + " return;", + " }*/", + " const tri = new THREE.Triangle();", + " this._triangleIndexToArea.length = 0;", + " let area = 0;", + " if (!geometry.getIndex()) {", + " return;", + " }", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const array = geometry.getIndex().array;", + " const triCount = array.length / 3;", + " this._triangleIndexToArea.push(0);", + " for (let i = 0; i < triCount; i++) {", + " tri.setFromAttributeAndIndices(geometry.getAttribute(\"position\"), array[i * 3], array[i * 3 + 1], array[i * 3 + 2]);", + " area += tri.getArea();", + " this._triangleIndexToArea.push(area);", + " }", + " geometry.userData.triangleIndexToArea = this._triangleIndexToArea;", + " }", + " constructor(geometry) {", + " this.type = \"mesh_surface\";", + " this._triangleIndexToArea = [];", + " this._tempA = new THREE.Vector3();", + " this._tempB = new THREE.Vector3();", + " this._tempC = new THREE.Vector3();", + " if (!geometry) {", + " return;", + " }", + " this.geometry = geometry;", + " }", + " initialize(p) {", + " const geometry = this._geometry;", + " if (!geometry || geometry.getIndex() === null) {", + " p.position.set(0, 0, 0);", + " p.velocity.set(0, 0, 1).multiplyScalar(p.startSpeed);", + " return;", + " }", + " const triCount = this._triangleIndexToArea.length - 1;", + " let left = 0, right = triCount;", + " const target = Math.random() * this._triangleIndexToArea[triCount];", + " while (left + 1 < right) {", + " const mid = Math.floor((left + right) / 2);", + " if (target < this._triangleIndexToArea[mid]) {", + " right = mid;", + " }", + " else {", + " left = mid;", + " }", + " }", + " //const area = this._triangleIndexToArea[left + 1] - this._triangleIndexToArea[left];", + " //const percent = (target - this._triangleIndexToArea[left]) / area;", + " let u1 = Math.random();", + " let u2 = Math.random();", + " if (u1 + u2 > 1) {", + " u1 = 1 - u1;", + " u2 = 1 - u2;", + " }", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index1 = geometry.getIndex().array[left * 3];", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index2 = geometry.getIndex().array[left * 3 + 1];", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index3 = geometry.getIndex().array[left * 3 + 2];", + " const positionBuffer = geometry.getAttribute(\"position\");", + " this._tempA.fromBufferAttribute(positionBuffer, index1);", + " this._tempB.fromBufferAttribute(positionBuffer, index2);", + " this._tempC.fromBufferAttribute(positionBuffer, index3);", + " this._tempB.sub(this._tempA);", + " this._tempC.sub(this._tempA);", + " this._tempA.addScaledVector(this._tempB, u1).addScaledVector(this._tempC, u2);", + " p.position.copy(this._tempA);", + " // velocity based on tri normal", + " this._tempA.copy(this._tempB).cross(this._tempC).normalize();", + " p.velocity.copy(this._tempA).normalize().multiplyScalar(p.startSpeed);", + " /*p.position.applyMatrix4(this._mesh.matrixWorld);", + " p.velocity.applyMatrix3(this._mesh.normalMatrix);*/", + " }", + " toJSON() {", + " return {", + " type: 'mesh_surface',", + " mesh: this._geometry ? this._geometry.uuid : \"\",", + " };", + " }", + " static fromJSON(json, meta) {", + " return new MeshSurfaceEmitter(meta.geometries[json.geometry]);", + " }", + " clone() {", + " return new MeshSurfaceEmitter(this._geometry);", + " }", + "}", + "", + "class GridEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"grid\";", + " this.width = (_a = parameters.width) !== null && _a !== void 0 ? _a : 1;", + " this.height = (_b = parameters.height) !== null && _b !== void 0 ? _b : 1;", + " this.column = (_c = parameters.column) !== null && _c !== void 0 ? _c : 10;", + " this.row = (_d = parameters.row) !== null && _d !== void 0 ? _d : 10;", + " }", + " initialize(p) {", + " const r = Math.floor(Math.random() * this.row);", + " const c = Math.floor(Math.random() * this.column);", + " p.position.x = c * this.width / this.column - this.width / 2;", + " p.position.y = r * this.height / this.row - this.height / 2;", + " p.position.z = 0;", + " p.velocity.set(0, 0, p.startSpeed);", + " }", + " toJSON() {", + " return {", + " type: \"grid\",", + " width: this.width,", + " height: this.height,", + " column: this.column,", + " row: this.row,", + " };", + " }", + " static fromJSON(json) {", + " return new GridEmitter(json);", + " }", + " clone() {", + " return new GridEmitter({", + " width: this.width,", + " height: this.height,", + " column: this.column,", + " row: this.row,", + " });", + " }", + "}", + "", + "const EmitterShapes = {", + " \"cone\": { type: \"cone\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: ConeEmitter, loadJSON: ConeEmitter.fromJSON },", + " \"donut\": { type: \"donut\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: DonutEmitter, loadJSON: DonutEmitter.fromJSON },", + " \"point\": { type: \"point\", params: [], constructor: PointEmitter, loadJSON: PointEmitter.fromJSON },", + " \"sphere\": { type: \"sphere\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: SphereEmitter, loadJSON: SphereEmitter.fromJSON },", + " \"grid\": { type: \"grid\", params: [[\"width\", \"number\"], [\"height\", \"number\"], [\"rows\", \"number\"], [\"column\", \"number\"]], constructor: GridEmitter, loadJSON: GridEmitter.fromJSON },", + " \"mesh_surface\": { type: \"mesh_surface\", params: [[\"geometry\", \"geometry\"]], constructor: MeshSurfaceEmitter, loadJSON: MeshSurfaceEmitter.fromJSON },", + "};", + "function EmitterFromJSON(json, meta) {", + " return EmitterShapes[json.type].loadJSON(json, meta);", + "}", + "", + "(function (RenderMode) {", + " RenderMode[RenderMode[\"BillBoard\"] = 0] = \"BillBoard\";", + " RenderMode[RenderMode[\"StretchedBillBoard\"] = 1] = \"StretchedBillBoard\";", + " RenderMode[RenderMode[\"Mesh\"] = 2] = \"Mesh\";", + " RenderMode[RenderMode[\"Trail\"] = 3] = \"Trail\";", + "})(gdjs.__particleEmmiter3DExtension.RenderMode || (gdjs.__particleEmmiter3DExtension.RenderMode = {}));", + "", + "class VFXBatch extends THREE.Mesh {", + " constructor(settings) {", + " super();", + " this.type = \"VFXBatch\";", + " this.maxParticles = 1000;", + " this.systems = new Set();", + " const layers = new THREE.Layers();", + " layers.mask = settings.layers.mask;", + " this.settings = {", + " instancingGeometry: settings.instancingGeometry,", + " renderMode: settings.renderMode,", + " renderOrder: settings.renderOrder,", + " material: settings.material,", + " uTileCount: settings.uTileCount,", + " vTileCount: settings.vTileCount,", + " layers: layers,", + " };", + " this.frustumCulled = false;", + " this.renderOrder = this.settings.renderOrder;", + " }", + " addSystem(system) {", + " this.systems.add(system);", + " }", + " removeSystem(system) {", + " this.systems.delete(system);", + " }", + "}", + "", + "const UP = new THREE.Vector3(0, 0, 1);", + "const tempQ = new THREE.Quaternion();", + "const tempV = new THREE.Vector3();", + "const tempV2 = new THREE.Vector3();", + "new THREE.Vector3();", + "const PREWARM_FPS = 60;", + "const DEFAULT_GEOMETRY = new THREE.PlaneGeometry(1, 1, 1, 1);", + "/**", + " * ParticleSystem represents a system that generates and controls particles with similar attributes.", + " *", + " * @class", + " */", + "class ParticleSystem {", + " set time(time) {", + " this.emissionState.time = time;", + " }", + " get time() {", + " return this.emissionState.time;", + " }", + " // currently if you change the layers setting, you need manually set this.neededToUpdateRender = true;", + " get layers() {", + " return this.rendererSettings.layers;", + " }", + " get texture() {", + " return this.rendererSettings.material.map;", + " }", + " set texture(texture) {", + " this.rendererSettings.material.map = texture;", + " this.neededToUpdateRender = true;", + " //this.emitter.material.uniforms.map.value = texture;", + " }", + " get material() {", + " return this.rendererSettings.material;", + " }", + " set material(material) {", + " this.rendererSettings.material = material;", + " this.neededToUpdateRender = true;", + " }", + " get uTileCount() {", + " return this.rendererSettings.uTileCount;", + " }", + " set uTileCount(u) {", + " this.rendererSettings.uTileCount = u;", + " this.neededToUpdateRender = true;", + " //this.emitter.material.uniforms.tileCount.value.x = u;", + " }", + " get vTileCount() {", + " return this.rendererSettings.vTileCount;", + " }", + " set vTileCount(v) {", + " this.rendererSettings.vTileCount = v;", + " this.neededToUpdateRender = true;", + " }", + " get instancingGeometry() {", + " return this.rendererSettings.instancingGeometry;", + " }", + " set instancingGeometry(geometry) {", + " this.restart();", + " this.particles.length = 0;", + " this.rendererSettings.instancingGeometry = geometry;", + " this.neededToUpdateRender = true;", + " }", + " get renderMode() {", + " return this.rendererSettings.renderMode;", + " }", + " set renderMode(renderMode) {", + " if ((this.rendererSettings.renderMode != gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) ||", + " (this.rendererSettings.renderMode == gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode !== gdjs.__particleEmmiter3DExtension.RenderMode.Trail)) {", + " this.restart();", + " this.particles.length = 0;", + " }", + " if (this.rendererSettings.renderMode !== renderMode) {", + " switch (renderMode) {", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", + " this.rendererEmitterSettings = {", + " startLength: new ConstantValue(30),", + " followLocalOrigin: false,", + " };", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", + " this.rendererEmitterSettings = {", + " geometry: new THREE.PlaneGeometry(1, 1),", + " };", + " this.startRotation = new AxisAngleGenerator(new THREE.Vector3(0, 1, 0), new ConstantValue(0));", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", + " this.rendererEmitterSettings = {};", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.startRotation = new ConstantValue(0);", + " }", + " break;", + " }", + " }", + " this.rendererSettings.renderMode = renderMode;", + " this.neededToUpdateRender = true;", + " //this.emitter.rebuildMaterial();", + " }", + " get renderOrder() {", + " return this.rendererSettings.renderOrder;", + " }", + " set renderOrder(renderOrder) {", + " this.rendererSettings.renderOrder = renderOrder;", + " this.neededToUpdateRender = true;", + " //this.emitter.rebuildMaterial();", + " }", + " get blending() {", + " return this.rendererSettings.material.blending;", + " }", + " set blending(blending) {", + " this.rendererSettings.material.blending = blending;", + " this.neededToUpdateRender = true;", + " }", + " constructor(parameters) {", + " var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;", + " this.temp = new THREE.Vector3();", + " this.travelDistance = 0;", + " this.normalMatrix = new THREE.Matrix3();", + " this.autoDestroy = parameters.autoDestroy === undefined ? false : parameters.autoDestroy;", + " this.duration = (_a = parameters.duration) !== null && _a !== void 0 ? _a : 1;", + " this.looping = parameters.looping === undefined ? true : parameters.looping;", + " this.prewarm = parameters.prewarm === undefined ? false : parameters.prewarm;", + " this.startLife = (_b = parameters.startLife) !== null && _b !== void 0 ? _b : new ConstantValue(5);", + " this.startSpeed = (_c = parameters.startSpeed) !== null && _c !== void 0 ? _c : new ConstantValue(0);", + " this.startRotation = (_d = parameters.startRotation) !== null && _d !== void 0 ? _d : new ConstantValue(0);", + " this.startSize = (_e = parameters.startSize) !== null && _e !== void 0 ? _e : new ConstantValue(1);", + " this.startColor = (_f = parameters.startColor) !== null && _f !== void 0 ? _f : new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", + " //this.startLength = parameters.startLength ?? new ConstantValue(30);", + " this.emissionOverTime = (_g = parameters.emissionOverTime) !== null && _g !== void 0 ? _g : new ConstantValue(10);", + " this.emissionOverDistance = (_h = parameters.emissionOverDistance) !== null && _h !== void 0 ? _h : new ConstantValue(0);", + " this.emissionBursts = (_j = parameters.emissionBursts) !== null && _j !== void 0 ? _j : [];", + " this.onlyUsedByOther = (_k = parameters.onlyUsedByOther) !== null && _k !== void 0 ? _k : false;", + " this.emitterShape = (_l = parameters.shape) !== null && _l !== void 0 ? _l : new SphereEmitter();", + " this.behaviors = (_m = parameters.behaviors) !== null && _m !== void 0 ? _m : new Array();", + " this.worldSpace = (_o = parameters.worldSpace) !== null && _o !== void 0 ? _o : false;", + " this.speedFactor = (_p = parameters.speedFactor) !== null && _p !== void 0 ? _p : 0;", + " this.rendererEmitterSettings = (_q = parameters.rendererEmitterSettings) !== null && _q !== void 0 ? _q : {};", + " this.rendererSettings = {", + " instancingGeometry: (_r = parameters.instancingGeometry) !== null && _r !== void 0 ? _r : DEFAULT_GEOMETRY,", + " renderMode: (_s = parameters.renderMode) !== null && _s !== void 0 ? _s : gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard,", + " renderOrder: (_t = parameters.renderOrder) !== null && _t !== void 0 ? _t : 0,", + " material: parameters.material,", + " uTileCount: (_u = parameters.uTileCount) !== null && _u !== void 0 ? _u : 1,", + " vTileCount: (_v = parameters.vTileCount) !== null && _v !== void 0 ? _v : 1,", + " layers: (_w = parameters.layers) !== null && _w !== void 0 ? _w : new THREE.Layers(),", + " };", + " this.neededToUpdateRender = true;", + " this.particles = new Array();", + " this.startTileIndex = parameters.startTileIndex || new ConstantValue(0);", + " this.emitter = new ParticleEmitter(this);", + " this.paused = false;", + " this.particleNum = 0;", + " this.emissionState = {", + " burstIndex: 0,", + " burstWaveIndex: 0,", + " time: 0,", + " waitEmiting: 0,", + " };", + " this.emitEnded = false;", + " this.markForDestroy = false;", + " this.prewarmed = false;", + " }", + " pause() {", + " this.paused = true;", + " }", + " play() {", + " this.paused = false;", + " }", + " spawn(count, emissionState, matrix) {", + " tempQ.setFromRotationMatrix(matrix);", + " const translation = tempV;", + " const quaternion = tempQ;", + " const scale = tempV2;", + " matrix.decompose(translation, quaternion, scale);", + " for (let i = 0; i < count; i++) {", + " this.particleNum++;", + " while (this.particles.length < this.particleNum) {", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " this.particles.push(new TrailParticle());", + " }", + " else {", + " this.particles.push(new SpriteParticle());", + " }", + " }", + " const particle = this.particles[this.particleNum - 1];", + " this.startColor.genColor(particle.startColor, Math.random());", + " particle.color.copy(particle.startColor);", + " particle.startSpeed = this.startSpeed.genValue(emissionState.time / this.duration);", + " particle.life = this.startLife.genValue(emissionState.time / this.duration);", + " particle.age = 0;", + " particle.startSize = this.startSize.genValue(emissionState.time / this.duration);", + " particle.uvTile = Math.floor(this.startTileIndex.genValue());", + " particle.size = particle.startSize;", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh ||", + " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", + " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " const sprite = particle;", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " if (!(sprite.rotation instanceof THREE.Quaternion)) {", + " sprite.rotation = new THREE.Quaternion();", + " }", + " if (this.startRotation.type === 'rotation') {", + " this.startRotation.genValue(sprite.rotation, emissionState.time / this.duration);", + " }", + " else {", + " sprite.rotation.setFromAxisAngle(UP, this.startRotation.genValue((emissionState.time / this.duration)));", + " }", + " }", + " else {", + " if (this.startRotation.type === 'rotation') {", + " sprite.rotation = 0;", + " }", + " else {", + " sprite.rotation = this.startRotation.genValue(emissionState.time / this.duration);", + " }", + " }", + " }", + " else if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " const trail = particle;", + " trail.length = this.rendererEmitterSettings.startLength.genValue(emissionState.time / this.duration);", + " trail.reset();", + " }", + " this.emitterShape.initialize(particle);", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail &&", + " this.rendererEmitterSettings.followLocalOrigin) {", + " const trail = particle;", + " trail.localPosition = new THREE.Vector3().copy(trail.position);", + " }", + " if (this.worldSpace) {", + " particle.position.applyMatrix4(matrix);", + " particle.startSize = (particle.startSize * (scale.x + scale.y + scale.z)) / 3;", + " particle.size = particle.startSize;", + " particle.velocity.multiply(scale).applyMatrix3(this.normalMatrix);", + " if (particle.rotation && particle.rotation instanceof THREE.Quaternion) {", + " particle.rotation.multiplyQuaternions(tempQ, particle.rotation);", + " }", + " }", + " else {", + " if (this.onlyUsedByOther) {", + " particle.parentMatrix = matrix;", + " }", + " }", + " for (let j = 0; j < this.behaviors.length; j++) {", + " this.behaviors[j].initialize(particle);", + " }", + " }", + " }", + " endEmit() {", + " this.emitEnded = true;", + " if (this.autoDestroy) {", + " this.markForDestroy = true;", + " }", + " }", + " dispose() {", + " if (this._renderer)", + " this._renderer.deleteSystem(this);", + " this.emitter.dispose();", + " if (this.emitter.parent)", + " this.emitter.parent.remove(this.emitter);", + " }", + " restart() {", + " this.paused = false;", + " this.particleNum = 0;", + " this.emissionState.burstIndex = 0;", + " this.emissionState.burstWaveIndex = 0;", + " this.emissionState.time = 0;", + " this.emissionState.waitEmiting = 0;", + " this.behaviors.forEach((behavior) => {", + " behavior.reset();", + " });", + " this.emitEnded = false;", + " this.markForDestroy = false;", + " this.prewarmed = false;", + " }", + " //firstTimeUpdate = true;", + " update(delta) {", + " /*if (this.firstTimeUpdate) {", + " this.renderer.addSystem(this);", + " this.firstTimeUpdate = false;", + " }*/", + " if (this.paused)", + " return;", + " let currentParent = this.emitter;", + " while (currentParent.parent) {", + " currentParent = currentParent.parent;", + " }", + " if (currentParent.type !== 'Scene') {", + " this.dispose();", + " return;", + " }", + " if (this.emitEnded && this.particleNum === 0) {", + " if (this.markForDestroy && this.emitter.parent)", + " this.dispose();", + " return;", + " }", + " if (this.looping && this.prewarm && !this.prewarmed) {", + " this.prewarmed = true;", + " for (let i = 0; i < this.duration * PREWARM_FPS; i++) {", + " this.update(1.0 / PREWARM_FPS);", + " }", + " }", + " if (this.neededToUpdateRender) {", + " if (this._renderer)", + " this._renderer.updateSystem(this);", + " this.neededToUpdateRender = false;", + " }", + " if (!this.onlyUsedByOther) {", + " this.emit(delta, this.emissionState, this.emitter.matrixWorld);", + " }", + " // simulate", + " for (let j = 0; j < this.behaviors.length; j++) {", + " for (let i = 0; i < this.particleNum; i++) {", + " if (!this.particles[i].died) {", + " this.behaviors[j].update(this.particles[i], delta);", + " }", + " }", + " this.behaviors[j].frameUpdate(delta);", + " }", + " for (let i = 0; i < this.particleNum; i++) {", + " if (this.rendererEmitterSettings.followLocalOrigin &&", + " this.particles[i].localPosition) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " this.particles[i].position.copy(this.particles[i].localPosition);", + " if (this.particles[i].parentMatrix) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " this.particles[i].position.applyMatrix4(this.particles[i].parentMatrix);", + " }", + " else {", + " this.particles[i].position.applyMatrix4(this.emitter.matrixWorld);", + " }", + " }", + " else {", + " this.particles[i].position.addScaledVector(this.particles[i].velocity, delta);", + " }", + " this.particles[i].age += delta;", + " }", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " for (let i = 0; i < this.particleNum; i++) {", + " const particle = this.particles[i];", + " particle.update();", + " }", + " }", + " // particle die", + " for (let i = 0; i < this.particleNum; i++) {", + " const particle = this.particles[i];", + " if (particle.died && (!(particle instanceof TrailParticle) || particle.previous.length === 0)) {", + " this.particles[i] = this.particles[this.particleNum - 1];", + " this.particles[this.particleNum - 1] = particle;", + " this.particleNum--;", + " i--;", + " }", + " }", + " }", + " emit(delta, emissionState, emitterMatrix) {", + " if (emissionState.time > this.duration) {", + " if (this.looping) {", + " emissionState.time -= this.duration;", + " emissionState.burstIndex = 0;", + " this.behaviors.forEach((behavior) => {", + " behavior.reset();", + " });", + " }", + " else {", + " if (!this.emitEnded && !this.onlyUsedByOther) {", + " this.endEmit();", + " }", + " }", + " }", + " this.normalMatrix.getNormalMatrix(emitterMatrix);", + " // spawn", + " const totalSpawn = Math.ceil(emissionState.waitEmiting);", + " this.spawn(totalSpawn, emissionState, emitterMatrix);", + " emissionState.waitEmiting -= totalSpawn;", + " // spawn burst", + " while (emissionState.burstIndex < this.emissionBursts.length &&", + " this.emissionBursts[emissionState.burstIndex].time <= emissionState.time) {", + " if (Math.random() < this.emissionBursts[emissionState.burstIndex].probability) {", + " const count = this.emissionBursts[emissionState.burstIndex].count;", + " this.spawn(count, emissionState, emitterMatrix);", + " }", + " emissionState.burstIndex++;", + " }", + " if (!this.emitEnded) {", + " emissionState.waitEmiting += delta * this.emissionOverTime.genValue(emissionState.time / this.duration);", + " if (this.previousWorldPos != undefined) {", + " this.emitter.getWorldPosition(this.temp);", + " this.travelDistance += this.previousWorldPos.distanceTo(this.temp);", + " const emitPerMeter = this.emissionOverDistance.genValue(emissionState.time / this.duration);", + " if (this.travelDistance * emitPerMeter > 0) {", + " const count = Math.floor(this.travelDistance * emitPerMeter);", + " this.travelDistance -= count / emitPerMeter;", + " emissionState.waitEmiting += count;", + " }", + " }", + " }", + " if (this.previousWorldPos === undefined)", + " this.previousWorldPos = new THREE.Vector3();", + " this.emitter.getWorldPosition(this.previousWorldPos);", + " emissionState.time += delta;", + " }", + " toJSON(meta, options = {}) {", + " const isRootObject = meta === undefined || typeof meta === 'string';", + " if (isRootObject) {", + " // initialize meta obj", + " meta = {", + " geometries: {},", + " materials: {},", + " textures: {},", + " images: {},", + " shapes: {},", + " skeletons: {},", + " animations: {},", + " nodes: {},", + " };", + " }", + " meta.materials[this.rendererSettings.material.uuid] = this.rendererSettings.material.toJSON(meta);", + " if (options.useUrlForImage) {", + " if (this.texture.source !== undefined) {", + " const image = this.texture.source;", + " meta.images[image.uuid] = {", + " uuid: image.uuid,", + " url: this.texture.image.url,", + " };", + " }", + " }", + " // TODO: support URL", + " let rendererSettingsJSON;", + " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererSettingsJSON = {", + " startLength: this.rendererEmitterSettings.startLength.toJSON(),", + " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " rendererSettingsJSON = {};", + " /*;*/", + " }", + " else {", + " rendererSettingsJSON = {};", + " }", + " const geometry = this.rendererSettings.instancingGeometry;", + " if (meta.geometries && !meta.geometries[geometry.uuid]) {", + " meta.geometries[geometry.uuid] = geometry.toJSON();", + " }", + " return {", + " version: '2.0',", + " autoDestroy: this.autoDestroy,", + " looping: this.looping,", + " prewarm: this.prewarm,", + " duration: this.duration,", + " shape: this.emitterShape.toJSON(),", + " startLife: this.startLife.toJSON(),", + " startSpeed: this.startSpeed.toJSON(),", + " startRotation: this.startRotation.toJSON(),", + " startSize: this.startSize.toJSON(),", + " startColor: this.startColor.toJSON(),", + " emissionOverTime: this.emissionOverTime.toJSON(),", + " emissionOverDistance: this.emissionOverDistance.toJSON(),", + " emissionBursts: this.emissionBursts,", + " onlyUsedByOther: this.onlyUsedByOther,", + " instancingGeometry: this.rendererSettings.instancingGeometry.uuid,", + " renderOrder: this.renderOrder,", + " renderMode: this.renderMode,", + " rendererEmitterSettings: rendererSettingsJSON,", + " speedFactor: this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ? this.speedFactor : 0,", + " //texture: this.texture.uuid,", + " material: this.rendererSettings.material.uuid,", + " layers: this.layers.mask,", + " startTileIndex: this.startTileIndex.toJSON(),", + " uTileCount: this.uTileCount,", + " vTileCount: this.vTileCount,", + " behaviors: this.behaviors.map((behavior) => behavior.toJSON()),", + " worldSpace: this.worldSpace,", + " };", + " }", + " static fromJSON(json, meta, dependencies) {", + " var _a;", + " const shape = EmitterFromJSON(json.shape, meta);", + " let rendererEmitterSettings;", + " if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererEmitterSettings = {", + " startLength: json.rendererEmitterSettings.startLength != undefined", + " ? ValueGeneratorFromJSON(json.rendererEmitterSettings.startLength)", + " : new ConstantValue(30),", + " followLocalOrigin: json.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " rendererEmitterSettings = {};", + " }", + " else {", + " rendererEmitterSettings = {};", + " }", + " const layers = new THREE.Layers();", + " if (json.layers) {", + " layers.mask = json.layers;", + " }", + " const ps = new ParticleSystem({", + " autoDestroy: json.autoDestroy,", + " looping: json.looping,", + " prewarm: json.prewarm,", + " duration: json.duration,", + " shape: shape,", + " startLife: ValueGeneratorFromJSON(json.startLife),", + " startSpeed: ValueGeneratorFromJSON(json.startSpeed),", + " startRotation: GeneratorFromJSON(json.startRotation),", + " startSize: ValueGeneratorFromJSON(json.startSize),", + " startColor: ColorGeneratorFromJSON(json.startColor),", + " emissionOverTime: ValueGeneratorFromJSON(json.emissionOverTime),", + " emissionOverDistance: ValueGeneratorFromJSON(json.emissionOverDistance),", + " emissionBursts: json.emissionBursts,", + " onlyUsedByOther: json.onlyUsedByOther,", + " instancingGeometry: meta.geometries[json.instancingGeometry],", + " renderMode: json.renderMode,", + " rendererEmitterSettings: rendererEmitterSettings,", + " renderOrder: json.renderOrder,", + " speedFactor: json.speedFactor,", + " layers: layers,", + " material: json.material", + " ? meta.materials[json.material]", + " : json.texture", + " ? new THREE.MeshBasicMaterial({", + " map: meta.textures[json.texture],", + " transparent: (_a = json.transparent) !== null && _a !== void 0 ? _a : true,", + " blending: json.blending,", + " side: THREE.DoubleSide,", + " })", + " : new THREE.MeshBasicMaterial({", + " color: 0xffffff,", + " transparent: true,", + " blending: THREE.AdditiveBlending,", + " side: THREE.DoubleSide,", + " }),", + " startTileIndex: typeof json.startTileIndex === 'number'", + " ? new ConstantValue(json.startTileIndex)", + " : ValueGeneratorFromJSON(json.startTileIndex),", + " uTileCount: json.uTileCount,", + " vTileCount: json.vTileCount,", + " behaviors: [],", + " worldSpace: json.worldSpace,", + " });", + " ps.behaviors = json.behaviors.map((behaviorJson) => {", + " const behavior = BehaviorFromJSON(behaviorJson, ps);", + " if (behavior.type === 'EmitSubParticleSystem') {", + " dependencies[behaviorJson.subParticleSystem] = behavior;", + " }", + " return behavior;", + " });", + " return ps;", + " }", + " addBehavior(behavior) {", + " this.behaviors.push(behavior);", + " }", + " getRendererSettings() {", + " return this.rendererSettings;", + " }", + " clone() {", + " const newEmissionBursts = [];", + " for (const emissionBurst of this.emissionBursts) {", + " const newEmissionBurst = {};", + " Object.assign(newEmissionBurst, emissionBurst);", + " newEmissionBursts.push(newEmissionBurst);", + " }", + " const newBehaviors = [];", + " for (const behavior of this.behaviors) {", + " newBehaviors.push(behavior.clone());", + " }", + " let rendererEmitterSettings;", + " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererEmitterSettings = {", + " startLength: this.rendererEmitterSettings.startLength.clone(),", + " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else {", + " rendererEmitterSettings = {};", + " }", + " const layers = new THREE.Layers();", + " layers.mask = this.layers.mask;", + " return new ParticleSystem({", + " autoDestroy: this.autoDestroy,", + " looping: this.looping,", + " duration: this.duration,", + " shape: this.emitterShape.clone(),", + " startLife: this.startLife.clone(),", + " startSpeed: this.startSpeed.clone(),", + " startRotation: this.startRotation.clone(),", + " startSize: this.startSize.clone(),", + " startColor: this.startColor.clone(),", + " emissionOverTime: this.emissionOverTime.clone(),", + " emissionOverDistance: this.emissionOverDistance.clone(),", + " emissionBursts: newEmissionBursts,", + " onlyUsedByOther: this.onlyUsedByOther,", + " instancingGeometry: this.rendererSettings.instancingGeometry,", + " renderMode: this.renderMode,", + " renderOrder: this.renderOrder,", + " rendererEmitterSettings: rendererEmitterSettings,", + " speedFactor: this.speedFactor,", + " material: this.rendererSettings.material,", + " startTileIndex: this.startTileIndex,", + " uTileCount: this.uTileCount,", + " vTileCount: this.vTileCount,", + " behaviors: newBehaviors,", + " worldSpace: this.worldSpace,", + " layers: layers,", + " });", + " }", + "}", + "", + "var particle_frag = /* glsl */ `", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "", + "#include ", + "", + "vec3 outgoingLight = vec3( 0.0 );", + "vec4 diffuseColor = vColor;", + "", + "#include ", + "", + "#ifdef USE_MAP", + "vec4 texelColor = texture2D( map, vUv);", + "diffuseColor *= texelColor;", + "#endif", + "", + "outgoingLight = diffuseColor.rgb;", + "", + "gl_FragColor = vec4( outgoingLight, diffuseColor.a );", + "", + "#include ", + "", + "}", + "`;", + "/*", + " gl_FragColor = vec4(vUv.x, vUv.y, 1.0, 1.0);", + "", + " #ifdef USE_MAP", + " vec4 texelColor = texture2D( map, vUv);", + " diffuseColor *= texelColor;", + " #endif", + "", + " outgoingLight = diffuseColor.rgb;", + "", + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", + "*/", + "", + "var particle_physics_frag = /* glsl */ `", + "#define STANDARD", + "#ifdef PHYSICAL", + "#define IOR", + "#define SPECULAR", + "#endif", + "uniform vec3 diffuse;", + "uniform vec3 emissive;", + "uniform float roughness;", + "uniform float metalness;", + "uniform float opacity;", + "#ifdef IOR", + "uniform float ior;", + "#endif", + "#ifdef SPECULAR", + "uniform float specularIntensity;", + "uniform vec3 specularColor;", + "#ifdef USE_SPECULARINTENSITYMAP", + "uniform sampler2D specularIntensityMap;", + "#endif", + "#ifdef USE_SPECULARCOLORMAP", + "uniform sampler2D specularColorMap;", + "#endif", + "#endif", + "#ifdef USE_CLEARCOAT", + "uniform float clearcoat;", + "uniform float clearcoatRoughness;", + "#endif", + "#ifdef USE_IRIDESCENCE", + "uniform float iridescence;", + "uniform float iridescenceIOR;", + "uniform float iridescenceThicknessMinimum;", + "uniform float iridescenceThicknessMaximum;", + "#endif", + "#ifdef USE_SHEEN", + "uniform vec3 sheenColor;", + "uniform float sheenRoughness;", + "#ifdef USE_SHEENCOLORMAP", + "uniform sampler2D sheenColorMap;", + "#endif", + "#ifdef USE_SHEENROUGHNESSMAP", + "uniform sampler2D sheenRoughnessMap;", + "#endif", + "#endif", + "", + "varying vec3 vViewPosition;", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "#include ", + "vec4 diffuseColor = vec4( diffuse, opacity );", + "ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );", + "vec3 totalEmissiveRadiance = emissive;", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "// accumulation", + "#include ", + "#include ", + "#include ", + "#include ", + "// modulation", + "#include ", + "vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;", + "vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;", + "#include ", + "vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;", + "#ifdef USE_SHEEN", + "// Sheen energy compensation approximation calculation can be found at the end of", + " // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing", + " float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );", + " outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;", + "#endif", + "#ifdef USE_CLEARCOAT", + " float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );", + " vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );", + " outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;", + "#endif", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "}`;", + "", + "var particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute float rotation;", + "attribute float size;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", + "", + "vec2 alignedPosition = ( position.xy ) * size;", + "", + "vec2 rotatedPosition;", + "rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;", + "rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;", + "", + "mvPosition.xy += rotatedPosition;", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "/*", + " #ifndef USE_SIZEATTENUATION", + " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", + " if ( isPerspective ) computedSize *= - mvPosition.z;", + " #endif", + " */", + "", + "var local_particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute vec4 rotation;", + "attribute float size;", + "// attribute vec4 color;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", + "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", + "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", + "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", + "float sx = size, sy = size, sz = size;", + "", + "mat4 matrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", + " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", + " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", + " offset.x, offset.y, offset.z, 1.0);", + "", + "vec4 mvPosition = modelViewMatrix * (matrix * vec4( position, 1.0 ));", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "", + "var local_particle_physics_vert = /* glsl */ `", + "#define STANDARD", + "varying vec3 vViewPosition;", + "#ifdef USE_TRANSMISSION", + "varying vec3 vWorldPosition;", + "#endif", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute vec4 rotation;", + "attribute float size;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", + "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", + "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", + "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", + "float sx = size, sy = size, sz = size;", + "", + "mat4 particleMatrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", + " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", + " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", + " offset.x, offset.y, offset.z, 1.0);", + " ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "// replace defaultnormal_vertex", + "vec3 transformedNormal = objectNormal;", + "mat3 m = mat3( particleMatrix );", + "transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );", + "transformedNormal = m * transformedNormal;", + "transformedNormal = normalMatrix * transformedNormal;", + "#ifdef FLIP_SIDED", + " transformedNormal = - transformedNormal;", + "#endif", + "#ifdef USE_TANGENT", + " vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;", + " #ifdef FLIP_SIDED", + " transformedTangent = - transformedTangent;", + " #endif", + "#endif", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "// replace include ", + "vec4 mvPosition = vec4( transformed, 1.0 );", + "mvPosition = modelViewMatrix * (particleMatrix * mvPosition);", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "vViewPosition = - mvPosition.xyz;", + "", + "#include ", + "#include ", + "#include ", + "#ifdef USE_TRANSMISSION", + "vWorldPosition = worldPosition.xyz;", + "#endif", + "}", + "`;", + "", + "var stretched_bb_particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute float rotation;", + "attribute float size;", + "attribute vec3 velocity;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "uniform float speedFactor;", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", + "vec3 viewVelocity = normalMatrix * velocity;", + "", + "vec3 scaledPos = vec3(position.xy * size, position.z);", + "mvPosition.xyz += scaledPos + dot(scaledPos, viewVelocity) * viewVelocity / length(viewVelocity) * speedFactor;", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "/*", + "", + " vec3 instancePos = vec3(position.xy * size, position.z);", + " instancePos += dot(instancePos, viewVelocity) * viewVelocity * speedFactor;", + " mvPosition.xyz += instancePos;", + "", + " vColor = color; //vec4(1, 1, 1, 1); //color; //length(viewVelocity) * 0.1", + "", + " #ifndef USE_SIZEATTENUATION", + " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", + " if ( isPerspective ) computedSize *= - mvPosition.z;", + " #endif", + " */", + "", + "function getMaterialUVChannelName(value) {", + " if (value === 0)", + " return 'uv';", + " return `uv${value}`;", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class SpriteBatch extends VFXBatch {", + " constructor(settings) {", + " super(settings);", + " /*", + " clone() {", + " let system = this.system.clone();", + " return system.emitter as any;", + " }*/", + " this.vector_ = new THREE.Vector3();", + " this.vector2_ = new THREE.Vector3();", + " this.vector3_ = new THREE.Vector3();", + " this.quaternion_ = new THREE.Quaternion();", + " this.quaternion2_ = new THREE.Quaternion();", + " this.quaternion3_ = new THREE.Quaternion();", + " this.rotationMat_ = new THREE.Matrix3();", + " this.rotationMat2_ = new THREE.Matrix3();", + " this.maxParticles = 1000;", + " this.setupBuffers();", + " this.rebuildMaterial();", + " // TODO: implement boundingVolume", + " }", + " buildExpandableBuffers() {", + " this.offsetBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", + " this.offsetBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('offset', this.offsetBuffer);", + " this.colorBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", + " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('color', this.colorBuffer);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", + " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('rotation', this.rotationBuffer);", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('rotation', this.rotationBuffer);", + " }", + " this.sizeBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.sizeBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('size', this.sizeBuffer);", + " this.uvTileBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.uvTileBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('uvTile', this.uvTileBuffer);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " this.velocityBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", + " this.velocityBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('velocity', this.velocityBuffer);", + " }", + " }", + " setupBuffers() {", + " if (this.geometry)", + " this.geometry.dispose();", + " this.geometry = new THREE.InstancedBufferGeometry();", + " this.geometry.setIndex(this.settings.instancingGeometry.getIndex());", + " if (this.settings.instancingGeometry.hasAttribute('normal')) {", + " this.geometry.setAttribute('normal', this.settings.instancingGeometry.getAttribute('normal'));", + " }", + " this.geometry.setAttribute('position', this.settings.instancingGeometry.getAttribute('position')); //new InterleavedBufferAttribute(this.interleavedBuffer, 3, 0, false));", + " this.geometry.setAttribute('uv', this.settings.instancingGeometry.getAttribute('uv')); //new InterleavedBufferAttribute(this.interleavedBuffer, 2, 3, false));", + " this.buildExpandableBuffers();", + " }", + " expandBuffers(target) {", + " while (target >= this.maxParticles) {", + " this.maxParticles *= 2;", + " }", + " this.setupBuffers();", + " }", + " rebuildMaterial() {", + " this.layers.mask = this.settings.layers.mask;", + " let uniforms;", + " const defines = {};", + " if (this.settings.material.type === 'MeshStandardMaterial' ||", + " this.settings.material.type === 'MeshPhysicalMaterial') {", + " const mat = this.settings.material;", + " uniforms = THREE.UniformsUtils.merge([", + " THREE.UniformsLib.common,", + " THREE.UniformsLib.envmap,", + " THREE.UniformsLib.aomap,", + " THREE.UniformsLib.lightmap,", + " THREE.UniformsLib.emissivemap,", + " THREE.UniformsLib.bumpmap,", + " THREE.UniformsLib.normalmap,", + " THREE.UniformsLib.displacementmap,", + " THREE.UniformsLib.roughnessmap,", + " THREE.UniformsLib.metalnessmap,", + " THREE.UniformsLib.fog,", + " THREE.UniformsLib.lights,", + " {", + " emissive: { value: /*@__PURE__*/ new THREE.Color(0x000000) },", + " roughness: { value: 1.0 },", + " metalness: { value: 0.0 },", + " envMapIntensity: { value: 1 }, // temporary", + " },", + " ]);", + " uniforms['diffuse'].value = mat.color;", + " uniforms['opacity'].value = mat.opacity;", + " uniforms['emissive'].value = mat.emissive;", + " uniforms['roughness'].value = mat.roughness;", + " uniforms['metalness'].value = mat.metalness;", + " if (mat.envMap) {", + " uniforms['envMap'].value = mat.envMap;", + " uniforms['envMapIntensity'].value = mat.envMapIntensity;", + " }", + " if (mat.normalMap) {", + " uniforms['normalMap'].value = mat.normalMap;", + " uniforms['normalScale'].value = mat.normalScale;", + " }", + " if (mat.roughnessMap) {", + " uniforms['roughnessMap'].value = mat.roughnessMap;", + " }", + " if (mat.metalnessMap) {", + " uniforms['metalnessMap'].value = mat.metalnessMap;", + " }", + " }", + " else {", + " uniforms = {};", + " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", + " }", + " if (this.settings.material.map) {", + " defines['USE_MAP'] = '';", + " defines['USE_UV'] = '';", + " defines['UV_TILE'] = '';", + " const uTileCount = this.settings.uTileCount;", + " const vTileCount = this.settings.vTileCount;", + " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", + " uniforms['uvTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", + " uniforms['tileCount'] = new THREE.Uniform(new THREE.Vector2(uTileCount, vTileCount));", + " }", + " defines['USE_COLOR_ALPHA'] = '';", + " let needLights = false;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard || this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " let vertexShader;", + " let fragmentShader;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " if (this.settings.material.type === 'MeshStandardMaterial' ||", + " this.settings.material.type === 'MeshPhysicalMaterial') {", + " defines['USE_COLOR'] = '';", + " vertexShader = local_particle_physics_vert;", + " fragmentShader = particle_physics_frag;", + " needLights = true;", + " }", + " else {", + " vertexShader = local_particle_vert;", + " fragmentShader = particle_frag;", + " }", + " }", + " else {", + " vertexShader = particle_vert;", + " fragmentShader = particle_frag;", + " }", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: vertexShader,", + " fragmentShader: fragmentShader,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " blending: this.settings.material.blending,", + " side: this.settings.material.side,", + " lights: needLights,", + " });", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " uniforms['speedFactor'] = new THREE.Uniform(1.0);", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: stretched_bb_particle_vert,", + " fragmentShader: particle_frag,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " blending: this.settings.material.blending,", + " side: this.settings.material.side,", + " });", + " }", + " else {", + " throw new Error('render mode unavailable');", + " }", + " }", + " update() {", + " let index = 0;", + " let particleCount = 0;", + " this.systems.forEach((system) => {", + " particleCount += system.particleNum;", + " });", + " if (particleCount > this.maxParticles) {", + " this.expandBuffers(particleCount);", + " }", + " this.systems.forEach((system) => {", + " const particles = system.particles;", + " const particleNum = system.particleNum;", + " const rotation = this.quaternion2_;", + " const translation = this.vector2_;", + " const scale = this.vector3_;", + " system.emitter.matrixWorld.decompose(translation, rotation, scale);", + " this.rotationMat_.setFromMatrix4(system.emitter.matrixWorld);", + " for (let j = 0; j < particleNum; j++, index++) {", + " const particle = particles[j];", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " //this.quaternion_.setFromAxisAngle(UP, particle.rotation as number);", + " let q;", + " if (system.worldSpace) {", + " q = particle.rotation;", + " }", + " else {", + " let parentQ;", + " if (particle.parentMatrix) {", + " parentQ = this.quaternion3_.setFromRotationMatrix(particle.parentMatrix);", + " }", + " else {", + " parentQ = rotation;", + " }", + " q = this.quaternion_;", + " q.copy(particle.rotation).multiply(parentQ);", + " }", + " this.rotationBuffer.setXYZW(index, q.x, q.y, q.z, q.w);", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", + " this.rotationBuffer.setX(index, particle.rotation);", + " }", + " let vec;", + " if (system.worldSpace) {", + " vec = particle.position;", + " }", + " else {", + " vec = this.vector_;", + " if (particle.parentMatrix) {", + " vec.copy(particle.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " vec.copy(particle.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " }", + " this.offsetBuffer.setXYZ(index, vec.x, vec.y, vec.z);", + " this.colorBuffer.setXYZW(index, particle.color.x, particle.color.y, particle.color.z, particle.color.w);", + " if (system.worldSpace) {", + " this.sizeBuffer.setX(index, particle.size);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.sizeBuffer.setX(index, particle.size);", + " }", + " else {", + " this.sizeBuffer.setX(index, (particle.size * (scale.x + scale.y + scale.z)) / 3);", + " }", + " }", + " this.uvTileBuffer.setX(index, particle.uvTile);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", + " const speedFactor = system.speedFactor;", + " let vec;", + " if (system.worldSpace) {", + " vec = particle.velocity;", + " }", + " else {", + " vec = this.vector_;", + " if (particle.parentMatrix) {", + " this.rotationMat2_.setFromMatrix4(particle.parentMatrix);", + " vec.copy(particle.velocity).applyMatrix3(this.rotationMat2_);", + " }", + " else {", + " vec.copy(particle.velocity).applyMatrix3(this.rotationMat_);", + " }", + " }", + " this.velocityBuffer.setXYZ(index, vec.x * speedFactor, vec.y * speedFactor, vec.z * speedFactor);", + " }", + " }", + " });", + " this.geometry.instanceCount = index;", + " if (index > 0) {", + " this.offsetBuffer.updateRange.count = index * 3;", + " this.offsetBuffer.needsUpdate = true;", + " this.sizeBuffer.updateRange.count = index;", + " this.sizeBuffer.needsUpdate = true;", + " this.colorBuffer.updateRange.count = index * 4;", + " this.colorBuffer.needsUpdate = true;", + " this.uvTileBuffer.updateRange.count = index;", + " this.uvTileBuffer.needsUpdate = true;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", + " this.velocityBuffer.updateRange.count = index * 3;", + " this.velocityBuffer.needsUpdate = true;", + " }", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.rotationBuffer.updateRange.count = index * 4;", + " this.rotationBuffer.needsUpdate = true;", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", + " this.rotationBuffer.updateRange.count = index;", + " this.rotationBuffer.needsUpdate = true;", + " }", + " }", + " }", + " dispose() {", + " this.geometry.dispose();", + " }", + "}", + "", + "var trail_frag = /* glsl */ `", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "uniform sampler2D alphaMap;", + "uniform float useAlphaMap;", + "uniform float visibility;", + "uniform float alphaTest;", + "uniform vec2 repeat;", + "", + "varying vec4 vColor;", + "", + "void main() {", + "#include ", + "#include ", + "", + "vec4 c = vColor;", + "", + "#ifdef USE_MAP", + "c *= texture2D( map, vUv * repeat );", + "#endif", + "if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUv * repeat ).a;", + "if( c.a < alphaTest ) discard;", + "gl_FragColor = c;", + "", + "#include ", + "#include ", + "}`;", + "", + "var trail_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 previous;", + "attribute vec3 next;", + "attribute float side;", + "attribute float width;", + "", + "uniform vec2 resolution;", + "uniform float lineWidth;", + "uniform float sizeAttenuation;", + "", + "vec2 fix(vec4 i, float aspect) {", + "vec2 res = i.xy / i.w;", + "res.x *= aspect;", + "return res;", + "}", + "", + "void main() {", + "", + "#include ", + "", + "float aspect = resolution.x / resolution.y;", + "", + "vColor = color;", + "", + "mat4 m = projectionMatrix * modelViewMatrix;", + "vec4 finalPosition = m * vec4( position, 1.0 );", + "vec4 prevPos = m * vec4( previous, 1.0 );", + "vec4 nextPos = m * vec4( next, 1.0 );", + "", + "vec2 currentP = fix( finalPosition, aspect );", + "vec2 prevP = fix( prevPos, aspect );", + "vec2 nextP = fix( nextPos, aspect );", + "", + "float w = lineWidth * width;", + "", + "vec2 dir;", + "if( nextP == currentP ) dir = normalize( currentP - prevP );", + "else if( prevP == currentP ) dir = normalize( nextP - currentP );", + "else {", + " vec2 dir1 = normalize( currentP - prevP );", + " vec2 dir2 = normalize( nextP - currentP );", + " dir = normalize( dir1 + dir2 );", + "", + " vec2 perp = vec2( -dir1.y, dir1.x );", + " vec2 miter = vec2( -dir.y, dir.x );", + " //w = clamp( w / dot( miter, perp ), 0., 4., * lineWidth * width );", + "", + "}", + "", + "//vec2 normal = ( cross( vec3( dir, 0. ) vec3( 0., 0., 1. ) ) ).xy;", + "vec4 normal = vec4( -dir.y, dir.x, 0., 1. );", + "normal.xy *= .5 * w;", + "normal *= projectionMatrix;", + "if( sizeAttenuation == 0. ) {", + " normal.xy *= finalPosition.w;", + " normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;", + "}", + "", + "finalPosition.xy += normal.xy * side;", + "", + "gl_Position = finalPosition;", + "", + "#include ", + "#include ", + "", + "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", + "", + "#include ", + "}`;", + "", + "new THREE.Vector3(0, 0, 1);", + "class TrailBatch extends VFXBatch {", + " constructor(settings) {", + " super(settings);", + " /*", + " clone() {", + " let system = this.system.clone();", + " return system.emitter as any;", + " }*/", + " this.vector_ = new THREE.Vector3();", + " this.vector2_ = new THREE.Vector3();", + " this.vector3_ = new THREE.Vector3();", + " this.quaternion_ = new THREE.Quaternion();", + " this.maxParticles = 10000;", + " this.setupBuffers();", + " this.rebuildMaterial();", + " // TODO: implement boundingVolume", + " }", + " setupBuffers() {", + " if (this.geometry)", + " this.geometry.dispose();", + " this.geometry = new THREE.BufferGeometry();", + " this.indexBuffer = new THREE.BufferAttribute(new Uint32Array(this.maxParticles * 6), 1);", + " this.indexBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setIndex(this.indexBuffer);", + " this.positionBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.positionBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('position', this.positionBuffer);", + " this.previousBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.previousBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('previous', this.previousBuffer);", + " this.nextBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.nextBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('next', this.nextBuffer);", + " this.widthBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", + " this.widthBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('width', this.widthBuffer);", + " this.sideBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", + " this.sideBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('side', this.sideBuffer);", + " this.uvBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 4), 2);", + " this.uvBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('uv', this.uvBuffer);", + " this.colorBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 8), 4);", + " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('color', this.colorBuffer);", + " }", + " expandBuffers(target) {", + " while (target >= this.maxParticles) {", + " this.maxParticles *= 2;", + " }", + " this.setupBuffers();", + " }", + " rebuildMaterial() {", + " this.layers.mask = this.settings.layers.mask;", + " const uniforms = {", + " lineWidth: { value: 1 },", + " map: { value: null },", + " useMap: { value: 0 },", + " alphaMap: { value: null },", + " useAlphaMap: { value: 0 },", + " resolution: { value: new THREE.Vector2(1, 1) },", + " sizeAttenuation: { value: 1 },", + " visibility: { value: 1 },", + " alphaTest: { value: 0 },", + " repeat: { value: new THREE.Vector2(1, 1) },", + " };", + " const defines = {};", + " defines['USE_UV'] = '';", + " defines['USE_COLOR_ALPHA'] = '';", + " if (this.settings.material.map) {", + " defines['USE_MAP'] = '';", + " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", + " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", + " uniforms['mapTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", + " }", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: trail_vert,", + " fragmentShader: trail_frag,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " side: this.settings.material.side,", + " blending: this.settings.material.blending || THREE.AdditiveBlending,", + " });", + " }", + " else {", + " throw new Error('render mode unavailable');", + " }", + " }", + " update() {", + " let index = 0;", + " let triangles = 0;", + " let particleCount = 0;", + " this.systems.forEach((system) => {", + " for (let j = 0; j < system.particleNum; j++) {", + " particleCount += system.particles[j].previous.length * 2;", + " }", + " });", + " if (particleCount > this.maxParticles) {", + " this.expandBuffers(particleCount);", + " }", + " this.systems.forEach((system) => {", + " const rotation = this.quaternion_;", + " const translation = this.vector2_;", + " const scale = this.vector3_;", + " system.emitter.matrixWorld.decompose(translation, rotation, scale);", + " const particles = system.particles;", + " const particleNum = system.particleNum;", + " const uTileCount = this.settings.uTileCount;", + " const vTileCount = this.settings.vTileCount;", + " const tileWidth = 1 / uTileCount;", + " const tileHeight = 1 / vTileCount;", + " for (let j = 0; j < particleNum; j++) {", + " const particle = particles[j];", + " const col = particle.uvTile % vTileCount;", + " const row = Math.floor(particle.uvTile / vTileCount);", + " const iter = particle.previous.values();", + " let curIter = iter.next();", + " let previous = curIter.value;", + " let current = previous;", + " if (!curIter.done)", + " curIter = iter.next();", + " let next;", + " if (curIter.value !== undefined) {", + " next = curIter.value;", + " }", + " else {", + " next = current;", + " }", + " for (let i = 0; i < particle.previous.length; i++, index += 2) {", + " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", + " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", + " if (system.worldSpace) {", + " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", + " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(current.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(current.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.positionBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.positionBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " if (system.worldSpace) {", + " this.previousBuffer.setXYZ(index, previous.position.x, previous.position.y, previous.position.z);", + " this.previousBuffer.setXYZ(index + 1, previous.position.x, previous.position.y, previous.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(previous.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(previous.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.previousBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.previousBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " if (system.worldSpace) {", + " this.nextBuffer.setXYZ(index, next.position.x, next.position.y, next.position.z);", + " this.nextBuffer.setXYZ(index + 1, next.position.x, next.position.y, next.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(next.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(next.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.nextBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.nextBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " this.sideBuffer.setX(index, -1);", + " this.sideBuffer.setX(index + 1, 1);", + " if (system.worldSpace) {", + " this.widthBuffer.setX(index, current.size);", + " this.widthBuffer.setX(index + 1, current.size);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.widthBuffer.setX(index, current.size);", + " this.widthBuffer.setX(index + 1, current.size);", + " }", + " else {", + " this.widthBuffer.setX(index, (current.size * (scale.x + scale.y + scale.z)) / 3);", + " this.widthBuffer.setX(index + 1, (current.size * (scale.x + scale.y + scale.z)) / 3);", + " }", + " }", + " this.uvBuffer.setXY(index, (i / particle.previous.length + col) * tileWidth, (vTileCount - row - 1) * tileHeight);", + " this.uvBuffer.setXY(index + 1, (i / particle.previous.length + col) * tileWidth, (vTileCount - row) * tileHeight);", + " this.colorBuffer.setXYZW(index, current.color.x, current.color.y, current.color.z, current.color.w);", + " this.colorBuffer.setXYZW(index + 1, current.color.x, current.color.y, current.color.z, current.color.w);", + " if (i + 1 < particle.previous.length) {", + " this.indexBuffer.setX(triangles * 3, index);", + " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", + " this.indexBuffer.setX(triangles * 3 + 2, index + 2);", + " triangles++;", + " this.indexBuffer.setX(triangles * 3, index + 2);", + " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", + " this.indexBuffer.setX(triangles * 3 + 2, index + 3);", + " triangles++;", + " }", + " previous = current;", + " current = next;", + " if (!curIter.done) {", + " curIter = iter.next();", + " if (curIter.value !== undefined) {", + " next = curIter.value;", + " }", + " }", + " }", + " }", + " });", + " this.positionBuffer.updateRange.count = index * 3;", + " this.positionBuffer.needsUpdate = true;", + " this.previousBuffer.updateRange.count = index * 3;", + " this.previousBuffer.needsUpdate = true;", + " this.nextBuffer.updateRange.count = index * 3;", + " this.nextBuffer.needsUpdate = true;", + " this.sideBuffer.updateRange.count = index;", + " this.sideBuffer.needsUpdate = true;", + " this.widthBuffer.updateRange.count = index;", + " this.widthBuffer.needsUpdate = true;", + " this.uvBuffer.updateRange.count = index * 2;", + " this.uvBuffer.needsUpdate = true;", + " this.colorBuffer.updateRange.count = index * 4;", + " this.colorBuffer.needsUpdate = true;", + " this.indexBuffer.updateRange.count = triangles * 3;", + " this.indexBuffer.needsUpdate = true;", + " this.geometry.setDrawRange(0, triangles * 3);", + " }", + " dispose() {", + " this.geometry.dispose();", + " }", + "}", + "", + "class BatchedRenderer extends THREE.Object3D {", + " constructor() {", + " super();", + " this.batches = [];", + " this.systemToBatchIndex = new Map();", + " this.type = \"BatchedRenderer\";", + " }", + " static equals(a, b) {", + " return a.material.side === b.material.side &&", + " a.material.blending === b.material.blending &&", + " a.material.transparent === b.material.transparent &&", + " a.material.map === b.material.map &&", + " a.renderMode === b.renderMode &&", + " a.uTileCount === b.uTileCount &&", + " a.vTileCount === b.vTileCount &&", + " a.instancingGeometry === b.instancingGeometry &&", + " a.renderOrder === b.renderOrder &&", + " a.layers.mask === b.layers.mask;", + " }", + " addSystem(system) {", + " system._renderer = this;", + " const settings = system.getRendererSettings();", + " for (let i = 0; i < this.batches.length; i++) {", + " if (BatchedRenderer.equals(this.batches[i].settings, settings)) {", + " this.batches[i].addSystem(system);", + " this.systemToBatchIndex.set(system, i);", + " return;", + " }", + " }", + " let batch;", + " switch (settings.renderMode) {", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", + " batch = new TrailBatch(settings);", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", + " batch = new SpriteBatch(settings);", + " break;", + " }", + " batch.addSystem(system);", + " this.batches.push(batch);", + " this.systemToBatchIndex.set(system, this.batches.length - 1);", + " this.add(batch);", + " }", + " deleteSystem(system) {", + " const batchIndex = this.systemToBatchIndex.get(system);", + " if (batchIndex != undefined) {", + " this.batches[batchIndex].removeSystem(system);", + " this.systemToBatchIndex.delete(system);", + " }", + " /*const settings = system.getRendererSettings();", + " for (let i = 0; i < this.batches.length; i++) {", + " if (BatchedParticleRenderer.equals(this.batches[i].settings, settings)) {", + " this.batches[i].removeSystem(system);", + " return;", + " }", + " }*/", + " }", + " updateSystem(system) {", + " this.deleteSystem(system);", + " this.addSystem(system);", + " }", + " update(delta) {", + " this.systemToBatchIndex.forEach((value, ps) => {", + " ps.update(delta);", + " });", + " for (let i = 0; i < this.batches.length; i++) {", + " this.batches[i].update();", + " }", + " }", + "}", + "", + "// deprecated", + "const BatchedParticleRenderer = BatchedRenderer;", + "", + "class TextureSequencer {", + " constructor(scaleX = 0, scaleY = 0, position = new THREE.Vector3()) {", + " this.scaleX = scaleX;", + " this.scaleY = scaleY;", + " this.position = position;", + " this.locations = [];", + " }", + " transform(position, index) {", + " position.x = this.locations[index % this.locations.length].x * this.scaleX + this.position.x;", + " position.y = this.locations[index % this.locations.length].y * this.scaleY + this.position.y;", + " position.z = this.position.z;", + " }", + " static fromJSON(json) {", + " const textureSequencer = new TextureSequencer(json.scaleX, json.scaleY, new THREE.Vector3(json.position[0], json.position[1], json.position[2]));", + " textureSequencer.locations = json.locations.map((loc) => new THREE.Vector2(loc.x, loc.y));", + " return textureSequencer;", + " }", + " clone() {", + " const textureSequencer = new TextureSequencer(this.scaleX, this.scaleY, this.position.clone());", + " textureSequencer.locations = this.locations.map(loc => loc.clone());", + " return textureSequencer;", + " }", + " toJSON() {", + " return {", + " scaleX: this.scaleX,", + " scaleY: this.scaleY,", + " position: this.position,", + " locations: this.locations.map(loc => ({", + " x: loc.x,", + " y: loc.y,", + " }))", + " };", + " }", + " fromImage(img, threshold) {", + " // Create an empty canvas element", + " const canvas = document.createElement(\"canvas\");", + " canvas.width = img.width;", + " canvas.height = img.height;", + " // Copy the image contents to the canvas", + " const ctx = canvas.getContext(\"2d\");", + " if (!ctx) {", + " return;", + " }", + " ctx.drawImage(img, 0, 0);", + " const data = ctx.getImageData(0, 0, canvas.width, canvas.height, { colorSpace: \"srgb\" });", + " canvas.remove();", + " this.locations.length = 0;", + " for (let i = 0; i < data.height; i++) {", + " for (let j = 0; j < data.width; j++) {", + " if (data.data[(i * data.width + j) * 4 + 3] > threshold) {", + " this.locations.push(new THREE.Vector2(j, data.height - i));", + " }", + " }", + " }", + " //return data;", + " // Get the data-URL formatted image", + " // Firefox supports PNG and JPEG. You could check img.src to", + " // guess the original format, but be aware the using \"image/jpg\"", + " // will re-encode the image.", + " //var dataURL = canvas.toDataURL(\"image/png\");", + " //return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");", + " }", + "}", + "", + "function SequencerFromJSON(json) {", + " switch (json.type) {", + " case 'TextureSequencer':", + " return TextureSequencer.fromJSON(json);", + " default:", + " return new TextureSequencer();", + " }", + "}", + "", + "class ApplySequences {", + " constructor(delayBetweenParticles) {", + " this.type = 'ApplySequences';", + " this.sequencers = [];", + " this.time = 0;", + " this.index = 0;", + " this.pCount = 0;", + " this.tempV = new THREE.Vector3();", + " this.delay = delayBetweenParticles;", + " }", + " initialize(particle) {", + " particle.id = this.pCount;", + " particle.dst = new THREE.Vector3();", + " particle.begin = new THREE.Vector3();", + " particle.inMotion = false;", + " this.pCount++;", + " }", + " reset() {", + " this.time = 0;", + " this.index = 0;", + " this.pCount = 0;", + " }", + " update(particle, delta) {", + " const sequencer = this.sequencers[this.index];", + " const delay = particle.id * this.delay;", + " if (this.time >= sequencer[0].a + delay && this.time <= sequencer[0].b + delay) {", + " if (!particle.inMotion) {", + " particle.inMotion = true;", + " particle.begin.copy(particle.position);", + " sequencer[1].transform(particle.dst, particle.id);", + " }", + " particle.position.lerpVectors(particle.begin, particle.dst, ApplySequences.BEZIER.genValue((this.time - sequencer[0].a - delay) / (sequencer[0].b - sequencer[0].a)));", + " }", + " else if (this.time > sequencer[0].b + delay) {", + " particle.inMotion = false;", + " }", + " }", + " frameUpdate(delta) {", + " while (this.index + 1 < this.sequencers.length && this.time >= this.sequencers[this.index + 1][0].a) {", + " this.index++;", + " }", + " this.time += delta;", + " }", + " appendSequencer(range, sequencer) {", + " this.sequencers.push([range, sequencer]);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " delay: this.delay,", + " sequencers: this.sequencers.map(([range, sequencer]) => ({", + " range: range.toJSON(),", + " sequencer: sequencer.toJSON(),", + " })),", + " };", + " }", + " static fromJSON(json) {", + " const seq = new ApplySequences(json.delay);", + " json.sequencers.forEach((sequencerJson) => {", + " seq.sequencers.push([ValueGeneratorFromJSON(sequencerJson.range), SequencerFromJSON(sequencerJson.sequencer)]);", + " });", + " return seq;", + " }", + " clone() {", + " const applySequences = new ApplySequences(this.delay);", + " applySequences.sequencers = this.sequencers.map(seq => [seq[0].clone(), seq[1].clone()]);", + " return applySequences;", + " }", + "}", + "ApplySequences.BEZIER = new Bezier(0, 0, 1, 1);", + "", + "let physicsResolver;", + "function setPhysicsResolver(resolver) {", + " physicsResolver = resolver;", + "}", + "function getPhysicsResolver() {", + " return physicsResolver;", + "}", + "class ApplyCollision {", + " constructor(resolver, bounce) {", + " this.resolver = resolver;", + " this.bounce = bounce;", + " this.type = 'ApplyCollision';", + " this.tempV = new THREE.Vector3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " if (this.resolver.resolve(particle.position, this.tempV)) {", + " particle.velocity.reflect(this.tempV).multiplyScalar(this.bounce);", + " }", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " bounce: this.bounce,", + " };", + " }", + " static fromJSON(json) {", + " return new ApplyCollision(getPhysicsResolver(), json.bounce);", + " }", + " clone() {", + " return new ApplyCollision(this.resolver, this.bounce);", + " }", + " reset() {", + " }", + "}", + "", + "class QuarksLoader extends THREE.ObjectLoader {", + " /*manager: LoadingManager;", + " crossOrigin: string = \"anonymous\";", + " path?: string;", + " resourcePath: string;", + "*/", + " constructor(manager) {", + " super(manager);", + " //this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;", + " //this.resourcePath = '';", + " }", + " linkReference(object) {", + " const objectsMap = {};", + " object.traverse(function (child) {", + " objectsMap[child.uuid] = child;", + " });", + " object.traverse(function (child) {", + " if (child.type === \"ParticleEmitter\") {", + " const system = child.system;", + " system.emitterShape;", + " /*if (shape instanceof MeshSurfaceEmitter) {", + " shape.geometry = objectsMap[shape.geometry as any] as Mesh;", + " }*/", + " for (let i = 0; i < system.behaviors.length; i++) {", + " if (system.behaviors[i] instanceof EmitSubParticleSystem) {", + " system.behaviors[i].subParticleSystem = objectsMap[system.behaviors[i].subParticleSystem];", + " }", + " }", + " }", + " });", + " }", + " parse(json, onLoad) {", + " const object = super.parse(json, onLoad);", + " this.linkReference(object);", + " return object;", + " }", + " // @ts-ignore", + " parseObject(data, geometries, materials, textures, animations) {", + " let object;", + " function getGeometry(name) {", + " if (geometries[name] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined geometry', name);", + " }", + " return geometries[name];", + " }", + " function getMaterial(name) {", + " if (name === undefined)", + " return undefined;", + " if (Array.isArray(name)) {", + " const array = [];", + " for (let i = 0, l = name.length; i < l; i++) {", + " const uuid = name[i];", + " if (materials[uuid] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined material', uuid);", + " }", + " array.push(materials[uuid]);", + " }", + " return array;", + " }", + " if (materials[name] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined material', name);", + " }", + " return materials[name];", + " }", + " function getTexture(uuid) {", + " if (textures[uuid] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined texture', uuid);", + " }", + " return textures[uuid];", + " }", + " let geometry, material;", + " const meta = {", + " textures: textures,", + " geometries: geometries,", + " materials: materials,", + " };", + " const dependencies = {};", + " switch (data.type) {", + " case 'ParticleEmitter':", + " object = ParticleSystem.fromJSON(data.ps, meta, dependencies).emitter;", + " break;", + " case 'Scene':", + " object = new THREE.Scene();", + " if (data.background !== undefined) {", + " if (Number.isInteger(data.background)) {", + " object.background = new THREE.Color(data.background);", + " }", + " else {", + " object.background = getTexture(data.background);", + " }", + " }", + " if (data.environment !== undefined) {", + " object.environment = getTexture(data.environment);", + " }", + " if (data.fog !== undefined) {", + " if (data.fog.type === 'Fog') {", + " object.fog = new THREE.Fog(data.fog.color, data.fog.near, data.fog.far);", + " }", + " else if (data.fog.type === 'FogExp2') {", + " object.fog = new THREE.FogExp2(data.fog.color, data.fog.density);", + " }", + " }", + " if (data.backgroundBlurriness !== undefined)", + " object.backgroundBlurriness = data.backgroundBlurriness;", + " break;", + " case 'PerspectiveCamera':", + " object = new THREE.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);", + " if (data.focus !== undefined)", + " object.focus = data.focus;", + " if (data.zoom !== undefined)", + " object.zoom = data.zoom;", + " if (data.filmGauge !== undefined)", + " object.filmGauge = data.filmGauge;", + " if (data.filmOffset !== undefined)", + " object.filmOffset = data.filmOffset;", + " if (data.view !== undefined)", + " object.view = Object.assign({}, data.view);", + " break;", + " case 'OrthographicCamera':", + " object = new THREE.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);", + " if (data.zoom !== undefined)", + " object.zoom = data.zoom;", + " if (data.view !== undefined)", + " object.view = Object.assign({}, data.view);", + " break;", + " case 'AmbientLight':", + " object = new THREE.AmbientLight(data.color, data.intensity);", + " break;", + " case 'DirectionalLight':", + " object = new THREE.DirectionalLight(data.color, data.intensity);", + " break;", + " case 'PointLight':", + " object = new THREE.PointLight(data.color, data.intensity, data.distance, data.decay);", + " break;", + " case 'RectAreaLight':", + " object = new THREE.RectAreaLight(data.color, data.intensity, data.width, data.height);", + " break;", + " case 'SpotLight':", + " object = new THREE.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);", + " break;", + " case 'HemisphereLight':", + " object = new THREE.HemisphereLight(data.color, data.groundColor, data.intensity);", + " break;", + " case 'LightProbe':", + " object = new THREE.LightProbe().fromJSON(data);", + " break;", + " case 'SkinnedMesh':", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " object = new THREE.SkinnedMesh(geometry, material);", + " if (data.bindMode !== undefined)", + " object.bindMode = data.bindMode;", + " if (data.bindMatrix !== undefined)", + " object.bindMatrix.fromArray(data.bindMatrix);", + " if (data.skeleton !== undefined)", + " object.skeleton = data.skeleton;", + " break;", + " case 'Mesh':", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " object = new THREE.Mesh(geometry, material);", + " break;", + " case 'InstancedMesh': {", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " const count = data.count;", + " const instanceMatrix = data.instanceMatrix;", + " const instanceColor = data.instanceColor;", + " object = new THREE.InstancedMesh(geometry, material, count);", + " object.instanceMatrix = new THREE.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);", + " if (instanceColor !== undefined)", + " object.instanceColor = new THREE.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);", + " break;", + " }", + " case 'LOD':", + " object = new THREE.LOD();", + " break;", + " case 'Line':", + " object = new THREE.Line(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'LineLoop':", + " object = new THREE.LineLoop(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'LineSegments':", + " object = new THREE.LineSegments(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'PointCloud':", + " case 'Points':", + " object = new THREE.Points(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'Sprite':", + " object = new THREE.Sprite(getMaterial(data.material));", + " break;", + " case 'Group':", + " object = new THREE.Group();", + " break;", + " case 'Bone':", + " object = new THREE.Bone();", + " break;", + " default:", + " object = new THREE.Object3D();", + " }", + " object.uuid = data.uuid;", + " if (data.name !== undefined)", + " object.name = data.name;", + " if (data.matrix !== undefined) {", + " object.matrix.fromArray(data.matrix);", + " if (data.matrixAutoUpdate !== undefined)", + " object.matrixAutoUpdate = data.matrixAutoUpdate;", + " if (object.matrixAutoUpdate)", + " object.matrix.decompose(object.position, object.quaternion, object.scale);", + " }", + " else {", + " if (data.position !== undefined)", + " object.position.fromArray(data.position);", + " if (data.rotation !== undefined)", + " object.rotation.fromArray(data.rotation);", + " if (data.quaternion !== undefined)", + " object.quaternion.fromArray(data.quaternion);", + " if (data.scale !== undefined)", + " object.scale.fromArray(data.scale);", + " }", + " if (data.castShadow !== undefined)", + " object.castShadow = data.castShadow;", + " if (data.receiveShadow !== undefined)", + " object.receiveShadow = data.receiveShadow;", + " if (data.shadow) {", + " if (data.shadow.bias !== undefined)", + " object.shadow.bias = data.shadow.bias;", + " if (data.shadow.normalBias !== undefined)", + " object.normalBias = data.shadow.normalBias;", + " if (data.shadow.radius !== undefined)", + " object.radius = data.shadow.radius;", + " if (data.shadow.mapSize !== undefined)", + " object.mapSize.fromArray(data.shadow.mapSize);", + " if (data.shadow.camera !== undefined) { // @ts-ignore", + " object.camera = this.parseObject(data.shadow.camera);", + " }", + " }", + " if (data.visible !== undefined)", + " object.visible = data.visible;", + " if (data.frustumCulled !== undefined)", + " object.frustumCulled = data.frustumCulled;", + " if (data.renderOrder !== undefined)", + " object.renderOrder = data.renderOrder;", + " if (data.userData !== undefined)", + " object.userData = data.userData;", + " if (data.layers !== undefined)", + " object.layers.mask = data.layers;", + " if (data.children !== undefined) {", + " const children = data.children;", + " for (let i = 0; i < children.length; i++) {", + " object.add(this.parseObject(children[i], geometries, materials, textures, animations));", + " }", + " }", + " if (data.animations !== undefined) {", + " const objectAnimations = data.animations;", + " for (let i = 0; i < objectAnimations.length; i++) {", + " const uuid = objectAnimations[i];", + " object.animations.push(animations[uuid]);", + " }", + " }", + " if (data.type === 'LOD') {", + " if (data.autoUpdate !== undefined)", + " object.autoUpdate = data.autoUpdate;", + " const levels = data.levels;", + " for (let l = 0; l < levels.length; l++) {", + " const level = levels[l];", + " const child = object.getObjectByProperty('uuid', level.object);", + " if (child !== undefined) {", + " // @ts-ignore", + " object.addLevel(child, level.distance);", + " }", + " }", + " }", + " // @ts-ignore", + " return object;", + " }", + "}", + "", + "const Plugins = [];", + "function loadPlugin(plugin) {", + " const existing = Plugins.find(item => item.id === plugin.id);", + " if (!existing) {", + " plugin.initialize();", + " for (const emitterShape of plugin.emitterShapes) {", + " if (!EmitterShapes[emitterShape.type]) {", + " EmitterShapes[emitterShape.type] = emitterShape;", + " }", + " }", + " for (const behavior of plugin.behaviors) {", + " if (!BehaviorTypes[behavior.type]) {", + " BehaviorTypes[behavior.type] = behavior;", + " }", + " }", + " }", + "}", + "function unloadPlugin(pluginId) {", + " const plugin = Plugins.find(item => item.id === pluginId);", + " if (plugin) {", + " for (const emitterShape of plugin.emitterShapes) {", + " if (EmitterShapes[emitterShape.type]) {", + " delete EmitterShapes[emitterShape.type];", + " }", + " }", + " for (const behavior of plugin.behaviors) {", + " if (BehaviorTypes[behavior.type]) {", + " delete BehaviorTypes[behavior.type];", + " }", + " }", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.NodeValueType = void 0;", + "(function (NodeValueType) {", + " NodeValueType[NodeValueType[\"Number\"] = 0] = \"Number\";", + " NodeValueType[NodeValueType[\"Vec2\"] = 1] = \"Vec2\";", + " NodeValueType[NodeValueType[\"Vec3\"] = 2] = \"Vec3\";", + " NodeValueType[NodeValueType[\"Vec4\"] = 3] = \"Vec4\";", + " NodeValueType[NodeValueType[\"Boolean\"] = 4] = \"Boolean\";", + " NodeValueType[NodeValueType[\"AnyType\"] = 5] = \"AnyType\";", + "})(gdjs.__particleEmmiter3DExtension.NodeValueType || (gdjs.__particleEmmiter3DExtension.NodeValueType = {}));", + "const genDefaultForNodeValueType = (type) => {", + " switch (type) {", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Boolean:", + " return false;", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Number:", + " return 0;", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec2:", + " return new THREE.Vector2();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec3:", + " return new THREE.Vector3();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec4:", + " return new THREE.Vector4();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType:", + " return 0;", + " }", + "};", + "", + "class Node {", + " constructor(type) {", + " this.inputs = [];", + " this.outputs = [];", + " this.data = {};", + " // display", + " this.position = new THREE.Vector2();", + " // execution", + " this.outputValues = [];", + " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", + " this.type = type;", + " for (let i = 0; i < type.inputTypes.length; i++) {", + " this.inputs.push(undefined);", + " }", + " for (let i = 0; i < type.outputTypes.length; i++) {", + " this.outputs.push(undefined);", + " this.outputValues.push(genDefaultForNodeValueType(type.outputTypes[i]));", + " }", + " }", + "}", + "class Wire {", + " constructor(input, inputIndex, output, outputIndex) {", + " this.input = input;", + " this.inputIndex = inputIndex;", + " this.input.outputs[inputIndex] = this;", + " this.output = output;", + " this.outputIndex = outputIndex;", + " this.output.inputs[outputIndex] = this;", + " }", + "}", + "", + "class Interpreter {", + " constructor() {", + " this.visited = new Set();", + " Interpreter.Instance = this;", + " }", + " traverse(node) {", + " if (this.context_ === undefined) {", + " throw new Error(\"context is undefined\");", + " }", + " if (this.graph_ === undefined) {", + " throw new Error(\"graph is undefined\");", + " }", + " this.visited.add(node.id);", + " const inputValues = [];", + " for (let i = 0; i < node.inputs.length; i++) {", + " if (node.inputs[i] instanceof Wire) {", + " const inputNode = node.inputs[i].input;", + " //if (inputNode) {", + " if (!this.visited.has(inputNode.id)) {", + " this.traverse(inputNode);", + " }", + " inputValues.push(inputNode.outputValues[node.inputs[i].inputIndex]);", + " /*} else {", + " throw new Error(`Node ${node.id} has not inputs`);", + " }*/", + " }", + " else {", + " inputValues.push(node.inputs[i].getValue(this.context_));", + " }", + " }", + " // calculation", + " node.type.func(this.context_, inputValues, node.outputValues);", + " this.graph_.nodesInOrder.push(node);", + " }", + " executeCompiledGraph() {", + " if (this.context_ === undefined) {", + " throw new Error(\"context is undefined\");", + " }", + " if (this.graph_ === undefined) {", + " throw new Error(\"graph is undefined\");", + " }", + " const nodes = this.graph_.nodesInOrder;", + " for (let i = 0; i < nodes.length; i++) {", + " const inputValues = [];", + " const node = nodes[i];", + " for (let j = 0; j < node.inputs.length; j++) {", + " if (node.inputs[j] instanceof Wire) {", + " inputValues.push(node.inputs[j].input.outputValues[node.inputs[j].inputIndex]);", + " }", + " else if (node.inputs[j] !== undefined) {", + " inputValues.push(node.inputs[j].getValue(this.context_));", + " }", + " else {", + " throw new Error(`miss input for node ${node.id}`);", + " }", + " }", + " node.type.func(this.context_, inputValues, node.outputValues);", + " }", + " }", + " run(graph, context) {", + " this.graph_ = graph;", + " this.context_ = context;", + " if (graph.compiled) {", + " this.executeCompiledGraph();", + " }", + " else {", + " graph.nodesInOrder.length = 0;", + " this.visited.clear();", + " for (let i = 0; i < graph.outputNodes.length; i++) {", + " const node = graph.outputNodes[i];", + " this.traverse(node);", + " }", + " graph.compiled = true;", + " }", + " }", + "}", + "", + "class NodeType {", + " constructor(name, func, inputTypes, outputTypes) {", + " this.inputTypes = [];", + " this.outputTypes = [];", + " this.name = name;", + " this.func = func;", + " this.inputTypes = inputTypes;", + " this.outputTypes = outputTypes;", + " }", + "}", + "class GraphNodeType extends NodeType {", + " constructor(nodeGraph) {", + " const inputTypes = [];", + " for (let i = 0; i < nodeGraph.inputNodes.length; i++) {", + " if (nodeGraph.inputNodes[i].type.name === 'input') {", + " inputTypes.push(nodeGraph.inputNodes[i].data.type);", + " }", + " }", + " const outputTypes = [];", + " for (let i = 0; i < nodeGraph.outputNodes.length; i++) {", + " if (nodeGraph.outputNodes[i].type.name === 'output') {", + " outputTypes.push(nodeGraph.outputNodes[i].data.type);", + " }", + " }", + " super(nodeGraph.name, (context, inputs, outputs) => {", + " context.inputs = inputs;", + " context.outputs = outputs;", + " Interpreter.Instance.run(nodeGraph, context);", + " }, inputTypes, outputTypes);", + " this.nodeGraph = nodeGraph;", + " }", + "}", + "", + "const NodeTypes = {", + " \"add\": new NodeType(\"add\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] + inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].addVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"sub\": new NodeType(\"sub\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] - inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].subVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"mul\": new NodeType(\"mul\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] * inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].multiplyVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"div\": new NodeType(\"div\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] / inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].copy(inputs[0]).divide(inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"curve\": new NodeType(\"curve\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"vrand\": new NodeType(\"vrand\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"curveSample\": new NodeType(\"curveSample\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"random\": new NodeType(\"random\", (context, inputs, outputs) => {", + " outputs[0] = Math.random() * (inputs[1] - inputs[0]) + inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.Number, gdjs.__particleEmmiter3DExtension.NodeValueType.Number], [gdjs.__particleEmmiter3DExtension.NodeValueType.Number]),", + " \"input\": new NodeType(\"input\", (context, inputs, outputs) => {", + " outputs[0] = inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"output\": new NodeType(\"output\", (context, inputs, outputs) => {", + " outputs[0] = inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + "};", + "", + "class NodeGraph {", + " constructor(name) {", + " this.inputNodes = [];", + " this.outputNodes = [];", + " this.allNodes = new Map();", + " this.wires = [];", + " this.compiled = false;", + " this.nodesInOrder = [];", + " this.version = \"1.0\";", + " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", + " this.name = name;", + " }", + " addWire(wire) {", + " this.wires.push(wire);", + " }", + " addNode(node) {", + " //this.nodes.push(node);", + " this.allNodes.set(node.id, node);", + " if (node.type === NodeTypes['input']) {", + " this.inputNodes.push(node);", + " }", + " else if (node.type === NodeTypes['output']) {", + " this.outputNodes.push(node);", + " }", + " }", + " getNode(id) {", + " return this.allNodes.get(id);", + " }", + " deleteNode(node) {", + " /*let index = this.nodes.indexOf(node);", + " if (index != -1) {", + " this.nodes[index] = this.nodes[this.nodes.length - 1];", + " this.nodes.pop();", + " }*/", + " this.allNodes.delete(node.id);", + " }", + " deleteWire(wire) {", + " wire.input.outputs[wire.inputIndex] = undefined;", + " wire.output.inputs[wire.outputIndex] = undefined;", + " const index = this.wires.indexOf(wire);", + " if (index != -1) {", + " this.wires[index] = this.wires[this.wires.length - 1];", + " this.wires.pop();", + " }", + " }", + " toJSON() {", + " throw new Error(\"not implemented\");", + " }", + " clone() {", + " throw new Error(\"not implemented\");", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.ApplyCollision = ApplyCollision;", + "gdjs.__particleEmmiter3DExtension.ApplyForce = ApplyForce;", + "gdjs.__particleEmmiter3DExtension.ApplySequences = ApplySequences;", + "gdjs.__particleEmmiter3DExtension.AxisAngleGenerator = AxisAngleGenerator;", + "gdjs.__particleEmmiter3DExtension.BatchedParticleRenderer = BatchedParticleRenderer;", + "gdjs.__particleEmmiter3DExtension.BatchedRenderer = BatchedRenderer;", + "gdjs.__particleEmmiter3DExtension.BehaviorFromJSON = BehaviorFromJSON;", + "gdjs.__particleEmmiter3DExtension.BehaviorTypes = BehaviorTypes;", + "gdjs.__particleEmmiter3DExtension.Bezier = Bezier;", + "gdjs.__particleEmmiter3DExtension.ChangeEmitDirection = ChangeEmitDirection;", + "gdjs.__particleEmmiter3DExtension.ColorGeneratorFromJSON = ColorGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.ColorOverLife = ColorOverLife;", + "gdjs.__particleEmmiter3DExtension.ColorRange = ColorRange;", + "gdjs.__particleEmmiter3DExtension.ConeEmitter = ConeEmitter;", + "gdjs.__particleEmmiter3DExtension.ConstantColor = ConstantColor;", + "gdjs.__particleEmmiter3DExtension.ConstantValue = ConstantValue;", + "gdjs.__particleEmmiter3DExtension.DonutEmitter = DonutEmitter;", + "gdjs.__particleEmmiter3DExtension.EmitSubParticleSystem = EmitSubParticleSystem;", + "gdjs.__particleEmmiter3DExtension.EmitterFromJSON = EmitterFromJSON;", + "gdjs.__particleEmmiter3DExtension.EmitterShapes = EmitterShapes;", + "gdjs.__particleEmmiter3DExtension.EulerGenerator = EulerGenerator;", + "gdjs.__particleEmmiter3DExtension.ForceOverLife = ForceOverLife;", + "gdjs.__particleEmmiter3DExtension.FrameOverLife = FrameOverLife;", + "gdjs.__particleEmmiter3DExtension.GeneratorFromJSON = GeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.Gradient = Gradient;", + "gdjs.__particleEmmiter3DExtension.GraphNodeType = GraphNodeType;", + "gdjs.__particleEmmiter3DExtension.GravityForce = GravityForce;", + "gdjs.__particleEmmiter3DExtension.GridEmitter = GridEmitter;", + "gdjs.__particleEmmiter3DExtension.Interpreter = Interpreter;", + "gdjs.__particleEmmiter3DExtension.IntervalValue = IntervalValue;", + "gdjs.__particleEmmiter3DExtension.MeshSurfaceEmitter = MeshSurfaceEmitter;", + "gdjs.__particleEmmiter3DExtension.Node = Node;", + "gdjs.__particleEmmiter3DExtension.NodeGraph = NodeGraph;", + "gdjs.__particleEmmiter3DExtension.NodeType = NodeType;", + "gdjs.__particleEmmiter3DExtension.NodeTypes = NodeTypes;", + "gdjs.__particleEmmiter3DExtension.Noise = Noise;", + "gdjs.__particleEmmiter3DExtension.OrbitOverLife = OrbitOverLife;", + "gdjs.__particleEmmiter3DExtension.ParticleEmitter = ParticleEmitter;", + "gdjs.__particleEmmiter3DExtension.ParticleSystem = ParticleSystem;", + "gdjs.__particleEmmiter3DExtension.PiecewiseBezier = PiecewiseBezier;", + "gdjs.__particleEmmiter3DExtension.PiecewiseFunction = PiecewiseFunction;", + "gdjs.__particleEmmiter3DExtension.Plugins = Plugins;", + "gdjs.__particleEmmiter3DExtension.PointEmitter = PointEmitter;", + "gdjs.__particleEmmiter3DExtension.QuarksLoader = QuarksLoader;", + "gdjs.__particleEmmiter3DExtension.RandomColor = RandomColor;", + "gdjs.__particleEmmiter3DExtension.RandomColorBetweenGradient = RandomColorBetweenGradient;", + "gdjs.__particleEmmiter3DExtension.RandomQuatGenerator = RandomQuatGenerator;", + "gdjs.__particleEmmiter3DExtension.RecordState = RecordState;", + "gdjs.__particleEmmiter3DExtension.Rotation3DOverLife = Rotation3DOverLife;", + "gdjs.__particleEmmiter3DExtension.RotationGeneratorFromJSON = RotationGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.RotationOverLife = RotationOverLife;", + "gdjs.__particleEmmiter3DExtension.SequencerFromJSON = SequencerFromJSON;", + "gdjs.__particleEmmiter3DExtension.SizeOverLife = SizeOverLife;", + "gdjs.__particleEmmiter3DExtension.SpeedOverLife = SpeedOverLife;", + "gdjs.__particleEmmiter3DExtension.SphereEmitter = SphereEmitter;", + "gdjs.__particleEmmiter3DExtension.SpriteBatch = SpriteBatch;", + "gdjs.__particleEmmiter3DExtension.SpriteParticle = SpriteParticle;", + "gdjs.__particleEmmiter3DExtension.TextureSequencer = TextureSequencer;", + "gdjs.__particleEmmiter3DExtension.TrailBatch = TrailBatch;", + "gdjs.__particleEmmiter3DExtension.TrailParticle = TrailParticle;", + "gdjs.__particleEmmiter3DExtension.TurbulenceField = TurbulenceField;", + "gdjs.__particleEmmiter3DExtension.VFXBatch = VFXBatch;", + "gdjs.__particleEmmiter3DExtension.ValueGeneratorFromJSON = ValueGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.WidthOverLength = WidthOverLength;", + "gdjs.__particleEmmiter3DExtension.Wire = Wire;", + "gdjs.__particleEmmiter3DExtension.genDefaultForNodeValueType = genDefaultForNodeValueType;", + "gdjs.__particleEmmiter3DExtension.getPhysicsResolver = getPhysicsResolver;", + "gdjs.__particleEmmiter3DExtension.loadPlugin = loadPlugin;", + "gdjs.__particleEmmiter3DExtension.setPhysicsResolver = setPhysicsResolver;", + "gdjs.__particleEmmiter3DExtension.unloadPlugin = unloadPlugin;", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onScenePreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "// See doStepPostEvents\r", + "runtimeScene.__particleEmmiter3DExtension = runtimeScene.__particleEmmiter3DExtension || {};\r", + "runtimeScene.__particleEmmiter3DExtension.emittersStepped = 0;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [ + { + "defaultName": "ParticleEmitter", + "description": "Display a large number of particles to create visual effects.", + "fullName": "3D particle emitter", + "name": "ParticleEmitter3D", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::DefineHelperClasses" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const BatchedRenderer = gdjs.__particleEmmiter3DExtension.BatchedRenderer;", + "const ParticleSystem = gdjs.__particleEmmiter3DExtension.ParticleSystem;", + "const TextureLoader = gdjs.__particleEmmiter3DExtension.TextureLoader;", + "const IntervalValue = gdjs.__particleEmmiter3DExtension.IntervalValue;", + "const ConstantValue = gdjs.__particleEmmiter3DExtension.ConstantValue;", + "const ConstantColor = gdjs.__particleEmmiter3DExtension.ConstantColor;", + "const ColorOverLife = gdjs.__particleEmmiter3DExtension.ColorOverLife;", + "const SizeOverLife = gdjs.__particleEmmiter3DExtension.SizeOverLife;", + "const ApplyForce = gdjs.__particleEmmiter3DExtension.ApplyForce;", + "const ColorRange = gdjs.__particleEmmiter3DExtension.ColorRange;", + "const PiecewiseBezier = gdjs.__particleEmmiter3DExtension.PiecewiseBezier;", + "const Bezier = gdjs.__particleEmmiter3DExtension.Bezier;", + "const PointEmitter = gdjs.__particleEmmiter3DExtension.PointEmitter;", + "const ConeEmitter = gdjs.__particleEmmiter3DExtension.ConeEmitter;", + "const RenderMode = gdjs.__particleEmmiter3DExtension.RenderMode;", + "", + "const ParticleEmitterAdapter = gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter;", + "", + "/** @type {gdjs.CustomRuntimeObject} */", + "const object = objects[0];", + "", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "const layer = gameScene.getLayer(object.getLayer());", + "", + "gameScene.__particleEmmiter3DExtension = gameScene.__particleEmmiter3DExtension || {};", + "if (!gameScene.__particleEmmiter3DExtension.batchSystem) {", + " const batchSystem = new BatchedRenderer();", + " layer.getRenderer().getThreeScene().add(batchSystem);", + " gameScene.__particleEmmiter3DExtension.batchSystem = batchSystem;", + "}", + "const batchSystem = gameScene.__particleEmmiter3DExtension.batchSystem;", + "", + "/** @type {SpriteObjectDataType} */", + "const particleSpriteData = object._instanceContainer._objects.get(\"Particle\");", + "const resourceName = particleSpriteData.animations[0].directions[0].sprites[0].image;", + "const texture = object", + " .getInstanceContainer()", + " .getGame()", + " .getImageManager().getThreeTexture(resourceName);", + "", + "// Set the blending here because changes are not applied after the emitter creation.", + "const blendingString = object._getBlending();", + "const blending =", + " blendingString === \"Additive\" ? THREE.AdditiveBlending :", + " blendingString === \"Normal\" ? THREE.NormalBlending :", + " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", + " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", + " blendingString === \"None\" ? THREE.NoBlending :", + " THREE.AdditiveBlending;", + "", + "", + "// Build a configuration with the right kind of objects.", + "// These values are not important as they are overrided by the object properties values.", + "const muzzle = {", + " duration: 10,", + " looping: false,", + " startLife: new IntervalValue(1, 2),", + " startSpeed: new IntervalValue(100, 200),", + " startSize: new IntervalValue(20, 50),", + " startColor: new ConstantColor(new THREE.Vector4(1, 1, 1, 1)),", + " worldSpace: true,", + "", + " maxParticle: 5,", + " emissionOverTime: new ConstantValue(50),", + " emissionBursts: [{", + " time: 0,", + " count: 1,", + " cycle: 1,", + " interval: 0.01,", + " probability: 1,", + " }],", + "", + " shape: new PointEmitter(),", + " material: new THREE.MeshBasicMaterial({", + " map: texture,", + " blending: blending,", + " transparent: true,", + " side: THREE.DoubleSide", + " }),", + " startTileIndex: 0,", + " uTileCount: 1,", + " vTileCount: 1,", + " renderOrder: 2,", + " renderMode: RenderMode.BillBoard", + "};", + "const particleSystem = new ParticleSystem(muzzle);", + "object.__particleSystem = particleSystem;", + "", + "const colorOverLife = new ColorOverLife(new ColorRange(", + " new THREE.Vector4(1, 0.3882312, 0.125, 1),", + " new THREE.Vector4(1, 0.826827, 0.3014706, 1)));", + "particleSystem.addBehavior(colorOverLife);", + "const sizeOverLife = new SizeOverLife(new PiecewiseBezier([[new Bezier(1, 2 / 3, 1 / 3, 0), 0]]));", + "particleSystem.addBehavior(sizeOverLife);", + "const applyForce = new ApplyForce(new THREE.Vector3(0, 0, -1), new ConstantValue(0));", + "particleSystem.addBehavior(applyForce);", + "", + "particleSystem.emitter.rotation.order = 'ZYX';", + "particleSystem.emitter.name = object.getName() + object.getNameId();", + "batchSystem.addSystem(particleSystem);", + "", + "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", + "", + "layer.get3DRendererObject().add(particleSystem.emitter);", + "const ParticleEmitter3D = Object.getPrototypeOf(object);", + "if (!ParticleEmitter3D.__isDefined) {", + " ParticleEmitter3D.__isDefined = true;", + " ParticleEmitter3D.get3DRendererObject = () => this.__emitter;", + "}", + "", + "// See doStepPostEvents", + "gameScene.__particleEmmiter3DExtension.emittersCount = gameScene.__particleEmmiter3DExtension.emittersCount || 0;", + "gameScene.__particleEmmiter3DExtension.emittersCount++;", + "", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.CustomRuntimeObject} */", + "const object = objects[0];", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "", + "object.__particleSystem.dispose();", + "", + "// See doStepPostEvents", + "gameScene.__particleEmmiter3DExtension.emittersCount--;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Update from properties.", + "fullName": "Update from properties", + "functionType": "Action", + "name": "UpdateFromProperties", + "private": true, + "sentence": "Update from properties of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetZ" + }, + "parameters": [ + "Object", + "=", + "Object.Z()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyRotationX()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyRotationY()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartColor" + }, + "parameters": [ + "Object", + "=", + "Object.StartColor()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndColor" + }, + "parameters": [ + "Object", + "=", + "Object.EndColor()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.StartOpacity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.EndOpacity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" + }, + "parameters": [ + "Object", + "=", + "Object.Flow()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMin" + }, + "parameters": [ + "Object", + "=", + "Object.StartSizeMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMax" + }, + "parameters": [ + "Object", + "=", + "Object.StartSizeMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" + }, + "parameters": [ + "Object", + "=", + "Object.StartSpeedMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" + }, + "parameters": [ + "Object", + "=", + "Object.StartSpeedMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMin" + }, + "parameters": [ + "Object", + "=", + "Object.LifespanMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMax" + }, + "parameters": [ + "Object", + "=", + "Object.LifespanMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetDuration" + }, + "parameters": [ + "Object", + "=", + "Object.Duration()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetSpayConeAngle" + }, + "parameters": [ + "Object", + "=", + "Object.SpayConeAngle()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravity" + }, + "parameters": [ + "Object", + "=", + "Object.Gravity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravityTop" + }, + "parameters": [ + "Object", + "=", + "Object.GravityTop()", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" + }, + "parameters": [ + "Object", + "no", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" + }, + "parameters": [ + "Object", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "TODO: Blending can't be changed." + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetBlending" + }, + "parameters": [ + "Object", + "=", + "Object.Blending()", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" + }, + "parameters": [ + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" + }, + "parameters": [ + "Object", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "", + "const emitter = object.__particleSystem.emitter;", + "emitter.position.x = object.getX();", + "emitter.position.y = -object.getY();", + "", + "emitter.rotation.z = -object.getAngle() * Math.PI / 180;", + "", + "// Update batch system after having moved every emitter.", + "// See onScenePreEvents", + "gameScene.__particleEmmiter3DExtension.emittersStepped++;", + "if (gameScene.__particleEmmiter3DExtension.emittersStepped === gameScene.__particleEmmiter3DExtension.emittersCount) {", + " gameScene.__particleEmmiter3DExtension.batchSystem.update(object.getElapsedTime() / 1000);", + "}" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Delete itself", + "fullName": "Delete itself", + "functionType": "Action", + "name": "Delete", + "private": true, + "sentence": "Delete _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.deleteFromScene(object.getParent());", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check that emission has ended and no particle is alive anymore.", + "fullName": "Emission has ended", + "functionType": "Condition", + "name": "HasEnded", + "sentence": "Emission from _PARAM0_ has ended", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "eventsFunctionContext.returnValue =\r", + " object._getShouldAutodestruct()\r", + " && object.__particleSystem.emitEnded\r", + " && object.__particleSystem.particleNum === 0;\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Restart particule emission from the beginning.", + "fullName": "Restart", + "functionType": "Action", + "name": "Restart", + "sentence": "Restart particule emission from _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.CustomRuntimeObject} */\r", + "const object = objects[0];\r", + "\r", + "object.__particleSystem.restart();\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the Z position of the emitter.", + "fullName": "Z (elevation)", + "functionType": "ExpressionAndCondition", + "group": "Position", + "name": "Z", + "sentence": "the Z position", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyZ()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Z", + "name": "SetZ", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyZ" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.__particleSystem.emitter.position.z = eventsFunctionContext.getArgument(\"Value\");" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the rotation on X axis of the emitter.", + "fullName": "Rotation on X axis", + "functionType": "ExpressionAndCondition", + "group": "Angle", + "name": "RotationX", + "sentence": "the rotation on X axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyRotationX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "RotationX", + "name": "SetRotationX", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationX" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "object.__particleSystem.emitter.rotation.x = eventsFunctionContext.getArgument(\"Value\") * Math.PI / 180;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the rotation on Y axis of the emitter.", + "fullName": "Rotation on Y axis", + "functionType": "ExpressionAndCondition", + "group": "Angle", + "name": "RotationY", + "sentence": "the rotation on Y axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyRotationY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "RotationY", + "name": "SetRotationY", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationY" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "object.__particleSystem.emitter.rotation.y = (90 + eventsFunctionContext.getArgument(\"Value\")) * Math.PI / 180;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start color of the object.", + "fullName": "Start color", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "StartColor", + "sentence": "the start color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyStartColor()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartColor", + "name": "SetStartColor", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartColor" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startColor = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartColor(startColor);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end color of the object.", + "fullName": "End color", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "EndColor", + "sentence": "the end color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyEndColor()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndColor", + "name": "SetEndColor", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndColor" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endColor = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndColor(endColor);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start opacity of the object.", + "fullName": "Start opacity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "StartOpacity", + "sentence": "the start opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartOpacity", + "name": "SetStartOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartOpacity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startOpacity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartOpacity(startOpacity);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end opacity of the object.", + "fullName": "End opacity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "EndOpacity", + "sentence": "the end opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyEndOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndOpacity", + "name": "SetEndOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndOpacity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endOpacity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndOpacity(endOpacity);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the flow of particles of the object (particles per second).", + "fullName": "Flow of particles", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "Flow", + "sentence": "the flow of particles", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyFlow()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Flow", + "name": "SetFlow", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyFlow" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const flow = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setFlow(flow);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start min size of the object.", + "fullName": "Start min size", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "StartSizeMin", + "sentence": "the start min size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSizeMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSizeMin", + "name": "SetStartSizeMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startMinSize = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartMinSize(startMinSize);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start max size of the object.", + "fullName": "Start max size", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "StartSizeMax", + "sentence": "the start max size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSizeMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSizeMax", + "name": "SetStartSizeMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startMaxSize = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartMaxSize(startMaxSize);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end scale of the object.", + "fullName": "End scale", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "EndScale", + "sentence": "the end scale", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyEndScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndScale", + "name": "SetEndScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndScale" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endScale = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndScale(endScale);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the min start speed of the object.", + "fullName": "Min start speed", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "StartSpeedMin", + "sentence": "the min start speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSpeedMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSpeedMin", + "name": "SetStartSpeedMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startSpeedMin = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartSpeedMin(startSpeedMin);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the max start speed of the object.", + "fullName": "Max start speed", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "StartSpeedMax", + "sentence": "the max start speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSpeedMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSpeedMax", + "name": "SetStartSpeedMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startSpeedMax = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartSpeedMax(startSpeedMax);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the min lifespan of the object.", + "fullName": "Min lifespan", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "LifespanMin", + "sentence": "the min lifespan", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyLifespanMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LifespanMin", + "name": "SetLifespanMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const lifespanMin = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setLifespanMin(lifespanMin);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the max lifespan of the object.", + "fullName": "Max lifespan", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "LifespanMax", + "sentence": "the max lifespan", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyLifespanMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LifespanMax", + "name": "SetLifespanMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const lifespanMax = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setLifespanMax(lifespanMax);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the emission duration of the object.", + "fullName": "Emission duration", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "Duration", + "sentence": "the emission duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Duration", + "name": "SetDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyDuration" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const duration = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setDuration(duration);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if particles move with the emitter.", + "fullName": "Particles move with the emitter", + "functionType": "Condition", + "group": "3D particle emitter speed configuration", + "name": "AreParticlesRelative", + "sentence": "_PARAM0_ particles move with the emitter", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Change if particles move with the emitter.", + "fullName": "Particles move with the emitter", + "functionType": "Action", + "group": "3D particle emitter speed configuration", + "name": "SetAreParticlesRelative", + "sentence": "_PARAM0_ particles move with the emitter: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" + }, + "parameters": [ + "Object", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const areParticlesRelative = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setParticlesRelative(areParticlesRelative);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + }, + { + "defaultValue": "yes", + "description": "AreParticlesRelative", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "the spay cone angle of the object.", + "fullName": "Spay cone angle", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "SpayConeAngle", + "sentence": "the spay cone angle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertySpayConeAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "SpayConeAngle", + "name": "SetSpayConeAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertySpayConeAngle" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const sprayConeAngle = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setSprayConeAngle(sprayConeAngle);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the blending of the object.", + "fullName": "Blending", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "Blending", + "sentence": "the blending", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyBlending()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"Normal\",\"Additive\",\"Substractive\",\"Multiply\",\"None\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Blending", + "name": "SetBlending", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyBlending" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const blending = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setBlending(blending);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the gravity top of the object.", + "fullName": "Gravity top", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "GravityTop", + "sentence": "the gravity top", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyGravityTop()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"Y-\",\"Z+\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "GravityTop", + "name": "SetGravityTop", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravityTop" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const gravityTop = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setGravityTop(gravityTop);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the gravity of the object.", + "fullName": "Gravity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "Gravity", + "sentence": "the gravity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyGravity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Gravity", + "name": "SetGravity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const gravity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setGravity(gravity);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if delete when emission ends.", + "fullName": "Delete when emission ends", + "functionType": "Condition", + "group": "3D particle emitter configuration", + "name": "ShouldAutodestruct", + "sentence": "_PARAM0_ delete when emission ends", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyShouldAutodestruct" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Change if delete when emission ends.", + "fullName": "Delete when emission ends", + "functionType": "Action", + "group": "3D particle emitter configuration", + "name": "SetShouldAutodestruct", + "sentence": "_PARAM0_ delete when emission ends: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" + }, + "parameters": [ + "Object", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + }, + { + "defaultValue": "yes", + "description": "ShouldAutodestruct", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "255;0;0", + "type": "Color", + "label": "Start color", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "StartColor" + }, + { + "value": "255;255;0", + "type": "Color", + "label": "End color", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "EndColor" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Start opacity", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "StartOpacity" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "End opacity", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "EndOpacity" + }, + { + "value": "50", + "type": "Number", + "label": "Flow of particles (particles per second)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Flow" + }, + { + "value": "10", + "type": "Number", + "unit": "Pixel", + "label": "Start min size", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "StartSizeMin" + }, + { + "value": "20", + "type": "Number", + "unit": "Pixel", + "label": "Start max size", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "StartSizeMax" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "End scale", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "EndScale" + }, + { + "value": "100", + "type": "Number", + "unit": "PixelSpeed", + "label": "Start min speed", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "StartSpeedMin" + }, + { + "value": "100", + "type": "Number", + "unit": "PixelSpeed", + "label": "Start max speed", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "StartSpeedMax" + }, + { + "value": "1", + "type": "Number", + "unit": "Second", + "label": "Min lifespan", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "LifespanMin" + }, + { + "value": "2", + "type": "Number", + "unit": "Second", + "label": "Max lifespan", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "LifespanMax" + }, + { + "value": "5", + "type": "Number", + "unit": "Second", + "label": "Emission duration", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Duration" + }, + { + "value": "", + "type": "Boolean", + "label": "Particles move with the emitter", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "AreParticlesRelative" + }, + { + "value": "30", + "type": "Number", + "unit": "DegreeAngle", + "label": "Spay cone angle", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "SpayConeAngle" + }, + { + "value": "Additive", + "type": "Choice", + "label": "Blending", + "description": "", + "group": "Color", + "extraInformation": [ + "Normal", + "Additive", + "Subtractive", + "Multiply", + "None" + ], + "hidden": false, + "name": "Blending" + }, + { + "value": "Y-", + "type": "Choice", + "label": "Gravity top", + "description": "", + "group": "Speed", + "extraInformation": [ + "Y-", + "Z+" + ], + "hidden": false, + "name": "GravityTop" + }, + { + "value": "0", + "type": "Number", + "unit": "PixelAcceleration", + "label": "Gravity", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "Gravity" + }, + { + "value": "true", + "type": "Boolean", + "label": "Delete when emission ends", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ShouldAutodestruct" + }, + { + "value": "Center-center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ParentOrigin" + }, + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Z (elevation)", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "Z" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation on X axis", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "RotationX" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation on Y axis", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "RotationY" + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Particle", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Image", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [] + } + ] + } + ] + } + ] + } + ] + }, + { + "author": "Gustavo Marciano", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "YSort", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNvcnQtYXNjZW5kaW5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDE3SDIyTDE4IDIxTDE0IDE3SDE3VjNIMTlNMiAxN0gxMlYxOUgyTTYgNVY3SDJWNU0yIDExSDlWMTNIMlYxMVoiIC8+PC9zdmc+", + "name": "YSort", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sort-ascending.svg", + "shortDescription": "Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a \"Top-Down\" view, RPG...", + "version": "0.1.0", + "description": [ + "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", + "", + "This is useful for:", + "- isometric games ([open the project online](https://editor.gdevelop.io/?project=example://isometric-game))", + "- top-down games ([open the project online](https://editor.gdevelop.io/?project=example://top-down-grid-movement))" + ], + "origin": { + "identifier": "YSort", + "name": "gdevelop-extension-store" + }, + "tags": [ + "z-order", + "y-sort", + "depth", + "fake-depth", + "isometric", + "rpg" + ], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", + "fullName": "YSort", + "name": "YSort", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This is done in doStepPostEvents because the sort must happens right before the rendering to avoid a 1 frame delay." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Object", + "=", + "Object.Y() + Object.Behavior::PropertyOffset()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "YSort::YSort", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Y offset", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Offset" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Input", + "extensionNamespace": "", + "fullName": "Behavior Remapper", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", + "name": "BehaviorRemapper", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", + "shortDescription": "Quickly remap Behavior controls to different keys. ", + "version": "1.0.0", + "description": [ + "Make sure to disable default controls unless you want two keys to do the same action.", + "", + "Actions have two versions. `custom` allow the movement keys to be changed to what ever you would like. `presets` provide a common key-bindings that can be selected from a list.", + "", + "### Available Presets:", + "", + "##### `WASD`", + "-\tW: Up", + "-\tA: Left", + "-\tS: Down", + "-\tD: Right", + "-\tSpace: Jump", + "", + "##### `ZQSD`", + "-\tZ: Up", + "-\tQ: Left", + "-\tS: Down", + "-\tD: Right", + "-\tSpace: Jump", + "", + "##### `Numpad` (Num lock must be disabled)", + "-\tNumpad Up: Up", + "-\tNumpad Left: Left", + "-\tNumpad Down: Down", + "-\tNumpad Right: Right", + "-\tNumpad Return/Enter: Jump", + "", + "##### `IJKL`", + "-\tI: Up", + "-\tJ: Left", + "-\tK: Down", + "-\tL: Right", + "-\tReturn/Enter: Jump", + "" + ], + "origin": { + "identifier": "BehaviorRemapper", + "name": "gdevelop-extension-store" + }, + "tags": [ + "remapper", + "key", + "bindings", + "presets", + "platformer", + "top-down" + ], + "authorIds": [ + "AlZ3D1xkH0QDao7T37VZZUeYNpn1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Allows for the controls of a Top-Down behavior to be re-mapped via a single action.", + "fullName": "Remap Top-down", + "name": "RemapForTopdown", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyUp()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyLeft()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyRight()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyDown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Top-Down behavior controls to a custom control scheme.", + "fullName": "Remap Top-Down controls to a custom scheme", + "functionType": "Action", + "name": "SetCustom", + "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"up\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"left\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"right\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"down\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + }, + { + "description": "Up key", + "name": "up", + "type": "key" + }, + { + "description": "Left key", + "name": "left", + "type": "key" + }, + { + "description": "Down key", + "name": "down", + "type": "key" + }, + { + "description": "Right key", + "name": "right", + "type": "key" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Top-Down behavior controls to a preset control scheme.", + "fullName": "Remap Top-Down controls to a preset", + "functionType": "Action", + "name": "SetPreset", + "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"WASD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"w\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"a\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AZERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"ZQSD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"z\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"q\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Numpad bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"Numpad\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadUp\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadLeft\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadDown\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadRight\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY player 2 bindings " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"IJKL\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"i\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"j\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"k\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"l\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + }, + { + "description": "Preset name", + "name": "options", + "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "w", + "type": "String", + "label": "Up key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Up" + }, + { + "value": "a", + "type": "String", + "label": "Left key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Left" + }, + { + "value": "d", + "type": "String", + "label": "Right key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Right" + }, + { + "value": "s", + "type": "String", + "label": "Down key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Down" + }, + { + "value": "", + "type": "Behavior", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "Topdown" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Allows for the controls of a platformer behavior to be re-mapped via a single action.", + "fullName": "Remap Platformer controls", + "name": "RemapForPlatformer", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyUp()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyLeft()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyRight()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyDown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateReleaseLadderKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyJump()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Platformer behavior controls to a custom control scheme.", + "fullName": "Remap Platformer controls to a custom scheme", + "functionType": "Action", + "name": "SetCustom", + "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_, Jump: _PARAM6_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"up\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"left\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"right\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"down\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"jump\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + }, + { + "description": "Up key", + "name": "up", + "type": "key" + }, + { + "description": "Left key", + "name": "left", + "type": "key" + }, + { + "description": "Down key", + "name": "down", + "type": "key" + }, + { + "description": "Right key", + "name": "right", + "type": "key" + }, + { + "description": "Jump key", + "name": "jump", + "type": "key" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Platformer behavior controls to a preset control scheme.", + "fullName": "Remap Platformer controls to a preset", + "functionType": "Action", + "name": "SetPreset", + "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"WASD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"w\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"a\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Space\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AZERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"ZQSD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"z\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"q\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Space\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Numpad bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"Numpad\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadUp\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadLeft\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadDown\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadRight\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadReturn\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY player 2 bindings " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"IJKL\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"i\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"j\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"k\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"l\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Return\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + }, + { + "description": "Preset name", + "name": "options", + "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "String", + "label": "Up key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Up" + }, + { + "value": "", + "type": "String", + "label": "Left key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Left" + }, + { + "value": "", + "type": "String", + "label": "Down key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Down" + }, + { + "value": "", + "type": "String", + "label": "Right key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Right" + }, + { + "value": "", + "type": "String", + "label": "Jump key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Jump" + }, + { + "value": "", + "type": "Behavior", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "hidden": false, + "name": "Platformer" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Top-down corner sliding", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN1YmRpcmVjdG9yeS1hcnJvdy1yaWdodCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOSwxNUwxMywyMUwxMS41OCwxOS41OEwxNS4xNywxNkg0VjRINlYxNEgxNS4xN0wxMS41OCwxMC40MkwxMyw5TDE5LDE1WiIgLz48L3N2Zz4=", + "name": "TopDownCornerSliding", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f1e89ff4f907ed2245e2d4ad2d5f52f9e1bb6d0127aa370d44cc77462e5be8e3_subdirectory-arrow-right.svg", + "shortDescription": "Slide on corners of rectangular obstacles.", + "version": "0.1.0", + "description": [ + "In top-down games, players may have to go though gaps the same size as their avatar. This is almost impossible to do without any assistance. This extension makes objects slide on obstacles to lead them in the right direction.", + "", + "It can be used for:", + "* Bomberman-like games ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))", + "" + ], + "tags": [ + "top down", + "movement", + "grid", + "align" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Define JavaScript classes for top-down.", + "fullName": "Define JavaScript classes for top-down", + "functionType": "Action", + "name": "DefineJavaScriptForTopDown", + "private": true, + "sentence": "Define JavaScript classes for top-down", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GlobalVariableAsBoolean" + }, + "parameters": [ + "__pixelPerfect.TopDownClassesDefined", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetGlobalVariableAsBoolean" + }, + "parameters": [ + "__pixelPerfect.TopDownClassesDefined", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "// TODO Remove this when afterPositionUpdate is added to the hook interface.", + "gdjs.TopDownMovementRuntimeBehavior.prototype.actuallyDoStepPreEvents = gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents;", + "gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents = function (instanceContainer) {", + " this.actuallyDoStepPreEvents(instanceContainer);", + "", + " for (const topDownMovementHook of this._topDownMovementHooks) {", + " topDownMovementHook.afterPositionUpdateTODO(null);", + " }", + "}", + "", + "const deltasX = [1, 1, 0, -1, -1, -1, 0, 1];", + "const deltasY = [0, 1, 1, 1, 0, -1, -1, -1];", + "const temporaryPointForTransformations = [0, 0];", + "const epsilon = 0.015625;", + "", + "/**", + " * {number} a", + " * {number} b", + " * {return {boolean}}", + " */", + "const almostEquals = function (a, b) {", + " return b - epsilon < a && a < b + epsilon;", + "}", + "", + "const CornerSlider = /** @class */ (function () {", + "", + " /**", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @param {gdjs.RuntimeBehavior} behavior", + " * @param {gdjs.TopDownMovementRuntimeBehavior} topDownBehavior", + " */", + " function CornerSlider(instanceContainer, behavior, topDownBehavior) {", + " this.instanceContainer = instanceContainer;", + " this.behavior = behavior;", + " this.topDownBehavior = topDownBehavior;", + "", + " topDownBehavior.registerHook(this);", + "", + " /**", + " * Obstacles near the object, updated with _updatePotentialCollidingObjects.", + " * @type {Obstacle[]}", + " */", + " this.potentialCollidingObjects = [];", + " /** @type {gdjs.RuntimeObject[]} */", + " this.collidingObjects = [];", + " this.obstacleManager = ObstacleManager.getManager(instanceContainer);", + "", + " // Remember the decision to bypass an obstacle...", + " this.lastAnyObstacle = false;", + " this.needToCheckBypassWay = true;", + "", + " // ...and the context of that decision", + " this.lastAssistanceDirection = -1;", + " this.lastDirection = -1;", + "", + " /** @type {FloatPoint} */", + " this.transformedPosition = [0, 0];", + " /** @type {gdjs.AABB} */", + " this.relativeHitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " /** @type {gdjs.AABB} */", + " this.absoluteHitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " this.hitBoxesAABBUpToDate = false;", + " this.oldWidth = 0;", + " this.oldHeight = 0;", + " this.previousX = 0;", + " this.previousY = 0;", + "", + " /** @type {AssistanceResult} */", + " this.result = new AssistanceResult();", + " }", + "", + " /**", + " * Return the direction to use instead of the direction given in", + " * parameter.", + " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", + " * @return {number}", + " */", + " CornerSlider.prototype.overrideDirection = function (context) {", + " let direction = context.getDirection();", + " if (!this.behavior.activated()) {", + " return direction;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " // Check if the object has moved", + " // To avoid to loop on the transform and its inverse", + " // because of float approximation.", + " const position = temporaryPointForTransformations;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toScreen(", + " // this.transformedPosition,", + " // position", + " // );", + " // } else {", + " position[0] = this.transformedPosition[0];", + " position[1] = this.transformedPosition[1];", + " // }", + " if (object.getX() !== position[0] || object.getY() !== position[1]) {", + " position[0] = object.getX();", + " position[1] = object.getY();", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(", + " // position,", + " // this.transformedPosition", + " // );", + " // } else {", + " this.transformedPosition[0] = position[0];", + " this.transformedPosition[1] = position[1];", + " // }", + " }", + "", + " const stickIsUsed =", + " this.topDownBehavior._stickForce !== 0 && direction === -1;", + " let inputDirection = 0;", + " if (stickIsUsed) {", + " inputDirection = this.getStickDirection();", + " } else {", + " inputDirection = direction;", + " }", + " const assistanceDirection = this.suggestDirection(", + " inputDirection", + " );", + " if (assistanceDirection !== -1) {", + " if (stickIsUsed) {", + " this.topDownBehavior._stickAngle = assistanceDirection * 45;", + " }", + " return assistanceDirection;", + " }", + " return direction;", + " }", + "", + " /**", + " * Called before the acceleration and new direction is applied to the", + " * velocity.", + " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", + " */", + " CornerSlider.prototype.beforeSpeedUpdate = function (context) { }", + "", + " /**", + " * Called before the velocity is applied to the object position and", + " * angle.", + " */", + " CornerSlider.prototype.beforePositionUpdate = function () {", + " if (!this.behavior.activated()) {", + " return;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " this.previousX = object.getX();", + " this.previousY = object.getY();", + " }", + "", + " // TODO Rename this methode to the new hook interface method.", + " CornerSlider.prototype.afterPositionUpdateTODO = function () {", + " if (!this.behavior.activated()) {", + " return;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " const point = temporaryPointForTransformations;", + " point[0] = object.getX() - this.previousX;", + " point[1] = object.getY() - this.previousY;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(point, point);", + " // }", + " this.shift(point[0], point[1]);", + "", + " this.applyCollision();", + "", + " const position = temporaryPointForTransformations;", + "", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toScreen(", + " // this.transformedPosition,", + " // position", + " // );", + " // } else {", + " position[0] = this.transformedPosition[0];", + " position[1] = this.transformedPosition[1];", + " // }", + " object.setX(position[0]);", + " object.setY(position[1]);", + " }", + "", + " CornerSlider.prototype.getStickDirection = function () {", + " let direction =", + " (this.topDownBehavior._stickAngle +", + " this.topDownBehavior._movementAngleOffset) /", + " 45;", + " direction = direction - Math.floor(direction / 8) * 8;", + " for (let strait = 0; strait < 8; strait += 2) {", + " if (strait - 0.125 < direction && direction < strait + 0.125) {", + " direction = strait;", + " }", + " if (strait + 0.125 <= direction && direction <= strait + 2 - 0.125) {", + " direction = strait + 1;", + " }", + " }", + " if (8 - 0.125 < direction) {", + " direction = 0;", + " }", + " return direction;", + " }", + "", + " /** Analyze the real intent of the player instead of applying the input blindly.", + " * @param {integer} direction", + " * @returns {integer} a direction that matches the player intents.", + " */", + " CornerSlider.prototype.suggestDirection = function (direction) {", + " this.needToCheckBypassWay =", + " this.needToCheckBypassWay || direction !== this.lastDirection;", + "", + " if (direction === -1) {", + " return this.noAssistance();", + " }", + "", + " const object = this.topDownBehavior.owner;", + " if (", + " object.getWidth() !== this.oldWidth ||", + " object.getHeight() !== this.oldHeight", + " ) {", + " this.hitBoxesAABBUpToDate = false;", + " this.oldWidth = object.getWidth();", + " this.oldHeight = object.getHeight();", + " }", + "", + " // Compute the list of the objects that will be used", + " const timeDelta = object.getElapsedTime(this.instanceContainer) / 1000;", + " this.updatePotentialCollidingObjects(", + " 1 + this.topDownBehavior.getMaxSpeed() * timeDelta", + " );", + "", + " const downKey = 1 <= direction && direction <= 3;", + " const leftKey = 3 <= direction && direction <= 5;", + " const upKey = 5 <= direction && direction <= 7;", + " const rightKey = direction <= 1 || 7 <= direction;", + "", + " // Used to align the player when the assistance make him bypass an obstacle", + " let stopMinX = Number.MAX_VALUE;", + " let stopMinY = Number.MAX_VALUE;", + " let stopMaxX = -Number.MAX_VALUE;", + " let stopMaxY = -Number.MAX_VALUE;", + " let isBypassX = false;", + " let isBypassY = false;", + "", + " // Incites of how the player should be assisted", + " let assistanceLeft = 0;", + " let assistanceRight = 0;", + " let assistanceUp = 0;", + " let assistanceDown = 0;", + "", + " // the actual decision", + " let assistanceDirection = -1;", + "", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + " const width = maxX - minX;", + " const height = maxY - minY;", + "", + " // This affectation has no meaning, it will be override.", + " /** @type {gdjs.AABB | null} */", + " let bypassedObstacleAABB = null;", + "", + " this.collidingObjects.length = 0;", + " this.collidingObjects.push(object);", + "", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " const corner = obstacleBehavior.behavior._getSlidingCornerSize();", + " const obstacle = obstacleBehavior.owner;", + " if (obstacle === object) {", + " continue;", + " }", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const deltaX = deltasX[direction];", + " const deltaY = deltasY[direction];", + " // Extends the box in the player direction", + " if (", + " Math.max(maxX, Math.floor(maxX + deltaX)) > obstacleMinX &&", + " Math.min(minX, Math.ceil(minX + deltaX)) < obstacleMaxX &&", + " Math.max(maxY, Math.floor(maxY + deltaY)) > obstacleMinY &&", + " Math.min(minY, Math.ceil(minY + deltaY)) < obstacleMaxY", + " ) {", + " this.collidingObjects.push(obstacle);", + "", + " // The player is corner to corner to the obstacle.", + " // The assistance will depend on other obstacles.", + " // Both direction are set and the actual to take", + " // is decided at the end.", + " if (", + " almostEquals(maxX, obstacleMinX) &&", + " almostEquals(maxY, obstacleMinY)", + " ) {", + " assistanceRight++;", + " assistanceDown++;", + " } else if (", + " almostEquals(maxX, obstacleMinX) &&", + " almostEquals(minY, obstacleMaxY)", + " ) {", + " assistanceRight++;", + " assistanceUp++;", + " } else if (", + " almostEquals(minX, obstacleMaxX) &&", + " almostEquals(minY, obstacleMaxY)", + " ) {", + " assistanceLeft++;", + " assistanceUp++;", + " } else if (", + " almostEquals(minX, obstacleMaxX) &&", + " almostEquals(maxY, obstacleMinY)", + " ) {", + " assistanceLeft++;", + " assistanceDown++;", + " } else if (", + " (upKey && almostEquals(minY, obstacleMaxY)) ||", + " (downKey && almostEquals(maxY, obstacleMinY))", + " ) {", + " // The player is not on the corner of the obstacle.", + " // Set the assistance both ways to fall back in", + " // the same case as 2 obstacles side by side", + " // being collide with the player.", + " if (", + " (rightKey || maxX > obstacleMinX + corner) &&", + " minX < obstacleMaxX &&", + " (leftKey || minX < obstacleMaxX - corner) &&", + " maxX > obstacleMinX", + " ) {", + " assistanceLeft++;", + " assistanceRight++;", + " }", + " // The player is on the corner of the obstacle.", + " // (not the exact corner, see corner affectation)", + " else if (", + " !rightKey &&", + " obstacleMinX < maxX &&", + " maxX <= obstacleMinX + corner &&", + " // In case the cornerSize is bigger than the obstacle size,", + " // go the on the shortest side.", + " (leftKey || minX + maxX <= obstacleMinX + obstacleMaxX)", + " ) {", + " assistanceLeft++;", + " isBypassX = true;", + " if (obstacleMinX - width < stopMinX) {", + " stopMinX = obstacleMinX - width;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " } else if (", + " !leftKey &&", + " obstacleMaxX - corner <= minX &&", + " minX < obstacleMaxX &&", + " (rightKey || minX + maxX > obstacleMinX + obstacleMaxX)", + " ) {", + " assistanceRight++;", + " isBypassX = true;", + " if (obstacleMaxX > stopMaxX) {", + " stopMaxX = obstacleMaxX;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " }", + " } else if (", + " (leftKey && almostEquals(minX, obstacleMaxX)) ||", + " (rightKey && almostEquals(maxX, obstacleMinX))", + " ) {", + " // The player is not on the corner of the obstacle.", + " // Set the assistance both ways to fall back in", + " // the same case as 2 obstacles side by side", + " // being collide with the player.", + " if (", + " (downKey || maxY > obstacleMinY + corner) &&", + " minY < obstacleMaxY &&", + " (upKey || minY < obstacleMaxY - corner) &&", + " maxY > obstacleMinY", + " ) {", + " assistanceUp++;", + " assistanceDown++;", + " }", + " // The player is on the corner of the obstacle.", + " // (not the exact corner, see corner affectation)", + " else if (", + " !downKey &&", + " obstacleMinY < maxY &&", + " maxY <= obstacleMinY + corner &&", + " (upKey || minY + maxY <= obstacleMinY + obstacleMaxY)", + " ) {", + " assistanceUp++;", + " isBypassY = true;", + " if (obstacleMinY - height < stopMinY) {", + " stopMinY = obstacleMinY - height;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " } else if (", + " !upKey &&", + " obstacleMaxY - corner <= minY &&", + " minY < obstacleMaxY &&", + " (downKey || minY + maxY > obstacleMinY + obstacleMaxY)", + " ) {", + " assistanceDown++;", + " isBypassY = true;", + " if (obstacleMaxY > stopMaxY) {", + " stopMaxY = obstacleMaxY;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " }", + " }", + " }", + " }", + "", + " // This may happen when the player is in the corner of 2 perpendicular walls.", + " // No assistance is needed.", + " if (", + " assistanceLeft &&", + " assistanceRight &&", + " assistanceUp &&", + " assistanceDown", + " ) {", + " return this.noAssistance();", + " }", + " // This may happen when the player goes in diagonal against a wall.", + " // Make him follow the wall. This allows player to keep full speed.", + " //", + " // When he collided a square from the wall corner to corner,", + " // a 3rd assistance may be true but it fall back in the same case.", + " else if (assistanceLeft && assistanceRight) {", + " isBypassX = false;", + " if (leftKey && !rightKey) {", + " assistanceDirection = 4;", + " } else if (rightKey && !leftKey) {", + " assistanceDirection = 0;", + " } else {", + " // Contradictory decisions are dismissed.", + " //", + " // This can happen, for instance, with a wall composed of squares.", + " // Taken separately from one to another, a square could be bypass one the right", + " // and the next one on the left even though they are side by side", + " // and the player can't actually go between them.", + " return this.noAssistance();", + " }", + " } else if (assistanceUp && assistanceDown) {", + " isBypassY = false;", + " if (upKey && !downKey) {", + " assistanceDirection = 6;", + " } else if (downKey && !upKey) {", + " assistanceDirection = 2;", + " } else {", + " // see previous comment", + " return this.noAssistance();", + " }", + " }", + " // The player goes in diagonal and is corner to corner with the obstacle.", + " // (but not against a wall, this time)", + " // The velocity is used to decide.", + " // This may only happen after an alignment.", + " // (see \"Alignment:\" comment)", + " else if (assistanceRight && assistanceDown) {", + " if (", + " (downKey && !rightKey) ||", + " (downKey === rightKey && assistanceDown > assistanceRight) ||", + " (assistanceDown === assistanceRight &&", + " this.topDownBehavior._yVelocity > 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 2;", + " } else {", + " assistanceDirection = 0;", + " }", + " } else if (assistanceLeft && assistanceDown) {", + " if (", + " (downKey && !leftKey) ||", + " (downKey === leftKey && assistanceDown > assistanceLeft) ||", + " (assistanceDown === assistanceLeft &&", + " this.topDownBehavior._yVelocity > 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 2;", + " } else {", + " assistanceDirection = 4;", + " }", + " } else if (assistanceLeft && assistanceUp) {", + " if (", + " (upKey && !leftKey) ||", + " (upKey === leftKey && assistanceUp > assistanceLeft) ||", + " (assistanceUp === assistanceLeft &&", + " this.topDownBehavior._yVelocity < 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 6;", + " } else {", + " assistanceDirection = 4;", + " }", + " } else if (assistanceRight && assistanceUp) {", + " if (", + " (upKey && !rightKey) ||", + " (upKey === rightKey && assistanceUp > assistanceRight) ||", + " (assistanceUp === assistanceRight &&", + " this.topDownBehavior._yVelocity < 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 6;", + " } else {", + " assistanceDirection = 0;", + " }", + " } else {", + " // Slide on the corner of an obstacle to bypass it.", + " // Every tricky cases are already handled .", + " if (assistanceLeft) {", + " assistanceDirection = 4;", + " } else if (assistanceRight) {", + " assistanceDirection = 0;", + " } else if (assistanceUp) {", + " assistanceDirection = 6;", + " } else if (assistanceDown) {", + " assistanceDirection = 2;", + " } else {", + " return this.noAssistance();", + " }", + " }", + "", + " // Check if there is any obstacle in the way.", + " //", + " // There must be no obstacle to go at least", + " // as far in the direction the player chose", + " // as the assistance must take to align the player.", + " //", + " // Because, if the assistance moves the player by 32 pixels", + " // before been able to go in the right direction", + " // and can only move by 4 pixels afterward", + " // that it'll sound silly.", + " this.needToCheckBypassWay =", + " this.needToCheckBypassWay ||", + " assistanceDirection !== this.lastAssistanceDirection;", + " if ((isBypassX || isBypassY) && !this.needToCheckBypassWay) {", + " // Don't check again if the player intent stays the same.", + " //", + " // Do it, for instance, if an obstacle has moved out of the way", + " // and the player releases and presses agin the key.", + " // Because, doing it automatically would seems weird.", + " if (this.lastAnyObstacle) {", + " return this.noAssistance();", + " }", + " } else if (isBypassX || isBypassY) {", + " this.lastAssistanceDirection = assistanceDirection;", + " this.lastDirection = direction;", + "", + " let anyObstacle = false;", + " // reflection symmetry: y = x", + " // 0 to 6, 2 to 4, 4 to 2, 6 to 0", + " if (direction + assistanceDirection === 6) {", + " // Because the obstacle may not be a square.", + " let cornerX = 0;", + " let cornerY = 0;", + " if (assistanceDirection === 4 || assistanceDirection === 6) {", + " cornerX = bypassedObstacleAABB.min[0];", + " cornerY = bypassedObstacleAABB.min[1];", + " } else {", + " cornerX = bypassedObstacleAABB.max[0];", + " cornerY = bypassedObstacleAABB.max[1];", + " }", + " // / cornerX \\ / 0 1 \\ / x - cornerX \\", + " // \\ cornerY / + \\ 1 0 / * \\ y - cornerY /", + " //", + " // min and max are preserved by the symmetry.", + " // The symmetry image is extended to check there is no obstacle before going into the passage.", + " const searchMinX =", + " cornerX +", + " minY -", + " cornerY +", + " epsilon +", + " (assistanceDirection === 6 ? cornerY - maxY : 0);", + " const searchMaxX =", + " cornerX +", + " maxY -", + " cornerY -", + " epsilon +", + " (assistanceDirection === 2 ? cornerY - minY : 0);", + " const searchMinY =", + " cornerY +", + " minX -", + " cornerX +", + " epsilon +", + " (assistanceDirection === 4 ? cornerX - maxX : 0);", + " const searchMaxY =", + " cornerY +", + " maxX -", + " cornerX -", + " epsilon +", + " (assistanceDirection === 0 ? cornerX - minX : 0);", + "", + " anyObstacle = this.obstacleManager.anyObstacle(", + " searchMinX,", + " searchMaxX,", + " searchMinY,", + " searchMaxY,", + " this.collidingObjects", + " );", + " }", + " // reflection symmetry: y = -x", + " // 0 to 2, 2 to 0, 4 to 6, 6 to 4", + " else if ((direction + assistanceDirection) % 8 === 2) {", + " // Because the obstacle may not be a square.", + " let cornerX = 0;", + " let cornerY = 0;", + " if (assistanceDirection === 2 || assistanceDirection === 4) {", + " cornerX = bypassedObstacleAABB.min[0];", + " cornerY = bypassedObstacleAABB.max[1];", + " } else {", + " cornerX = bypassedObstacleAABB.max[0];", + " cornerY = bypassedObstacleAABB.min[1];", + " }", + " // / cornerX \\ / 0 -1 \\ / x - cornerX \\", + " // \\ cornerY / + \\ -1 0 / * \\ y - cornerY /", + " //", + " // min and max are switched by the symmetry.", + " // The symmetry image is extended to check there is no obstacle before going into the passage.", + " const searchMinX =", + " cornerX -", + " (maxY - cornerY) +", + " epsilon +", + " (assistanceDirection === 2 ? minY - cornerY : 0);", + " const searchMaxX =", + " cornerX -", + " (minY - cornerY) -", + " epsilon +", + " (assistanceDirection === 6 ? maxY - cornerY : 0);", + " const searchMinY =", + " cornerY -", + " (maxX - cornerX) +", + " epsilon +", + " (assistanceDirection === 0 ? minX - cornerX : 0);", + " const searchMaxY =", + " cornerY -", + " (minX - cornerX) -", + " epsilon +", + " (assistanceDirection === 4 ? maxX - cornerX : 0);", + "", + " anyObstacle = this.obstacleManager.anyObstacle(", + " searchMinX,", + " searchMaxX,", + " searchMinY,", + " searchMaxY,", + " this.collidingObjects", + " );", + " }", + " this.lastAnyObstacle = anyObstacle;", + " this.needToCheckBypassWay = false;", + "", + " if (anyObstacle) {", + " return this.noAssistance();", + " }", + " }", + "", + " this.result.inputDirection = direction;", + " this.result.assistanceLeft = assistanceLeft > 0;", + " this.result.assistanceRight = assistanceRight > 0;", + " this.result.assistanceUp = assistanceUp > 0;", + " this.result.assistanceDown = assistanceDown > 0;", + " this.result.isBypassX = isBypassX;", + " this.result.isBypassY = isBypassY;", + " this.result.stopMinX = stopMinX;", + " this.result.stopMinY = stopMinY;", + " this.result.stopMaxX = stopMaxX;", + " this.result.stopMaxY = stopMaxY;", + "", + " return assistanceDirection;", + " }", + "", + " /**", + " * @return {integer}", + " */", + " CornerSlider.prototype.noAssistance = function() {", + " this.result.isBypassX = false;", + " this.result.isBypassY = false;", + "", + " return -1;", + " }", + "", + " CornerSlider.prototype.applyCollision = function() {", + " this.checkCornerStop();", + " this.separateFromObstacles();", + " // check again because the object can be pushed on the stop limit,", + " // it won't be detected on the next frame and the alignment won't be applied.", + " this.checkCornerStop();", + " }", + "", + " /**", + " * Check if the object must take a corner.", + " *", + " * When the object reach the limit of an obstacle", + " * and it should take the corner according to the player intent,", + " * it is aligned right on this limit and the velocity is set in the right direction.", + " *", + " * This avoid issues with the inertia. For instance,", + " * when the object could go between 2 obstacles,", + " * with it will just fly over the hole because of its inertia.", + " */", + " CornerSlider.prototype.checkCornerStop = function() {", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const object = this.topDownBehavior.owner;", + "", + " const direction = this.result.inputDirection;", + " const leftKey = 3 <= direction && direction <= 5;", + " const upKey = 5 <= direction && direction <= 7;", + "", + " // Alignment: avoid to go too far and kind of drift or oscillate in front of a hole.", + " if (", + " this.result.isBypassX &&", + " ((this.result.assistanceLeft && minX <= this.result.stopMinX) ||", + " (this.result.assistanceRight && minX >= this.result.stopMaxX))", + " ) {", + " this.shift(", + " -minX +", + " (this.result.assistanceLeft", + " ? this.result.stopMinX", + " : this.result.stopMaxX),", + " 0", + " );", + " this.topDownBehavior._yVelocity =", + " (upKey ? -1 : 1) *", + " Math.sqrt(", + " this.topDownBehavior._xVelocity *", + " this.topDownBehavior._xVelocity +", + " this.topDownBehavior._yVelocity *", + " this.topDownBehavior._yVelocity", + " );", + " this.topDownBehavior._xVelocity = 0;", + " }", + " if (", + " this.result.isBypassY &&", + " ((this.result.assistanceUp && minY <= this.result.stopMinY) ||", + " (this.result.assistanceDown && minY >= this.result.stopMaxY))", + " ) {", + " this.shift(", + " 0,", + " -minY +", + " (this.result.assistanceUp", + " ? this.result.stopMinY", + " : this.result.stopMaxY)", + " );", + " this.topDownBehavior._xVelocity =", + " (leftKey ? -1 : 1) *", + " Math.sqrt(", + " this.topDownBehavior._xVelocity *", + " this.topDownBehavior._xVelocity +", + " this.topDownBehavior._yVelocity *", + " this.topDownBehavior._yVelocity", + " );", + " this.topDownBehavior._yVelocity = 0;", + " }", + " }", + "", + " /**", + " * Separate from TopDownObstacleRuntimeBehavior instances.", + " */", + " CornerSlider.prototype.separateFromObstacles = function() {", + " const object = this.topDownBehavior.owner;", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + "", + " // Search the obstacle with the biggest intersection", + " // to separate from this one first.", + " // Because smaller collisions may shift the player", + " // in the wrong direction.", + " let maxSurface = 0;", + " /** @type {gdjs.RuntimeBehavior | null} */", + " let bestObstacleBehavior = null;", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " if (obstacleBehavior.behavior.owner === object) {", + " continue;", + " }", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const interMinX = Math.max(minX, obstacleMinX);", + " const interMinY = Math.max(minY, obstacleMinY);", + " const interMaxX = Math.min(maxX, obstacleMaxX);", + " const interMaxY = Math.min(maxY, obstacleMaxY);", + "", + " if (interMinX < interMaxX && interMinY < interMaxY) {", + " const surface = (interMaxX - interMinX) * (interMaxY - interMinY);", + " if (surface > maxSurface) {", + " maxSurface = surface;", + " bestObstacleBehavior = obstacleBehavior;", + " }", + " }", + " }", + " if (bestObstacleBehavior !== null) {", + " this.separateFrom(bestObstacleBehavior);", + " }", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " const obstacle = obstacleBehavior.behavior.owner;", + " if (obstacle === object) {", + " continue;", + " }", + " this.separateFrom(obstacleBehavior);", + " }", + " }", + "", + " /**", + " * Separate object and obstacle, only object move.", + " * @param {Obstacle} obstacleBehavior", + " */", + " CornerSlider.prototype.separateFrom = function(obstacleBehavior) {", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const leftDistance = maxX - obstacleMinX;", + " const upDistance = maxY - obstacleMinY;", + " const rightDistance = obstacleMaxX - minX;", + " const downDistance = obstacleMaxY - minY;", + " const minDistance = Math.min(", + " leftDistance,", + " upDistance,", + " rightDistance,", + " downDistance", + " );", + "", + " if (minDistance > 0) {", + " if (leftDistance === minDistance) {", + " this.shift(-maxX + obstacleMinX, 0);", + " } else if (rightDistance === minDistance) {", + " this.shift(-minX + obstacleMaxX, 0);", + " } else if (upDistance === minDistance) {", + " this.shift(0, -maxY + obstacleMinY);", + " } else if (downDistance === minDistance) {", + " this.shift(0, -minY + obstacleMaxY);", + " }", + " }", + " }", + "", + "/**", + " * @param {float} deltaX", + " * @param {float} deltaY", + " */", + " CornerSlider.prototype.shift = function (deltaX, deltaY) {", + " this.transformedPosition[0] += deltaX;", + " this.transformedPosition[1] += deltaY;", + " }", + "", + " /**", + " * @return {gdjs.AABB}", + " */", + " CornerSlider.prototype.getHitBoxesAABB = function() {", + " if (!this.hitBoxesAABBUpToDate) {", + " const hitBoxes = this.topDownBehavior.owner.getHitBoxes();", + "", + " let minX = Number.MAX_VALUE;", + " let minY = Number.MAX_VALUE;", + " let maxX = -Number.MAX_VALUE;", + " let maxY = -Number.MAX_VALUE;", + " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", + " let hitBox = hitBoxes[h];", + " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", + " const point = this.topDownBehavior", + " ._temporaryPointForTransformations;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(", + " // hitBox.vertices[p],", + " // point", + " // );", + " // } else {", + " point[0] = hitBox.vertices[p][0];", + " point[1] = hitBox.vertices[p][1];", + " // }", + " minX = Math.min(minX, point[0]);", + " maxX = Math.max(maxX, point[0]);", + " minY = Math.min(minY, point[1]);", + " maxY = Math.max(maxY, point[1]);", + " }", + " }", + " this.relativeHitBoxesAABB.min[0] = minX - this.transformedPosition[0];", + " this.relativeHitBoxesAABB.min[1] = minY - this.transformedPosition[1];", + " this.relativeHitBoxesAABB.max[0] = maxX - this.transformedPosition[0];", + " this.relativeHitBoxesAABB.max[1] = maxY - this.transformedPosition[1];", + "", + " this.hitBoxesAABBUpToDate = true;", + " }", + " this.absoluteHitBoxesAABB.min[0] =", + " this.relativeHitBoxesAABB.min[0] + this.transformedPosition[0];", + " this.absoluteHitBoxesAABB.min[1] =", + " this.relativeHitBoxesAABB.min[1] + this.transformedPosition[1];", + " this.absoluteHitBoxesAABB.max[0] =", + " this.relativeHitBoxesAABB.max[0] + this.transformedPosition[0];", + " this.absoluteHitBoxesAABB.max[1] =", + " this.relativeHitBoxesAABB.max[1] + this.transformedPosition[1];", + " return this.absoluteHitBoxesAABB;", + " }", + "", + " /**", + " * Update _potentialCollidingObjects member with platforms near the object.", + " * @param {float} maxMovementLength", + " */", + " CornerSlider.prototype.updatePotentialCollidingObjects = function(maxMovementLength) {", + " this.obstacleManager.getAllObstaclesAround(", + " this.getHitBoxesAABB(),", + " maxMovementLength,", + " this.potentialCollidingObjects", + " );", + " }", + "", + " return CornerSlider;", + "}());", + "", + "", + "/**", + " * TopDownMovementRuntimeBehavior represents a behavior allowing objects to", + " * follow a path computed to avoid obstacles.", + " */", + "const AssistanceResult = /** @class */ (function () {", + " function AssistanceResult() {", + " this.inputDirection = -1;", + " this.assistanceLeft = false;", + " this.assistanceRight = false;", + " this.assistanceUp = false;", + " this.assistanceDown = false;", + " this.isBypassX = false;", + " this.isBypassY = false;", + " this.stopMinX = 0;", + " this.stopMinY = 0;", + " this.stopMaxX = 0;", + " this.stopMaxY = 0;", + " }", + "", + " return AssistanceResult;", + "}());", + "", + " /**", + " * Allow to store a behavior in a RBush (spatial data structure).", + " * Because this duplicates the AABB, this ensures the RBush AABB", + " * stays the same even if the underlying object is moved", + " * (in which case the behavior is responsible for removing/adding", + " * back/updating this BehaviorRBushAABB).", + " */", + " const ObstacleRBushAABB = /** @class */ (function () {", + " /**", + " * @param {Obstacle} obstacle", + " */", + " function ObstacleRBushAABB(obstacle) {", + " this.obstacle = obstacle;", + " this.minX = 0;", + " this.minY = 0;", + " this.maxX = 0;", + " this.maxY = 0;", + " this.updateAABBFromOwner();", + " }", + "", + " ObstacleRBushAABB.prototype.updateAABBFromOwner = function () {", + " const aabb = this.obstacle.getHitBoxesAABB();", + " this.minX = aabb.min[0];", + " this.minY = aabb.min[1];", + " this.maxX = aabb.max[0];", + " this.maxY = aabb.max[1];", + " }", + "", + " return ObstacleRBushAABB;", + "}());", + "", + "/**", + " * An obstacle manager for fast spacial search.", + " */", + "const ObstacleManager = /** @class */ (function () {", + " /**", + " * Create a manager.", + " */", + " function ObstacleManager() {", + " this.obstacleRBush = new rbush();", + " }", + "", + " /**", + " * Get the obstacle manager of an instance container.", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @return {ObstacleManager}", + " */", + " ObstacleManager.getManager = function (instanceContainer) {", + " if (!instanceContainer.__topDownCornerSlidingExtension) {", + " instanceContainer.__topDownCornerSlidingExtension = {};", + " }", + " if (!instanceContainer.__topDownCornerSlidingExtension.manager) {", + " // Create the shared manager if necessary.", + " instanceContainer.__topDownCornerSlidingExtension.manager = new ObstacleManager();", + " }", + " return instanceContainer.__topDownCornerSlidingExtension.manager;", + " };", + "", + " /**", + " * Register an obstacle.", + " * @param {Obstacle} obstacle", + " */", + " ObstacleManager.prototype.addObstacle = function (obstacle) {", + " obstacle.currentRBushAABB.updateAABBFromOwner();", + " this.obstacleRBush.insert(obstacle.currentRBushAABB);", + " }", + "", + " /**", + " * Unregister an obstacle.", + " * @param {Obstacle} obstacle", + " */", + " ObstacleManager.prototype.removeObstacle = function (obstacle) {", + " this.obstacleRBush.remove(obstacle.currentRBushAABB);", + " }", + "", + " /**", + " * Returns all the boids around the specified boid.", + " * @param {gdjs.AABB} aabb", + " * @param {number} maxMovementLength", + " * @param {Obstacle[]} result the returned array.", + " * @return {Obstacle[]} An array with all obstacles near the object.", + " */", + " ObstacleManager.prototype.getAllObstaclesAround = function (aabb, maxMovementLength, result) {", + " const searchArea = gdjs.staticObject(", + " ObstacleManager.prototype.getAllObstaclesAround", + " );", + " searchArea.minX = aabb.min[0] - maxMovementLength;", + " searchArea.minY = aabb.min[1] - maxMovementLength;", + " searchArea.maxX = aabb.max[0] + maxMovementLength;", + " searchArea.maxY = aabb.max[1] + maxMovementLength;", + " /** @type {ObstacleRBushAABB[]} */", + " const nearbyObstacles = this.obstacleRBush.search(searchArea);", + "", + " result.length = 0;", + " for (let i = 0; i < nearbyObstacles.length; i++) {", + " const obstacle = nearbyObstacles[i].obstacle;", + " result.push(obstacle);", + " }", + "", + " return result;", + " }", + "", + " /**", + " * Returns true if there is any obstacle intersecting the area.", + " * @param {number} minX", + " * @param {number} maxX", + " * @param {number} minY", + " * @param {number} maxY", + " * @param {gdjs.RuntimeObject[]} excluded", + " * @return {boolean}", + " */", + " ObstacleManager.prototype.anyObstacle = function (", + " minX,", + " maxX,", + " minY,", + " maxY,", + " excluded", + " ) {", + " const searchArea = gdjs.staticObject(", + " ObstacleManager.prototype.anyObstacle", + " );", + " // @ts-ignore", + " searchArea.minX = minX;", + " // @ts-ignore", + " searchArea.minY = minY;", + " // @ts-ignore", + " searchArea.maxX = maxX;", + " // @ts-ignore", + " searchArea.maxY = maxY;", + " /** @type {ObstacleRBushAABB[]} */", + " const nearbyObstacles = this.obstacleRBush.search(searchArea);", + "", + " for (let i = 0; i < nearbyObstacles.length; i++) {", + " if (!excluded.includes(nearbyObstacles[i].obstacle.behavior.owner)) {", + " return true;", + " }", + " }", + " return false;", + " }", + "", + " return ObstacleManager;", + "}());", + "", + "/**", + " * NavMeshPathfindingObstacleRuntimeBehavior represents a behavior allowing objects to be", + " * considered as a obstacle by objects having Pathfinding Behavior.", + " */", + "const Obstacle = /** @class */ (function () {", + " /**", + " * ", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @param {gdjs.RuntimeBehavior} behavior", + " */", + " function Obstacle(instanceContainer, behavior) {", + " this.oldX = 0;", + " this.oldY = 0;", + " this.oldWidth = 0;", + " this.oldHeight = 0;", + " this.registeredInManager = false;", + " this.behavior = behavior;", + " this.manager = ObstacleManager.getManager(instanceContainer);", + " // Note that we can't use getX(), getWidth()... of owner here:", + " // The owner is not yet fully constructed.", + " /** @type {gdjs.AABB} */", + " this.hitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " this.hitBoxesAABBUpToDate = false;", + " ", + " /** @type {FloatPoint} */", + " this.point = [0, 0];", + " this.currentRBushAABB = new ObstacleRBushAABB(this);", + " }", + " Obstacle.prototype.onCreated = function () {", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " };", + " Obstacle.prototype.onDestroy = function () {", + " if (this.manager && this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " }", + " };", + " Obstacle.prototype.doStepPreEvents = function (instanceContainer) {", + " var owner = this.behavior.owner;", + " // Make sure the obstacle is or is not in the obstacles manager.", + " if (!this.behavior.activated() && this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " this.registeredInManager = false;", + " }", + " else {", + " if (this.behavior.activated() && !this.registeredInManager) {", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " }", + " }", + " // Track changes in size or position", + " if (this.oldX !== owner.getX() ||", + " this.oldY !== owner.getY() ||", + " this.oldWidth !== owner.getWidth() ||", + " this.oldHeight !== owner.getHeight()) {", + " this.hitBoxesAABBUpToDate = false;", + " if (this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " this.manager.addObstacle(this);", + " }", + " this.oldX = owner.getX();", + " this.oldY = owner.getY();", + " this.oldWidth = owner.getWidth();", + " this.oldHeight = owner.getHeight();", + " }", + " };", + " Obstacle.prototype.doStepPostEvents = function (instanceContainer) { };", + " Obstacle.prototype.onActivate = function () {", + " if (this.registeredInManager) {", + " return;", + " }", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " };", + " Obstacle.prototype.onDeActivate = function () {", + " if (!this.registeredInManager) {", + " return;", + " }", + " this.manager.removeObstacle(this);", + " this.registeredInManager = false;", + " };", + "", + " /**", + " * @return {gdjs.AABB}", + " */", + " Obstacle.prototype.getHitBoxesAABB = function() {", + " if (!this.hitBoxesAABBUpToDate) {", + " const hitBoxes = this.behavior.owner.getHitBoxes();", + "", + " let minX = Number.MAX_VALUE;", + " let minY = Number.MAX_VALUE;", + " let maxX = -Number.MAX_VALUE;", + " let maxY = -Number.MAX_VALUE;", + " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", + " let hitBox = hitBoxes[h];", + " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", + " const point = this.point;", + " // TODO Handle Isometry", + " //this._basisTransformation.toWorld(hitBox.vertices[p], point);", + " point[0] = hitBox.vertices[p][0];", + " point[1] = hitBox.vertices[p][1];", + "", + " minX = Math.min(minX, point[0]);", + " maxX = Math.max(maxX, point[0]);", + " minY = Math.min(minY, point[1]);", + " maxY = Math.max(maxY, point[1]);", + " }", + " }", + " this.hitBoxesAABB.min[0] = minX;", + " this.hitBoxesAABB.min[1] = minY;", + " this.hitBoxesAABB.max[0] = maxX;", + " this.hitBoxesAABB.max[1] = maxY;", + "", + " this.hitBoxesAABBUpToDate = true;", + " }", + " return this.hitBoxesAABB;", + " }", + "", + " return Obstacle;", + "}());", + "", + "gdjs.__topDownCornerSlidingExtension = gdjs.__topDownCornerSlidingExtension || {};", + "gdjs.__topDownCornerSlidingExtension.CornerSlider = CornerSlider;", + "gdjs.__topDownCornerSlidingExtension.Obstacle = Obstacle;", + "", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Slide on corners of rectangular obstacles.", + "fullName": "Top-down corner slider", + "name": "TopDownCornerSlider", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "/** @type {gdjs.TopDownMovementRuntimeBehavior} */\r", + "const topDownBehavior = object.getBehavior(behavior._getTopDownMovement());\r", + "\r", + "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", + "behavior.__topDownCornerSlidingExtension.cornerSlider = new gdjs.__topDownCornerSlidingExtension.CornerSlider(runtimeScene, behavior, topDownBehavior);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSlider", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Flag objects as obstacles for top-down characters.", + "fullName": "Top-down corner slider obstacle", + "name": "TopDownCornerSliderObstacle", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate and attach properties as objects variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", + "behavior.__topDownCornerSlidingExtension.obstacle =\r", + " new gdjs.__topDownCornerSlidingExtension.Obstacle(runtimeScene, behavior);\r", + "behavior.__topDownCornerSlidingExtension.obstacle.onCreated(runtimeScene, behavior);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "behavior.__topDownCornerSlidingExtension.obstacle.doStepPreEvents(runtimeScene);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onActivate(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onDeActivate(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onDestroy(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Sliding corner size", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "SlidingCornerSize" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Bouh", + "category": "Input", + "extensionNamespace": "", + "fullName": "Gamepads (controllers)", + "helpPath": "/all-features/gamepad", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", + "name": "Gamepads", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg", + "shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...", + "version": "0.5.0", + "description": [ + "Add support for gamepads (or other controllers).", + "", + "It gives access to:", + "- button presses", + "- axis positions and force", + "- trigger pressure", + "- configurable deadzone", + "- vibration", + "- automatic mappers for platformer characters and top-down movement", + "", + "The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))." + ], + "origin": { + "identifier": "Gamepads", + "name": "gdevelop-extension-store" + }, + "tags": [ + "controllers", + "gamepads", + "joysticks", + "axis", + "xbox", + "ps4" + ], + "authorIds": [ + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "taRwmWxwAFYFL9yyBwB3cwBw0BO2", + "mnImQKdn8nQxwzkS5D6a1JB27V23" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Get the value of the pressure on a gamepad trigger.", + "fullName": "Pressure on a gamepad trigger", + "functionType": "Expression", + "name": "TriggerPressure", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const trigger = eventsFunctionContext.getArgument(\"trigger\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Pressure on a gamepad trigger\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (trigger != \"LT\" && trigger != \"RT\" && trigger != \"L2\" && trigger != \"R2\") {\r", + " console.error('Parameter trigger is not valid in expression: \"Pressure on a gamepad trigger\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (trigger) {\r", + " case 'LT':\r", + " case 'L2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[6].value;\r", + " break;\r", + "\r", + " case 'RT':\r", + " case 'R2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[7].value;\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Trigger button", + "name": "trigger", + "supplementaryInformation": "[\"LT\",\"RT\",\"L2\",\"R2\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Get the force value of a gamepad stick.\n0 is stick on default position, 1 is at the maximum.", + "fullName": "Value of a stick force", + "functionType": "Expression", + "name": "StickForce", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId)), 0, 1);\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId)), 0, 1);\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Get the rotation value of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", + "fullName": "Value of a stick rotation", + "functionType": "Expression", + "name": "StickRotationValue", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId));\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId));\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Get the value of axis of a gamepad stick.", + "fullName": "Value of a gamepad axis", + "functionType": "Expression", + "name": "AxisValue", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"HORIZONTAL\" && direction != \"VERTICAL\") {\r", + " console.error('Parameter direction is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let parameterError = false;\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Horizontal\",\"Vertical\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Test if a button is released on a gamepad. Buttons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button released", + "functionType": "Condition", + "name": "C_Button_released", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button released\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button released\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button released\" is not valid.');\r", + " break;\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//Define default value on pressed button or use previous value\r", + "gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "//Get state of button at previous frame\r", + "const previousStateButton = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "//When previousStateButton is true and actual button state is not pressed\r", + "//Player have release the button\r", + "if (previousStateButton === true && gamepad.buttons[buttonId].pressed === false) {\r", + " // Save the last button used for the player \r", + " gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + " eventsFunctionContext.returnValue = true;\r", + "\r", + "} else {\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + " eventsFunctionContext.returnValue = false;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the index of the last pressed button of a gamepad.", + "fullName": "Last pressed button (id)", + "functionType": "Expression", + "name": "LastButtonID", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "//Player id is not valid\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Last pressed button (id)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "//Return the last button used by the player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].lastButtonUsed;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if any button is pressed on a gamepad.", + "fullName": "Any gamepad button pressed", + "functionType": "Condition", + "name": "C_Any_Button_pressed", + "sentence": "Any button of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Any gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "for (let i = 0; i < gamepad.buttons.length; i++) { //For each buttons\r", + " if (gamepad.buttons[i].pressed) { //One of them is pressed\r", + " buttonId = i; //Save the button pressed\r", + " break;\r", + " }\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " // No buttons are pressed.\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Any gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the last button pressed. \nButtons for Xbox and PS4 can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Both: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Last pressed button (string)", + "functionType": "StringExpression", + "name": "LastButtonString", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in string expression: \"Last pressed button (LastButtonString)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (controllerType === \"\") {\r", + " console.error('Parameter controller type is not valid in string expression: \"Last pressed button (LastButtonString)\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "if (gamepad !== null) { //Gamepad exist\r", + " //Get last btn id\r", + " const lastButtonUsedID = gdjs._extensionController.players[playerId].lastButtonUsed;\r", + "\r", + " //Return last button as string \r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getInputString(controllerType, lastButtonUsedID);\r", + "\r", + "} else { //Gamepad dosen't exist\r", + " console.error('Your controller is not supported or the gamepad wasn\\'t detected in string expression: \"Last pressed button (LastButtonString)\"');\r", + " eventsFunctionContext.returnValue = \"Gamepad not connected\";\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Controller type", + "name": "controller_type", + "supplementaryInformation": "[\"Xbox\",\"PS4\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the number of gamepads.", + "fullName": "Gamepad count", + "functionType": "Expression", + "name": "GamepadCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get the last activated controller\r", + "const controllerId = gdjs._extensionController.lastActiveController;\r", + "\r", + "// Check if controller is active\r", + "const gamepad = gamepads[controllerId];\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = 0;\r", + "} else {\r", + " // Return active controller id\r", + " eventsFunctionContext.returnValue = controllerId + 1;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "Check if a button is pressed on a gamepad. \nButtons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button pressed", + "functionType": "Condition", + "name": "C_Button_pressed", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button pressed\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the value of the deadzone applied to a gamepad sticks, between 0 and 1.", + "fullName": "Gamepad deadzone for sticks", + "functionType": "Expression", + "name": "Deadzone", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Gamepad deadzone for sticks\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "///Return the deadzone value for a given player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].deadzone;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2.", + "fullName": "Set gamepad deadzone for sticks", + "functionType": "Action", + "name": "A_Set_deadzone", + "sentence": "Set deadzone for sticks on gamepad: _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const newDeadzone = eventsFunctionContext.getArgument(\"deadzone\");\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in action: \"Set gamepad deadzone for sticks\", is not valid, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "// clamp the newDeadzone in range [0, 1].\r", + "// https://github.com/4ian/GDevelop-extensions/pull/33#issuecomment-618224857\r", + "gdjs._extensionController.players[playerId].deadzone = gdjs.evtTools.common.clamp(newDeadzone, 0, 1);\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Deadzone for sticks, 0.2 by default (0 to 1)", + "name": "deadzone", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a stick of a gamepad is pushed in a given direction.", + "fullName": "Gamepad stick pushed (axis)", + "functionType": "Condition", + "name": "C_Axis_pushed", + "sentence": "_PARAM2_ stick of gamepad _PARAM1_ is pushed in direction _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad stick pushed (axis)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick in condition: \"Gamepad stick pushed (axis)\", is not valid, must be LEFT or RIGHT');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"ANY\") {\r", + " console.error('Parameter deadzone in condition: \"Gamepad stick pushed (axis)\", is not valid, must be UP, DOWN, LEFT or RIGHT');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "\r", + "//Define in onFirstSceneLoaded function\r", + "const getNormalizedAxisValue = gdjs._extensionController.getNormalizedAxisValue;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[0], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[0], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Left on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[2], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[2], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Right on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Stick on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "eventsFunctionContext.returnValue = false;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Any\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the number of connected gamepads.", + "fullName": "Connected gamepads number", + "functionType": "Expression", + "name": "ConnectedGamepadsCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "// Gamepads can be disconnected and become null, so we have to filter them.\r", + "eventsFunctionContext.returnValue = Object.keys(gamepads).filter(key => !!gamepads[key]).length;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "Return a string containing informations about the specified gamepad.", + "fullName": "Gamepad type", + "functionType": "StringExpression", + "name": "GamepadType", + "sentence": "Player _PARAM1_ use _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in string expression: \"Gamepad type\", is not valid number, must be between 0 and 4');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "eventsFunctionContext.returnValue = (gamepad && gamepad.id) ? gamepad.id : \"No information for player \" + (playerId + 1)", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller.", + "fullName": "Gamepad type", + "functionType": "Condition", + "name": "C_Controller_type", + "sentence": "Gamepad _PARAM1_ is a _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad type\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (controllerType === \"\") {", + " console.error('Parameter type in condition: \"Gamepad type\", is not a string.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "", + "if (controllerType == \"XBOX\") {", + " eventsFunctionContext.returnValue = gdjs._extensionController.isXbox(gamepad);", + "} else {", + " eventsFunctionContext.returnValue = gamepad ? gamepad.id.toUpperCase().indexOf(controllerType) !== -1 : false;", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Type: \"Xbox\", \"PS4\", \"Steam\" or \"PS3\" (among other)", + "name": "controller_type", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a gamepad is connected.", + "fullName": "Gamepad connected", + "functionType": "Condition", + "name": "C_Controller_X_is_connected", + "sentence": "Gamepad _PARAM1_ is plugged and connected", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "// If gamepad was disconnected it will be null (so this will return false)", + "// If gamepad was never connected it will be undefined (so this will return false)", + "eventsFunctionContext.returnValue = !!gamepads[playerId];" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser.", + "fullName": "Gamepad vibration", + "functionType": "Action", + "name": "A_Vibrate_controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: 1.0,", + " strongMagnitude: 1.0", + " });", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate an advanced vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Advanced gamepad vibration", + "functionType": "Action", + "name": "A_Advanced_Vibration_Controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds with the vibration magnitude of _PARAM3_ and _PARAM4_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.duration = duration;", + "gdjs._extensionController.players[playerId].rumble.elapsedTime = 0;", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change a vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Change gamepad active vibration", + "functionType": "Action", + "name": "A_Change_Vibration_Magnitude", + "sentence": "Change the vibration magnitude of _PARAM2_ & _PARAM3_ on gamepad _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const elapsedTime = gdjs._extensionController.players[playerId].rumble.elapsedTime || 0;", + "const originalDuration = gdjs._extensionController.players[playerId].rumble.duration || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (originalDuration - elapsedTime <= 0) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: 1000 * (originalDuration - elapsedTime),", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Define an new private object javascript for the gamepad extension\r", + "gdjs._extensionController = {\r", + " players: {\r", + " 0: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 1: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 2: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 3: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " },\r", + " lastActiveController: -1, // Last active controller\r", + " controllerButtonNames: { //Map associating controller button ids to button names\r", + " \"XBOX\": {\r", + " 0: \"A\",\r", + " 1: \"B\",\r", + " 2: \"X\",\r", + " 3: \"Y\",\r", + " 4: \"LB\",\r", + " 5: \"RB\",\r", + " 6: \"LT\",\r", + " 7: \"RT\",\r", + " 8: \"BACK\",\r", + " 9: \"START\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"NONE\",\r", + " 17: \"NONE\"\r", + " },\r", + " \"PS4\": {\r", + " 0: \"CROSS\",\r", + " 1: \"CIRCLE\",\r", + " 2: \"SQUARE\",\r", + " 3: \"TRIANGLE\",\r", + " 4: \"L1\",\r", + " 5: \"R1\",\r", + " 6: \"L2\",\r", + " 7: \"R2\",\r", + " 8: \"SHARE\",\r", + " 9: \"OPTIONS\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"PS_BUTTON\",\r", + " 17: \"CLICK_TOUCHPAD\"\r", + " }\r", + " }\r", + "};\r", + "\r", + "gdjs._extensionController.getInputString = function (type, buttonId) {\r", + " const controllerButtonNames = gdjs._extensionController.controllerButtonNames;\r", + " if (controllerButtonNames[type] !== undefined) {\r", + " return controllerButtonNames[type][buttonId];\r", + " }\r", + "\r", + " return \"UNKNOWN_BUTTON\";\r", + "}\r", + "\r", + "gdjs._extensionController.axisToAngle = function (deltaX, deltaY) {\r", + " const rad = Math.atan2(deltaY, deltaX);\r", + " const deg = rad * (180 / Math.PI);\r", + " return deg;\r", + "}\r", + "\r", + "gdjs._extensionController.isXbox = function (gamepad) {\r", + " return (gamepad ? (\r", + " gamepad.id.toUpperCase().indexOf(\"XBOX\") !== -1\r", + " // \"XINPUT\" cannot be used to check if it is a xbox controller is just a generic\r", + " // name reported in Firefox corresponding to the driver being used by the controller\r", + " // https://gamefaqs.gamespot.com/boards/916373-pc/73341312?page=1\r", + " ) : false);\r", + "}\r", + "\r", + "//Returns the new value taking into account the dead zone for the player_ID given\r", + "gdjs._extensionController.getNormalizedAxisValue = function (v, player_ID) {\r", + " // gdjs._extensionController = gdjs._extensionController || { deadzone: 0.2 };\r", + "\r", + " // Anything smaller than this is assumed to be 0,0\r", + " const DEADZONE = gdjs._extensionController.players[player_ID].deadzone;\r", + "\r", + " if (Math.abs(v) < DEADZONE) {\r", + " // In the dead zone, set to 0\r", + " v = 0;\r", + "\r", + " if (v == null) {\r", + " return 0;\r", + " } else {\r", + " return v;\r", + " }\r", + "\r", + " } else {\r", + " // We're outside the dead zone, but we'd like to smooth\r", + " // this value out so it still runs nicely between 0..1.\r", + " // That is, we don't want it to jump suddenly from 0 to\r", + " // DEADZONE.\r", + "\r", + " // Remap v from\r", + " // DEADZONE..1 to 0..(1-DEADZONE)\r", + " // or from\r", + " // -1..-DEADZONE to -(1-DEADZONE)..0\r", + "\r", + " v = v - Math.sign(v) * DEADZONE;\r", + "\r", + " // Remap v from\r", + " // 0..(1-DEADZONE) to 0..1\r", + " // or from\r", + " // -(1-DEADZONE)..0 to -1..0\r", + "\r", + " return v / (1 - DEADZONE);\r", + " }\r", + "};" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onScenePostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Each time a player press a button i save the last button pressed for the next frame", + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "let countPlayers = Object.keys(gdjs._extensionController.players).length;", + "", + "//Repeat for each players", + "for (let i = 0; i < countPlayers; i++) {", + " let gamepad = gamepads[i]; // Get the gamepad of the player", + "", + " //We have to keep this condition because if the user hasn't plugged in his controller yet, we can't get the controller in the gamepad variable.", + " if (gamepad == null) {", + " continue;", + " }", + "", + " for (let b = 0; b < Object.keys(gamepad.buttons).length; b++) { //For each buttons", + " if (gamepad.buttons[b].pressed) { //One of them is pressed", + " gdjs._extensionController.players[i].lastButtonUsed = b; //Save the button pressed", + "", + " //Save the state of the button for the next frame.", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: true };", + "", + " // Update Last Active Controller", + " gdjs._extensionController.lastActiveController = i;", + " } else {", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: false };", + " }", + " }", + "", + "", + " gdjs._extensionController.players[i].rumble.elapsedTime += runtimeScene.getElapsedTime(runtimeScene) / 1000;", + " if (", + " gdjs._extensionController.players[i].rumble.duration - gdjs._extensionController.players[i].rumble.elapsedTime <= 0 &&", + " (gdjs._extensionController.players[i].rumble.weakMagnitude || gdjs._extensionController.players[i].rumble.strongMagnitude)", + " ) {", + " gdjs._extensionController.players[i].rumble.weakMagnitude = 0;", + " gdjs._extensionController.players[i].rumble.strongMagnitude = 0;", + " }", + "", + "", + "}", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Check if any button is released on a gamepad.", + "fullName": "Any gamepad button released", + "functionType": "Condition", + "name": "C_any_button_released", + "sentence": "Any button of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + "\tconsole.error('Parameter gamepad identifier in condition: \"Any gamepad button released\", is not valid number, must be between 0 and 4.');\r", + "\treturn;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "for (let buttonId = 0; buttonId < gamepad.buttons.length; buttonId++) { //For each buttons on current frame.\r", + "\r", + "\tif (buttonId === undefined) {\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t\treturn;\r", + "\t}\r", + "\r", + "\t//Get previous value or define value by default for the current button\r", + "\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "\t//Get state of the button at previous frame\r", + "\tconst previousStateButtonIsPressed = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "\t//Get the state of the button on the current frame.\r", + "\tconst currentFrameStateButtonIsPressed = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\t//When previousStateButtonIsPressed is true and actual button state is not pressed\r", + "\t//Player have release the button\r", + "\tif (previousStateButtonIsPressed === true && currentFrameStateButtonIsPressed === false) {\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + "\t\teventsFunctionContext.returnValue = true;\r", + "\t\t//break;\r", + "\t\treturn;\r", + "\t} else {\r", + "\t\t//The player didn't released the button yet, the previous frame state is still true\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t}\r", + "\r", + "\tif (currentFrameStateButtonIsPressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the strength of the weak vibration motor on the gamepad of a player.", + "fullName": "Weak rumble magnitude", + "functionType": "Expression", + "name": "WeakVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.weakMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the strength of the strong vibration motor on the gamepad of a player.", + "fullName": "Strong rumble magnitude", + "functionType": "Expression", + "name": "StrongVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.strongMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Control a platformer character with a gamepad.", + "fullName": "Platformer gamepad mapper", + "name": "PlatformerGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"A or Cross\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"A\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"B or Circle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"B\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"X or Square\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"X\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Y or Triangle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Y\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LB or L1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RB or R1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LT or L2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RT or R2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::PlatformerGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Platformer character behavior", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "hidden": false, + "name": "PlatformerCharacter" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseRightStick" + }, + { + "value": "A or Cross", + "type": "Choice", + "label": "Jump button", + "description": "", + "group": "Controls", + "extraInformation": [ + "A or Cross", + "B or Circle", + "X or Square", + "Y or Triangle", + "LB or L1", + "RB or R1", + "LT or L2", + "RT or R2" + ], + "hidden": false, + "name": "JumpButton" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Control a top-down character with a gamepad.", + "fullName": "Top-down gamepad mapper", + "name": "TopDownGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::TopDownGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseRightStick" + }, + { + "value": "Analog", + "type": "Choice", + "label": "Stick mode", + "description": "", + "group": "Controls", + "extraInformation": [ + "Analog", + "360°", + "8 Directions" + ], + "hidden": false, + "name": "StickMode" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Top-down movement animator", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40bDQtNC4xYzAuNC0wLjQsMS0wLjQsMS40LDBzMC40LDEsMCwxLjRMMy40LDE2bDMuMywzLjMNCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDNi42LDIxLDYuMywyMS4xLDYsMjEuMXoiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0yNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNjLTAuNC0wLjQtMC40LTEsMC0xLjRsMy4zLTMuM2wtMy4zLTMuM2MtMC40LTAuNC0wLjQtMSwwLTEuNHMxLTAuNCwxLjQsMGw0LjEsNC4xDQoJCWMwLjIsMC4yLDAuMywwLjQsMC4zLDAuN3MtMC4xLDAuNS0wLjMsMC43bC00LjEsNC4xQzI2LjYsMjEsMjYuMywyMS4xLDI2LDIxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMTYsMzEuMUwxNiwzMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40czEtMC40LDEuNCwwbDMuMywzLjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwDQoJCXMwLjQsMSwwLDEuNGwtNC4xLDQuMUMxNi42LDMwLjksMTYuMywzMS4xLDE2LDMxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjAuMSw3Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNMMTYsMy40bC0zLjMsMy4zYy0wLjQsMC40LTEsMC40LTEuNCwwcy0wLjQtMSwwLTEuNGw0LTQuMWMwLjQtMC40LDEtMC40LDEuNCwwbDQuMSw0LjENCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDMjAuNiw2LjksMjAuNCw3LDIwLjEsN3oiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0xNiwzMGMtMC42LDAtMS0wLjQtMS0xVjNjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXYyNkMxNywyOS42LDE2LjYsMzAsMTYsMzB6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjksMTdIMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMWgyN2MwLjYsMCwxLDAuNCwxLDFTMjkuNiwxNywyOSwxN3oiLz4NCjwvZz4NCjwvc3ZnPg0K", + "name": "TopDownMovementAnimator", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Arrows/a6026156355ae5f03613b03971e4ddb50d0c95b8901e7a21edc57f33f0032e42_Arrows_thin_arrows_all_directions_cross.svg", + "shortDescription": "Change the animation according to the movement direction.", + "version": "0.1.0", + "description": "Change the animation according to the movement direction.", + "tags": [ + "animation", + "direction" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Change the animation according to the movement direction.", + "fullName": "Top-down movement animator", + "name": "TopDownMovementAnimator", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "8" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "4" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Direction()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::Speed" + }, + "parameters": [ + "Object", + "TopDownMovement", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PauseAnimation" + }, + "parameters": [ + "Object" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::Speed" + }, + "parameters": [ + "Object", + "TopDownMovement", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlayAnimation" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyNewAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Direction()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use a small margin is used to avoid to flicker between 2 directions." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Object.Behavior:: DirectionDifference(Object.Behavior::SharedPropertyNewAnimationDirection(), Object.Behavior::PropertyAnimationDirection()))", + ">", + "0.5 + 0.03125" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::SharedPropertyNewAnimationDirection()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name of the object.", + "fullName": "Animation name", + "functionType": "ExpressionAndCondition", + "name": "AnimationName", + "sentence": "the animation name", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AnimationName", + "name": "SetAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "GetArgumentAsString(\"Value\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + }, + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the animation is scaled according to speed.", + "fullName": "Scale animation according to speed", + "functionType": "Condition", + "name": "IsScalingAnimation", + "sentence": "_PARAM0_ animation is scaled according to speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change whether the animation is scaled according to speed or not.", + "fullName": "Scale animation according to speed", + "functionType": "Action", + "name": "SetIsScalingAnimation", + "sentence": "Scale the animation of _PARAM0_ according to speed: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "ChangeAnimationSpeedScale" + }, + "parameters": [ + "Object", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "IsScalingAnimation", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation speed scale according to the object speed.", + "fullName": "Animation speed scale", + "functionType": "Action", + "name": "SetAnimationSpeedScale", + "private": true, + "sentence": "Change the animation speed scale according to _PARAM0_ speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeAnimationSpeedScale" + }, + "parameters": [ + "Object", + "=", + "Object.TopDownMovement::Speed() / Object.TopDownMovement::MaxSpeed()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the object movement direction.", + "fullName": "Direction", + "functionType": "Expression", + "name": "Direction", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "(Object.TopDownMovement::Angle() + Object.Behavior::PropertyAngleOffset()) * Object.Behavior::PropertyDirectionCount() / 360" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the difference between 2 directions.", + "fullName": "Direction dirrerence", + "functionType": "Expression", + "name": "DirectionDifference", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "mod(mod(GetArgumentAsNumber(\"Direction\") - GetArgumentAsNumber(\"OtherDirection\"), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount() / 2, Object.Behavior::PropertyDirectionCount()) - Object.Behavior::PropertyDirectionCount() / 2" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "description": "Direction", + "name": "Direction", + "type": "expression" + }, + { + "description": "Other direction", + "name": "OtherDirection", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation direction of the object.", + "fullName": "Animation direction", + "functionType": "Action", + "name": "SetAnimationDirection", + "private": true, + "sentence": "Change the animation direction of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change the animation but keep the current frame number." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "mod(mod(round(GetArgumentAsNumber(\"Value\")), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount(), Object.Behavior::PropertyDirectionCount())" + ] + }, + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyAnimationFrame" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Sprite()" + ] + }, + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" + ] + }, + { + "type": { + "value": "ChangeSprite" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::SharedPropertyAnimationFrame()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + }, + { + "value": "true", + "type": "Boolean", + "label": "Scale animation according to speed", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "IsScalingAnimation" + }, + { + "value": "Walk", + "type": "String", + "label": "Animation name", + "description": "Animations must be called \"Walk0\", \"Walk1\"... for left, down...", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "AnimationName" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Number of directions", + "description": "Leave to 0 to automatically use 8 when diagonals are allowed and 4 otherwise.", + "group": "Direction", + "extraInformation": [], + "hidden": false, + "name": "DirectionCount" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Angle offset", + "description": "Setted to 90°, \"Walk0\" becomes the animation for down.", + "group": "Direction", + "extraInformation": [], + "hidden": false, + "name": "AngleOffset" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AnimationDirection" + } + ], + "sharedPropertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NewAnimationDirection" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AnimationFrame" + } + ] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "Respawn", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [ + "" + ], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Make the object come back to its initial location", + "fullName": "Respawn", + "name": "Respawn", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginY", + "=", + "Object.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginX", + "=", + "Object.X()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Respawn to its initial location", + "fullName": "Respawn", + "functionType": "Action", + "name": "respawn", + "sentence": "_PARAM0_ respawns to its initial location", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(OriginX)", + "=", + "Object.Variable(OriginY)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "1" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "UnPauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is invincible.", + "fullName": "Is the object invincible?", + "functionType": "Condition", + "name": "isInvincible", + "sentence": "_PARAM0_ is invincible", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"", + "Object.Behavior::PropertyInvincibilityTime()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "0" + ] + }, + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginY", + "=", + "Object.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginX", + "=", + "Object.X()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "5", + "type": "Number", + "label": "The invincibility time after been respawn (in seconds).", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "InvincibilityTime" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "BombExplosion", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Explode a bombe into 4 lines of Explosion objects.", + "fullName": "Explode a bombe", + "functionType": "Action", + "name": "Explode", + "sentence": "_PARAM1_ explode into _PARAM2_ and is stopped by _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creation of the central explosion square" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Explosion", + "Bomb.X()", + "Bomb.Y()", + "\"\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 12" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creation of the explosion squares on the 4 directions" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "0", + "1", + "0", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "180", + "-1", + "0", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "90", + "0", + "1", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "-90", + "0", + "-1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + }, + { + "description": "Explosion", + "name": "Explosion", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "Obstacle", + "name": "Obstacle", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Create one line of Explosion object in a given direction.", + "fullName": "Create an explosion arm", + "functionType": "Action", + "name": "CreateExplosionArm", + "private": true, + "sentence": "Creat an explosion arm with _PARAM2_ from _PARAM1_ to _PARAM3_ in the direction _PARAM4_° (_PARAM5_ ; _PARAM6_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "1" + ] + } + ], + "events": [ + { + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "<=", + "Bomb.Variable(Range)" + ] + } + ], + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Explosion", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 48 * Variable(iteration)", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 48 * Variable(iteration)", + "\"\"" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Explosion", + "=", + "GetArgumentAsNumber(\"ExplosionDirection\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The arm squares (+11) are over the finger squares (+10) and the center squares are over the other 2 (+12). It makes a better continuity on the explosions sprites." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "<", + "Bomb.Variable(Range)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Explosion", + "\"ExplosionArm\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 11" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "=", + "Bomb.Variable(Range)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Explosion", + "\"ExplosionFinger\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 10" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "When an obstacle is reached, the loop is broken (by setting a big value in the iteration variable)." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Obstacle", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "666" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + }, + { + "description": "Explosion", + "name": "Explosion", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "Obstacle", + "name": "Obstacle", + "type": "objectList" + }, + { + "description": "Explosion direction angle", + "name": "ExplosionDirection", + "type": "expression" + }, + { + "description": "Explosion direction X", + "name": "ExplosionDirectionX", + "type": "expression" + }, + { + "description": "Explosion direction Y", + "name": "ExplosionDirectionY", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Play the explosion animation and destroy itself.", + "fullName": "Explosion animator", + "name": "ExplosionAnimator", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The animation frame rate can only be constant. So, the animation is split to make the last frame last." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationEnded" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenter\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenterEnding\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArm\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArmEnding\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFinger\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFingerEnding\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationEnded" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenterEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArmEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFingerEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BombExplosion::ExplosionAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "Player", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Create a bonus at specified position.", + "fullName": "Create bonus", + "functionType": "Action", + "name": "CreateBonus", + "sentence": "Create _PARAM1_ of type _PARAM4_ at position _PARAM2_ ; _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bonus", + "GetArgumentAsNumber(\"PositionX\")", + "GetArgumentAsNumber(\"PositionY\")", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Bonus", + "=", + "Bonus.Y() + 10" + ] + }, + { + "type": { + "value": "ChangeHeight" + }, + "parameters": [ + "Bonus", + "=", + "48" + ] + }, + { + "type": { + "value": "ChangeWidth" + }, + "parameters": [ + "Bonus", + "=", + "48" + ] + }, + { + "type": { + "value": "ChangeAnimation" + }, + "parameters": [ + "Bonus", + "=", + "GetArgumentAsNumber(\"Type\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "X position", + "name": "PositionX", + "type": "expression" + }, + { + "description": "Y position", + "name": "PositionY", + "type": "expression" + }, + { + "description": "Bonus type", + "name": "Type", + "supplementaryInformation": "[]", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "A player that picks up bonuses to become more powerful.", + "fullName": "Player", + "name": "Player", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::Player::ResetPowers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Pick up a bonus and gain powers.", + "fullName": "Pick up bonus", + "functionType": "Action", + "name": "PickUpBonus", + "sentence": "_PARAM0_ pick up _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Bonus", + "\"BombBonus\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombCapacity", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Bonus", + "\"FlameBonus\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Range", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The structure Bonus of the Player allow to keep up the bonuses caught by the player and their location so they can be set back when he dies." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "newIndex", + "=", + "Object.VariableChildCount(Bonus)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"Number\"]", + "=", + "Bonus.Animation()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"X\"]", + "=", + "Bonus.X()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"Y\"]", + "=", + "Bonus.Y()" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bonus", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "The bonus accumulated by the dead player come back to their initial locations.", + "fullName": "Give back all bonuses", + "functionType": "Action", + "name": "GiveBackBonuses", + "sentence": "_PARAM0_ give back all _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::Player::ResetPowers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.VariableChildCount(Bonus)", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"X\"])", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"Y\"])", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"Number\"])", + "" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ObjectVariableClearChildren" + }, + "parameters": [ + "Object", + "Bonus" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "fullName": "Reset powers", + "functionType": "Action", + "name": "ResetPowers", + "private": true, + "sentence": "Reset powers of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Range", + "=", + "GlobalVariable(Flame)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombCapacity", + "=", + "GlobalVariable(Bomb)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + } + ], + "externalLayouts": [ + { + "associatedLayout": "Game", + "name": "EmptyLevel", + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "7d1c7157-fd69-4749-b573-4e4539880c28", + "width": 48, + "x": 384, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player1", + "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", + "width": 48, + "x": 720, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "58cfe16e-a34a-4efc-8507-21ea4e90d963", + "width": 48, + "x": 288, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6b9a3b3f-0ae4-4e6c-a125-4ad687bdd090", + "width": 48, + "x": 384, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "14d2f3bc-ff05-46db-9685-486509a64632", + "width": 48, + "x": 288, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b66eb171-4f48-40da-982f-067c5fb0dc3f", + "width": 48, + "x": 480, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "30bae1c1-27ee-4603-9376-3b70ce1dd0b1", + "width": 48, + "x": 480, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2ea8f2fd-3c88-4a63-9186-3e784d9c898d", + "width": 48, + "x": 480, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4db75a83-cf1f-4935-9282-327e260b6826", + "width": 48, + "x": 384, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6fc77e65-7e68-4fec-9d84-845619700d04", + "width": 48, + "x": 288, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "66ab9bba-67fa-45c8-92dc-b14b30f5e16c", + "width": 48, + "x": 96, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "752172d6-a7a4-4ac6-88ea-c09f9df89d69", + "width": 48, + "x": 96, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3172b443-37df-413a-bc38-e76c98098d76", + "width": 48, + "x": 192, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a46f2e21-7713-4b6c-a19e-74758ae95dee", + "width": 48, + "x": 192, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d4870add-5d34-458a-b71b-3547405a5a9e", + "width": 48, + "x": 192, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2d693e24-af10-4a7d-a061-8aa00cc02933", + "width": 48, + "x": 96, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "28f18d97-1264-46ba-a773-213e00174ed0", + "width": 48, + "x": 384, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e87c969b-2139-4962-95a7-1ce0d6b15703", + "width": 48, + "x": 288, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5c55b57c-f739-44ee-a958-b4ae3ad3333f", + "width": 48, + "x": 384, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b214a93a-8993-4b74-86f4-b9bcc5f1a90a", + "width": 48, + "x": 288, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "0df3165f-cb8e-4739-a6ae-d8a4d913222e", + "width": 48, + "x": 480, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a737afc5-512f-4cd5-9eba-ece0b60515da", + "width": 48, + "x": 480, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "262f1617-ed16-4812-9df0-5c7f22d20ae1", + "width": 48, + "x": 96, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "89b0437a-01b7-4b1c-9aab-09bd14e73f60", + "width": 48, + "x": 96, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "85a155af-c258-4c72-8644-d15de504164d", + "width": 48, + "x": 192, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4d9b98b6-ccea-485c-8582-6d18ec85aeb1", + "width": 48, + "x": 192, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3a2cb06e-cb43-49ad-9318-a6c2977723de", + "width": 48, + "x": 672, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e45a735b-c0ff-4aec-80ed-3827a69b1876", + "width": 48, + "x": 576, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "874b3cd9-2aa6-456e-b24a-6af8015ddfc8", + "width": 48, + "x": 672, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e9fc51dd-fa8f-4983-89f6-fea6bdad9f54", + "width": 48, + "x": 576, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a39da3f5-8812-43de-8aad-8a31f18d44c9", + "width": 48, + "x": 672, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "f7205604-c930-4ae7-b0be-ca6cd35ef247", + "width": 48, + "x": 576, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "29295d67-390d-4cb5-b85f-b13309c22ea1", + "width": 48, + "x": 672, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4a368537-4fa7-450b-9f6d-1b8141e32b05", + "width": 48, + "x": 576, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "eb3c8657-38ad-4ff9-b5d3-5734e345b268", + "width": 48, + "x": 672, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "f71a4afd-1e64-4fc1-9796-64746ecc44ee", + "width": 48, + "x": 576, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player2", + "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", + "width": 48, + "x": 48, + "y": 48, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player3", + "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", + "width": 48, + "x": 48, + "y": 528, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player4", + "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", + "width": 48, + "x": 720, + "y": 48, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "63cd7cdb-5924-4742-9588-02d8f6bf299b", + "width": 48, + "x": 0, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e78ba022-908e-4a47-bd07-ef7cd13e8a34", + "width": 48, + "x": 0, + "y": 48, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2686060d-bfdc-42b9-b0dd-65064c632499", + "width": 48, + "x": 0, + "y": 528, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d3671486-2042-463e-b177-de09b55f4ecc", + "width": 48, + "x": 0, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "8b2836ac-9845-4508-a2c4-4ee111b51b62", + "width": 48, + "x": 0, + "y": 432, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "fd7778a6-a9cf-4e3f-b69d-6ff846be2187", + "width": 48, + "x": 0, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "62fd00b4-3840-4543-86a5-9c7d993b0a29", + "width": 48, + "x": 0, + "y": 336, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4189ed2f-ee50-4b25-a006-a7cbac218d54", + "width": 48, + "x": 0, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2d1ad764-f474-4fd5-82f2-2452fc2c8d26", + "width": 48, + "x": 0, + "y": 240, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "c87ade20-b472-4775-a50b-f8ccbbb0fbf4", + "width": 48, + "x": 0, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "45754109-64de-4d48-8176-67a176194afa", + "width": 48, + "x": 0, + "y": 144, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "0465c1ea-62e3-4190-b5b9-c53782e49f73", + "width": 48, + "x": 0, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6cf8e2f2-7075-4b22-80b0-bca37161801e", + "width": 48, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5a2170c6-ad30-4073-9d6b-a2c381c2f5a9", + "width": 48, + "x": 768, + "y": 48, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "698e9ea3-52fe-434b-b5f9-0eb2487c3840", + "width": 48, + "x": 768, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d9328c21-30d1-493e-8d06-00c9a09f7d00", + "width": 48, + "x": 768, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "aa8a3300-b3e0-4cd0-8fe1-2cb40a6fad7f", + "width": 48, + "x": 768, + "y": 144, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "036dd1fe-7ca4-47a9-a90b-7d4cbfdfcf28", + "width": 48, + "x": 768, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "fd6831c1-3203-4f38-870f-179c62ccfd9a", + "width": 48, + "x": 768, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "03cd2d68-3319-44b2-a823-6752abab4275", + "width": 48, + "x": 768, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "f933fcc1-3113-4e9a-ba0c-907294d3dad3", + "width": 48, + "x": 768, + "y": 432, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "070ef78d-a38c-4933-8c2d-42edeb915e7a", + "width": 48, + "x": 768, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2fda99b5-d891-4e9f-8995-af572b49c34f", + "width": 48, + "x": 768, + "y": 336, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3e09fcf3-17da-4001-b407-832de403e5b1", + "width": 48, + "x": 768, + "y": 240, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "393c71c8-a668-48a8-8fcd-8aa351e7273d", + "width": 48, + "x": 768, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "488346ac-4e78-45cc-818e-cd010be4d655", + "width": 48, + "x": 768, + "y": 528, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "91008c80-6d94-4009-84b6-c573a5c5a2f2", + "width": 48, + "x": 48, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a356057f-6acf-42ca-883d-c278cf219ffd", + "width": 48, + "x": 96, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d3f014e9-e0dc-405e-a916-481dbaa561e5", + "width": 48, + "x": 144, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ce021a22-532a-4fde-8513-5290e7fd60b4", + "width": 48, + "x": 192, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ebfb46a5-013f-41d1-95db-ec91d629490c", + "width": 48, + "x": 240, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2ca363dc-304c-4c00-9372-7a9962791bae", + "width": 48, + "x": 288, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e18d600a-663c-4426-bcae-35f6f14036f6", + "width": 48, + "x": 336, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6d9de165-b6dd-448f-ac03-c3e5f5efb66d", + "width": 48, + "x": 384, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3d41d234-7e25-4de1-8f7c-5d1b2d49b9b2", + "width": 48, + "x": 432, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "c623f11d-dcfd-4f48-9f5e-9fa7c5d014e7", + "width": 48, + "x": 480, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b6e79308-d24e-4948-9f23-2d3d75984173", + "width": 48, + "x": 528, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "eec3aa37-b3bf-4b58-a928-32a03905ee72", + "width": 48, + "x": 576, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "97f3c876-b5ff-466e-8c7c-b1d0da299bfd", + "width": 48, + "x": 624, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d657d4ca-6069-40b5-aa45-838b4d75bd88", + "width": 48, + "x": 672, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "9b391f55-3e1e-41d2-be3f-3df677aa8819", + "width": 48, + "x": 720, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ce7f2137-f339-4b1e-a725-f0fb403fa439", + "width": 48, + "x": 576, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "43af4bc0-f9fd-4d24-94d4-79826a640c39", + "width": 48, + "x": 528, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "7a31e3e7-4afc-4b3b-bc0d-c110ac3fb7fc", + "width": 48, + "x": 480, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "98781e57-327c-4a05-a34a-704d71fa381e", + "width": 48, + "x": 432, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a59eaecd-db24-4858-9939-83a8ab6cbf01", + "width": 48, + "x": 384, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3671fd18-58d2-4e9f-a45b-9048fd0d3939", + "width": 48, + "x": 336, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "62ff0dfa-e202-463d-a663-c7279383a4ba", + "width": 48, + "x": 288, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "0199004b-75d8-4253-a327-78b0e2b9e3c0", + "width": 48, + "x": 240, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2b953705-61bb-4165-8404-f107d843c937", + "width": 48, + "x": 192, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "de955cc4-b5ff-412f-ba72-f02f8d2f5134", + "width": 48, + "x": 144, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "09ccfcba-881b-45dd-a4ed-1db070db31ea", + "width": 48, + "x": 96, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "757b7ddc-61d2-4dd4-9157-1340e9dab603", + "width": 48, + "x": 48, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "1c37d1da-f5d4-49d7-bcf6-4c8e64d39399", + "width": 48, + "x": 720, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "59d663e3-45ac-4b87-882c-0d520876eebb", + "width": 48, + "x": 672, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "9595a78b-065c-4fde-9018-a365baff3d55", + "width": 48, + "x": 624, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 24, + "gridHeight": 24, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.808, + "windowMask": false + } + }, + { + "associatedLayout": "Game", + "name": "TestLevel", + "instances": [ + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 68, + "layer": "", + "name": "Player1", + "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", + "width": 82, + "x": 1020, + "y": 598, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 68, + "layer": "", + "name": "Player2", + "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", + "width": 82, + "x": 182, + "y": -9, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 68, + "layer": "", + "name": "Player3", + "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", + "width": 82, + "x": 182, + "y": 598, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 68, + "layer": "", + "name": "Player4", + "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", + "width": 82, + "x": 1020, + "y": -9, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "ec6ea1c7-7bc7-40f5-abb1-2ef4339c9512", + "width": 83, + "x": 970, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "8527c9a6-57cf-4037-9a62-8db74a07f298", + "width": 83, + "x": 850, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "29694b69-4a12-4a3f-bf97-4bb674964a96", + "width": 83, + "x": 970, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "92c92b77-f26d-43d1-8071-66a05afab425", + "width": 83, + "x": 970, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "47b11f9d-cf11-44a9-b137-bb9036143101", + "width": 83, + "x": 970, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "f28c8615-da64-443a-bd3d-73d50ff63bdf", + "width": 83, + "x": 970, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "16d0bbf7-9358-497d-816d-69e2884e6ed1", + "width": 83, + "x": 850, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "1c6221ae-1a24-4a81-ad97-6c422fc3e651", + "width": 83, + "x": 730, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "6da8ca22-7023-46c3-998c-21ca394141ac", + "width": 83, + "x": 610, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "b9d2ab87-68a1-4339-9a7f-e546945d22a8", + "width": 83, + "x": 490, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "0447b351-ac2b-4e07-a14f-b1fa4a6adca6", + "width": 83, + "x": 370, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "25dcdacf-7619-49f6-bc78-47ecf8d5180c", + "width": 83, + "x": 250, + "y": 540, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "0b3ac2e6-c842-44d8-bb6e-c80a585eef15", + "width": 83, + "x": 250, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "e81aa626-ae76-428f-8303-9084dd6ff372", + "width": 83, + "x": 370, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "e387be87-f1a7-42a1-9781-21548978c0a5", + "width": 83, + "x": 490, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "4d28e77c-5ea9-4f02-bd5f-1507117dcbac", + "width": 83, + "x": 610, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "750416fa-4272-4ffb-9ac2-d70a3358a9a8", + "width": 83, + "x": 730, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "b8c9ce11-eedd-4721-b487-702180df1e5c", + "width": 83, + "x": 850, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "e2c3f0d7-10c0-4aa3-97a3-481e9f3af529", + "width": 83, + "x": 850, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "36cbbe6e-c83f-4267-bc97-354f1fea1522", + "width": 83, + "x": 730, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "b6da8784-9a51-4cb9-8446-e99a5abe71de", + "width": 83, + "x": 610, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "c39a6498-aded-4cdb-8bf2-f8a49934173d", + "width": 83, + "x": 490, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "b204afc7-95e8-45f6-bba8-9d68a2375ae5", + "width": 83, + "x": 370, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "8f7352ef-6ffa-4fc8-8f42-b7f395694b6b", + "width": 83, + "x": 250, + "y": 300, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "32baf7c1-1734-488a-82c0-1167e692b9d9", + "width": 83, + "x": 250, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "51fbcefa-9511-4a70-bf7d-a49096f8c176", + "width": 83, + "x": 370, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "4c111a27-5b43-4aa2-bf65-ea3695b02d2a", + "width": 83, + "x": 490, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "0336456c-bbef-4a65-8607-7644c34f0e30", + "width": 83, + "x": 610, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "dda16088-5b3b-4a9e-a1f8-45c7956f5065", + "width": 83, + "x": 730, + "y": 180, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "c26e63b1-18a0-4629-95ff-015abf0e3674", + "width": 83, + "x": 730, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "1e0c6d91-0d9a-4066-a2f2-d08ba58ae59a", + "width": 83, + "x": 850, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "ba846a27-c199-44c0-b8a6-f28f803f4bd5", + "width": 83, + "x": 610, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "7a61f05e-50ab-4249-8410-a0a7b9f89a41", + "width": 83, + "x": 490, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "f90e0c6a-814a-4bff-a22f-210d0f8d5a07", + "width": 83, + "x": 370, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "693c5065-ffee-47f9-a848-6973a73fb275", + "width": 83, + "x": 250, + "y": 60, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "d1bd6fd2-2b8a-4061-82b6-02ad29a9f452", + "width": 0, + "x": 370, + "y": 480, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "db5f17a8-f631-403b-8b72-34e6816b0d7f", + "width": 0, + "x": 190, + "y": 420, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "70f11907-30b4-42f4-999c-008c2de43a3b", + "width": 0, + "x": 430, + "y": 420, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "22b0fecc-0d27-4565-9d33-25be22bc1783", + "width": 0, + "x": 430, + "y": 360, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "27b0cb7b-615b-452f-9c0f-f0eeaebf1259", + "width": 0, + "x": 550, + "y": 360, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "995de96b-fbe5-4cfb-9e26-c2b5e0497d1c", + "width": 0, + "x": 250, + "y": 360, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "0a2dbdeb-7bd4-45de-8afb-ecb61ff39573", + "width": 0, + "x": 190, + "y": 360, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "530701f3-adae-4daf-8fde-f7cee4810f27", + "width": 0, + "x": 610, + "y": 600, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "953b6b23-1d3e-4695-994e-e3075fbcbf02", + "width": 0, + "x": 730, + "y": 480, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "f6c657ff-b79c-4ba6-9eba-edd78466230e", + "width": 0, + "x": 790, + "y": 360, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "3092dab0-6353-4f4a-bb90-4d6cd96bd0e2", + "width": 0, + "x": 790, + "y": 300, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "cb5ca316-2958-486c-ac3b-1d13942311bb", + "width": 0, + "x": 790, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "574874ce-2e5b-44ce-b407-f64e94044bed", + "width": 0, + "x": 850, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "3356e0ee-0d3e-49ba-bc3d-4587eaa01555", + "width": 0, + "x": 610, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "9ec29ae1-4d24-4a40-b703-03c2c8dc8327", + "width": 0, + "x": 550, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "8d985ba0-7d41-4e4b-9dbc-512128e487d4", + "width": 0, + "x": 490, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "66dc94e1-debe-4a9c-84cb-7eaa0d8d42c8", + "width": 0, + "x": 430, + "y": 240, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "8fe1562f-52a3-48ee-8920-463a7f5f0498", + "width": 0, + "x": 310, + "y": 180, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "93250834-bef3-47c9-9f5f-3303855cb82f", + "width": 0, + "x": 550, + "y": 180, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "2a261577-96a4-4ea7-aac6-dc173da624d3", + "width": 0, + "x": 490, + "y": 120, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "90dcfe7f-335c-4e02-ac01-3e047bf97fcc", + "width": 0, + "x": 670, + "y": 180, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "db1e25d8-88bd-40f8-9845-12409b695513", + "width": 0, + "x": 670, + "y": 120, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "b0d6b919-7f70-4562-9a92-9ee8865a47fc", + "width": 0, + "x": 610, + "y": 0, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "ebf64cad-6a61-4024-95a7-d7fe36417325", + "width": 0, + "x": 790, + "y": 60, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "7c1e2a8e-3e17-40aa-9e2c-06b0ab6c33ce", + "width": 0, + "x": 910, + "y": 0, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "7b5c6d22-073f-4bd4-82c6-1be2a9cb821e", + "width": 0, + "x": 910, + "y": 180, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Cabbage", + "persistentUuid": "566a8069-f8cf-4163-918c-96ff12a677fd", + "width": 0, + "x": 970, + "y": 120, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 60, + "height": 780, + "layer": "", + "name": "BlockRoundedLong", + "persistentUuid": "88aad7da-eae1-40ee-863b-aced495eb3b7", + "width": 60, + "x": 160, + "y": 330, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 60, + "height": 1020, + "layer": "", + "name": "BlockRoundedLong", + "persistentUuid": "4bccbfb2-ac13-4f51-834b-b86d8c3954a3", + "width": 60, + "x": 640, + "y": -30, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 60, + "height": 1020, + "layer": "", + "name": "BlockRoundedLong", + "persistentUuid": "58137fde-cba2-40c6-9abe-e2d44db1fc2d", + "width": 60, + "x": 640, + "y": 690, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 60, + "height": 780, + "layer": "", + "name": "BlockRoundedLong", + "persistentUuid": "743c15b4-fefb-4898-9c98-03c002b64331", + "width": 60, + "x": 1120, + "y": 330, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "New3DModel", + "persistentUuid": "d215408a-951f-495f-aef7-94849aa89639", + "width": 0, + "x": 929, + "y": 486, + "zOrder": 14, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 60, + "gridHeight": 60, + "gridOffsetX": 10, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.5458823529411775, + "windowMask": false + } + }, + { + "associatedLayout": "Game", + "name": "ClassicLevel", + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "7d1c7157-fd69-4749-b573-4e4539880c28", + "width": 48, + "x": 384, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player1", + "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", + "width": 48, + "x": 720, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "58cfe16e-a34a-4efc-8507-21ea4e90d963", + "width": 48, + "x": 288, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6b9a3b3f-0ae4-4e6c-a125-4ad687bdd090", + "width": 48, + "x": 384, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "14d2f3bc-ff05-46db-9685-486509a64632", + "width": 48, + "x": 288, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b66eb171-4f48-40da-982f-067c5fb0dc3f", + "width": 48, + "x": 480, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "30bae1c1-27ee-4603-9376-3b70ce1dd0b1", + "width": 48, + "x": 480, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2ea8f2fd-3c88-4a63-9186-3e784d9c898d", + "width": 48, + "x": 480, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4db75a83-cf1f-4935-9282-327e260b6826", + "width": 48, + "x": 384, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6fc77e65-7e68-4fec-9d84-845619700d04", + "width": 48, + "x": 288, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "66ab9bba-67fa-45c8-92dc-b14b30f5e16c", + "width": 48, + "x": 96, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "752172d6-a7a4-4ac6-88ea-c09f9df89d69", + "width": 48, + "x": 96, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3172b443-37df-413a-bc38-e76c98098d76", + "width": 48, + "x": 192, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a46f2e21-7713-4b6c-a19e-74758ae95dee", + "width": 48, + "x": 192, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d4870add-5d34-458a-b71b-3547405a5a9e", + "width": 48, + "x": 192, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2d693e24-af10-4a7d-a061-8aa00cc02933", + "width": 48, + "x": 96, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "28f18d97-1264-46ba-a773-213e00174ed0", + "width": 48, + "x": 384, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e87c969b-2139-4962-95a7-1ce0d6b15703", + "width": 48, + "x": 288, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5c55b57c-f739-44ee-a958-b4ae3ad3333f", + "width": 48, + "x": 384, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b214a93a-8993-4b74-86f4-b9bcc5f1a90a", + "width": 48, + "x": 288, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "0df3165f-cb8e-4739-a6ae-d8a4d913222e", + "width": 48, + "x": 480, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a737afc5-512f-4cd5-9eba-ece0b60515da", + "width": 48, + "x": 480, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "262f1617-ed16-4812-9df0-5c7f22d20ae1", + "width": 48, + "x": 96, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "89b0437a-01b7-4b1c-9aab-09bd14e73f60", + "width": 48, + "x": 96, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "85a155af-c258-4c72-8644-d15de504164d", + "width": 48, + "x": 192, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4d9b98b6-ccea-485c-8582-6d18ec85aeb1", + "width": 48, + "x": 192, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3a2cb06e-cb43-49ad-9318-a6c2977723de", + "width": 48, + "x": 672, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e45a735b-c0ff-4aec-80ed-3827a69b1876", + "width": 48, + "x": 576, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "874b3cd9-2aa6-456e-b24a-6af8015ddfc8", + "width": 48, + "x": 672, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e9fc51dd-fa8f-4983-89f6-fea6bdad9f54", + "width": 48, + "x": 576, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a39da3f5-8812-43de-8aad-8a31f18d44c9", + "width": 48, + "x": 672, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "f7205604-c930-4ae7-b0be-ca6cd35ef247", + "width": 48, + "x": 576, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "29295d67-390d-4cb5-b85f-b13309c22ea1", + "width": 48, + "x": 672, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4a368537-4fa7-450b-9f6d-1b8141e32b05", + "width": 48, + "x": 576, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "eb3c8657-38ad-4ff9-b5d3-5734e345b268", + "width": 48, + "x": 672, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "f71a4afd-1e64-4fc1-9796-64746ecc44ee", + "width": 48, + "x": 576, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "5742a2c4-dc24-4e53-b04f-9b56a33daa2e", + "width": 48, + "x": 288, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "215a986a-7ed1-424c-84d6-286d397a924e", + "width": 48, + "x": 240, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "ceed3c23-a533-4dd9-ac2f-60a7741800be", + "width": 48, + "x": 336, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "e8c6c8da-90e6-48cd-9b3f-6a6c3e0ff507", + "width": 48, + "x": 336, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a1454a50-ee90-4011-b67c-1db66e79235e", + "width": 48, + "x": 336, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "393c9ea2-37d2-44bd-ac35-7c034d175d56", + "width": 48, + "x": 240, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player2", + "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", + "width": 48, + "x": 48, + "y": 48, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "47a02ec2-e086-47d4-a3b3-802be9644429", + "width": 48, + "x": 432, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "39bb8996-7cfe-4d09-b17c-bc2c34d2b9e6", + "width": 48, + "x": 528, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "731cb7bd-41a7-4cd2-9f75-a1af1d30fa21", + "width": 48, + "x": 432, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "9bd694d4-5599-4099-9fb6-0a93813b40b8", + "width": 48, + "x": 384, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "eac3ac8b-ad42-4b97-9a85-a4cdc3a3beb7", + "width": 48, + "x": 144, + "y": 480, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "f632205b-64d2-4b92-a68a-8bac9e59172b", + "width": 48, + "x": 288, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "876d0a83-5e38-4fde-87f3-a67b6cc982da", + "width": 48, + "x": 528, + "y": 96, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "c8e68842-888d-4286-8fb3-01cc44c74195", + "width": 48, + "x": 624, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "d9485aa5-4db0-4391-bc54-c3ffd7ea631d", + "width": 48, + "x": 672, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "328d169b-caed-4d65-8b7a-5790beab4af6", + "width": 48, + "x": 624, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a78c19d7-3cad-494f-9b4f-222c37b8a037", + "width": 48, + "x": 528, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6aaf7dec-e1b2-494f-92f1-a30aee41232f", + "width": 48, + "x": 528, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "602fac88-64bf-4f12-aca6-fa74eba5cef3", + "width": 48, + "x": 576, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "09450615-8339-4be9-86d3-14d7365bb1f2", + "width": 48, + "x": 384, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "3da626a1-cd2f-430f-8764-51443c6d5f3a", + "width": 48, + "x": 192, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "58b7fb13-68e4-405c-acfa-45a253c04f9b", + "width": 48, + "x": 48, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "0e12cdfd-6a96-433a-896a-6075506cee89", + "width": 48, + "x": 48, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "b2760faf-6c54-4c81-b63e-71054b454778", + "width": 48, + "x": 96, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a6c2755d-b206-4d7b-9380-e05ac55c029f", + "width": 48, + "x": 432, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "c456d29f-6f51-46b6-a502-6819d8583a05", + "width": 48, + "x": 384, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "8c338f69-c07f-43c7-980d-a9d7b4367e26", + "width": 48, + "x": 144, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "87afc863-46d0-4b3e-b073-cec7c09f9345", + "width": 48, + "x": 720, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player3", + "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", + "width": 48, + "x": 48, + "y": 528, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Player4", + "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", + "width": 48, + "x": 720, + "y": 48, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "4d573d7b-69dc-48cb-838e-dbe10606d7ca", + "width": 48, + "x": 96, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "f57e554e-c7ba-4bd7-8162-56d99bc687b4", + "width": 48, + "x": 144, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "e0982e25-849a-44f5-af8a-282e196a3892", + "width": 48, + "x": 48, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "8dc249b7-5dcb-47c5-8cdb-883e6eb6bb1e", + "width": 48, + "x": 144, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "05a95900-7401-4193-a2fd-96edce302e06", + "width": 48, + "x": 144, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "3e06ff98-e233-4e08-a578-c72b2fb9ccec", + "width": 48, + "x": 96, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "f806074c-c713-42e1-b1b5-a88dc88389fd", + "width": 48, + "x": 48, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "aed7e6a0-bea3-414a-b6f7-b4fef111721a", + "width": 48, + "x": 144, + "y": 96, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "38f08bd4-69bc-4dcd-834f-4df4eeeca33c", + "width": 48, + "x": 624, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a36d719a-a244-40a5-9ff9-683980e6f551", + "width": 48, + "x": 720, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6b227c72-82ac-4702-9330-244fd32c37dd", + "width": 48, + "x": 576, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "75affd5f-5c4e-4967-9169-ae377aa34213", + "width": 48, + "x": 192, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "4ae58c21-c13d-423f-8c59-b0e1bfc0ac1d", + "width": 48, + "x": 48, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "8b8ca46e-3191-448f-8a87-6f00819873d4", + "width": 48, + "x": 96, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "8ff42804-7dea-44c1-9a69-d44f373e3390", + "width": 48, + "x": 48, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "25e3e053-87ff-4295-be43-a54d37176cea", + "width": 48, + "x": 720, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "2653de06-4167-4f79-b3af-705c8699dd86", + "width": 48, + "x": 624, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a2ab3fa5-6321-4180-886c-905f3f82cfe2", + "width": 48, + "x": 672, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "9bcc7dd2-006c-44e6-91d0-12c147a0f300", + "width": 48, + "x": 624, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "4a4d1848-c9f9-4089-8eff-258e7778a957", + "width": 48, + "x": 624, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6e073403-b82a-4b09-aa79-b37085c5750c", + "width": 48, + "x": 624, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "aea0b909-8c61-4cf4-a468-0855027a2ac3", + "width": 48, + "x": 576, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a9bca292-d8eb-4405-b2b6-43cac626caa9", + "width": 48, + "x": 672, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "f6781832-4fd7-4116-98de-e2729e3a46ba", + "width": 48, + "x": 624, + "y": 480, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "e2f02250-f14b-4fb9-801a-5d164399b47e", + "width": 48, + "x": 672, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "727dbecc-980b-4d90-8ca2-8884bec06624", + "width": 48, + "x": 624, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "7ae618be-1ea8-499b-b5f3-0d38cde3b5c5", + "width": 48, + "x": 624, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "b040863a-7b37-4d87-a35d-39179d8ecb4e", + "width": 48, + "x": 720, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6d58b448-946a-40e0-860c-7f923b498b23", + "width": 48, + "x": 720, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "56dbf23d-8eba-4c4c-a8c9-7f1425c9f1d1", + "width": 48, + "x": 720, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "36bbad07-cf48-4309-8779-a58893bc7ae4", + "width": 48, + "x": 144, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "fe9320be-0832-4ef1-9c23-37c44ea208ab", + "width": 48, + "x": 576, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "0e2628b1-d14e-4c1c-82d7-878b7ac968d3", + "width": 48, + "x": 336, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "829d6f60-f9d8-4d6b-ac17-5e5a1e90a5d1", + "width": 48, + "x": 192, + "y": 528, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "3a86c945-39ba-4a26-a3d0-dc40761dcd0b", + "width": 48, + "x": 144, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "4e8589b4-5006-40e0-a6f1-dd85255e05cd", + "width": 48, + "x": 144, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "94213668-b342-4771-9a3f-0704dc99ec72", + "width": 48, + "x": 144, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "b6ceb590-65b0-4ee0-b2ed-669ff54e4935", + "width": 48, + "x": 192, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "ce198127-a399-4f16-b3cd-169361150bcf", + "width": 48, + "x": 384, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "7babe138-e3b7-4fef-8dff-3e9e119e66a4", + "width": 48, + "x": 192, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "335609c8-c145-4c51-b14c-c7aaf34b7e8c", + "width": 48, + "x": 240, + "y": 96, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a3417783-64b0-4e60-aded-015a351af296", + "width": 48, + "x": 336, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "1d3df002-4a09-40db-819f-aeb0c96ca177", + "width": 48, + "x": 528, + "y": 480, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "ee95a3ae-f9b4-4396-87bf-2507c0ed1afa", + "width": 48, + "x": 432, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "976fecaa-72e9-4786-b6d0-0efbb6972711", + "width": 48, + "x": 576, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "a2a35008-7e26-4273-9443-7e483e1f7eb7", + "width": 48, + "x": 480, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "fc768c1d-fd56-4d2a-887f-7eaabb28dad0", + "width": 48, + "x": 480, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "5f73fe13-5455-4395-8af9-1baa5b58130d", + "width": 48, + "x": 432, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "87fa0bf0-0a82-4113-a954-1c345b7df34a", + "width": 48, + "x": 576, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "29cff2af-a8fe-47e7-ac57-4a4be88e3be7", + "width": 48, + "x": 432, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "579e7c9e-86a3-4881-ae3a-65a6a8cd4d79", + "width": 48, + "x": 336, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6f4a606c-f04b-4772-b103-f17d45b4d904", + "width": 48, + "x": 144, + "y": 48, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "58348924-6c2a-4f1a-a28e-cdde5dd14827", + "width": 48, + "x": 240, + "y": 288, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "6bd07ea6-edbd-43fa-8b56-33c6fa505291", + "width": 48, + "x": 432, + "y": 240, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "25da9e7a-4c03-47cd-b31c-41adbf911bd4", + "width": 48, + "x": 336, + "y": 144, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "03811e1c-8491-43a0-9fa1-e3a9c45ce2fc", + "width": 48, + "x": 336, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "e8f99472-4219-4635-a5cd-e941ed9b888d", + "width": 48, + "x": 432, + "y": 432, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "83caeea5-54a4-4657-a1fd-71c420ba09f7", + "width": 48, + "x": 432, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "792828ac-5757-41a5-83e6-46e76ef71167", + "width": 48, + "x": 240, + "y": 480, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "7daca537-6c25-4ba1-ae20-b6ec313ac613", + "width": 48, + "x": 336, + "y": 384, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 52, + "layer": "", + "name": "Crate", + "persistentUuid": "e99d248c-c397-4a41-a5c7-27e2f95b0ee4", + "width": 48, + "x": 192, + "y": 336, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "593ffab4-6e36-42be-8f13-3f852811d08f", + "width": 48, + "x": 0, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "196d500e-5299-412a-8360-4ab254735345", + "width": 48, + "x": 0, + "y": 48, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "fc050892-13ca-48ec-94ee-338bfcc51766", + "width": 48, + "x": 0, + "y": 528, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "08d399ac-b451-4881-800a-118b9740aec2", + "width": 48, + "x": 0, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "0b467fad-42b4-44c8-b2f5-28e6e5ed5ee5", + "width": 48, + "x": 0, + "y": 432, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "51041f39-0964-405b-9f0a-a9ccfdc64bd3", + "width": 48, + "x": 0, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e3272347-a7ed-408b-ab4d-e200c87f1b06", + "width": 48, + "x": 0, + "y": 336, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "c241b0a3-2f6b-4bb5-b72e-e6daf998e9f8", + "width": 48, + "x": 0, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "892b6d82-e03d-47a5-95c6-ccc92c71dafd", + "width": 48, + "x": 0, + "y": 240, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "7e6badea-319a-4c75-ad04-d03c577d9175", + "width": 48, + "x": 0, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "148e1aa5-a9ad-4322-b734-cfa690359916", + "width": 48, + "x": 0, + "y": 144, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "cff5846c-3cbd-4f75-8d93-4b0e40946b1e", + "width": 48, + "x": 0, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a594a941-c5da-4014-b657-c2e35ed3da5b", + "width": 48, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "79602d5d-9703-49b5-b027-867485ca14ed", + "width": 48, + "x": 768, + "y": 48, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "384213e8-0995-47ff-9f96-c0df3668847d", + "width": 48, + "x": 768, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e940b598-9a40-4a80-9432-d6df0b3f87d5", + "width": 48, + "x": 768, + "y": 96, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "eb56a2ce-6a52-4ee8-b0ca-13f635495be4", + "width": 48, + "x": 768, + "y": 144, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "79c35a4b-f96b-4e3f-9cc1-50a4fec78108", + "width": 48, + "x": 768, + "y": 192, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e681b51b-8642-4c94-96a4-0d13c51ca692", + "width": 48, + "x": 768, + "y": 288, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "9cf0cb78-171d-4e6a-8913-da9e117bee1d", + "width": 48, + "x": 768, + "y": 480, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5d9cecf4-10d0-4563-b73a-a4ceda8a18ab", + "width": 48, + "x": 768, + "y": 432, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "2bdd5359-287c-4aff-9e8e-865a56aecb97", + "width": 48, + "x": 768, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "86a9aea1-e559-415b-892b-86e2c298bc2a", + "width": 48, + "x": 768, + "y": 336, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "dfaf0ac7-64f5-4348-a25a-b1bbb299ae65", + "width": 48, + "x": 768, + "y": 240, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "384457ce-e88d-4ae3-971a-b18ffa9f23a9", + "width": 48, + "x": 768, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "334a937e-41b4-4bda-b9de-b66bae663f20", + "width": 48, + "x": 768, + "y": 528, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "78beb672-c5aa-4786-8620-24a7b6b2bab3", + "width": 48, + "x": 48, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "c6f0bfd5-e35b-45b3-a9ca-c29ec49eee40", + "width": 48, + "x": 96, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "428a7839-6825-46a6-8757-093d022b18e0", + "width": 48, + "x": 144, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "6cc98909-7659-441c-af63-d198a534d060", + "width": 48, + "x": 192, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "30d73c66-6a15-4f95-8a82-aadb67ea4da8", + "width": 48, + "x": 240, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5b2ef542-81fd-44f9-a756-6d80e78be8ae", + "width": 48, + "x": 288, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "a694b7cd-a171-4ddd-8b13-2f53709dd580", + "width": 48, + "x": 336, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ec212001-7546-4a55-ba1c-61ae4697cd37", + "width": 48, + "x": 384, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "cb0474e5-461a-4457-8c66-96f91f5825ab", + "width": 48, + "x": 432, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "b3517830-603b-4d73-a14f-d106801d3e46", + "width": 48, + "x": 480, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ebd8fe2f-8a46-45f0-b912-8cdbf2288a78", + "width": 48, + "x": 528, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "71efa3a8-5bca-4957-8dd3-b5357a6b5bef", + "width": 48, + "x": 576, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "ab655757-4e5a-4bb4-8cda-b32107d23380", + "width": 48, + "x": 624, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "9bafcf1a-ff2d-4548-9926-ff1a6fadc3ff", + "width": 48, + "x": 672, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "76689756-3817-4193-9066-271e3723c1c4", + "width": 48, + "x": 720, + "y": 576, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e539194f-8808-47e0-a2a4-07f3bcf24e37", + "width": 48, + "x": 576, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "4d4017df-7a69-431f-b055-ed201bdc2269", + "width": 48, + "x": 528, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "c8ab0d99-760b-4b5f-8004-490b156ee22d", + "width": 48, + "x": 480, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d224347c-0d8c-4c79-87d9-f712489184f8", + "width": 48, + "x": 432, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "d4063a67-deb4-4043-b3cf-41d03dae4fd4", + "width": 48, + "x": 384, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "69c1c56a-9852-4863-b6b0-fd25ee920e87", + "width": 48, + "x": 336, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "67b97388-75ca-453a-b1e7-c561044f3784", + "width": 48, + "x": 288, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e0eb6860-3c6c-4055-aada-a97101853e14", + "width": 48, + "x": 240, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "41039db1-843c-48f2-8c87-bc9cb525e30b", + "width": 48, + "x": 192, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "e771bf35-e9ea-4d3e-b030-50d691893f8c", + "width": 48, + "x": 144, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "56de7b9d-2e5f-43a2-b212-766dd1e90d05", + "width": 48, + "x": 96, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "3b06a206-5264-4667-b8b8-cd2ab993fdf2", + "width": 48, + "x": 48, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "31bf35de-135c-4f9b-9bdc-9eaaa49900cb", + "width": 48, + "x": 720, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "354e3dfa-3cf1-4288-9347-9fa270fdf6f0", + "width": 48, + "x": 672, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 48, + "layer": "", + "name": "Wall", + "persistentUuid": "5cb8a795-4b14-47f8-a4dd-e8e84b244639", + "width": 48, + "x": 624, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 24, + "gridHeight": 24, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.88, + "windowMask": false + } + } + ], + "externalSourceFiles": [] +} \ No newline at end of file diff --git a/examples/3d-bomberman/README.md b/examples/3d-bomberman/README.md new file mode 100644 index 000000000..f28e11ace --- /dev/null +++ b/examples/3d-bomberman/README.md @@ -0,0 +1 @@ +A bomberman-like game where each player controls a goose. Includes a title screen where you can choose the map and between 2 to 4 players, and bonuses. diff --git a/examples/3d-bomberman/TAGS.md b/examples/3d-bomberman/TAGS.md new file mode 100644 index 000000000..09ba07039 --- /dev/null +++ b/examples/3d-bomberman/TAGS.md @@ -0,0 +1 @@ +game, advanced \ No newline at end of file diff --git a/examples/3d-bomberman/assets/BlueBunny.glb b/examples/3d-bomberman/assets/BlueBunny.glb new file mode 100644 index 0000000000000000000000000000000000000000..61c0b0094575ab15d4d9575a148f282cdb69e0ec GIT binary patch literal 1027532 zcmeFad9ZKURUX!Z5Hk{D2w)t`H^>Nh{rH{voMwnxjfO@|OVt{{v^(vm?%Ul@di`Ge z4MK9KZ2<|9pfDr`0x2_u!ho4Vk>JAEI5Nf*1{^3SF#&=jFvgT!xSU`JNn9b{{=Iwe zIqRPF+iQJmt2+OjX4LK9-fP(3S$kODUi+ylZ+Y!qcieHuFaGdL?)bOg@L_j+@tfcH z&~rzZZrnJ&d35h{M^7DJJ-&YF=C$ib_a43B>Fd|7Uc2$~r_ki(ufB48^@-!_FMr^3 z-}v%(H5c(;_0ff+cO759arxR+{J6fjJ9_@Y(eb-)9$!s=y7AT<$4?yH`^eE7UjOi8 zPh7wB__fELIll4qV~<~Z=Gp7VH}{ZtQK`cqZa&CoWxZm7H6G+r1k4t?F#P2UW4 zRkc;0+CuJ)$1h!hT8~s{G~NEE-8EC!bX~3d2`z43zjXD+l~a{=7rS<-o35#LyJ6`2 zA+_4oZQs}9(Du!=Yub9aa1Z|2b~|)B?5e55Z=1S(^!W>C=Dz0A_2#^}Xw-IX)%0Dx z>ucx?3HzR=ajIa{&ZsTy1v@=)!0q=)7ZB#r0d49X?H_6Ev$9f>M_5% zSXDze4!aR98@r*c;nxu@`>E}dChgQsZB_Lb>WlSQ4e;%57&K?wdjwt{$8N;1)#EhuZM*+#m0U3l7@fZB z>uEor_|1@jF;(5z)Scp#G3mD(s$F}by13i_Q&m&Fo6vQCA!#Tfa1Xw$cAR!o-?tU; zi7`HL0{q_Zc4IYS9QvwFPMF4B-PCn64zQ!C_U=0GgjzVEI`0HPDdB%t@9;l>(gg4B z@ik5j`UNs}ZB zm+%Pd`Vmg6ny!V-UDB{>sZ2PGi`VPa>*66>}K7dw?eSLB5k&_PqD93k)z?ZzeyN&-I zabg;qrXI$m{cewcz^`sG+77eKMm&^U2;HKm^b*)=dLLlRmdUhZX=C zfWY+W4#3V1;Or&@?q;k<{Bk<~IV6zIF`+u|lKtl}rZ_m%h{P3wJ^s|<6Tw&6)?Gie zEkYCih>rmy)xu{x%nJA?IRxJWLc@fQF^!iIBrEOnPago}SHR+Kng*zWeh=Wkf!+8v zd&F&k;=HBJg)}9d*!ue8OHatpp}7dP@udOg2)f;r{5tJFeSA;@V21e(@peGG#h(*0 z`xWQt^%B>S#K{J_Kq{Si3(i|{L4H{!3DL3h(0 zQm_%90IVszp>y z!K}e&i-`rZH6$ljj*xs}(aAWy_VSI@LM45B`0_E0B-I8i1=56!Se1g zPoP?l(HzsEsmb#!rGCWi zMSQ)85t#J>#~!Q7WDB}ZtHuW53n2;4z;rrZ#8?ejpfwo!5ew$@X`KIt@s~5B-~9Bo zTUW64&_*9C;Sr&E!X$}R2_o?x^7yo{n!*w!1?*ja+irYwSkqy(IQ3PH4`d&n5$WI{ z%yL*W;Zs_TC8AJ`#X*f>ni@oL$bwB+;8$rC0F%)@A};>6!H7|YFShpDz}Qs*gP;Ui8l0&76TkG=Mo4qn)=I4vv@b+Ft>-|$p5 zI{+8UnF@;q6}!o!=Re|eZaDjhDHZId!Se5gPjBTVy&rcD=N%+_0a4P^w2Q^qx@j8 zn#2T$-DR5UvD-!L8h3y@);vSnR;<=h)nXxa_Q|e|PMg=Xbgnv#H#SbwK47OW7W;(> zpK;e?{Q(pA-)jn+!=-?+A3fMBPB#q}OW2-dLno)O0>&;g5i z96?}Ra(hjSt>4rlTx0)(T`<%+nf?cF%x4+R5$R` z1@w$1B9=&4Jp#~4`{6=&5sq##>tkh(fo=Eul>K0Jh$L8eB8p>0gpoQMTg*78(@<_> z&|buRf@6yvRy6(oY~;k|2DUbcAP6rwuSlx_KpNhhu3aF{ zvp1y0DR5!M+K(fA3Zq+05f?CIJtjePjAH?;EcQc&V-<|YfDI->B^=-3t2_DH()t6Q zNsh-X(<)2J6#c6f>o+WAuv)`dVk@zq$g$~!5e*C))58DuPBrbvU=>#KScJio%UNi@ zj(YI;sq-@_X6bawgb5OH2hhS^6As6!zwNMu#l(oU1rD3i-zrS*h`N|u5eP7hX<*=U z{0#FSngVHJJ*kS zA*Kl3099!THcDS$=7CewKlsqFZ^W`_J>HmeaM%QcaL|M>fjvPQYq+^l$) z_J6|}6IKXVQ>8;Vz(XDCa}oG#sBu<+rr5unoN(>OI_*&h{0kgK?PuWqXs7ZjIwg_Z662+&AXncESJ{en#3uZ!m5h)-p zBa~xoAu*j5V%LlXFx-E#&^bJ~Ksvsww3@yB9WP_kbfK;;)QbhytFJxro^uhZxwt

<=%E57}Cd%twWlz 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%0DD`Z86v3FKl7`aqMt1iDE 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πV=8BfPiU)iPIhN6{;g>dp(ER>r?3C%kg_`+) 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�iQiFWB;v{@i5)AYXT457&13wW<_AxczvK= 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%0DNf55O3TIv2(7d{} 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 z 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�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 MJKrAP{&U5@0DO_!-v9sr literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/BombeBonus-1.png b/examples/3d-bomberman/assets/BombeBonus-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e01ff1068a5c672efc6de5502c93f3098d908c9 GIT binary patch literal 947 zcmV;k15EshP)r zjIj$}2IjKg&-;GgoA+in0XoxREh`}oU?qTrHS&oA=xV0^SQ<14HBf3#g>ri_R2J-5 z698~0cRRF;E$~8^f>wJ3s>CS-Xs~PozK-;?(FYkN?yiiwiJoj1NCH3zMN#ijS49P? zg z!E^wpvp2=veYkR_HknTsPGa$NbmU(N5opG1t?&+RiFHt&lW1B3e*fTZpKs_U@jLq& z86lqTLt1r!47V{toV~uWff|RykvyM-*bUc(GPrCXgL2`9>CXYl>*!NBg{b5Jc%S8g z^yVzg-Qxs&p23beBTWT+ps_FsE(trKOsFy)!0&TBrsNAS;({O@g-~z|Ld*k?e)hiP|9sDqTM1Pr=P7YT=IgRhTqZ!t z$WPAcQA+_R3Oh4nP>R+hD(b@exFPsQeYC3vfr_=%WG0Y5`CWO##4FN7TW5 zRH_=-Z#V$dv9dI6w@v6AZy1Hg4ZPe=2=YZS~h3;-i9*BbyU zS!7%SoIcV$0ZyxpOu(ai0y2GWWC9bq18_QI2mpXHF$U%}5kmm*p_3XTfJuWA7~2#h zfS{3cU_1uP=m*09aLIcTgH_15w-UIKyP$spEY~oAa5%gLkA)!}0Y-2yw9(+*C@azL zDa=lqb)eBdn3J-Wyp`1hi^h zidr4(R<~9Z_vtW-!aXOVxK^j4bs5KH99ug|MHI2(GV{KF{{QfuOA@fp%seB{n{PSq z_x<1h{mVH>niF-C`-VcHNNFha@?oLS^xEo~9pP9*gOkam(wXqsg&pDg_NFE$JvZ(w z36G5wgzJ}Oo$98hjFVMnL#nkcm2{HXx@B!ncx-85QCUH_A=RG5Lk|L~8&vU4qP&uQr zX0I_yzSS6onDoAfz>3B)YMXR~o1LVSj%8En@YwL2WPHkuy2+;(jVvx183`AJ&vnw7 zcnWJDE`q%RrKlaJcOSOf3@6!~Z3&MpjFgr|Rv_=5Eh)FCzda4VxR{mZZP;uq-ORmP zTr#GtXwQDxkKnF!`x{?W6e$l5URG9wKJRaQVOe?JX)7-;#&l$SaWD0kHCGiaJ@sY@{ zd^4P8>1%Im+l!}s0Uj2rHHJ3FV~JVm6e6;5H8j>bk&0!duLIn(on=c>>Bg!Udjvb# z)%NDJ<0R4dG`60Tp55-WV=;;%5v*{gB?cFk2K#F9oZ3l?d4beUt(-Wi1_9Yvv!5%A z?cAPr@`pUvX~5+Z^z!U{oB9?vI!&?mM7AoH{lBbo5t{2{V`@(%xJHe0GEQ1=)#_wo zS!H{+1s5yd0IjV~x&f;&CzFXao9#R?o{2FKj6}QvXWcxgaT>Au>3DrRH{oJ*rzKt= z&*IgJjyp@+d(LxiJcSD)+x;+D(TvlON;byQ%PNy`>^-9N7Q@Y+a+^*^}THzn}DqMj> z8e;YJ*s17yTRPqv&&JQy31Zot7MqhcOr)J6QBNumU{rvp17 z!wcW$5Bt2RFI!F$oC`j%RYHlN^9KYGW;=TZ$GBL#bD|p_NO9Z%N5;yWJ;kCA<2Ky0h5dBVAB#Hr>7t*}!jA{B zpDy}iQAa-me#w`4B%k%HzVT3tJ!C!9*<050)W{1}4>?Eb>@DYY>dG5bKP5-T%A7sL zvbK|6{zmN$)<&IshPBmYCY!wxrLOmk@0Wa;hdnWT_+1yd*emciQD+aim;N$ry6IJp zy6&OxmwcIrd)V+XM|aoh{n@u1=Dv|S_Xc{B8+h-^_K0LerS86{{)l>e=~(XoV_7hdh0E@F1?&<*X_BGe#w`4IIcNIoUb{v?1MSWJ;et6f*;5u zYCd_*F~fBIImAYF{p?}4=S%t}U*_R{Gv`tIC7*kyyK^M{k}vaMF8;ZbeFNX`zqtP` z`M!{OWPZU9ye|YND#zj+yE~`SFZnVLduYzJs5vKV;~wa4KTE&l%RJm;X8+4^Wj*4Z z7~gjPV$8wm9cW}VywWpa!<-U!q1w`e&&1M{|*%Xz&D}rOTNq_`K-s!|Jdd|-*v*z zZy58vC-dZb@JoImzx+NCI&+$}Am8W#zvK%&z(+m)x0cWYd3wq(`9crm7wZ!EZWs54 zC3IKl^8VrXzyJ3O$q{^RMSwrQvx9`}URgYF7Hbx-qE z4bLI=lyMWi{qQrtA1m~Lf53%lZ@|u9GxsW~e?Dlrx8w2!7X5j;4Zq>rh*ccK`a1YN z2jlwlW!H55c2EAJ#;@?sTzZVkFZI)oTjpI-l~7~#qTAq@SQ~j1A9;Kou|7xYd9|6o zF<#c(ou6xA=E$)PKj7CjsM_?nvbMeac^vjc@!@A56kqpeFTdpIby0l1E{flapZh^^ z^t!89y*KvqkNse~JO0++y55#*Tk5yn{8#s)6SLNJ)o0pyx&^-rzX!gBSPQWM9ekfN z?B%cAQ|=$)KCyFwE%l*4`rJM4l?$x?W9Qnv=oUCGI38jx+3OeU8+h9sZH^h_}(L96!^O zdh)8zt!HY^x0W=`_40HVeiwcld>646Vgow(K4;N+Ut2eQJis0CvxT5SQmLLl=?pR-`i*KXfohr0({yU>&R{ip7BkAG;sHU9Q_UN5=@jth>BSPOY9Sf#Rb5D5v3~$ga$J%+i1-}h{ z;LOUi48G5qzx8=5HTHOKq+R4mU7o2t-9InjyNI5Y1CpeJ>C zcJg%pjDYVV)<&!?b$O0>pTE6xfjjN!<#y54^Srl|zMJ>pzWg5ew&wE=HT;18ki*}y z`aS!NYgJX)QkQ2lPxsFq_%32C#ClSfXLJ34x7{W7m#$M#=}BGg;XK{npWs`FwGeAd zUG8Bq$NZj{xd;58rd%s|%m}Y_+t9#0(2L&%-v&Q$_QCJgFVFr1p-#7~_B3zVl ztZ~&zSCo4XwG^rvdhz?;d*IvPt8ZidUBNYH9^Ws&<(?n0z$^LaK$X82zyHk!z74+0 zufL;Ie(Bfas`{m_Yfxk5>71jf+5hIz^ELJR96heeFLhmm%Acomj;3b+`%TZ+)bDe+ z(rB6D|9{XgzHYl$H~hc~$}6Yefxov_tXo$%y@Il4-8CNkwtjB&`N?+->HJ;!PH$b^ zrCz^Xk9WeZ(6%jY!BhTxeoxPLelf1%*!GV-$WF@3w!CZ4+i*oEq^G5_&2z&y&rLl& z<)2?Lx8l;xgE}EQDW}w*R5AY0KX!J!zkT>6>koSjb|-D)H#`%U&)e5{`+9Ejn{mxJ zPp^-y)AgwOj9>6n{rNo87t;^XAJaG0U-3N9XYyBFf3502C3yDKJ~7pQEtSo2G*9uF zkIz}>^b=q8I4?@}@uE{)_Op{R6xw;(qfcuK}U+^8;|U(&H-g8w0!usmXp+cXmdWA zui`i#$>aF$!4~`KQ8NF1TQ{qIX{l`U-0+!~&spcAU%ap8MM>VSvRlT(q*jejsphvar^f%JOIA=aujbjB*Qx#X@29U*@su3ry!!W4U0N!e@tUXjteekO z9rbTme7*~k=f9%g3%n;gDfj33;B5z~@hMsVQ~h67^=qkY=GQ!1^E&yQ`G>FQqv9zU zU--RORJ@kTX1wMpKKsw-`%#}a@w|)F`Pn&tr{Zh7BG2yBw&APi?B|tlex~A9J$Hf1 zqirwGwzX~e>bdEo=_}{KK8w0-ZFk%M*BT~P9DCU$kMha-LcHfT+);eVvI29NQoC17bOWHrsHud2E zekCWwe^jKTJpvdBoDLLdNqZDf1QY@hEom2PP%i;S17!eyl|NLjCG9c7HxBw4z*sG5 z^B)r`0Di>s1GiF3+7p2Zz<4cbPXeX_Q-I09G%ab*0DcHe*OGRX2KAZ1Y+x2p4b*5! zyH@z-LZ1WFX-WG`4eIlNg}?$}KJfQi(q1HdKZd>-_>q>hV?ZO&0MrAHmb6=dW}rz+ z+Hno)X92B10yrB;YDqgKd}-+C0Bu^*&H(2E?LZb-q9yI+z%pQ|mb5#7^MDn=Pk@zL z(mo$p4Xo0V_5~W$e+pa-Tm)PQ{7g&Qmk8hG&@Tfn)sptlfh&P4fHlBXTGGA-xElC{ zmbCu?xDNOwa4m4Xmb7mIZUk=7lJ>8FTY+1En}OT3r2QM<*TC&s(!K+@3%Cz zT;MS+X+Hrx4s6zv_7>o2;3?oqEonak{0?{ycoukGOWMB&{snkJOWH32F9R}{{j37_#^P1mbBjoJ^=m` z__LO@KLkDk{sL?RwrffI6JQ7Mv6i$y1$F_S0Xu=uwWPfp_yYK=mbAYFz5%`lz5@PB zOWJ+=;JpIyNfV!CYmQbDYD0(JysI`C?yh!L?V$$Bw8zo^d(FNk1!d2pcm*R zd9fr81 znXfj2pU^KBrxe>};2!wv6Nt9}H=XP-c#r(Q38XFH=4{yp@0qWhXQt@~&ogh~*Asa5 z&_S^w0S10Ofr2@Kf;)lEze1h=h<}|h|3(we->A9Jq|6Ih%C(T0p3=LU8%ureaVz1- zUmY&WjST4a1uP^A@V{Tk~eA4s0s>7Jp*DB0>kw_#G diA18l>j$2^j&0-2quj; z@cK8V}>7%o7QAko0;Sbq}}~GztBRvC?zE&CAD`2H}xZERIk9T zc+jlABJa?wecn8jq_6+ z;2_H!;&qmR>$-9hxDERigK(!vfc*~8LVCy@GD610h_>};Ox^|<{P6)?nmkTPpXQ`( zoY5a2V30ws8Dt2+=#K{I=8$W;DVk^YhXZs9$TgjW<_-AO@5R(-kpDerTWc4qA-~!< z*h8L>Ir2ixX`9E;OhNzu0UnSUve>|k#%67t$sY}HPw5vKnWSu-*{>q7aj|JpuJ_!THpxc>MtfK dDJiL~*ALUgomn};`*Z*R002ovPDHLkV1kLU*?<55 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/ExplosionBras-Anim3.png b/examples/3d-bomberman/assets/ExplosionBras-Anim3.png new file mode 100644 index 0000000000000000000000000000000000000000..5d159cd4734abbc652dddb8318e59469cc5acb34 GIT binary patch literal 554 zcmV+_0@eMAP)yUy{(|(!NsD*CZY)jsL0P_ZG3F(_5d;kCd07*qoM6N<$f;MvPIsgCw literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/ExplosionBras-Anim4.png b/examples/3d-bomberman/assets/ExplosionBras-Anim4.png new file mode 100644 index 0000000000000000000000000000000000000000..20258491716e8949381bc1514017e0f1398493fa GIT binary patch literal 595 zcmV-Z0<8UsP) zx~PQM;3>CNDu>l`y(XfF*sEa z7d)???K%Qk!k}LS7L~v?sDLWC0}r4^*xUECuR^t@7)@yOF9s-sTTowt8jUS4Y21Kc z$Rakbzzr4E6{(TSb`}YPexWSiP5}9zdt~01-VNrLIBPF#Q;qOxl40N^9KCFc}pKbM}yp@L(T?a z&@V!ZN8k-i!JL@VV#%)}a-ydK|>E{vTE^`_)jL^7dzwpVe z7-BD0NC*S|#Q{q#Ef1rGL0Ozao=*e|oPU+Ct3 hsR8?oJ-ANgZ9h-Z#SMZFrzErFf*4~-#1ryJWOCnaqXF2 z@U7-O2IM@H8kBA^+YXrrk{IxB=uDkoQfl-7@PU1WQmJvQDRthxlE9D{@PQG41g^i- zKmeUddGDnl;Q8-fjlyZgxsR5ljoV29KCrG7g)!R;4=c?5I+oJFQy>6F0ofIK|MhLQ z*uTu)53C~*_)FWX3sqE}!(85tNIm1`03VnetCz;S#44Q=v{kzUrV6BWwhJ;hG7{5g#S#5j zzn?~!oyUHtlQV7N(upK0*a6Fmry-B8%u~De*q6kkNRN|}fJ4=(8yk@!m*N65!)_(& z_HISMqlhHnizYxc0f&eX6#}?U>81g|At{cN2;hij#1z|-Nmzx~^|I|t9D#2$K%jrE z3CuzYxk;PYGZ;KD*?`Mv&p`0KG-Y(!)(twy*0Y?%Gb1H7nsZErJ`w_HB9!z>i!@>m zqg{bHJmKcEN+DU}SQEdLl~Eo$i5~wW$!V!4_}pAHwxLm(qw+RRv~y**l$)`@d4F<} zYxKw)YtdlyxeXMFekn~oU(4nbz~ZJ8?bU^f#wrIaRc`$sY$ZhEBKK&K0BKXE=R>1) zXJ&`H*J8Xr*$bk?sw-Kj^4RFNhPz>YPGqP^kTA2+3tg9dKb0=|dSK=Gq5GP3kouYx z1KQ@(o4cBSGY|rBnCYTBNtji*ANJLMHE8UZ^RL8YIIKp1>3MSq@TN$WK)0gr&U)9*uA6kFk)k-+J!fZjW_HF12@GdD z^B#-C6az~$rfhTN9g;Pit!KCKgy+n~b`lWSi2|>mIfczzNak>i7mt|>mJ<*tM`?89 zAyP5$ss|NshUk-rZS11kqPy;@z-N%zp{x7r(fUzRL`(gqAGXn%BPF7!&3x4bAbv*Hx zz)n>G(-{g77y_n5X+ir;)|BXhGH(M5e3;aJ%xzd`bU4L}myu1TGvp26{ zb(SelQAoJ^^I8ZKD1ZU7=`>&8fUV-yP4XOhKR(Ac{wQek`WjZ{S9(&7_B@>!;C<&E}iKSKgJ z$!zB#@JV)`r3IgaA&5zcK;E;@Jx0VGEjPHO|XtW1Gj?|2E>v0@o|fv&|# z#m%Wk5Z6??igsKEk!BPD>ym&&M65Uj+FEokim#?rzFuB-%0R;53a9hX8>G#|!F{FvT6ibUn=ETW9zZ)txulqf_ zX$O+gP@9(3^%^y4F}31ul~raZm19?@;U}DyTNf9*dPKDNZ~bQwpl-L^OCp(`1y`d akopIA6VFHovGD`|0000`Mc|=a zHd0>zwQQ*pi1GoXUlMJ-#v69MV|#5b%Vwn`MT$K$#~zQzGa$tI+-qZs;S!h_4FQ@M zQ$;i-GEJ)6L(Z5W)zAHw{fsBS5&?OPx3n$d@=ef3(iL(+&vQtxTNNw=o=yCkpTHduGgp&K0k|xBHf!@n5e#;>rI)!pe*? z3*!f4m}lrC#xsLQfW(N(2+Ax+2y8uD)CuIWW=IgU19!mcuK?qH`~}7jBs)NmDIsyR z*&hbJ;rI~}aR!D_WE8Z3Rb0d{-p2x%-(qx>V%S9pm^9Aw29X`E+$z5)ofGOjyjl+P86_c3Q=j5)V+1vnEo`+$NX5ugnC zyDajoH3+N~FSjbSjfsRvn2)e44;ins`l5(*7b8znBG95fKjz%Hn*#_yXTf(T?@Y80 zAO<9#?19Yf%r5E5u|{2a=4o{t2FvlHx%ZOI69f!qeVZ8t|WKIl#}iSAJ} z0YqfQJCc;xroz`JFdT|b3&D;|sI8ryw;-vjEKaoIadu=OcP%7zm30D!Lpw54Az)|3 zDREL*0q=?9ub ztz%RrWN+o!0R-lp+K{DNR;i}7uvG)fcLffSrg6H`qNPw;tosB^Nd*`x?%tlMxLcIi zX2vbAml7zi7mb+Z^?ifmH*Iii!NHXiHaG@=+rTCDEp2ctgAI;oi^*%}$XZOjGq;#> zM$v72`M~tCr-I%YK!QEg1H~raic^i2wU@B*dTrKSPfFZo9RY3D2hL-}K4Y6zsnIhKih4yhMEmfuM0eYoWg-gShu+nZ> z5qjWJI0g>%p%&2ohOAv2)=b8ags_AneG(F3=KJjN*q#X?!pA?z-1!HV|BgJxH;zk+ z8wG5NhlsE>HZKMLdCqBppG5Yd0=_IC%nAn1DXI!*P7DE#!d{j84E$$B0ehbm0<0f` zQr|xnj1(0PTQLN*6!waO-_w=RXK+X;Z1(rQhR8GI1VaoJ!_gm5Oep3Y?EBDg7AnAJ zE+oMB4>OGg=gb`m{kVLH;tUwO0?uj_T|kNveWmyV@P>%!a2uk{GVpoExkz}*1;EkA zW}uCX>N7$<@TgT}xcAUm){b{|>)S_G| zo&R*DeAEzcN4-+sAXT`g6|Mzs@>1X9g|4+O^`>`a&q}_mVp}oGDpg*eucWZBRpH#w z!WLFqEFcwWSyLma(xPoxS}cmCMO^`Po5kIdNpaVtyk1Ikd41;_99WC#$e_jKY_P>t zK>WjQWp>d3mpAz^5mik_iqqtC4VrwpI9*E9HfslIv%VR&S-Z)!S%0ziJ?nsLTdmay zjqXQ-Mt5D($j~;rt-8N&eP-NOyY{RDE_>DBBEsgj$yW_1`EVK3CxU@; es$REQ37fwhA9=}9!6a$`0000XP)9`~i;-sG=m4 zi4=vt*qM-+*qE8h#?A;sB|5eetuWWAi=serV>==d_ee*H68q%b8^22>1OkCTAP@+| zk6=FCWS(`wJn{(a0*8X#@iTY_Wm4Umh z1IQ$VGPKU?%&b37%6BcFo)|Fi%z>fX8H^`L?|5eAf0b-cO^i?OO*ETIdh=fytjM!Z z9)8hy)iiI}ATm-8fY$|$>E`L7r2Zhi>A+rMr*s`Ew?zkKnjA)2?%rCY&B^b_?Ov9g zQThO6hR%Qiunues*2S}`cCg8Q)H4?VH+~7ck}woy%>;36CV*fD<4M*u&HLn;IlC+R z0fY+X<9|affHzjPR@Fux-OML>u9AIgUw!C|3$+Xc&{PP(DKDD|pjq?)3g3hZ--#!z z6?qtqPh??HC$c!JqHi=}ONmCFmJ)pP5-qkeSj=(liM~r}nJnfCznsq5hUO*zTS}L1 zWxA#O(@ni+9h*H?amyRxW1ZNs%DcGlMDL)C=CMjYn#iIg7&=x#AP@)y0)hA^_yiQK V$xa;&h1LK7002ovPDHLkV1i6k=a&Eg literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png b/examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png new file mode 100644 index 0000000000000000000000000000000000000000..c98d1f0918bc19ef5f697454cbda5e7cf01af356 GIT binary patch literal 643 zcmV-}0(||6P)UD~PCMLN}r-eFYJ56O!~o z@7CHI6nEA|rC6+pK7cEiE_CB%=f*`hUU584Cs2x$%p|EMH3vSXq%(*A&txVulR&@^ zKm72+b%DddaV(>CtO^yZpiAHpE8;VhA04#c588j7I%`;37;`4SR$f85jitE}KH*Yu z0;^&H61)MJlUJ=RpgI0%|HZ51A9OLC=m+eTAI|cA}T?06bTuFx-z=qGoTW2B}Ou&4Xb!s z?gX{X6Q6-Bhj^VVqxh&nj$Qf`&2AuNLA*|i!9dQSeSzBUi_JjHhIpNrf%v3J+ak5? zr?G(ud5%jCk?9%S5soqSvw?TI0keb^;1H+-Cxkk=R&mg@Q4gr-j^DsOa0E0>I3jhO zFt9_LM#WQh17&h|o19c_iq8Wf>U&_B%|Kgx&4PHH8p**czCHVdsn35AJ`fdd=j z?es*PCSKey-ve|fI(EQ7!-4_YqZ64QmyGY1tDv^axR!s++jM38*+%qT;|NhR^Oeu~U0yyo7ilBRz^0 z`+M`f$?TI(5QB>rd9b&1cSG?bzO!^uGdi zxPJ+2>aJjkYwCWClspK02XH{XS+SrIpT4q+k$Q-pboT6Ste@zE01em(k$5W`mR4Ho zwX~z^>+*Z79Y5%Az$+*X+ysVzdq5r-0SW~3dYIfZpUILK-lS;y=IebR2O!Cgso@!Q z2iriJh&q!E!VtqqP<``D8fe5{_BMdv<{)t#Ht|BsuahGmj0jQm@7e~WFL?0io~;H7 zF(ln?GQK?OCzSXXJO z+y+>Jb3heX0#*r2Afz-PcrZUK19U?D~$vmE1quDoI!sB$FUN;P8g z&w()?16kKNaGGwQ9wK?0dW5PoPMP60>;DMGscrrS-b6^==5+`I4}6lphcu%LD zLMt&CSPo&pZxlxk171_xh$5djm zgHs7Z{@9tx+{1QF=7gV4Cuu=bj=G@vCzh0*T+~l-E$VCh+bTtlZI$9*-c~V`jMy7n zx^!4P1GgIn*2LUe%rvUcHL$JEp0A;0KhzI+#v=J6aWAK07*qoM6N<$f@;BUj{pDw literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png b/examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png new file mode 100644 index 0000000000000000000000000000000000000000..859f45726960337e4bf1ce8169c639af1dee4480 GIT binary patch literal 923 zcmV;M17!S(P)B2I9SDiTMNLD6 z(t898Pz#Zokdn5dT~wu{1rkV8sVb|$B59>4z=n&2kcMODn2hZi-zlC(`V`Ba^XvTf z*gi93NizM2lDI?^d4#0pEKmkoK!>E`U*P}u0ByU2$I4n;H3niOho1}m??4;a0}9YK zMv{q(_M*w_=SV6(1_5<|1f;HMfo6#M-+&t=dG!M0jL4&SHc7~IH0?0;75O7c$1WQU zuo`B7EHDY=ff-;Hm_yX3y}Dn>FTIjx9|)G)t^Q!vx!vf=D+|eXaRT(6oE2O0iFX@MBQG& zV?}Jc;2|kHef9qtu&B0+4ch0KSG2EP1%q$_cnYlgpo*~to5a29SEv&+!MY0ZYZ94< zjR(LICb1fjDr%{k^GFc=lHN6A)|*<9r=-9Mp9T-PSK+M~2A-gS8H<5qF$|Qb`{<6r zz)yPvn?Mby15KcXG;v=I+xSUp8)yLgsJH8IGwTNK84Ubl8(72SS}v(!jN9aS+S{D= zE0h7_BlWAqO#Zcp+HBNP`8P1+QiZClc9l@(ZE)K z_W&>}cR!Hok<{Gl$;hu8pLdGkQl^g{Rflt5*&__;i-(iTR z?YdCKRNNU#37*&y&;>p_(8ac47}(<&Sf&izr%MSK!dgTQ@a*h52nKpS4Dh-RJxEdvW%TH9Onjyc2;YT-zlnu>j6pqXTBX65R%wJhtx^kfS|!R8TXzixeu!aU zi95B}6>D-g$C})Y`tlEU literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/FlammeBonus.png b/examples/3d-bomberman/assets/FlammeBonus.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcf5f94f41402458d88bcbbc594f9cbe697d458 GIT binary patch literal 1045 zcmV+w1nT>VP)Y=!i-p}FlTNVFGfO8>LLxyH9)oO&atM%89f7ZG zW}N4=#;yUIa2~_|MgU~}eZq=?@d9@f4>&>y6Cjb(xaKF6(0Lk(G?J_wZ=-uKaF^p8 zPBD#fEkAk)(&%+OXAs21!^R89LXumUTSyktiQI6Tg-$-|({9HzGV%8!t;gejsic2G z?vZst5Fi)k1$uzIMA~?mOr%J2jGA=ql4A(>gR=)@a@#G84SB`|827vcXWY>Xuaw`U zUhpa;DZw63DT_@{W;i@szTl)eLQ#t z(yTiEk!mR|^5W;SfKm=+@>dBoh>Rn4lyZ6XDkSarnG#m4 za-6jWd|e4;3(tt}0+MCB626*;n_~odgSpUhzOI%doa*vLWW@)_4K z#u;Bg;5ky_ML?qGj9WqyJ*E7SA)TO}7}N;Vc^&;yWA}heM5ys0{M;U4``|6ogH(Df zwcSu)a4W$^NGX%!0iadAY_Nm9Y$=1(gssL3*sxlB4nX*R&FE)2uLsjuS_>e9L>ePd zL%#bRenbE$SB1~fy)sWJ4PL4>B47d_C9hZNxxWGfyb?7c`5xK|7n6!eM#7c=2+(L{ zL;4fmuBk}uO5T86T~OqQUa#bvKr6}jd-UIF1YYo&nBU;dV7uLm`ymg5TLUu#ttsJH z|7ZLX80Bq82Os$>&cOd5P3TiLFbkX-A8t@DWQ~9!I^*{&*!Tu6B6i5I9A8W)y7+Fi zLD&hOgjv5NI^3=S$w7at0!?xI;ESJ2sm3WWhRxgNpg$LaMjE4Am4(dw-%R18wTy+H$dOK-e$5ES|a8d9Ux P00000NkvXXu0mjfC_2zI literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Fleche.png b/examples/3d-bomberman/assets/Fleche.png new file mode 100644 index 0000000000000000000000000000000000000000..bacfda51620203de7fabdb49e967babd413f8e82 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GGLLkg|>2BR0pkS1z zi(`n#@vXg{Tn7{c4t)Awf6iJ*j!Ws&GSa@tR+nIpJ z+nK`x9xrDu3wXSn*)QPnYUaFv$Mwuc0gvOEjRGJ4Wneb_$0tz9VEHXTHOxXq9%u`L Mr>mdKI;Vst0KauL+W-In literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/JoueurSelectionMask.png b/examples/3d-bomberman/assets/JoueurSelectionMask.png new file mode 100644 index 0000000000000000000000000000000000000000..435ea46e216cf48bf91fbb44e893ba1f52cb609f GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR0pkSJ( zi(^Q|t+y8(1sNDv7!3ZNKJiGG$8wHsSi;1spCdU06dW2D7@1foVtm(4vtKOJ?V|v4 OAA_f>pUXO@geCypRVHo# literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/MurHerbe.png b/examples/3d-bomberman/assets/MurHerbe.png new file mode 100644 index 0000000000000000000000000000000000000000..f40e6fd6308c601139d2538948eb124748a7c39a GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^20(1X!3HE14p{yHQk(@Ik;M!QjFlkFIG^F=L?A=X z)5S3)^OU9p(-@AJx@)8R&% zJ3rOFKBW;+9)Bq)OVwP?!Fr3g^;YYwdW{DgXHM#G=bkBMyl^JVY|~fAH@06d-^Zuo=+3#MtDce_V{uJLcY5nfk_w8(*%@3wY#lAM(o4))04T-AR dj2qsbVfgmzxU&({kK-WEdAjdCE&(6*^^!E0CMzPUjczAfz z$jHcV5VfLw!D<3BjBh8XEcmxe02~ zAq9qOL((|}mypgON&n2u%qhXGTrOAdU2zo}kw_$9GMTDTy8$UMB$fG)^y1=rAa@ea zW8A>P!h)CPg@FY6*NuSLY(68=9{D$cN{Z*v&mkHS86Z@R$eu*R#uS0L6_ODHI2<{K zBP$K88DI>q&tAB2A?@#I>OYDPL(P*FNQ)rWBF#gnAHaPTwI9Xn9we{>eeX30_??h6 z9t6L+26D#|IPInmolf`lv9Yn=qMNEQvzG&`nz6-T?lnc~&)B;Exl8dJ@V8>CqQN~0B z^gC0a1@Y`fOGYWf$%03#IJ8>r!z&_iYpmm60`N#U1Rl4W6SK+01!`Jbfzu)|J2_WK z%s!U_I>~Flo4-zrh&V(9BF&sjiepKVmTOi7zLZrxb-HJ))8piH4?P;T%9diZN6Pk_jblJ=j+9phXa5eaTjabb)_^=<>b2rg@meLu>=k-7=7Rw=ksq>b9H=lm93ZJxvO?E_cyf~V|Yw^_NsCXEM-<b$S zn-}0*)2p(@i2Pkhi7O=##qj!YV5lx+%3MU~4VAWmN@+-Mh^ZFz~4 zQ%z5&gX^Dd2Ue}!RB`k}Rr~8u-FbqO^X(;Yl6^7{4rPTx&8k!@B~VD-YJDj$II=+S zHd&0S|JjxU9|)asAt_~wm5SXpyC1+0=CvYlg4vE0*O#Z42|-i$#eyvgeW%fAwy8C$ z2XVj0_(JQKIcr|6R@^T<{~lgTD~uU>WWhD}RdKGy_MXoh%veJbEX#f;t6SEnK9BqU z5~U`cHCg4M^n#L>ZC_fB$(Acj-@kK!b&fQ^G4|)_7`oh92@dx{Zk*Vyb85Bv{(Mi3 z>N?d!*uTB-r;j#$QTi5Q&sq_9v*{`D;nNoZqPH4tw=T)G0q|E`*NR!q?#d7`n@laM zeiw?H)~*$a_QA{C1Nl4GU%Tzv3ib)Oq&p5bC)yYKhkK8&n!w@u&0i^NP>!tyfxoc7 zhCee;tmfVxb@QfgteS+nZu7U6TbOjrYsw9q)8hs00000NkvXXu0mjfaxtVX literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/NewSprite.png b/examples/3d-bomberman/assets/NewSprite.png new file mode 100644 index 0000000000000000000000000000000000000000..940a8ad3f76619ef82c8bb7e3fb96a580df107b6 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8jKx9jP7LeL$-D$|+C5zyLo%G- zUSSkGpdi3v7{~wW)uwe_3^F;*%z4K4zbp5DU2JYAvwm%X&4-|fhc}o!jyJ{K4}`L; zqCAvkqZwXC1cXavE=lHAkmY{mrQBPR!?+~bF*b9_#6I1I5}g&=y(X77vQFq@EnPa% w&1xINrHu>LnOyQXF6Lk*c4eyDF27$4AAFVdQ&MBb@0JMEcy#N3J literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/NiveauClassique.png b/examples/3d-bomberman/assets/NiveauClassique.png new file mode 100644 index 0000000000000000000000000000000000000000..76708d4666e8732186bd7fafcf579d4613cc4c0d GIT binary patch literal 2246 zcmcImdsI@{9!AMWJ}RflNSm-6n=uSYb2XMisilTR<|7p@lKDtiC~6N!O`_>#jWuJV zplPlw(_m6wl+Gl_J+u#27?|1e- zXP?r2d&8X_+#En4kaJ{2*nXgv0;R^@7P$N04YL8N#iWSDd=O~KBTKQWfGu$cf$R$+ z!*;|LyqK(=%;}B$y30VGzCt@(d?C8@tI(N_3!5NcC09WX72ougd#A+iyXxX`cr^6Y z+H;__9*9!N&g~@sdf&}^tq#?kx=cKBZxIi#%*wD!nFv7BR2zwXE8GEPomWIrQmZ4Cc`^DXBv2-|JGST+A z&+uAUFg8YyXEbYT0 z3Ns^_UHXzsIC8L0n?Z&uZ?KmtZiF7p%UdS}u0VZ6Q%#~vM`>Uvxi;oAySgfzy!B-+ z|NbrIp_9U$OjIPH+3JF`RN)!=&5<_~(=tj?$KzJvL|tab2La;q(`##2PdQff!a^GM zFYYQC95}cz(ofB_^H`7Ac6kleISLj~A8~_1HOqUIo|S}6CAd09OKqB(v-&^D8xZ;9c?l%LGiiVU zTEi^6gULPhttHm|>YVQod&a#G?n_X}oS{#0xwXGK>j7v|(YST{es!xL`Hq(E7}a>= z?I-J4?aYm?j_QYo97LW{%l@>4&AYJzAMvgk?csT+<%o((tos1J|$gK41jhJE^SS zkr;gMgIRv!PjhERefWfiiR2s|VOcF7<^zV9)TTZ(cPN>Yb8m)0#^L{TtKG ze+*9QnJ6bdPI#28Hl?nl9ZxUYtfS6!@yxEqXm{H2jI#SP>@|?NO<&V!iJoOfhMg@r z%4U7GA|jcrraXkkP)ch9WD1p@B7*)zDXp^LP{MQVf9wnfVE;=b~59ASJQy@BZ3pl9>{8$yZTgaBr64`^wN2+t3Q4Ii3~ODy9Es zIx0h@8*67h`6j#$;|9rG5|@qho4F=HCK7H1#&UDT{W+Vok=CA1Z#*eOca~hDW0w6} zgiYla{3U9&h{Ovb2F4ZQ{Vyl%k(0lRB66GZ#>!h&DeA}IznmDDkL`Yg8|TD*b(gKd zCmhLn+D3X0Br`j~0bZ5X;%2&~@kOF5{Z~4Y=RSJ^2nL{Hy#;w%xOoHxP>{jGxm$Yw zCuDJXKYKH~(kC45YU=+G{?ex^9bRPzOnp=dg|E`e|L%43dLbuO9>; z8WW83dw1tNdRMTPBz{k7YHD1wAVnER%6sZeKjw>*jLwg0xcE=L0y6ViM&y77T`*eM zqk*L*I+DLp{agB$d{sHZB9vn|&sBP@#iWc)+yle_1)o=UI<)(9jCx-Fw_xs}fwhV5_Y)$5*W^+Q|}JDILI zIN^NflxiVQB+_<}pPJ}S^Ta#hi+REttdv9%rd1JuengmVehdaH={nOeSu+>CoR+L; zakdkaoA)`M*|Fk%gyXyoIWodcD@l240v`A_V2Z$x9s&y=u0YSdO>Bk=BPbtU|A z!1GkUsQ9DS`|QFfBA!XpL}&*}S>z|Sw=1go=XyH1vd*`_m*$-|YeI3i{ZEmP>$;5# zat5BcHz(Wrs-wl8uA~QHdsfi)hTbg8Zz$_+Uhv31>B_~6^&!|Y@Vt}(d5QV=uj$Hd2%Vc$G`*)o? U%7%2nj|nJp=iacE5W?wy0zo5wWdHyG literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/NiveauVide.png b/examples/3d-bomberman/assets/NiveauVide.png new file mode 100644 index 0000000000000000000000000000000000000000..38f38bbbf58ba503b99b4f52330484f43a06b4ff GIT binary patch literal 1035 zcmeAS@N?(olHy`uVBq!ia0vp^XMlJP2OE$yUgN?Fq&N#aB8wRq_>O=u<5X=vX$A)7 zy`Cr}{Qj?bPu|YRKbyvI>Y@RQ zgF!n z;|cc7I|{YtCdlvw@jW}gfAv58nF$IrguXCw@IL$2Ez91LA=tvU`QIzwtp|G+y^uSW zsPwJ&qypD`>yrs>t}H%QGn`nM52^^9*>TarM@80m>cKPf=W}A7cjE%ddwUw_BX`?RR~XZ}~wJvo2R=Zn_;`~PS4>+NlAMa4@^x9xv;;Kxta!{_xS z>go=D_{@E*@gw&!ho7v;3;z6RdiY$N$9{hTP{HE^KUj^g@r&$I@0xGF%>HD8(>M2z zpO1f07x#H_PNVMMjDJs>7$^O^FcThfZUzE92?`RRaC{{QG{rn#N@ITl&y@M`1}G*2 zEow3hfLPuJk=!WWeLv2qdgG6`s+*_x0GadKL2a3 z0dXagH!!`BtS`2IZ_2l%kGH+k^d*5zJASyC4L~Cg!Yugn=Uz=FrmKK~(bM<|6gVj1 z6{k~Iee%uGN86{Li8BH+YviEr1SKL4wkAQaqZ@#MxcBEJOjm)N%={E&@@H^7N@w5-f^ZZr+?rr+{UGpz`vvKeaY6R%%yHf`GgITW!Nm%9Bg@4%k;`ex#a!i*XyqTtO7EG1Jdi5FEu8L Uc}PTV2Ig)CPgg&ebxsLQ0QN!JY5)KL literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OeufBombe.png b/examples/3d-bomberman/assets/OeufBombe.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd5388a115860e7150d7a90a79c430b7e530077 GIT binary patch literal 1466 zcmV;r1x5OaP)Y)M2xRA}DKntf~&br{FzBB+?4#(;^5kr3Qw2)@OaXpGSaF(d-J zTb39M{$mvXL8E^l#GrM95YhRM0bK+)rU5cvBJ0MBL6Og*%)dyV&B*53h* z%&V}IeWAi~xPx`8p|#Eptt`NPb{HD#+M$t+p+exOz1uplHs*QwnH_{41oNPNMLAJl zqZ&~=nGI!w33S!0;+!?>{LY$f?8JA#ediI9K5cN-okELtAd5^l`3h4Wu<2DyvpgS=~iKk@WL8jwG| zN#Xqi-JHLFkKfbxL{31wI2>XV&_NARdk$}N$p+oX9xuH615|Rp3(cY6h%Xumg04vr z(+NaIk7T&D22`QfIIczokis5?=lXkmKKHV$^R?7%!$`$wE5Up3hX^-`8ZA7H-oEV- z;v1(I&y?cpm;w}f-vsmLx+Vhe?;p$pY<_zI9Ar07y+=bJ;8k$cFD$G9bFST?;II*y zEJ)8GAcIYyD_+xQ5=L6C^7!$w;31=Cak zgwQ3UR*hpZ(jSWj?=2c!T$49XZyAzNXVfG#Dzxs1G?p|AnnNaIhC#x@-&01?)UX-6 z2Yc#*dBf?t_za%x+UyYur<}_}MD`nwRt&keY0{d) z>rRvRln^d0uOJAE<_w45Y&oXr-!cF~T$gtg;@Y3e0hdxNk&y1o8!nL$SJC2h0H;gZr-RlWHx0`2nUs=cg{OegQ=(f8!{t$<6WnGECsNZghIq7tg~=!|fx zDm-W{&UTyl}s zlntoMuh|6QK71GN0@H54F&F Ux4ohp0RR9107*qoM6N<$g6Vg=+W-In literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieBlancheBas.png b/examples/3d-bomberman/assets/OieBlancheBas.png new file mode 100644 index 0000000000000000000000000000000000000000..5a26801a16eb6ce65e96d9a5074bf1e93a12b906 GIT binary patch literal 1494 zcmV;{1u6Q8P)fN2*y9x;E$k2qHz@r26txm{g{2s&TM9OXXicFI+dPD zO-*+_dZu^U3m2N|>aIGs?&DN-uOp&$0qI7jFFLw0sBwat{L4&d>59aezVv?pu!-pa zdCPZBpHKq0hUr<-%P&sf&;jTsbLkEnfNLe6*U3E7>%s(JKiSK^Fah|%2Y`XF0Jwo^ z-UonHrq_o7z%KGH4~GH3>n#9yt8I##mDizA-^OVcws9Y`wRvT<5zfI@&nM{Uau^5evjL_876xY$w zQHn;RluD&cK-?1~fR9uoV}j%3*n4$;wt&X>xLsqW_+w`?lRqW6@um`k)Q>Vne_2I9OU*QUTb}b^t7soL*U3 zaUBhl2Z+m-E>g9yOqG=cRr49H{F=4l9;8$%@mO$^VzEe(NaV+M1L$Juu#BAUp=Ab0kYhCUM$ z6WrR0_a&L$(JFwOYN=D6q$mhVQL+O)O#sj)r&9xiM3~;#3V_eNtSkzGQcR)gQ_nU5 z$eenvA(bL-yaetAS90W2zX0~u-hiNk3wiQk=F70?^71lOOLBVj0NkOL-*Z3pQ=;zyn(V!k=~j0AAdd^f zO3W$A;^JaMon(584S*Bk)3dX)+`2kJKY*>SE-{PmuCD;D(FW@yc(uHm0d(ni+!VlV zGT(>)>o|_QQrYj{yb{1?j(AztI59XUA6rZS9F_}<%Kv3I0(ItA{QH|afWn1uc^lYh zz2IpCeO(IYArk->8qNUc=XGV@H3gQY2I~My(|__dfKvr;Ln>xLjJ<>;f9U|+DsNa! zD6$&>`23|4U0iXkOT}JpBmu6-!7KxKTI`L$#ZuacILUHyl&eWCag&9G1y0i?*`orm zPwa`^6*7lk053!1#q_t0KS-%JSeS}$eH*zwxuS7 zPE4f&l_@$O6qQtB&?EXucc^75pwy=EC1u0kO}Nmp8gkRT4eJ}8d)9;5bQPpx`k@Jc zM@2@ca|^_Y-vXs$rnoOL;aw&Gt|sTBb#0fW+Cd?3z0Qktn-Q545DGZ4ZS3QdR>Tfhnf%~>)fp=hCyKxhFa zq=i;Q2%-?9hzO*amqtdGedt4F_{D-21?hurRAUR2SQ@seqw`$InK4iQ+q^(*Y~G!j z^1VBA;0H6q-22}B&2Znn=iG>DTT_IdA)?vf251FczzLp%^I(D6e)KM34){bP!tLy# zp&u^x@;lfX3L@@~lpuGtk}-8I9WUBJu)#hWr2dZe!ivBEv&c)>+nXsrcQq9q&Lii5 z!y~6G!{xA=cZw?F8mSCNY5Jf;GLge-tm?BE;)D@_vBiLXwIbxw6|P?*K$j)0*M4T1 z#c|f0WtR-GdKa;dI6^MV9QZAwvm}*Tisw_e)xh4nWyy4fuIEJQRm3T^65Oo~)N^5t z9Rq%if!k!s*nro!WyyS}+iI%smW*|>l%A_s5%<-K80u~B=&L?>83W$bV_CkC%2T5M z>@OlxuOd4CGWJ@qALM{EFkZ-Y1O^uC<4>^4pMLcyBH4$CeW4;E+lPpXP!Un!L&W<~ z5mBPzVUZLHA}UmfIOMkoG@h&z5jRzcc*-pTjkbVB@C795Kt!#|wbVRb5f_IwZU*rh z7x7G`h@-qB_KfI&T_{$=BHpPK(a0;p;H8s#FiE2#K5%S27x9Q-dwaK+PCkQ^AOp+- zQxs-`C154k%vN%s7)YQ}nau7DqXt|8C%^%)0n7+ML>q^QVy>qK8rbOn$45{Fc7X&A z5nnm3VdE81Nn;yB;1MVU(*xLfdW%FJ5e1~3a4Px8%uz&qE0z!T+%it#r)9%zkWF*w4~ zVPo)=VW&yYfs|m>OM-o*CtJC>SL7)ldc#hh!{feij3R&?K4;11iNP!!>G~{oSVUMv kSVUMvSVUMvSj3p}6Ht=)KPygIF8}}l07*qoM6N<$f?x@^v;Y7A literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieBlancheGauche.png b/examples/3d-bomberman/assets/OieBlancheGauche.png new file mode 100644 index 0000000000000000000000000000000000000000..fb05e7f82ef4103f4adcc24e76370c30b2234606 GIT binary patch literal 952 zcmV;p14sOcP)`QQipu=6qVJG(Py=9`e}hNch}h$sP+gLl9SxV)yqn4t0>bkgs{)#Be`b~VX-jpH~IX%ZE+n&2hq*_H@`9zVW zhl*^oyJcG=K7Z_~*x>AMweyHLYtCN;g@pdIQj{l0^jww_AZV+nx}ehMaddHrcq;OH zL^wzV+dw{eF^&j_up)HCWc&G5LKr93omL(AgOEg-m;UJp*ol8g`kdti&e9F17@EL?~5giE{r~2r-vc#O?r+cYxbu{Ag#dbYTNU;zkXRh))8GC}a|WFNO`(J;jY| zRuM4*OHd#1ELIWA1s3s&`Cx`~qh+=@!6Ra^z#@`(M1+DL0!pakzcEAfNI((00uhlT zm<08VGAs}g5uiyB3F zx4`y4DqSnZLZZMy8osQq7j7E9%}K6 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieBlancheHaut.png b/examples/3d-bomberman/assets/OieBlancheHaut.png new file mode 100644 index 0000000000000000000000000000000000000000..24c986439867e032742547b7423f11a0e5457069 GIT binary patch literal 1173 zcmV;G1Zw+0nnlnz$FQQ ziz)#uVfNj`#edW5DCI`;m<TCN;D+@;BM0EA8vwiIT;Tv*b_2j&4nVyd0G@FG8r=Z!g#++eb%1PUQ4Rpk zEmJ)!k+Jo#695eY0FP7!*kCYyrWI2)8ogy=J#bw$fI?;w695>gt*QVZx@?wMQhu@{ zGPMJsisV(f&;W3WaSH&byLX`gb}<_!>k2a4nQ4H-%)(@!!g`yI11x8DpPbWkW;sp) ztYh|roY!wXMPn-fG6~(3Idw7HY!|>vX1^%&`onCMRe&smEQ8Z()~`Vtppq6|<+1=9 znT;s`FwWb};Q_oNb@b9Kz&3;Z-i6S1GXPIWJvE2|tkCD3Y6|I*fFZyUQdfsW03KWI zC7Ddp(9jV1{r;5UH;&n$hav#&mc}_0qPDg+8XO#?L?V&0fq{Y4F`Tm~zY#!=74L(K zZf|d=$;ruC=Wqd)xB041_5kBp2^XJ@BjIg~+J3);a0I4C>kF-0(4jD#{M zYvGyL&jUCu(_$bHNX>Imp)Bf1>Ld@KTI$JSo<`*E&m0BRk@kx2LDa z7Qb&KJjCdWroMnIB%9Lf1?=G(%LD-WV12=X2>o$Lc!Q(2x3`qV@vTk+pbzv#4s9`I z>2KaoPBv}w!6)A&{wJ2A!lK{?O?_*T@qJ?4tzu@!XzD)%NIYSqu8G;Z nG;7k&Jms!KLZ2;VMZG2nL!{FT;Ok!juu4R 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieGriseDroite.png b/examples/3d-bomberman/assets/OieGriseDroite.png new file mode 100644 index 0000000000000000000000000000000000000000..49d42fdcaf6aff22e056fb6519ddeb66e4a41657 GIT binary patch literal 1093 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieMarronDroite.png b/examples/3d-bomberman/assets/OieMarronDroite.png new file mode 100644 index 0000000000000000000000000000000000000000..25c94bfd53e9a734c5a8205170a10ea51da3b940 GIT binary patch literal 1153 zcmV-{1b+L8P)lrWi(9C{8zb@12^^9~FrN zqZb$@S-FSWAcFd1L4@?uJsb(y`KsIR=tNm_ zJLhic?%n?QvR$@&w)45a^E==3JBPa3(M5?_wN-g3HY0b*W@NiT-#`O)1N#VGPdfBm zI&M3nhF~}3r$UE6fcS}Wnzg*6ibL;z*$v!g$%C+(*qiPU9A=KsS~`z6Z7<**rV$v! zN6VCJB@4oCV2a!!Ala)~zPKobFD*{z>-UU+;5EszLA8P|mm~=2-~~@0JSk5u8&=6_ zK37g(RxhODBm?3^wPqG{@FzBiB-tPWfs~y<_hl!@>Qr)Bkvf)&7BvXS4Qp^Aj1G;c z{xJ|)@idB8e2yp1xRYKYoAqXzh$8a!&1PHr9TjCuA(-g2RBhwPZIpQTIh)yC9b(Ngjy%DQ{ zZD}Z1#sq0Zyun>(fXmFl2H{%U4|!;)2ZqYwIz5x`&@+piySceY^%eO^c7tXG45^ji z={F)LXEkva_^u6f)|Jd|jf-o7&rd_-9fGH6g6nm)RoVnUe8hWP5a@pq%^Gl12g&+A zKzau-FT?9j=v*Q}M0_InjSeCZt|!S)qy9jo+y|M#3@z|u<>|?Cr;&iDo@NjeH85I_ z)D}zv;xk!$oS6WG=ZbI;s1+VkF;7tuLUM#lcdnLZ zN_8Bz#TGz%$_2^wJeth}+_#kk#I;}tAv~g(25b;;!$GNnz;T%qBVx65L9jy>3l)h4 z0vu*6N-R=^;cGGJK1V;0@bJha0U_Z$;k|t4cKU?LlJ3mmeLdsJ!nR2e#E*&Y6bl59 zE0bV;XdN4|cNVvQK}qM=+FC3s&0hR7}nK#U=Y&7{ z6m1`R5`5O{Iy~+}sG}YsbfaQ3tR`m%a^pzUXR*T|!XUyR!XUyR!XUyRrd59dWO;In T$*~#j00000NkvXXu0mjfAb$xm literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieMarronGauche.png b/examples/3d-bomberman/assets/OieMarronGauche.png new file mode 100644 index 0000000000000000000000000000000000000000..bbd12ed8231eced7836e6704dd9475fc3a4d8e04 GIT binary patch literal 1145 zcmV-<1cv*GP)ysjsl}Qnbegt6zM5J<%0K~8I62p91f-o_R5)8fq8eXGPh*6<|Vq*9x z1SCUL&>sR2qE+BG$Pxq?n+5& zp%%nM0gQA{UUB9yw_vV-5Ili^<#@uJ0AV+Cmpy~vGUkX!aGyMb;ESjSVHMbw-m?dL zo_Y}Qw97D3XdU$+z|c1D9>HIigYgx`riDI%a1`*dm}Lt7eY#iYk0Hy1m0jsAlP`lm+G8gHFM3b<2C3A z(k6GD07RGXgEdB=1sPhsLWVj4+xklo!%b-38KXu}J$%jv?_1!t8PfW87~|T}2bQ9# z&gT~)p;{`coWXmiM&|^Vu@2Vfn1V^d;w1ry9)eY>3X}%}y#eh$lhi(@Np09!!z!dM zC+ytg4zwnZT?&RDgeTn!pZzxr#*dvJE@Fd#28Rg0pm&mfjOZN1c`hPKL##joqJ^w; zzI&WU74ba8@Ga>W?^=1sn!KRFU&1f=h}u>bu&G{(IJ2(u5% zAoy&`yrBav3y48LiV1=aIw=7$g!VsExK(H5q_uVSO;&-=o$|Q`bg~&b>z65n0oXI` zowfrWM*$a)D%3JtFFc3e`e{GuvRLBhpB$5w$of==mY{C>n_LRW?$CQC*xtGmzP-<_A) zy{QlS`QT2Yr)_*SWU@?jYBj4DMQD^Cf**t*gdc<-gdc<-1hM`DCn0nHxs-|o00000 LNkvXXu0mjfBqaRS literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieMarronHaut.png b/examples/3d-bomberman/assets/OieMarronHaut.png new file mode 100644 index 0000000000000000000000000000000000000000..de491abd3ba9aea3c5c58578335ef15def33d670 GIT binary patch literal 1518 zcmV-Mv+S1VfcDu9NZ7EA*Bs4U%tS#N{PeBq17)^-0NTTt#(qX1U9 zkyS2q-Z+4KUKoIgpByv_5b-O+!T_9Xsk#G<`qDt}e}VT16-K9fH$DQ!UE~1xJ?e86 z3YkiPaRCm1fUvpHbgxvz;XZ4`%|^9+h+JX-T%s25&g@91KVblTEc|{TrYffy0B_~O zh9<^XeIq$A0%Vji0*8bLfK~Yz10bFYF7$T#3{*Lt3jm)n=D?>y17JA?44q}T(CqkN z&E29`C9<|3wgG^g;>d+g3JEaTFRj*bpOpM7WHt)nbJD|mSB7KSi2K<$Q z@hSN;rdE=y0z~|B13dVu1;(f3D(bWyAQU9`#8mmXg@)fMesU%psJh=4fN-GlVR*<_ zwi*Awe1|0(O97JA=U=m6d`f-^_bZQE0stB2eW38$EE=DZ?~i(vl^Fq?sjtu1sWR9t z=gY3;=H698C)l@k_E<<*ziC(~hSdG^#S%!L@d1 zv%k5_G{jV&;z|nu6S&@#QZTFu+y>o6uPwI0wo|IviLBHyMnLwNQ5tM0)qI|}{Q$Jx z2NT=edZ6^C1%TvjpBbeXX{I=O|K?F>u3l?4lnycg$je3*hPqt|-#2()d#!`M+U+(o z0z<4hFl1CAMwOvPv?-l#;OymlnV6%JyaM>B|mE!d7* z@l(`SxhkXLZt^|2-@3s!$2y$017M)=JflUUi+K8JNqHS1AmhAj#locv01F!gi@#&4 zhCKd)-2nKEw(SndmLsOb#MV~o89NGBcx0 U0WgV-&j0`b07*qoM6N<$g7#9!m;e9( literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieRoseBas.png b/examples/3d-bomberman/assets/OieRoseBas.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea49263688674462e8b3d8c3c92981994795965 GIT binary patch literal 1877 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 Q%m4rY07*qoM6N<$f>p%*CjbBd literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OieRoseGauche.png b/examples/3d-bomberman/assets/OieRoseGauche.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c9a1c5ee90044be44ff8beea4177a06b489a4a GIT binary patch literal 1154 zcmV-|1bzF7P)2ee?Fsn{l1GZ@NSjp)@Z{NQJ5E_rkjV8F~%XS(H{l82vF!HD-na4DVxA9|;5oC=KHFwkCwrS-|Ry54Rs;NI7jPuHZ@a3ef z9NRDRD>t;pC}qX-Ca^`*^VvO85)TA337Mo6h{6G`zC}6i6TTcb8{^Grif43OQF_$z zAc}gqx)tW6PaT<^zH4N*`#p!iH8wZ%i!caX|4<(ab#)|&$u3tq3_c7sjq> zCh!QQ%7d^7+1L^YOV{^x1dq5Q0OFVvjE|I+^+*bYWf(&Q6RS&hhkz7dAja8d=in~#mc>i}NQ@VN7bPQW`4Lgo10kI!qM z`C(0)!f%+VY2La(peGlvrSi&|Non9`OlUsVFA=}LiwuYd5+E8x`^CD%gJ87^1|3Jc z=Tfzg*3li|rv~QGV9Cy3v;ega0#q^X(oMYo-VVn9j%Sqa7Y2a_8ze8#7_XmNLMHHi zkm$Y$vx(M)rUg8 zgg_uZEKTA94e+8Pb_NjZxgy!*J_i_-tj-97z>goP3W6^ggg~&$N;lv4R22lTy$XSd z21-?@MUxc_b{7IsYZxOG260`uFeACpa+*qnL4*yXpR$26X3HUQuw<+g8og64NMem6 zU9&{PbIN%HAxq>z5VBY?2vs~SkUv9JQIUZTOhrI^!gQXo5l3!OM$L;}dO6 zOK)5vFSJlqRWGgJDEM4*05w$=ui60Bl@+xm1@Mbu+}!ru@^{zQJi<}ho_~Db&#~A|B>|9S ztYwPQ84z9|Gx$zx0E@AgLD6dqC~wPEi;$Oe1t^~)Bq31VmI*AY9RQB32j%lJ&De|D z0f1tMy#ioatpH&3A42<<0Jxf>^Z{)EvXl-;C~r%@HUOZ^mkI!fbpkl10B}qvfI(RR zi&8@yfSh662uhuh02s$Qdb!bP^gdARf(PY)vrMx}%TNNm(d%viSVr4eXet(a*wyx7 z&(JvA7n-wI~nYwgbipyUC8`FvIi0B;Ls;4S@6WRwm&0uVB! z{|pfFo}&w8Y+osu(B}dZI#3ET@Vx-wJFNjQodQbE3IJv&D7{7ZtVGey!@-9VliXf#VmOyWF1wE~zn%|}70%Mt*y8Pj}B7l3lG>u+R_l(1tT z4=Qn8_1u zQujjxmlhiUwMDV~vf{ieR1eu3hpQ8X>*TGXO88%?G^7>CR4RMbLy2n>Pmz@S5~UwzTl{ z&YjYVqz!|QLtOlC=ud|lZYh(=#<+sHh9I)0Zq_D*^Ua7_cdC z|32Mvma$Ix#1>}d2svsuau#g#)P@bA1Du3D=C3gbZ@%J&af4cBj?%k9&e;*9pE%z0 zV(#kV6Lw_FSk4+AzROo~ckVm5U(q&G0r-8_eF6G7v34y!U%=bXK+@|7G1lBXlP(ef z#7KYT7+V(T1;@$O)|C*)9}his0(~T!npT8!M+OTUcj|>)Y!Hbnys~vmrw4M$hdvoP zjEX+7l#t)S+cEssqWBlxFj@ey0=&gK{2u~LJmEzhD0L9zNP!&0cTn!b{Qnz39V;4r dT6V+><$p}a5YQq2EX4o-002ovPDHLkV1iLgr9S`w literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Rock Moss 3.glb b/examples/3d-bomberman/assets/Rock Moss 3.glb new file mode 100644 index 0000000000000000000000000000000000000000..cc38c10bd8c2a73272dbe62036683d9c5cdcbac8 GIT binary patch literal 5496 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 Wz@LFX0e=Jj3j76l4)_P~ci=yj{9YRX literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/preview.png b/examples/3d-bomberman/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..f5186186e402384756488d7eb9fd80bd1830f1bc GIT binary patch literal 57493 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�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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/square-icon.png b/examples/3d-bomberman/square-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7815081447c1eefc439b06911385fd058dfdf332 GIT binary patch literal 2414 zcmb7G`8U-28-IUh?AutItWD)w@-^Wyw#CYbZ+-L&xZujRygNZhn$48zWISnh^VBj-;wn zGn^Awc8rVPAC(P9ItHD(B{*7?kC*-Qr1(UTw=_J+E+-Ni%R<{Yuj=VF)p`fEV0>)G z(O2GRM%4bjJo~x#kGRyjdfE3WrwjCXB=ucJ4S=H(~D{91O>j3ZH#Q z`f@yjxi0!cln4Ac!2>iPyaMRw0J#7q27F*-0?6R~zeHN@qgd7L+EvN&qEr|yg=K&A z#q8?tp4ax-ZY@buwJdy`LQ1$oQr|s7g^1;Anpk0CAJS+)hnx8m1H-F?G>)y^hv^8G zNo3OMt?-&c>0;na>-d+ha1Bl^@hq^OkwB4a75D;GYPb>+W_AKLHX}t56P7@H@K~Pt zzt8HYE-j}nE2uz4jO#Qo zJZ8T?KJ7I=ynW=n ztTIUw*@!@#kP93PBV-shzBL3&i@`7d)O#3nctvKu(bsS@ce2hC(Kwx!|1Mtg;Yt)L zQ^1$mmh0$RSSt!*&|B3{U->bnQUYo_mP7$2aEfdppQsh^j*i5&i+HRT*HCnohg?qG z>EWPR8EA?){#r<%IvJK$o*zF&2YyOp&WrvkNr{Y6UAH+O!Bnq$0W^2g-2 zarIJBjPfcvCLXn7ShmnA4_?nV=#Nc>rh(?E3a*z$5oPcuUnu9=VZEaLbg(@57`XM< z69m5ht`>M*+ZobVRW1c1tL|4D?5XeouP9saT2S~xfL+k)o72G0yg=A+tul%eyuQ9f zJ5o?Za-)DLnAdU8-wRXWA`Ulc%b6H^-$?*OZmfwv%NHzV#=zAkRRv_{QV?!Zz1;LP zUzrl6-wn!y0rCmY;en*9t&E{*g(U&FVE$GE@?tUEXQ+NB-A|JQJ315M7Z(`M1-(N8 zjT!r$<^glZtMV(&?i3sE0~1}nwfsXRwOnlwe>NUkIo58}v^Fr(!+c|7jgTAs@}fT< z(X+=wYhv26cf%U1!9=b(DoY~|b=K^Vdd&WSQVs0l$4jbS#EGO~*ope9QDNZ57IXi3> z>lhKf%}pDCq)jG1+<4v$BStQ-@v?yM<3m3OTJ*Aq=?jn?IzI3)4kGds_#_Vc>o-&w z>z;G+cjg&c`+>V%v5UG?)4ch3Bck1kq75VT`e<7=eFYoDzMePYvcbmNK4Q6O}9>ZRnDgte#I3t+WnBt zD@nNS(74W>mZ*<@kf6=eqY3-jl~);PEKqg2847wwIVyYs)*{v3JjBw}~EvW+adhf-p zE-n|skWR2#sO)M93^l7F3!VRHrYn)=gal4Lce&#=eJaREIFP#xYED-Wkr2T6zpAuj2I$s1-AcU3 z0bFDg9|< zYYwAtVfd%{xG>>IHh4p4UZ8R_8RhR_VG5$BxjI}v>*?{e@d0XTL5%qG&^%Zj478Oe zrgL_S?-{{S6gXY$;mvn&J_P=O=EBDdidVcVsX$ZceG3;k$iZQgpNH0BkDLV5i&lII z5JYd6;*qA@x-NSL337DYIon(UtMY)7Flduc8vPb}7mOMi6glcWoPLjO;U-V|(o_4; zwd~y4v^#Wk7Xzc!#2aALiXDl{HM_w@C_p8+KdwB#GDltl)I3^l+T|rgtQr9*xr$Mp z-LxR)yr7cMuR!&;xo#_EF9TFPcmoh-JfLj0w5!BUxkZ{P46IxpJxgqmCBX1d<5f4; ziDuj9P#?59y4ok)7z;lFLwWA%w2fBJgio=Dk+W2i8a1dK_(Hh?9{(d`M}?D<7zMy# z%{yp%-CBmdqN%Uix24B{1CNdTt0a$$d|rHf{DyrWv}qBN@$Rh_))3T8%v%t)*`}$( z@H@-I!75wDe|^N+=RVnVFU#Ih?}LcvbxiCmV7Wke5ATn;RQ833EF+t5$pA1GjHYHLz!L`?h- DiG)l& literal 0 HcmV?d00001 From 106fa5ee03b736370800cd3fdc6f7bf226512799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 6 Aug 2023 02:15:16 +0200 Subject: [PATCH 02/53] Add player rotation. --- examples/3d-bomberman/3d-bomberman.json | 180 +++++++++++++++++++++--- examples/3d-bomberman/assets/Bomb.glb | Bin 0 -> 12264 bytes 2 files changed, 158 insertions(+), 22 deletions(-) create mode 100644 examples/3d-bomberman/assets/Bomb.glb diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index fb81b1aad..3c2f6b173 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -529,6 +529,17 @@ "name": "assets\\NewSprite.png", "smoothed": true, "userAdded": true + }, + { + "file": "assets/Bomb.glb", + "kind": "model3D", + "metadata": "", + "name": "Bomb.glb", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Platformer Pack/e3840854ed7be06c0f09cab214bee0eb8271d4a7f39b5a90fbc0740b0780deaa_Bomb.glb", + "name": "Bomb.glb" + } } ], "resourceFolders": [] @@ -2719,11 +2730,11 @@ "StickMode": "8 Directions" }, { - "angularMaxSpeed": 450, - "maxSpeed": 300, "name": "TopDownMovement", - "rotateObject": true, + "rotateObject": false, "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "angularMaxSpeed": 450, + "maxSpeed": 300, "acceleration": 16000, "deceleration": 16000, "allowDiagonals": true, @@ -4836,12 +4847,12 @@ { "name": "TopDownCornerSliderObstacle", "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 0 + "SlidingCornerSize": 40 } ], "content": { "centerLocation": "ObjectCenter", - "depth": 60, + "depth": 40, "height": 60, "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", @@ -4861,7 +4872,13 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 + } + ], "content": { "centerLocation": "ObjectCenter", "depth": 60, @@ -4884,10 +4901,16 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 + } + ], "content": { "centerLocation": "ModelOrigin", - "depth": 60, + "depth": 40, "height": 120, "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", @@ -5036,6 +5059,29 @@ } ] } + }, + { + "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", + "name": "Bomb2", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 100, + "height": 90, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Bomb.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 45, + "rotationZ": 0, + "width": 90, + "animations": [] + } } ], "events": [ @@ -6117,9 +6163,20 @@ "parameters": [ "New3DModel", "=", - "Player1.CenterX() - 4", + "Player1.CenterX()", "=", - "Player1.CenterY()" + "Player1.CenterY() + 16" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "New3DModel", + "Angle", + "+", + "sign(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))), 720 * TimeDelta())" ] }, { @@ -6129,12 +6186,12 @@ "parameters": [ "New3DModel", "=", - "Player1.Angle()" + "New3DModel.Variable(Angle)" ] }, { "type": { - "value": "Scene3D::Model3DObject::SetRotationX" + "value": "Scene3D::Model3DObject::SetRotationY" }, "parameters": [ "New3DModel", @@ -6144,7 +6201,7 @@ }, { "type": { - "value": "Scene3D::Model3DObject::SetRotationY" + "value": "Scene3D::Model3DObject::SetRotationX" }, "parameters": [ "New3DModel", @@ -6162,6 +6219,11 @@ ] } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] } ], "layers": [ @@ -24990,15 +25052,14 @@ "instances": [ { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player1", "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", "width": 82, - "x": 1020, - "y": 598, + "x": 1039, + "y": 606, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -25584,6 +25645,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "d1bd6fd2-2b8a-4061-82b6-02ad29a9f452", + "rotationX": 20, "width": 0, "x": 370, "y": 480, @@ -25599,6 +25661,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "db5f17a8-f631-403b-8b72-34e6816b0d7f", + "rotationX": 20, "width": 0, "x": 190, "y": 420, @@ -25614,6 +25677,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "70f11907-30b4-42f4-999c-008c2de43a3b", + "rotationX": 20, "width": 0, "x": 430, "y": 420, @@ -25629,6 +25693,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "22b0fecc-0d27-4565-9d33-25be22bc1783", + "rotationX": 20, "width": 0, "x": 430, "y": 360, @@ -25644,6 +25709,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "27b0cb7b-615b-452f-9c0f-f0eeaebf1259", + "rotationX": 20, "width": 0, "x": 550, "y": 360, @@ -25659,6 +25725,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "995de96b-fbe5-4cfb-9e26-c2b5e0497d1c", + "rotationX": 20, "width": 0, "x": 250, "y": 360, @@ -25674,6 +25741,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "0a2dbdeb-7bd4-45de-8afb-ecb61ff39573", + "rotationX": 20, "width": 0, "x": 190, "y": 360, @@ -25689,6 +25757,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "530701f3-adae-4daf-8fde-f7cee4810f27", + "rotationX": 20, "width": 0, "x": 610, "y": 600, @@ -25704,6 +25773,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "953b6b23-1d3e-4695-994e-e3075fbcbf02", + "rotationX": 20, "width": 0, "x": 730, "y": 480, @@ -25719,6 +25789,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "f6c657ff-b79c-4ba6-9eba-edd78466230e", + "rotationX": 20, "width": 0, "x": 790, "y": 360, @@ -25734,6 +25805,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "3092dab0-6353-4f4a-bb90-4d6cd96bd0e2", + "rotationX": 20, "width": 0, "x": 790, "y": 300, @@ -25749,6 +25821,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "cb5ca316-2958-486c-ac3b-1d13942311bb", + "rotationX": 20, "width": 0, "x": 790, "y": 240, @@ -25764,6 +25837,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "574874ce-2e5b-44ce-b407-f64e94044bed", + "rotationX": 20, "width": 0, "x": 850, "y": 240, @@ -25779,6 +25853,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "3356e0ee-0d3e-49ba-bc3d-4587eaa01555", + "rotationX": 20, "width": 0, "x": 610, "y": 240, @@ -25794,6 +25869,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "9ec29ae1-4d24-4a40-b703-03c2c8dc8327", + "rotationX": 20, "width": 0, "x": 550, "y": 240, @@ -25809,6 +25885,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "8d985ba0-7d41-4e4b-9dbc-512128e487d4", + "rotationX": 20, "width": 0, "x": 490, "y": 240, @@ -25824,6 +25901,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "66dc94e1-debe-4a9c-84cb-7eaa0d8d42c8", + "rotationX": 20, "width": 0, "x": 430, "y": 240, @@ -25839,6 +25917,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "8fe1562f-52a3-48ee-8920-463a7f5f0498", + "rotationX": 20, "width": 0, "x": 310, "y": 180, @@ -25854,6 +25933,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "93250834-bef3-47c9-9f5f-3303855cb82f", + "rotationX": 20, "width": 0, "x": 550, "y": 180, @@ -25869,6 +25949,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "2a261577-96a4-4ea7-aac6-dc173da624d3", + "rotationX": 20, "width": 0, "x": 490, "y": 120, @@ -25884,6 +25965,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "90dcfe7f-335c-4e02-ac01-3e047bf97fcc", + "rotationX": 20, "width": 0, "x": 670, "y": 180, @@ -25899,6 +25981,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "db1e25d8-88bd-40f8-9845-12409b695513", + "rotationX": 20, "width": 0, "x": 670, "y": 120, @@ -25914,6 +25997,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "b0d6b919-7f70-4562-9a92-9ee8865a47fc", + "rotationX": 20, "width": 0, "x": 610, "y": 0, @@ -25929,6 +26013,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "ebf64cad-6a61-4024-95a7-d7fe36417325", + "rotationX": 20, "width": 0, "x": 790, "y": 60, @@ -25944,6 +26029,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "7c1e2a8e-3e17-40aa-9e2c-06b0ab6c33ce", + "rotationX": 20, "width": 0, "x": 910, "y": 0, @@ -25959,6 +26045,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "7b5c6d22-073f-4bd4-82c6-1be2a9cb821e", + "rotationX": 20, "width": 0, "x": 910, "y": 180, @@ -25974,6 +26061,7 @@ "layer": "", "name": "Cabbage", "persistentUuid": "566a8069-f8cf-4163-918c-96ff12a677fd", + "rotationX": 20, "width": 0, "x": 970, "y": 120, @@ -25985,7 +26073,7 @@ { "angle": 0, "customSize": true, - "depth": 60, + "depth": 40, "height": 780, "layer": "", "name": "BlockRoundedLong", @@ -26001,7 +26089,7 @@ { "angle": 90, "customSize": true, - "depth": 60, + "depth": 40, "height": 1020, "layer": "", "name": "BlockRoundedLong", @@ -26017,7 +26105,7 @@ { "angle": 90, "customSize": true, - "depth": 60, + "depth": 40, "height": 1020, "layer": "", "name": "BlockRoundedLong", @@ -26033,7 +26121,7 @@ { "angle": 0, "customSize": true, - "depth": 60, + "depth": 40, "height": 780, "layer": "", "name": "BlockRoundedLong", @@ -26060,6 +26148,54 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Bomb2", + "persistentUuid": "2d2a3717-dd56-4be0-97fc-9fb39f8628d3", + "rotationX": 20, + "width": 0, + "x": 280, + "y": 507, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Bomb2", + "persistentUuid": "79278144-82e0-466b-a04a-1a223590aae0", + "rotationX": 20, + "width": 0, + "x": 815, + "y": 505, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Bomb2", + "persistentUuid": "2a34d1e5-5f9e-4611-af4b-291ce312ba45", + "rotationX": 20, + "width": 0, + "x": 760, + "y": 28, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -26072,7 +26208,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.5458823529411775, + "zoomFactor": 0.6885261796051886, "windowMask": false } }, diff --git a/examples/3d-bomberman/assets/Bomb.glb b/examples/3d-bomberman/assets/Bomb.glb new file mode 100644 index 0000000000000000000000000000000000000000..01ad10cad1df00be6f4168628bc7a7430e36783d GIT binary patch literal 12264 zcmb_h3w#vS)jtFB62U-tKQycl9!A)m*=L%)!%Hwc5(?oVh_FdEA&_KYvjHInDfj?e zKhR>W1&bD`LNzM1fRMcdKA>8^wtU#Hh%J7UN~Pad6|2>v)}Ax$Bxl6o+ao>jSsm_nHRQT#OVNNU&z(ZG zuDm(*u9`?S%3RaT-{rb$Vr5bKg?nzp+?Jo}UDeUr1?JS0{^(eBiHlUKBZ+9dGE#Nk zT3M{Fq$)bCvMgHW%1gxSqG;p%0;8)UrHjz3#U=5{(L|)Gs9Z)@PcgXGbcr;&7^^?#O3V8gX zfFFP34R}NTV6KOpORZ$t#L(l`qRq15zJ`X}dY7~7};|K)&A=RyUg8s~$HUq3(VCJhikp-o(+Qkc^@#t{3 zTP3gKmDQDr%B3l-NFouhEU8P-kM*u8Mbiq33yKQO%oY|+ojhuiE6>xA>#D3Nt1KlQ zwI#!-L_9fJ&~jat1uwVY;}$#(W?e-}(Rghve!gf*>dMQb@fnrTWu_mcvFgRKnrKa; zc==*1O`iud>?)1b)!-&jgF!NPJ5}g#&Ev!R2zZ047V>!l#HbbwVkP*z9;}>TAmH_q z4D~{qUsL^|pxYNR>!K33#he@QcPLZUkOzMs40yFrF3Ha8`&FOYtpz>a026W}3DZ5- zjGM-2xVx}|Sr{Jj`2PvxV)K#q3+E%lDH=2lDM`(rHfGeMQByDQz*Khj0Jn)nB!;Yd z{N5l{D{ix3&}7Z)4*9$&3HotcY4{st((UuOJzifR6x39oPYe3JRDu?lKDXcJ_i37n z><2IlRN!8(-|NxbUbn}On^g@Gm0xS+Vq~DF7n0FZ6J{tEn~xQE;rtddJ$_{SD`a9^ zE$QS{YF22;@+_bJKv8* zZ(G|R@=!2rdF>+0Q){x%5BP$}HlKen_b;3u#L7s2K9-7od2H*!uh6H_A#*+#sXQ?9 zG4*aQwv?QloF|3=j4mj|(-UCZq3sg?S(Pb1w5v`$cf7Yex>^;P;^5Bx$vrrC*`f_1 zQ#|PS!}1oKOFn0c*;+DF%wm+8Vq7bX@rqQu8DU&YBF`el^QB_)*_xXcWFmd|Nn z%!|MriByg|~4?KXhJL{A7$*&WIYePmvqI&#=9Z-V{R?Bo;g45&obZX%x(^|r93R7Vm*Kh( zqudFvFRYZM4?HHmJdmAyAr<4+kESG7G|rWc_iYpRH@>WrP6_ICI+z`{bas3+C49r) z4f3}8*NP4(_pkkd?7nf0=yQjzT5_^EDX>lk)-5p>&l@ip7QOcz36uP_;>RV!V(??z z1<9#jm<&!?i$DV62NQZogyi{u1 zAwL-wS+hb0&84^)=Ia`4U4yM_uyqZ#uEF9pSiA;{SF(5w7OzA*P3S*yM{$MGH=W|b zbp^&^%F!R~T@atRF2$&m9Q`qMh=25x_|#LJTXV@bYcBb0 z&6R8}#c0i?*e#!l6U%4f%JP{ww0t(0&jxZ%HK3>Xx3It*nQ^7^WnqCir8+VDJl2?* zXUZ?uUXnOV)uDw=E=ZoLTa!P;V(F64I zdggv%@k-`{;SiVMv@Y9Iw*AHU$2_#;g7I(bGknhyf8;0e&+PL(iyXJuh|7 zth`H>cf*MX=8suNDSxP*X}_5Lg!L}NXlcZHAHpGdWEf5vlwl?&PmSts;vhy|7|?*vjBZI z`K3LGu~>bNdJbWUJ%r99s|T9<)v7lqImZR6sNA+OwX`~SsKksb4ov+Jyw)Jhsv#oD4o^5sF$G>6pSJVYp=M|=m^q@em7kRi3+#=QW1Z@a`C~gn znLkvUmOsSR*PgA6AGF=fk7WGV&Q`{cZ7;L6=qzhKH`zIE-WyV9D4mtoId01f#qV&= zTDilRn*F4Emz6s@7c9&x1T*Bhf&k2Za9(&75!c5C{I!+rHpXJ3+R zE;#9MeTD^}%jA+_!EEYW&gQOi(m}Zuug-P8GWTnBa4iF4G%!Z;p;?E^o$N3jilx~O z!!|j$!*$rY2A6YvuEXUH7#!rQ(vi1?(J&G^z<8Jf3SNKbVKcc67C;+V2*uC|rb0b* zg#x%2y1{(-KJC@E}|RFTx|R53Ywza5pr;J#ZDi z+}#hm!3F;Tx5Hjo0X}#Ew!o=^_A!eW>W-Ju5NKnY~ST*!wq2t#LxLJ`~o{h<)X!7LaHm%$9s;b!OpqhJh7 zfSaHlOoFrU5qyf{r|>cS1O5qL;P?fcgU{e!&{p{jA5gx8HcCevJ1Xsz%ajgE7aY4N zmn)r=&Pq2NyD3*HS19e30XPm&1}a^ZETt!oJ(X;whtga5JM_Tk1NabnDOW2W!qrM& z6lV#5x5$y(USJS}}^rt)eLvf{pEgy)Vbntzfcgn5mlcF8k zPX}M~-p^&xyIaIf-Bx?j!E00YiO+QKjI8(NxpVtOd(=+{cP=|AV;dR;#+ytB`}Tb# zAGrE}xNGoSPdb=<_!RwVi~OX6Eg!HR!s%dR&r$j3>wY5Ip#604$u7T^6O~6r&)0kJ zOb3(AQ)nOan@k6Pkn^P+`_q-;vGN-Pf72p zJ;|GmKZ@|CsH4wpEraVXlUu@N-+Ehayw^UL+hoEJa*ttIQN9X#?AKP5U zgN-+?AN;h9II|~a6i>Es9w!M9k5mBd$>Fyo!#FD?tQ` zm#-}~7!S6*a2*z}&Hlq1){D<>y^?I@9=H#>47)g%khrg1)rh#hSDBy>z(kq25;Eo z@!mZVpEA7V55^nt4fqt`o5(=C84to|6yDmi@C~F7K6!YTABOkk5%^5TyT1$Hgs#VD zEWW?=#dnGU_y~OK>4|s$Zun?;%btqwM8$aXF2TR^@Gd?VZ{@S_Z?P$vi)bX?&1d5{ z8*lDGe6N{;;}pD^7vYV(6vtA$*^k5f`E5AfhHq5)_&zfe$C-GS_uzZWG#sblTR{Nt M_2oF0<6FVM0bz?N{r~^~ literal 0 HcmV?d00001 From be4c93f88d71fae16a65b4be7aa7a42b5ac79a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 6 Aug 2023 21:15:06 +0200 Subject: [PATCH 03/53] Replace some sprites with 3D models. --- examples/3d-bomberman/3d-bomberman.json | 48692 +++++++++++----------- examples/3d-bomberman/assets/Bomb.glb | Bin 12264 -> 12264 bytes 2 files changed, 23536 insertions(+), 25156 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 3c2f6b173..a2ac46a1f 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1,5 +1,5 @@ { - "firstLayout": "", + "firstLayout": "Selection", "gdVersion": { "build": 99, "major": 4, @@ -575,15 +575,15 @@ ], "layouts": [ { - "b": 219, + "b": 48, "disableInputWhenNotFocused": true, - "mangledName": "Selection", - "name": "Selection", - "r": 175, + "mangledName": "Game", + "name": "Game", + "r": 80, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", - "v": 209, + "v": 64, "uiSettings": { "grid": true, "gridType": "rectangular", @@ -594,421 +594,362 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.6864000000000002, + "zoomFactor": 1.1680000030517574, "windowMask": false }, "objectsGroups": [ { - "name": "Level", + "name": "Obstacle", "objects": [ { - "name": "ClassicLevel" + "name": "Crate" }, { - "name": "EmptyLevel" + "name": "Rock" + }, + { + "name": "BlockRoundedLong" } ] - } - ], - "variables": [ + }, { - "name": "Messages", - "type": "structure", - "children": [ + "name": "Player", + "objects": [ { - "name": "0", - "type": "string", - "value": "Ça me gave.\nChoose a level." + "name": "Player1" }, { - "name": "1", - "type": "string", - "value": "Hé ouais, 2 niveaux.\nÇa te cloue le bec !" + "name": "Player2" }, { - "name": "2", - "type": "string", - "value": "Là, l'oie, c'est moi !\nChoose a level." + "name": "Player3" }, { - "name": "3", - "type": "string", - "value": "Ça casse pas 3 pattes à un canard.\nChoose a level." - }, + "name": "Player4" + } + ] + }, + { + "name": "ScoreIcon", + "objects": [ { - "name": "4", - "type": "string", - "value": "Me vole pas dans les plumes.\nChoose a level." + "name": "ScoreIcon1" }, { - "name": "5", - "type": "string", - "value": "Prêt à canarder ?\nChoose a level." + "name": "ScoreIcon2" }, { - "name": "6", - "type": "string", - "value": "L'oisiveté, hein ?\nChoose a level." + "name": "ScoreIcon3" }, { - "name": "7", - "type": "string", - "value": "Dépêche, fait un froid de canard.\nChoose a level." - }, + "name": "ScoreIcon4" + } + ] + }, + { + "name": "Wall", + "objects": [ { - "name": "8", - "type": "string", - "value": "What's up, duck?\nChoose a level." + "name": "Rock" }, { - "name": "9", - "type": "string", - "value": "Fais-moi signe.\nChoose a level." + "name": "BlockRoundedLong" } ] } ], + "variables": [], "instances": [ { "angle": 0, "customSize": true, - "height": 120, + "height": 24, "layer": "", - "name": "PlayerX2", - "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", - "width": 120, - "x": 288, - "y": 192, - "zOrder": 20, + "name": "Score", + "persistentUuid": "42e783b6-213a-45b7-93dd-5d15c9482f94", + "width": 48, + "x": 72, + "y": 0, + "zOrder": 1000, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "1" + } + ] }, { "angle": 0, "customSize": true, - "height": 120, + "height": 23, "layer": "", - "name": "PlayerX3", - "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", - "width": 120, - "x": 468, - "y": 192, - "zOrder": 20, + "name": "ScoreIcon1", + "persistentUuid": "906f526d-ae6c-414a-8084-114f9a51cd0a", + "width": 33, + "x": 36, + "y": 0, + "zOrder": 1001, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "1" + } + ] }, { "angle": 0, "customSize": true, - "height": 120, + "height": 23, "layer": "", - "name": "PlayerX4", - "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", - "width": 120, - "x": 648, - "y": 192, - "zOrder": 20, + "name": "ScoreIcon2", + "persistentUuid": "2cc418a5-16ad-465f-a4bc-ff0f479488b8", + "width": 33, + "x": 132, + "y": 0, + "zOrder": 1002, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "2" + } + ] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "height": 23, "layer": "", - "name": "ClassicLevel", - "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", - "width": 0, - "x": 288, - "y": 360, - "zOrder": 4, + "name": "ScoreIcon4", + "persistentUuid": "1713db2a-fecc-4906-b55c-8a68cc53ab88", + "width": 33, + "x": 324, + "y": 0, + "zOrder": 1003, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "4" + } + ] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "height": 23, "layer": "", - "name": "EmptyLevel", - "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", - "width": 0, - "x": 564, - "y": 360, - "zOrder": 5, + "name": "ScoreIcon3", + "persistentUuid": "69e1ebf6-95a0-4c89-a026-0666d11c2762", + "width": 33, + "x": 228, + "y": 0, + "zOrder": 1004, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "Number", + "type": "string", + "value": "3" + } + ] }, { "angle": 0, "customSize": true, - "height": 72, + "height": 24, "layer": "", - "name": "Message", - "persistentUuid": "102af169-1519-4d29-8d02-fdb4dd10ed38", - "width": 528, - "x": 288, - "y": 48, - "zOrder": 6, + "name": "Score", + "persistentUuid": "c9cc7551-b991-48ff-ae7e-10ca7eedc420", + "width": 48, + "x": 360, + "y": 0, + "zOrder": 1000, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "4" + } + ] }, { "angle": 0, "customSize": true, - "height": 120, + "height": 24, "layer": "", - "name": "Bubble", - "persistentUuid": "dc4421a9-d865-4d35-b679-d0ea94864f69", - "width": 528, + "name": "Score", + "persistentUuid": "b35a1096-fe26-4162-988f-887c1db68133", + "width": 48, "x": 264, - "y": 24, - "zOrder": 0, + "y": 0, + "zOrder": 1000, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "3" + } + ] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "height": 24, "layer": "", - "name": "Arrow", - "persistentUuid": "1b867022-f84c-498a-87ee-b8cf9aed916b", - "width": 0, - "x": 264, - "y": 144, - "zOrder": 7, + "name": "Score", + "persistentUuid": "970d4113-26f4-41fa-9bb3-716987e4632d", + "width": 48, + "x": 168, + "y": 0, + "zOrder": 1000, "numberProperties": [], "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Narrator", - "persistentUuid": "8c98d64d-ae30-43d0-8756-61f3be3dc933", - "width": 0, - "x": -24, - "y": 144, - "zOrder": 8, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose1", - "persistentUuid": "84f0fccf-dfbf-41ad-816b-22107bae2126", - "width": 0, - "x": 312, - "y": 240, - "zOrder": 15, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose1", - "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", - "width": 0, - "x": 660, - "y": 240, - "zOrder": 15, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose1", - "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", - "width": 0, - "x": 480, - "y": 240, - "zOrder": 15, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose2", - "persistentUuid": "d6379345-b3b8-49f9-a5f2-2d2d860acbc2", - "width": 0, - "x": 324, - "y": 228, - "zOrder": 14, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose2", - "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", - "width": 0, - "x": 492, - "y": 228, - "zOrder": 14, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose2", - "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", - "width": 0, - "x": 672, - "y": 228, - "zOrder": 14, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose3", - "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", - "width": 0, - "x": 504, - "y": 216, - "zOrder": 13, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose3", - "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", - "width": 0, - "x": 684, - "y": 216, - "zOrder": 13, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Goose4", - "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", - "width": 0, - "x": 696, - "y": 204, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "height": 48, - "layer": "", - "name": "Controls", - "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", - "width": 480, - "x": 288, - "y": 552, - "zOrder": 21, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "2" + } + ] } ], "objects": [ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "PlayerX2", + "name": "Player1", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + "variables": [ { - "name": "", - "useMultipleDirections": false, - "directions": [ + "name": "Number", + "type": "string", + "value": "1" + }, + { + "name": "Keys", + "type": "structure", + "children": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "JoueurSelectionMask.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] + "name": "Bomb", + "type": "string", + "value": "RShift" + }, + { + "name": "Down", + "type": "string", + "value": "Down" + }, + { + "name": "Left", + "type": "string", + "value": "Left" + }, + { + "name": "Right", + "type": "string", + "value": "Right" + }, + { + "name": "Up", + "type": "string", + "value": "Up" } ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Range", + "type": "string", + "value": "" } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "PlayerX3", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], + ], "effects": [], - "behaviors": [], - "animations": [ + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "Up", + "Left": "Left", + "Right": "Right", + "Down": "Down", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 1, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "rotateObject": false, + "angularMaxSpeed": 450, + "maxSpeed": 300, + "acceleration": 16000, + "deceleration": 16000, + "allowDiagonals": true, + "angleOffset": 0, + "ignoreDefaultControls": true + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement", + "AnimationName": "Walk", + "DirectionCount": 4, + "IsScalingAnimation": false + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ { "name": "", "useMultipleDirections": false, @@ -1019,12 +960,12 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "JoueurSelectionMask.png", + "image": "assets\\NewSprite.png", "points": [], "originPoint": { "name": "origine", - "x": 0, - "y": 0 + "x": 9, + "y": 6 }, "centerPoint": { "automatic": true, @@ -1043,16 +984,122 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "PlayerX4", + "name": "Player2", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [], + "variables": [ + { + "name": "Keys", + "type": "structure", + "children": [ + { + "name": "Bomb", + "type": "string", + "value": "LShift" + }, + { + "name": "Down", + "type": "string", + "value": "d" + }, + { + "name": "Left", + "type": "string", + "value": "s" + }, + { + "name": "Right", + "type": "string", + "value": "f" + }, + { + "name": "Up", + "type": "string", + "value": "e" + } + ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Number", + "type": "string", + "value": "2" + }, + { + "name": "Range", + "type": "string", + "value": "" + } + ], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "e", + "Left": "s", + "Right": "f", + "Down": "d", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 2, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "deceleration": 16000, + "ignoreDefaultControls": true, + "maxSpeed": 200, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], "animations": [ { - "name": "4P", + "name": "Walk0", "useMultipleDirections": false, "directions": [ { @@ -1060,13 +1107,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "JoueurSelectionMask.png", + "hasCustomCollisionMask": true, + "image": "OieGriseDroite.png", "points": [], "originPoint": { "name": "origine", - "x": 0, - "y": 0 + "x": 9, + "y": 6 }, "centerPoint": { "automatic": true, @@ -1074,43 +1121,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ClassicLevel", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "name": "Name", - "type": "string", - "value": "ClassicLevel" - }, - { - "name": "Bomb", - "type": "string", - "value": "1" }, { - "name": "Flame", - "type": "string", - "value": "2" - } - ], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", + "name": "Walk1", "useMultipleDirections": false, "directions": [ { @@ -1118,13 +1155,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "NiveauClassique.png", + "hasCustomCollisionMask": true, + "image": "OieGriseBas.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 0 + "y": 8 }, "centerPoint": { "automatic": true, @@ -1132,107 +1169,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "EmptyLevel", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "name": "Name", - "type": "string", - "value": "EmptyLevel" - }, - { - "name": "Bomb", - "type": "string", - "value": "4" - }, - { - "name": "Flame", - "type": "string", - "value": "6" - } - ], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "NiveauVide.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] } ] } ] - } - ] - }, - { - "assetStoreId": "", - "bold": false, - "italic": false, - "name": "Message", - "smoothed": true, - "tags": "", - "type": "TextObject::Text", - "underlined": false, - "variables": [], - "effects": [], - "behaviors": [], - "string": "Bla, bla.\nBla, bla.", - "font": "", - "textAlignment": "", - "characterSize": 32, - "color": { - "b": 0, - "g": 0, - "r": 0 - } - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Bubble", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "NewObject", + "name": "Walk2", "useMultipleDirections": false, "directions": [ { @@ -1240,13 +1203,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "Bulle.png", + "hasCustomCollisionMask": true, + "image": "OieGriseGauche.png", "points": [], "originPoint": { "name": "origine", - "x": 0, - "y": 0 + "x": 9, + "y": 6 }, "centerPoint": { "automatic": true, @@ -1254,27 +1217,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Arrow", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "NewObject", + "name": "Walk3", "useMultipleDirections": false, "directions": [ { @@ -1282,13 +1251,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "Fleche.png", + "hasCustomCollisionMask": true, + "image": "OieGriseHaut.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 0 + "y": 27 }, "centerPoint": { "automatic": true, @@ -1296,7 +1265,26 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] } ] } @@ -1307,58 +1295,122 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Narrator", + "name": "Player3", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + "variables": [ { - "name": "", - "useMultipleDirections": false, - "directions": [ + "name": "Number", + "type": "string", + "value": "3" + }, + { + "name": "Keys", + "type": "structure", + "children": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieGrand.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] + "name": "Bomb", + "type": "string", + "value": "h" + }, + { + "name": "Down", + "type": "string", + "value": "k" + }, + { + "name": "Left", + "type": "string", + "value": "j" + }, + { + "name": "Right", + "type": "string", + "value": "l" + }, + { + "name": "Up", + "type": "string", + "value": "i" } ] + }, + { + "name": "BombCapacity", + "type": "string", + "value": "" + }, + { + "name": "Range", + "type": "string", + "value": "" } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Goose1", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], + ], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "i", + "Left": "j", + "Right": "l", + "Down": "k", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 3, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "deceleration": 16000, + "maxSpeed": 200, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "ignoreDefaultControls": true, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], "animations": [ { - "name": "", + "name": "Walk0", "useMultipleDirections": false, "directions": [ { @@ -1366,13 +1418,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "OieBlancheDroite.png", + "hasCustomCollisionMask": true, + "image": "OieRoseDroite.png", "points": [], "originPoint": { "name": "origine", - "x": 0, - "y": 0 + "x": 9, + "y": 6 }, "centerPoint": { "automatic": true, @@ -1380,27 +1432,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Goose2", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "", + "name": "Walk1", "useMultipleDirections": false, "directions": [ { @@ -1408,13 +1466,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "OieGriseDroite.png", + "hasCustomCollisionMask": true, + "image": "OieRoseBas.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 0 + "y": 8 }, "centerPoint": { "automatic": true, @@ -1422,27 +1480,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Goose3", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "", + "name": "Walk2", "useMultipleDirections": false, "directions": [ { @@ -1450,13 +1514,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "OieMarronDroite.png", + "hasCustomCollisionMask": true, + "image": "OieRoseGauche.png", "points": [], "originPoint": { "name": "origine", - "x": 0, - "y": 0 + "x": 9, + "y": 6 }, "centerPoint": { "automatic": true, @@ -1464,27 +1528,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Goose4", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "", + "name": "Walk3", "useMultipleDirections": false, "directions": [ { @@ -1492,13 +1562,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "OieRoseDroite.png", + "hasCustomCollisionMask": true, + "image": "OieRoseHaut.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 0 + "y": 27 }, "centerPoint": { "automatic": true, @@ -1506,7 +1576,26 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] } ] } @@ -1515,608 +1604,638 @@ ] }, { + "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "bold": false, - "italic": false, - "name": "Controls", - "smoothed": true, + "name": "Player4", "tags": "", - "type": "TextObject::Text", - "underlined": false, - "variables": [], - "effects": [], - "behaviors": [], - "string": "arrows and RShift - ESDF and LShift - IJKL and H - 8456 and 0\nor gamepads", - "font": "", - "textAlignment": "", - "characterSize": 16, - "color": { - "b": 66, - "g": 61, - "r": 41 - } - } - ], - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Players count selection", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "PlayerCount", - "=", - "2" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX2" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", - "=", - "127" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" - ] - } - ] + "name": "Number", + "type": "string", + "value": "4" }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX2", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "PlayerCount", - "=", - "2" - ] - }, + "name": "Keys", + "type": "structure", + "children": [ { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX2" - ] + "name": "Bomb", + "type": "string", + "value": "Numpad0" }, { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX3", - "" - ] + "name": "Down", + "type": "string", + "value": "Numpad5" }, { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX4", - "" - ] + "name": "Left", + "type": "string", + "value": "Numpad4" }, { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", - "=", - "127" - ] + "name": "Right", + "type": "string", + "value": "Numpad6" }, { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" - ] + "name": "Up", + "type": "string", + "value": "Numpad8" } ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX3", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "PlayerCount", - "=", - "3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX2", - "" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX4", - "" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX2", - "=", - "127" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" - ] - } - ] + "name": "BombCapacity", + "type": "string", + "value": "" }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX4", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "PlayerCount", - "=", - "4" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX2", - "" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX3", - "" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX4" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX2", - "=", - "127" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", - "=", - "127" - ] - } - ] + "name": "Range", + "type": "string", + "value": "" } ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Level selection", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "effects": [], + "behaviors": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "name": "Player", + "type": "Player::Player" + }, + { + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown", + "Up": "Numpad8", + "Left": "Numpad4", + "Right": "Numpad6", + "Down": "Numpad5", + "Topdown": "TopDownMovement" + }, + { + "name": "Respawn", + "type": "Respawn::Respawn", + "InvincibilityTime": 5 + }, + { + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider", + "TopDownMovement": "TopDownMovement", + "PixelSize": 1, + "OffsetX": 0, + "OffsetY": 0 + }, + { + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper", + "TopDownMovement": "TopDownMovement", + "GamepadIdentifier": 4, + "UseArrows": true, + "UseLeftStick": true, + "UseRightStick": false, + "StickMode": "8 Directions" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 16000, + "deceleration": 16000, + "maxSpeed": 200, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "ignoreDefaultControls": true, + "rotateObject": false + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator", + "TopDownMovement": "TopDownMovement" + }, + { + "name": "YSort", + "type": "YSort::YSort", + "Offset": 34 + } + ], + "animations": [ + { + "name": "Walk0", + "useMultipleDirections": false, + "directions": [ { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } ] - }, + } + ] + }, + { + "name": "Walk1", + "useMultipleDirections": false, + "directions": [ { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "Level", - "", - "", - "" + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronBas.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 8 + }, + { + "x": 48, + "y": 8 + }, + { + "x": 48, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } ] } - ], - "actions": [ + ] + }, + { + "name": "Walk2", + "useMultipleDirections": false, + "directions": [ { - "type": { - "value": "ModVarGlobalTxt" - }, - "parameters": [ - "Level", - "=", - "Level.VariableString(Name)" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Bomb", - "=", - "Level.Variable(Bomb)" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Flame", - "=", - "Level.Variable(Flame)" + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronGauche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 9, + "y": 6 + }, + { + "x": 57, + "y": 6 + }, + { + "x": 57, + "y": 54 + }, + { + "x": 9, + "y": 54 + } + ] + ] + } ] - }, + } + ] + }, + { + "name": "Walk3", + "useMultipleDirections": false, + "directions": [ { - "type": { - "value": "Scene" - }, - "parameters": [ - "", - "\"Game\"", - "" + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "OieMarronHaut.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 27 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 27 + }, + { + "x": 48, + "y": 27 + }, + { + "x": 48, + "y": 75 + }, + { + "x": 0, + "y": 75 + } + ] + ] + } ] } ] } - ], - "parameters": [] + ] }, { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Bubble messages", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Explosion", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } - ] - }, + "name": "ExplosionAnimator", + "type": "BombExplosion::ExplosionAnimator" + } + ], + "animations": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Visible" - }, - "parameters": [ - "Message" - ] - } - ], - "actions": [], - "events": [ + "name": "ExplosionCenter", + "useMultipleDirections": false, + "directions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ { - "type": { - "value": "MouseButtonReleased" + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Or" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "SourisSurObjet" + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 }, - "parameters": [ - "Narrator", - "", - "", - "" - ] - }, - { - "type": { - "value": "SourisSurObjet" + { + "x": 36, + "y": 12 }, - "parameters": [ - "Bubble", - "", - "", - "" - ] - } + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] - } - ], - "actions": [ + }, { - "type": { - "value": "ModVarScene" + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { - "type": { - "value": "Timer" + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "", - "10", - "\"ChangeBuble\"" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] - } - ], - "actions": [ + }, { - "type": { - "value": "ModVarScene" + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] } ] - }, + } + ] + }, + { + "name": "ExplosionArm", + "useMultipleDirections": false, + "directions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ { - "type": { - "value": "VarScene" + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Cache" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 }, - "parameters": [ - "Message" + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] }, { - "type": { - "value": "Cache" + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "Bubble" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] }, { - "type": { - "value": "Cache" + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "Arrow" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] }, { - "type": { - "value": "ResetTimer" + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 }, - "parameters": [ - "", - "\"ShowBuble\"" - ] - }, - { - "type": { - "value": "UnPauseTimer" + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 }, - "parameters": [ - "", - "\"ShowBuble\"" + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] ] } ] @@ -2124,412 +2243,345 @@ ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "1", - "\"ShowBuble\"" - ] - }, + "name": "ExplosionFinger", + "useMultipleDirections": false, + "directions": [ { - "type": { - "inverted": true, - "value": "TimerPaused" - }, - "parameters": [ - "", - "\"ShowBuble\"" + "looping": false, + "timeBetweenFrames": 0.034, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionDoigt-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } ] } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Message", - "=", - "VariableString(Messages[ToString(RandomInRange(0, VariableChildCount(Messages) - 1))])" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "Message", - "" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "Bubble", - "" - ] - }, + ] + }, + { + "name": "ExplosionCenterEnding", + "useMultipleDirections": false, + "directions": [ { - "type": { - "value": "Montre" - }, - "parameters": [ - "Arrow", - "" - ] - }, - { - "type": { - "value": "PauseTimer" - }, - "parameters": [ - "", - "\"ShowBuble\"" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"ChangeBuble\"" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "0" + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionCentre-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } ] } ] - } - ], - "parameters": [] - } - ], - "layers": [ - { - "ambientLightColorB": 8099672, - "ambientLightColorG": 8127688, - "ambientLightColorR": 8867392, - "camera3DFarPlaneDistance": 10000, - "camera3DFieldOfView": 45, - "camera3DNearPlaneDistance": 0.1, - "followBaseLayerCamera": false, - "isLightingLayer": false, - "isLocked": false, - "name": "", - "renderingType": "", - "visibility": true, - "cameras": [ - { - "defaultSize": true, - "defaultViewport": true, - "height": 0, - "viewportBottom": 1, - "viewportLeft": 0, - "viewportRight": 1, - "viewportTop": 0, - "width": 0 - } - ], - "effects": [] - } - ], - "behaviorsSharedData": [] - }, - { - "b": 48, - "disableInputWhenNotFocused": true, - "mangledName": "Game", - "name": "Game", - "r": 80, - "standardSortMethod": true, - "stopSoundsOnStartup": true, - "title": "", - "v": 64, - "uiSettings": { - "grid": true, - "gridType": "rectangular", - "gridWidth": 12, - "gridHeight": 12, - "gridOffsetX": 0, - "gridOffsetY": 0, - "gridColor": 10401023, - "gridAlpha": 0.8, - "snap": true, - "zoomFactor": 1.1680000030517574, - "windowMask": false - }, - "objectsGroups": [ - { - "name": "Obstacle", - "objects": [ - { - "name": "Wall" }, { - "name": "Crate" - } - ] - }, - { - "name": "Player", - "objects": [ - { - "name": "Player1" + "name": "ExplosionArmEnding", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ExplosionBras-Anim4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 6 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 12, + "y": 12 + }, + { + "x": 36, + "y": 12 + }, + { + "x": 36, + "y": 36 + }, + { + "x": 12, + "y": 36 + } + ] + ] + } + ] + } + ] }, { - "name": "Player2" - }, - { - "name": "Player3" - }, - { - "name": "Player4" - } - ] - }, - { - "name": "ScoreIcon", - "objects": [ - { - "name": "ScoreIcon1" - }, - { - "name": "ScoreIcon2" - }, - { - "name": "ScoreIcon3" - }, - { - "name": "ScoreIcon4" - } - ] - } - ], - "variables": [], - "instances": [ - { - "angle": 0, - "customSize": true, - "height": 24, - "layer": "", - "name": "Score", - "persistentUuid": "42e783b6-213a-45b7-93dd-5d15c9482f94", - "width": 48, - "x": 72, - "y": 0, - "zOrder": 1000, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "1" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 23, - "layer": "", - "name": "ScoreIcon1", - "persistentUuid": "906f526d-ae6c-414a-8084-114f9a51cd0a", - "width": 33, - "x": 36, - "y": 0, - "zOrder": 1001, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "Number", - "type": "string", - "value": "1" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 23, - "layer": "", - "name": "ScoreIcon2", - "persistentUuid": "2cc418a5-16ad-465f-a4bc-ff0f479488b8", - "width": 33, - "x": 132, - "y": 0, - "zOrder": 1002, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "Number", - "type": "string", - "value": "2" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 23, - "layer": "", - "name": "ScoreIcon4", - "persistentUuid": "1713db2a-fecc-4906-b55c-8a68cc53ab88", - "width": 33, - "x": 324, - "y": 0, - "zOrder": 1003, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "4" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 23, - "layer": "", - "name": "ScoreIcon3", - "persistentUuid": "69e1ebf6-95a0-4c89-a026-0666d11c2762", - "width": 33, - "x": 228, - "y": 0, - "zOrder": 1004, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "Number", - "type": "string", - "value": "3" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 24, - "layer": "", - "name": "Score", - "persistentUuid": "c9cc7551-b991-48ff-ae7e-10ca7eedc420", - "width": 48, - "x": 360, - "y": 0, - "zOrder": 1000, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "4" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 24, - "layer": "", - "name": "Score", - "persistentUuid": "b35a1096-fe26-4162-988f-887c1db68133", - "width": 48, - "x": 264, - "y": 0, - "zOrder": 1000, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "3" - } - ] - }, - { - "angle": 0, - "customSize": true, - "height": 24, - "layer": "", - "name": "Score", - "persistentUuid": "970d4113-26f4-41fa-9bb3-716987e4632d", - "width": 48, - "x": 168, - "y": 0, - "zOrder": 1000, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "2" - } - ] - } - ], - "objects": [ - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Wall", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 32 - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 10 - } - ], - "animations": [ - { - "name": "NewObject", + "name": "ExplosionFingerEnding", "useMultipleDirections": false, "directions": [ { "looping": false, - "timeBetweenFrames": 0.08, + "timeBetweenFrames": 1, "sprites": [ { "hasCustomCollisionMask": true, - "image": "MurHerbe.png", + "image": "ExplosionDoigt-Anim4.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 12 + "y": 6 }, "centerPoint": { "automatic": true, @@ -2540,68 +2592,32 @@ "customCollisionMask": [ [ { - "x": 0, + "x": 12, "y": 12 }, { - "x": 48, + "x": 36, "y": 12 }, { - "x": 48, - "y": 60 + "x": 36, + "y": 36 }, { - "x": 0, - "y": 60 + "x": 12, + "y": 36 } ] ] - } - ] - } - ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Crate", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 32 - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 10 - } - ], - "animations": [ - { - "name": "NewObject", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ + }, { "hasCustomCollisionMask": true, - "image": "Nenuphar.png", + "image": "ExplosionDoigt-Anim4.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 4 + "y": 6 }, "centerPoint": { "automatic": true, @@ -2612,20 +2628,20 @@ "customCollisionMask": [ [ { - "x": 0, - "y": 4 + "x": 12, + "y": 12 }, { - "x": 48, - "y": 4 + "x": 36, + "y": 12 }, { - "x": 48, - "y": 52 + "x": 36, + "y": 36 }, { - "x": 0, - "y": 52 + "x": 12, + "y": 36 } ] ] @@ -2639,125 +2655,64 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Player1", + "name": "Bonus", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [ - { - "name": "Number", - "type": "string", - "value": "1" - }, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ { - "name": "Keys", - "type": "structure", - "children": [ - { - "name": "Bomb", - "type": "string", - "value": "RShift" - }, - { - "name": "Down", - "type": "string", - "value": "Down" - }, - { - "name": "Left", - "type": "string", - "value": "Left" - }, - { - "name": "Right", - "type": "string", - "value": "Right" - }, + "name": "BombBonus", + "useMultipleDirections": false, + "directions": [ { - "name": "Up", - "type": "string", - "value": "Up" + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "BombeBonus-1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 16, + "y": 16 + }, + { + "x": 32, + "y": 16 + }, + { + "x": 32, + "y": 32 + }, + { + "x": 16, + "y": 32 + } + ] + ] + } + ] } ] }, { - "name": "BombCapacity", - "type": "string", - "value": "" - }, - { - "name": "Range", - "type": "string", - "value": "" - } - ], - "effects": [], - "behaviors": [ - { - "name": "Player", - "type": "Player::Player" - }, - { - "name": "RemapForTopdown", - "type": "BehaviorRemapper::RemapForTopdown", - "Up": "Up", - "Left": "Left", - "Right": "Right", - "Down": "Down", - "Topdown": "TopDownMovement" - }, - { - "name": "Respawn", - "type": "Respawn::Respawn", - "InvincibilityTime": 5 - }, - { - "name": "TopDownCornerSlider", - "type": "TopDownCornerSliding::TopDownCornerSlider", - "TopDownMovement": "TopDownMovement", - "PixelSize": 1, - "OffsetX": 0, - "OffsetY": 0 - }, - { - "name": "TopDownGamepadMapper", - "type": "Gamepads::TopDownGamepadMapper", - "TopDownMovement": "TopDownMovement", - "GamepadIdentifier": 1, - "UseArrows": true, - "UseLeftStick": true, - "UseRightStick": false, - "StickMode": "8 Directions" - }, - { - "name": "TopDownMovement", - "rotateObject": false, - "type": "TopDownMovementBehavior::TopDownMovementBehavior", - "angularMaxSpeed": 450, - "maxSpeed": 300, - "acceleration": 16000, - "deceleration": 16000, - "allowDiagonals": true, - "angleOffset": 0, - "ignoreDefaultControls": true - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement", - "AnimationName": "Walk", - "DirectionCount": 4, - "IsScalingAnimation": false - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 - } - ], - "animations": [ - { - "name": "", + "name": "FlameBonus", "useMultipleDirections": false, "directions": [ { @@ -2765,13 +2720,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": false, - "image": "assets\\NewSprite.png", + "hasCustomCollisionMask": true, + "image": "assets\\FlammeBonus.png", "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -2779,7 +2734,26 @@ "x": 0, "y": 0 }, - "customCollisionMask": [] + "customCollisionMask": [ + [ + { + "x": 16, + "y": 16 + }, + { + "x": 32, + "y": 16 + }, + { + "x": 32, + "y": 32 + }, + { + "x": 16, + "y": 32 + } + ] + ] } ] } @@ -2787,125 +2761,47 @@ } ] }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Score", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [], + "string": "Score", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Player2", + "name": "ScoreIcon1", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [ + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ { - "name": "Keys", - "type": "structure", - "children": [ - { - "name": "Bomb", - "type": "string", - "value": "LShift" - }, - { - "name": "Down", - "type": "string", - "value": "d" - }, - { - "name": "Left", - "type": "string", - "value": "s" - }, - { - "name": "Right", - "type": "string", - "value": "f" - }, - { - "name": "Up", - "type": "string", - "value": "e" - } - ] - }, - { - "name": "BombCapacity", - "type": "string", - "value": "" - }, - { - "name": "Number", - "type": "string", - "value": "2" - }, - { - "name": "Range", - "type": "string", - "value": "" - } - ], - "effects": [], - "behaviors": [ - { - "name": "Player", - "type": "Player::Player" - }, - { - "name": "RemapForTopdown", - "type": "BehaviorRemapper::RemapForTopdown", - "Up": "e", - "Left": "s", - "Right": "f", - "Down": "d", - "Topdown": "TopDownMovement" - }, - { - "name": "Respawn", - "type": "Respawn::Respawn", - "InvincibilityTime": 5 - }, - { - "name": "TopDownCornerSlider", - "type": "TopDownCornerSliding::TopDownCornerSlider", - "TopDownMovement": "TopDownMovement", - "PixelSize": 1, - "OffsetX": 0, - "OffsetY": 0 - }, - { - "name": "TopDownGamepadMapper", - "type": "Gamepads::TopDownGamepadMapper", - "TopDownMovement": "TopDownMovement", - "GamepadIdentifier": 2, - "UseArrows": true, - "UseLeftStick": true, - "UseRightStick": false, - "StickMode": "8 Directions" - }, - { - "name": "TopDownMovement", - "type": "TopDownMovementBehavior::TopDownMovementBehavior", - "acceleration": 16000, - "allowDiagonals": true, - "angleOffset": 0, - "angularMaxSpeed": 180, - "deceleration": 16000, - "ignoreDefaultControls": true, - "maxSpeed": 200, - "rotateObject": false - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 - } - ], - "animations": [ - { - "name": "Walk0", + "name": "", "useMultipleDirections": false, "directions": [ { @@ -2913,13 +2809,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, - "image": "OieGriseDroite.png", + "hasCustomCollisionMask": false, + "image": "OieBlancheDroite.png", "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -2927,33 +2823,27 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] + "customCollisionMask": [] } ] } ] - }, + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ { - "name": "Walk1", + "name": "", "useMultipleDirections": false, "directions": [ { @@ -2961,13 +2851,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, - "image": "OieGriseBas.png", + "hasCustomCollisionMask": false, + "image": "OieGriseDroite.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 8 + "y": 0 }, "centerPoint": { "automatic": true, @@ -2975,33 +2865,33 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] + "customCollisionMask": [] } ] } ] - }, + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ { - "name": "Walk2", + "name": "PlayerNum", + "type": "string", + "value": "3" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", "useMultipleDirections": false, "directions": [ { @@ -3009,13 +2899,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, - "image": "OieGriseGauche.png", + "hasCustomCollisionMask": false, + "image": "OieRoseDroite.png", "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -3023,33 +2913,27 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] + "customCollisionMask": [] } ] } ] - }, + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ { - "name": "Walk3", + "name": "", "useMultipleDirections": false, "directions": [ { @@ -3057,13 +2941,13 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, - "image": "OieGriseHaut.png", + "hasCustomCollisionMask": false, + "image": "OieMarronDroite.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 27 + "y": 0 }, "centerPoint": { "automatic": true, @@ -3071,26 +2955,7 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] + "customCollisionMask": [] } ] } @@ -3099,1340 +2964,1186 @@ ] }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Player3", + "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", + "name": "Rock", "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "name": "Number", - "type": "string", - "value": "3" - }, - { - "name": "Keys", - "type": "structure", - "children": [ - { - "name": "Bomb", - "type": "string", - "value": "h" - }, - { - "name": "Down", - "type": "string", - "value": "k" - }, - { - "name": "Left", - "type": "string", - "value": "j" - }, - { - "name": "Right", - "type": "string", - "value": "l" - }, - { - "name": "Up", - "type": "string", - "value": "i" - } - ] - }, - { - "name": "BombCapacity", - "type": "string", - "value": "" - }, + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ { - "name": "Range", - "type": "string", - "value": "" + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 } ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 40, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Rock Moss 3.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "9c628d2e17c64382fccfe686ec2106319f395e38b8d77b764a8ba9838b65734d", + "name": "Crate", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], "effects": [], "behaviors": [ { - "name": "Player", - "type": "Player::Player" - }, - { - "name": "RemapForTopdown", - "type": "BehaviorRemapper::RemapForTopdown", - "Up": "i", - "Left": "j", - "Right": "l", - "Down": "k", - "Topdown": "TopDownMovement" - }, - { - "name": "Respawn", - "type": "Respawn::Respawn", - "InvincibilityTime": 5 - }, - { - "name": "TopDownCornerSlider", - "type": "TopDownCornerSliding::TopDownCornerSlider", - "TopDownMovement": "TopDownMovement", - "PixelSize": 1, - "OffsetX": 0, - "OffsetY": 0 - }, - { - "name": "TopDownGamepadMapper", - "type": "Gamepads::TopDownGamepadMapper", - "TopDownMovement": "TopDownMovement", - "GamepadIdentifier": 3, - "UseArrows": true, - "UseLeftStick": true, - "UseRightStick": false, - "StickMode": "8 Directions" - }, - { - "name": "TopDownMovement", - "type": "TopDownMovementBehavior::TopDownMovementBehavior", - "acceleration": 16000, - "deceleration": 16000, - "maxSpeed": 200, - "allowDiagonals": true, - "angleOffset": 0, - "angularMaxSpeed": 180, - "ignoreDefaultControls": true, - "rotateObject": false - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 } ], - "animations": [ - { - "name": "Walk0", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } - ] - }, + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Cabbage.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "ca4c977991d157fdc33034d1882a0f0973d7332a8df743aa0f38c7c436022ceb", + "name": "BlockRoundedLong", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ { - "name": "Walk1", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseBas.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 8 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk2", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseGauche.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk3", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseHaut.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 27 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] - } - ] - } - ] + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 } - ] + ], + "content": { + "centerLocation": "ModelOrigin", + "depth": 40, + "height": 120, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "blockRoundedLong.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", + "name": "Fence", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 110, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "fence.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 30, + "animations": [] + } }, { - "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Player4", + "name": "New3DModel", "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "name": "Number", - "type": "string", - "value": "4" - }, - { - "name": "Keys", - "type": "structure", - "children": [ - { - "name": "Bomb", - "type": "string", - "value": "Numpad0" - }, - { - "name": "Down", - "type": "string", - "value": "Numpad5" - }, - { - "name": "Left", - "type": "string", - "value": "Numpad4" - }, - { - "name": "Right", - "type": "string", - "value": "Numpad6" - }, - { - "name": "Up", - "type": "string", - "value": "Numpad8" - } - ] - }, - { - "name": "BombCapacity", - "type": "string", - "value": "" - }, - { - "name": "Range", - "type": "string", - "value": "" - } - ], + "type": "Scene3D::Model3DObject", + "variables": [], "effects": [], - "behaviors": [ - { - "name": "Player", - "type": "Player::Player" - }, - { - "name": "RemapForTopdown", - "type": "BehaviorRemapper::RemapForTopdown", - "Up": "Numpad8", - "Left": "Numpad4", - "Right": "Numpad6", - "Down": "Numpad5", - "Topdown": "TopDownMovement" - }, - { - "name": "Respawn", - "type": "Respawn::Respawn", - "InvincibilityTime": 5 - }, - { - "name": "TopDownCornerSlider", - "type": "TopDownCornerSliding::TopDownCornerSlider", - "TopDownMovement": "TopDownMovement", - "PixelSize": 1, - "OffsetX": 0, - "OffsetY": 0 - }, - { - "name": "TopDownGamepadMapper", - "type": "Gamepads::TopDownGamepadMapper", - "TopDownMovement": "TopDownMovement", - "GamepadIdentifier": 4, - "UseArrows": true, - "UseLeftStick": true, - "UseRightStick": false, - "StickMode": "8 Directions" - }, - { - "name": "TopDownMovement", - "type": "TopDownMovementBehavior::TopDownMovementBehavior", - "acceleration": 16000, - "deceleration": 16000, - "maxSpeed": 200, - "allowDiagonals": true, - "angleOffset": 0, - "angularMaxSpeed": 180, - "ignoreDefaultControls": true, - "rotateObject": false - }, + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\BlueBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, + { + "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", + "name": "Bomb", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, + "name": "Bomb", + "type": "BombExplosion::Bomb" + } + ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 82.77, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Bomb.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] } ], - "animations": [ + "actions": [ { - "name": "Walk0", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } + "type": { + "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + }, + "parameters": [ + "", + "GlobalVariableString(Level)", + "0", + "0" ] }, { - "name": "Walk1", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronBas.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 8 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] - } + "type": { + "value": "Scene3D::SetCameraRotationX" + }, + "parameters": [ + "", + "=", + "20", + "", + "" + ] + }, + { + "type": { + "value": "SetCameraCenterY" + }, + "parameters": [ + "", + "=", + "650", + "", + "" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Bomb", + "=", + "20" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Settings chosen in the scene \"Selection\" are applied." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Player", + "" ] } ] }, { - "name": "Walk2", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronGauche.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } + "type": { + "value": "VarObjet" + }, + "parameters": [ + "ScoreIcon", + "PlayerNum", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "ScoreIcon", + "" ] } ] }, { - "name": "Walk3", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronHaut.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 27 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] - } + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + ">", + "GlobalVariable(PlayerCount)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Score", + "" ] } ] + }, + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Print score" } ] }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Bomb", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "name": "Range", - "type": "string", - "value": "" + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] } ], - "effects": [], - "behaviors": [], - "animations": [ + "actions": [ { - "name": "NewObject", - "useMultipleDirections": false, - "directions": [ + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "New3DModel", + "=", + "\"Run\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bonus", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OeufBombe.png", - "points": [], - "originPoint": { - "name": "origine", - "x": -5, - "y": 20 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 26 - }, - { - "x": 36, - "y": 26 - }, - { - "x": 36, - "y": 62 - }, - { - "x": 0, - "y": 62 - } - ] - ] - } + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bonus", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::Player::PickUpBonus" + }, + "parameters": [ + "Player", + "Player", + "Bonus", + "" ] } ] } - ] + ], + "parameters": [] }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Explosion", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "ExplosionAnimator", - "type": "BombExplosion::ExplosionAnimator" - } - ], - "animations": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bomb", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "name": "ExplosionCenter", - "useMultipleDirections": false, - "directions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Players put bombs", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "looping": false, - "timeBetweenFrames": 0.034, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim2.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The player variables can't be used in an expression if no condition nor action referred to it. The repeat loop takes that role." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim3.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" }, - { - "x": 36, - "y": 12 + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Player.VariableString(Keys.Bomb)" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Player.Variable(Number)", + "\"A\"", + "" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" }, - { - "x": 36, - "y": 36 + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "comment": "Check that no bomb is already on this square.\nThe negation of \"Is there at least one bomb on this square?\" is equivalent to \"Is there no bomb on this square?\".\nThis is not the same as having the negation directly on the condition because it would mean \"Is there a bomb that is not on this square?\"." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "<", + "Player.Variable(BombCapacity)" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Not" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Bomb", + "10 + round((Player.X() - 10) / 60) * 60 + 30", + "round(Player.Y() / 60) * 60 + 30" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "10 + round((Player.X() - 10) / 60) * 60", + "round(Player.Y() / 60) * 60", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Bomb", + "=", + "Bomb.Y() + 10" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Bomb", + "\"Detonator\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "+", + "1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "Range", + "=", + "Player.Variable(Range)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombX", + "=", + "Bomb.X()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombY", + "=", + "Bomb.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsNew", + "True" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The variable IsNew allows to apply some actions on the created bombes without the player in the context.\nOtherwise, the loop on the players wouldn't work because GDevelop couldn't tell on which player to apply actions." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "parameters": [ + "Bomb", + "IsNew", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 + "parameters": [ + "Bomb", + "IsNew", + "=" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Other players can be on the square where the bomb is put." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "CollisionNP" }, - { - "x": 36, - "y": 36 + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } ] } ] } - ] + ], + "parameters": [] }, { - "name": "ExplosionArm", - "useMultipleDirections": false, - "directions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Collision between bombs and players", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "looping": false, - "timeBetweenFrames": 0.034, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim2.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] + "comment": "The player no longer overlaps the bomb. It becomes solid for this player." }, { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim3.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "CollisionNP" }, - { - "x": 36, - "y": 12 + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + }, + { + "type": { + "value": "ObjectVariableAsBoolean" }, - { - "x": 36, - "y": 36 + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ObjectVariableRemoveChild" }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Bomb", + "IsOverlaping", + "Player.VariableString(Number)" + ] + } ] }, { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" }, - { - "x": 36, - "y": 12 + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "ObjectVariableAsBoolean" }, - { - "x": 36, - "y": 36 + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Player.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SeparateFromObjects" }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Player", + "Bomb", + "" + ] + } ] } ] } - ] + ], + "parameters": [] }, { - "name": "ExplosionFinger", - "useMultipleDirections": false, - "directions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bomb detonation", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "looping": false, - "timeBetweenFrames": 0.034, - "sprites": [ + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "A bomb can explode because of the detonator..." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "type": { + "value": "ObjectTimer" }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Bomb", + "\"Detonator\"", + "3" ] - }, + } + ], + "actions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim2.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "type": { + "value": "BombExplosion::Explode" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "" ] - }, + } + ], + "events": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim3.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "target": "Check explosion collision" + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "...or by chain reaction" + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [ + { + "type": { + "value": "CollisionNP" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Explosion", + "Bomb", + "", + "", + "" ] - }, + } + ], + "actions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "type": { + "value": "BombExplosion::Explode" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "" ] } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Check explosion collision" + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Death", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every death counts." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "scoreHasChanged", + "False" ] } ] }, { - "name": "ExplosionCenterEnding", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "type": { + "value": "CollisionNP" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Player", + "Explosion", + "", + "", + "" ] }, { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "type": { + "inverted": true, + "value": "Respawn::Respawn::isInvincible" }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "parameters": [ + "Player", + "Respawn", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "VarObjet" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Player", + "Death", + "=", + "1" ] } - ] - } - ] - }, - { - "name": "ExplosionArmEnding", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ + ], + "actions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "type": { + "value": "SetSceneVariableAsBoolean" }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "parameters": [ + "scoreHasChanged", + "True" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 + "parameters": [ + "Player", + "Death", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" }, - { - "x": 36, - "y": 36 + "parameters": [ + "Explosion", + "PlayerNum", + "!=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Score[Explosion.VariableString(PlayerNum)]", + "+", + "1" + ] + } ] }, { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" }, - { - "x": 36, - "y": 36 + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Score[Explosion.VariableString(PlayerNum)]", + "-", + "1" + ] + } ] } ] @@ -4440,19453 +4151,451 @@ ] }, { - "name": "ExplosionFingerEnding", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Dead players come back to their initial location." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [], + "actions": [], + "events": [ { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "type": { + "value": "ObjectVariableAsBoolean" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Player", + "Death", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "False" ] }, { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 + "type": { + "value": "Respawn::Respawn::respawn" }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 + "parameters": [ + "Player", + "Respawn", + "" + ] + }, + { + "type": { + "value": "Opacity" }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] + "parameters": [ + "Player", + "=", + "127" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "=", + "0" + ] + }, + { + "type": { + "value": "Player::Player::GiveBackBonuses" + }, + "parameters": [ + "Player", + "Player", + "Bonus", + "" ] } ] } ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Bonus", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "BombBonus", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "BombeBonus-1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "scoreHasChanged", + "True" ] } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Print score" + } ] }, { - "name": "FlameBonus", - "useMultipleDirections": false, - "directions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "assets\\FlammeBonus.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } + "type": { + "inverted": true, + "value": "Respawn::Respawn::isInvincible" + }, + "parameters": [ + "Player", + "Respawn", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "Player", + "=", + "255" ] } ] } - ] + ], + "parameters": [] }, { - "assetStoreId": "", - "bold": false, - "italic": false, - "name": "Score", - "smoothed": true, - "tags": "", - "type": "TextObject::Text", - "underlined": false, - "variables": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { - "name": "PlayerNum", - "type": "string", - "value": "" - } - ], - "effects": [], - "behaviors": [], - "string": "Score", - "font": "", - "textAlignment": "", - "characterSize": 20, - "color": { - "b": 0, - "g": 0, - "r": 0 - } - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon1", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + "type": { + "value": "SetCenter" + }, + "parameters": [ + "New3DModel", + "=", + "Player1.CenterX()", + "=", + "Player1.CenterY() + 16" + ] + }, { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieBlancheDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "New3DModel", + "Angle", + "+", + "sign(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))), 720 * TimeDelta())" ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon2", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + }, { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieGriseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } + "type": { + "value": "SetAngle" + }, + "parameters": [ + "New3DModel", + "=", + "New3DModel.Variable(Angle)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "New3DModel", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "New3DModel", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "New3DModel", + "45" ] } ] }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon3", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + } + ], + "layers": [ + { + "ambientLightColorB": 16, + "ambientLightColorG": 150995056, + "ambientLightColorR": 1869181824, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ { - "name": "PlayerNum", - "type": "string", - "value": "3" + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 } ], - "effects": [], - "behaviors": [], - "animations": [ + "effects": [ { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieRoseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] + "effectType": "Scene3D::HemisphereLight", + "name": "Effect", + "doubleParameters": { + "elevation": 90, + "intensity": 1.5, + "rotation": 0 + }, + "stringParameters": { + "groundColor": "127;127;127", + "skyColor": "255;255;255", + "top": "Z+" + }, + "booleanParameters": {} } ] + } + ], + "behaviorsSharedData": [ + { + "name": "Bomb", + "type": "BombExplosion::Bomb" }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon4", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieMarronDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] + "name": "ExplosionAnimator", + "type": "BombExplosion::ExplosionAnimator" }, { - "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", - "name": "Rock", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ObjectCenter", - "depth": 40, - "height": 60, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Rock Moss 3.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 0, - "width": 60, - "animations": [] - } + "name": "Player", + "type": "Player::Player" }, { - "assetStoreId": "9c628d2e17c64382fccfe686ec2106319f395e38b8d77b764a8ba9838b65734d", - "name": "Cabbage", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ObjectCenter", - "depth": 60, - "height": 60, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Cabbage.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 0, - "width": 60, - "animations": [] - } + "name": "RemapForTopdown", + "type": "BehaviorRemapper::RemapForTopdown" }, { - "assetStoreId": "ca4c977991d157fdc33034d1882a0f0973d7332a8df743aa0f38c7c436022ceb", - "name": "BlockRoundedLong", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ModelOrigin", - "depth": 40, - "height": 120, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "blockRoundedLong.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": -90, - "width": 60, - "animations": [] - } + "name": "Respawn", + "type": "Respawn::Respawn" }, { - "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", - "name": "Fence", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 60, - "height": 110, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "fence.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": -90, - "width": 30, - "animations": [] - } + "name": "TopDownCornerSlider", + "type": "TopDownCornerSliding::TopDownCornerSlider" }, { - "assetStoreId": "", - "name": "New3DModel", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ModelOrigin", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "assets\\BlueBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle" }, { - "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", - "name": "Bomb2", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ModelOrigin", - "depth": 100, - "height": 90, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Bomb.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 45, - "rotationZ": 0, - "width": 90, - "animations": [] - } + "name": "TopDownGamepadMapper", + "type": "Gamepads::TopDownGamepadMapper" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior" + }, + { + "name": "TopDownMovementAnimator", + "type": "TopDownMovementAnimator::TopDownMovementAnimator" + }, + { + "name": "YSort", + "type": "YSort::YSort" } - ], - "events": [ + ] + }, + { + "b": 219, + "disableInputWhenNotFocused": true, + "mangledName": "Selection", + "name": "Selection", + "r": 175, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 12, + "gridHeight": 12, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.6864000000000002, + "windowMask": false + }, + "objectsGroups": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "name": "Level", + "objects": [ { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] + "name": "ClassicLevel" + }, + { + "name": "EmptyLevel" } - ], - "actions": [ + ] + } + ], + "variables": [ + { + "name": "Messages", + "type": "structure", + "children": [ { - "type": { - "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" - }, - "parameters": [ - "", - "GlobalVariableString(Level)", - "0", - "0" - ] + "name": "0", + "type": "string", + "value": "Ça me gave.\nChoose a level." }, { - "type": { - "value": "Scene3D::SetCameraRotationX" - }, - "parameters": [ - "", - "=", - "20", - "", - "" - ] + "name": "1", + "type": "string", + "value": "Hé ouais, 2 niveaux.\nÇa te cloue le bec !" }, { - "type": { - "value": "SetCameraCenterY" - }, - "parameters": [ - "", - "=", - "650", - "", - "" - ] - } - ], - "events": [ + "name": "2", + "type": "string", + "value": "Là, l'oie, c'est moi !\nChoose a level." + }, { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Settings chosen in the scene \"Selection\" are applied." + "name": "3", + "type": "string", + "value": "Ça casse pas 3 pattes à un canard.\nChoose a level." }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - ">", - "GlobalVariable(PlayerCount)" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Player", - "" - ] - } - ] + "name": "4", + "type": "string", + "value": "Me vole pas dans les plumes.\nChoose a level." }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "ScoreIcon", - "PlayerNum", - ">", - "GlobalVariable(PlayerCount)" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "ScoreIcon", - "" - ] - } - ] + "name": "5", + "type": "string", + "value": "Prêt à canarder ?\nChoose a level." }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - ">", - "GlobalVariable(PlayerCount)" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Score", - "" - ] - } - ] + "name": "6", + "type": "string", + "value": "L'oisiveté, hein ?\nChoose a level." }, { - "type": "BuiltinCommonInstructions::Link", - "include": { - "includeConfig": 0 - }, - "target": "Print score" - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "name": "7", + "type": "string", + "value": "Dépêche, fait un froid de canard.\nChoose a level." + }, { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ + "name": "8", + "type": "string", + "value": "What's up, duck?\nChoose a level." + }, { - "type": { - "value": "Scene3D::Model3DObject::SetAnimationName" - }, - "parameters": [ - "New3DModel", - "=", - "\"Run\"" - ] + "name": "9", + "type": "string", + "value": "Fais-moi signe.\nChoose a level." } ] - }, + } + ], + "instances": [ { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Bonus", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bonus", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::Player::PickUpBonus" - }, - "parameters": [ - "Player", - "Player", - "Bonus", - "" - ] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Bomb", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Players put bombs", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The player variables can't be used in an expression if no condition nor action referred to it. The repeat loop takes that role." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Player.VariableString(Keys.Bomb)" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Player.Variable(Number)", - "\"A\"", - "" - ] - } - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Check that no bomb is already on this square.\nThe negation of \"Is there at least one bomb on this square?\" is equivalent to \"Is there no bomb on this square?\".\nThis is not the same as having the negation directly on the condition because it would mean \"Is there a bomb that is not on this square?\"." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "<", - "Player.Variable(BombCapacity)" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Not" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "CollisionPoint" - }, - "parameters": [ - "Bomb", - "round(Player.X() / 48) * 48 + 24", - "round(Player.Y() / 48) * 48 + 24" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Bomb", - "round(Player.X() / 48) * 48", - "round(Player.Y() / 48) * 48", - "" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Bomb", - "=", - "Bomb.Y() + 10" - ] - }, - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "Bomb", - "\"Detonator\"" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "+", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Bomb", - "Range", - "=", - "Player.Variable(Range)" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombX", - "=", - "Bomb.X()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombY", - "=", - "Bomb.Y()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Bomb", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - }, - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "True" - ] - } - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The variable IsNew allows to apply some actions on the created bombes without the player in the context.\nOtherwise, the loop on the players wouldn't work because GDevelop couldn't tell on which player to apply actions." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Bomb", - "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "=" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Other players can be on the square where the bomb is put." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bomb", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" - ] - } - ] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Collision between bombs and players", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The player no longer overlaps the bomb. It becomes solid for this player." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bomb", - "", - "", - "" - ] - }, - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "ObjectVariableRemoveChild" - }, - "parameters": [ - "Bomb", - "IsOverlaping", - "Player.VariableString(Number)" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bomb", - "", - "", - "" - ] - }, - { - "type": { - "inverted": true, - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "SeparateFromObjects" - }, - "parameters": [ - "Player", - "Bomb", - "" - ] - } - ] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Bomb detonation", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "A bomb can explode because of the detonator..." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "Bomb", - "\"Detonator\"", - "3" - ] - } - ], - "actions": [ - { - "type": { - "value": "BombExplosion::Explode" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Link", - "include": { - "includeConfig": 0 - }, - "target": "Check explosion collision" - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "...or by chain reaction" - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Bomb", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Bomb", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "BombExplosion::Explode" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Link", - "include": { - "includeConfig": 0 - }, - "target": "Check explosion collision" - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Death", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Every death counts." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetSceneVariableAsBoolean" - }, - "parameters": [ - "scoreHasChanged", - "False" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Explosion", - "", - "", - "" - ] - }, - { - "type": { - "inverted": true, - "value": "Respawn::Respawn::isInvincible" - }, - "parameters": [ - "Player", - "Respawn", - "" - ] - }, - { - "type": { - "inverted": true, - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Death", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetSceneVariableAsBoolean" - }, - "parameters": [ - "scoreHasChanged", - "True" - ] - }, - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Player", - "Death", - "True" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "PlayerNum", - "!=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Score[Explosion.VariableString(PlayerNum)]", - "+", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Score[Explosion.VariableString(PlayerNum)]", - "-", - "1" - ] - } - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Dead players come back to their initial location." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Player", - "Death", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Player", - "Death", - "False" - ] - }, - { - "type": { - "value": "Respawn::Respawn::respawn" - }, - "parameters": [ - "Player", - "Respawn", - "" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "Player", - "=", - "127" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "=", - "0" - ] - }, - { - "type": { - "value": "Player::Player::GiveBackBonuses" - }, - "parameters": [ - "Player", - "Player", - "Bonus", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SceneVariableAsBoolean" - }, - "parameters": [ - "scoreHasChanged", - "True" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Link", - "include": { - "includeConfig": 0 - }, - "target": "Print score" - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Respawn::Respawn::isInvincible" - }, - "parameters": [ - "Player", - "Respawn", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "Player", - "=", - "255" - ] - } - ] - } - ], - "parameters": [] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetCenter" - }, - "parameters": [ - "New3DModel", - "=", - "Player1.CenterX()", - "=", - "Player1.CenterY() + 16" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "New3DModel", - "Angle", - "+", - "sign(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))), 720 * TimeDelta())" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "New3DModel", - "=", - "New3DModel.Variable(Angle)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationY" - }, - "parameters": [ - "New3DModel", - "=", - "0" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationX" - }, - "parameters": [ - "New3DModel", - "=", - "0" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundX" - }, - "parameters": [ - "New3DModel", - "45" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - } - ], - "layers": [ - { - "ambientLightColorB": 16, - "ambientLightColorG": 150995056, - "ambientLightColorR": 1869181824, - "camera3DFarPlaneDistance": 10000, - "camera3DFieldOfView": 45, - "camera3DNearPlaneDistance": 0.1, - "followBaseLayerCamera": false, - "isLightingLayer": false, - "isLocked": false, - "name": "", - "renderingType": "", - "visibility": true, - "cameras": [ - { - "defaultSize": true, - "defaultViewport": true, - "height": 0, - "viewportBottom": 1, - "viewportLeft": 0, - "viewportRight": 1, - "viewportTop": 0, - "width": 0 - } - ], - "effects": [ - { - "effectType": "Scene3D::HemisphereLight", - "name": "Effect", - "doubleParameters": { - "elevation": 90, - "intensity": 1.5, - "rotation": 0 - }, - "stringParameters": { - "groundColor": "127;127;127", - "skyColor": "255;255;255", - "top": "Z+" - }, - "booleanParameters": {} - } - ] - } - ], - "behaviorsSharedData": [ - { - "name": "ExplosionAnimator", - "type": "BombExplosion::ExplosionAnimator" - }, - { - "name": "Player", - "type": "Player::Player" - }, - { - "name": "RemapForTopdown", - "type": "BehaviorRemapper::RemapForTopdown" - }, - { - "name": "Respawn", - "type": "Respawn::Respawn" - }, - { - "name": "TopDownCornerSlider", - "type": "TopDownCornerSliding::TopDownCornerSlider" - }, - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle" - }, - { - "name": "TopDownGamepadMapper", - "type": "Gamepads::TopDownGamepadMapper" - }, - { - "name": "TopDownMovement", - "type": "TopDownMovementBehavior::TopDownMovementBehavior" - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator" - }, - { - "name": "YSort", - "type": "YSort::YSort" - } - ] - } - ], - "externalEvents": [ - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Check explosion collision", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Wall", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Crate", - "", - "", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Random bonus creation" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Egal" - }, - "parameters": [ - "RandomInRange(1,4)", - "<=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Crate.X()", - "Crate.Y()", - "RandomInRange(1,2)", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The crate is removed after because its location is used to create the bonus." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] - } - ] - } - ] - } - ], - "eventsFunctionsExtensions": [ - { - "author": "", - "category": "Visual effect", - "extensionNamespace": "", - "fullName": "3D particle emitter (experimental)", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZpcmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTcuNjYgMTEuMkMxNy40MyAxMC45IDE3LjE1IDEwLjY0IDE2Ljg5IDEwLjM4QzE2LjIyIDkuNzggMTUuNDYgOS4zNSAxNC44MiA4LjcyQzEzLjMzIDcuMjYgMTMgNC44NSAxMy45NSAzQzEzIDMuMjMgMTIuMTcgMy43NSAxMS40NiA0LjMyQzguODcgNi40IDcuODUgMTAuMDcgOS4wNyAxMy4yMkM5LjExIDEzLjMyIDkuMTUgMTMuNDIgOS4xNSAxMy41NUM5LjE1IDEzLjc3IDkgMTMuOTcgOC44IDE0LjA1QzguNTcgMTQuMTUgOC4zMyAxNC4wOSA4LjE0IDEzLjkzQzguMDggMTMuODggOC4wNCAxMy44MyA4IDEzLjc2QzYuODcgMTIuMzMgNi42OSAxMC4yOCA3LjQ1IDguNjRDNS43OCAxMCA0Ljg3IDEyLjMgNSAxNC40N0M1LjA2IDE0Ljk3IDUuMTIgMTUuNDcgNS4yOSAxNS45N0M1LjQzIDE2LjU3IDUuNyAxNy4xNyA2IDE3LjdDNy4wOCAxOS40MyA4Ljk1IDIwLjY3IDEwLjk2IDIwLjkyQzEzLjEgMjEuMTkgMTUuMzkgMjAuOCAxNy4wMyAxOS4zMkMxOC44NiAxNy42NiAxOS41IDE1IDE4LjU2IDEyLjcyTDE4LjQzIDEyLjQ2QzE4LjIyIDEyIDE3LjY2IDExLjIgMTcuNjYgMTEuMk0xNC41IDE3LjVDMTQuMjIgMTcuNzQgMTMuNzYgMTggMTMuNCAxOC4xQzEyLjI4IDE4LjUgMTEuMTYgMTcuOTQgMTAuNSAxNy4yOEMxMS42OSAxNyAxMi40IDE2LjEyIDEyLjYxIDE1LjIzQzEyLjc4IDE0LjQzIDEyLjQ2IDEzLjc3IDEyLjMzIDEzQzEyLjIxIDEyLjI2IDEyLjIzIDExLjYzIDEyLjUgMTAuOTRDMTIuNjkgMTEuMzIgMTIuODkgMTEuNyAxMy4xMyAxMkMxMy45IDEzIDE1LjExIDEzLjQ0IDE1LjM3IDE0LjhDMTUuNDEgMTQuOTQgMTUuNDMgMTUuMDggMTUuNDMgMTUuMjNDMTUuNDYgMTYuMDUgMTUuMSAxNi45NSAxNC41IDE3LjVIMTQuNVoiIC8+PC9zdmc+", - "name": "ParticleEmitter3D", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", - "shortDescription": "Display a large number of particles to create visual effects.", - "version": "0.0.1", - "description": [ - "Particle emitters can be used to display:", - "- Fire", - "- Smoke", - "- Splashes", - "- Lights" - ], - "origin": { - "identifier": "ParticleEmitter3D", - "name": "gdevelop-extension-store" - }, - "tags": [ - "3d", - "particle", - "explosion", - "fire", - "smoke", - "splash", - "light" - ], - "authorIds": [ - "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" - ], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Define helper classes JavaScript code.", - "fullName": "Define helper classes", - "functionType": "Action", - "name": "DefineHelperClasses", - "private": true, - "sentence": "Define helper classes JavaScript code", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GlobalVariableAsBoolean" - }, - "parameters": [ - "_ParticleEmmiter3DExtension_ClassesDefined", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetGlobalVariableAsBoolean" - }, - "parameters": [ - "_ParticleEmmiter3DExtension_ClassesDefined", - "True" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "gdjs.__particleEmmiter3DExtension = gdjs.__particleEmmiter3DExtension || {};", - "", - "/**", - " * @param {string} colorString", - " * @param {THREE.Vector4} threeColor", - " */", - "const setThreeColor = (colorString, threeColor = new THREE.Vector4()) => {", - " const integerColor = gdjs.rgbOrHexToRGBColor(colorString);", - " threeColor.x = integerColor[0] / 255;", - " threeColor.y = integerColor[1] / 255;", - " threeColor.z = integerColor[2] / 255;", - "};", - "", - "/**", - " * @param {string} integerOpacity", - " * @param {THREE.Vector4} threeColor", - " */", - "const setThreeOpacity = (integerOpacity, threeColor = new THREE.Vector4()) => {", - " threeColor.w = integerOpacity / 255;", - "};", - "", - "class ParticleEmitterAdapter {", - " /**", - " * @param particleSystem {ParticleSystem}", - " * @param colorOverLife {ColorOverLife}", - " * @param sizeOverLife {SizeOverLife}", - " * @param applyForce {ApplyForce}", - " */", - " constructor(particleSystem, colorOverLife, sizeOverLife, applyForce) {", - " this.particleSystem = particleSystem;", - " this.colorOverLife = colorOverLife;", - " this.sizeOverLife = sizeOverLife;", - " this.applyForce = applyForce;", - " }", - "", - " /**", - " * @param startColor {string}", - " */", - " setStartColor(startColor) {", - " setThreeColor(startColor, this.colorOverLife.color.a);", - " }", - "", - " /**", - " * @param endColor {string}", - " */", - " setEndColor(endColor) {", - " setThreeColor(endColor, this.colorOverLife.color.b);", - " }", - "", - " /**", - " * @param startOpacity {number}", - " */", - " setStartOpacity(startOpacity) {", - " setThreeOpacity(startOpacity, this.colorOverLife.color.a);", - " }", - "", - " /**", - " * @param endOpacity {number}", - " */", - " setEndOpacity(endOpacity) {", - " setThreeOpacity(endOpacity, this.colorOverLife.color.b);", - " }", - "", - " /**", - " * @param flow {number}", - " */", - " setFlow(flow) {", - " this.particleSystem.emissionOverTime.value = flow;", - " }", - "", - " /**", - " * @param startMinSize {number}", - " */", - " setStartMinSize(startMinSize) {", - " this.particleSystem.startSize.a = startMinSize;", - " }", - "", - " /**", - " * @param startMaxSize {number}", - " */", - " setStartMaxSize(startMaxSize) {", - " this.particleSystem.startSize.b = startMaxSize;", - " }", - "", - " /**", - " * @param endScale {number}", - " */", - " setEndScale(endScale) {", - " /** @type Bezier */", - " const bezier = this.sizeOverLife.functions[0];", - " bezier.p[0] = 1;", - " bezier.p[1] = gdjs.evtTools.common.lerp(1, endScale, 1 / 3);", - " bezier.p[2] = gdjs.evtTools.common.lerp(1, endScale, 2 / 3);", - " bezier.p[3] = endScale;", - " }", - "", - " /**", - " * @param startSpeedMin {number}", - " */", - " setStartSpeedMin(startSpeedMin) {", - " this.particleSystem.startSpeed.a = startSpeedMin;", - " }", - "", - " /**", - " * @param startSpeedMax {number}", - " */", - " setStartSpeedMax(startSpeedMax) {", - " this.particleSystem.startSpeed.b = startSpeedMax;", - " }", - "", - " /**", - " * @param lifespanMin {number}", - " */", - " setLifespanMin(lifespanMin) {", - " this.particleSystem.startLife.a = lifespanMin;", - " }", - "", - " /**", - " * @param lifespanMax {number}", - " */", - " setLifespanMax(lifespanMax) {", - " this.particleSystem.startLife.b = lifespanMax;", - " }", - "", - " /**", - " * @param duration {number}", - " */", - " setDuration(duration) {", - " this.particleSystem.duration = duration || Number.POSITIVE_INFINITY;", - " }", - "", - " /**", - " * @param areParticlesRelative {boolean}", - " */", - " setParticlesRelative(areParticlesRelative) {", - " this.particleSystem.worldSpace = !areParticlesRelative;", - " }", - "", - " /**", - " * @param sprayConeAngle {number}", - " */", - " setSprayConeAngle(sprayConeAngle) {", - " if (0 < sprayConeAngle && sprayConeAngle <= 180) {", - " if (!this.particleSystem.emitterShape.angle) {", - " this.particleSystem.emitterShape = new ConeEmitter({ radius: 0.1, angle: Math.PI / 8 });", - " }", - " this.particleSystem.emitterShape.angle = sprayConeAngle * Math.PI / 180;", - " }", - " else {", - " if (this.particleSystem.emitterShape.angle) {", - " this.particleSystem.emitterShape = new PointEmitter();", - " }", - " }", - " }", - "", - " /**", - " * @param blending {string}", - " */", - " setBlending(blendingString) {", - " const blending =", - " blendingString === \"Additive\" ? THREE.AdditiveBlending :", - " blendingString === \"Normal\" ? THREE.NormalBlending :", - " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", - " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", - " blendingString === \"None\" ? THREE.NoBlending :", - " THREE.AdditiveBlending;", - " // TODO This doesn't work.", - " this.particleSystem.blending = blending;", - " }", - " ", - " /**", - " * @param gravity {number}", - " */", - " setGravity(gravity) {", - " this.applyForce.magnitude.value = gravity;", - " }", - " ", - " /**", - " * @param gravityTop {string}", - " */", - " setGravityTop(gravityTop) {", - " // TODO Make gravity absolute even when \"relative\" is enabled. ", - " switch (gravityTop) {", - " case \"Z+\":", - " this.applyForce.direction.set(0, 0, -1);", - " break;", - "", - " case \"Y-\":", - " this.applyForce.direction.set(0, 1, 0);", - " break;", - " }", - " }", - "}", - "", - "gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter = ParticleEmitterAdapter;", - "", - "/**", - " * three.quarks v0.10.3 build Fri Jul 28 2023", - " * https://github.com/Alchemist0823/three.quarks#readme", - " * Copyright 2023 Alchemist0823 , MIT", - " */", - "class ParticleEmitter extends THREE.Object3D {", - " //interleavedBuffer: InterleavedBuffer;", - " constructor(system) {", - " super();", - " this.type = \"ParticleEmitter\";", - " this.system = system;", - " // this.visible = false;", - " // TODO: implement boundingVolume", - " }", - " clone() {", - " const system = this.system.clone();", - " system.emitter.copy(this, true);", - " return system.emitter;", - " }", - " dispose() {", - " }", - " // extract data from the cache hash", - " // remove metadata on each item", - " // and return as array", - " extractFromCache(cache) {", - " const values = [];", - " for (const key in cache) {", - " const data = cache[key];", - " delete data.metadata;", - " values.push(data);", - " }", - " return values;", - " }", - " toJSON(meta, options = {}) {", - " // meta is a string when called from JSON.stringify", - " const isRootObject = (meta === undefined || typeof meta === 'string');", - " const output = {};", - " // meta is a hash used to collect geometries, materials.", - " // not providing it implies that this is the root object", - " // being serialized.", - " if (isRootObject) {", - " // initialize meta obj", - " meta = {", - " geometries: {},", - " materials: {},", - " textures: {},", - " images: {},", - " shapes: {},", - " skeletons: {},", - " animations: {},", - " nodes: {}", - " };", - " output.metadata = {", - " version: 4.5,", - " type: 'Object',", - " generator: 'Object3D.toJSON'", - " };", - " }", - " // standard Object3D serialization", - " const object = {};", - " object.uuid = this.uuid;", - " object.type = this.type;", - " if (this.name !== '')", - " object.name = this.name;", - " if (this.castShadow === true)", - " object.castShadow = true;", - " if (this.receiveShadow === true)", - " object.receiveShadow = true;", - " if (this.visible === false)", - " object.visible = false;", - " if (this.frustumCulled === false)", - " object.frustumCulled = false;", - " if (this.renderOrder !== 0)", - " object.renderOrder = this.renderOrder;", - " if (JSON.stringify(this.userData) !== '{}')", - " object.userData = this.userData;", - " object.layers = this.layers.mask;", - " object.matrix = this.matrix.toArray();", - " if (this.matrixAutoUpdate === false)", - " object.matrixAutoUpdate = false;", - " // object specific properties", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " if (this.system !== null)", - " object.ps = this.system.toJSON(meta, options);", - " if (this.children.length > 0) {", - " object.children = [];", - " for (let i = 0; i < this.children.length; i++) {", - " if (this.children[i].type !== \"ParticleSystemPreview\") {", - " object.children.push(this.children[i].toJSON(meta).object);", - " }", - " }", - " }", - " if (isRootObject) {", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const geometries = this.extractFromCache(meta.geometries);", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const materials = this.extractFromCache(meta.materials);", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const textures = this.extractFromCache(meta.textures);", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const images = this.extractFromCache(meta.images);", - " if (geometries.length > 0)", - " output.geometries = geometries;", - " if (materials.length > 0)", - " output.materials = materials;", - " if (textures.length > 0)", - " output.textures = textures;", - " if (images.length > 0)", - " output.images = images;", - " }", - " output.object = object;", - " return output;", - " }", - "}", - "", - "class LinkedListNode {", - " constructor(data) {", - " this.data = data;", - " this.next = null;", - " this.prev = null;", - " }", - " hasPrev() {", - " return this.prev !== null;", - " }", - " hasNext() {", - " return this.next !== null;", - " }", - "}", - "class LinkedList {", - " constructor() {", - " this.length = 0;", - " this.head = this.tail = null;", - " }", - " isEmpty() {", - " return this.head === null;", - " }", - " clear() {", - " this.length = 0;", - " this.head = this.tail = null;", - " }", - " front() {", - " if (this.head === null)", - " return null;", - " return this.head.data;", - " }", - " back() {", - " if (this.tail === null)", - " return null;", - " return this.tail.data;", - " }", - " /**", - " * remove at head in O(1)", - " */", - " dequeue() {", - " if (this.head) {", - " const value = this.head.data;", - " this.head = this.head.next;", - " if (!this.head) {", - " this.tail = null;", - " }", - " else {", - " this.head.prev = null;", - " }", - " this.length--;", - " return value;", - " }", - " return undefined;", - " }", - " /**", - " * remove at tail in O(1)", - " */", - " pop() {", - " if (this.tail) {", - " const value = this.tail.data;", - " this.tail = this.tail.prev;", - " if (!this.tail) {", - " this.head = null;", - " }", - " else {", - " this.tail.next = null;", - " }", - " this.length--;", - " return value;", - " }", - " return undefined;", - " }", - " /**", - " * add at head in O(1)", - " */", - " queue(data) {", - " const node = new LinkedListNode(data);", - " if (!this.tail) {", - " this.tail = node;", - " }", - " if (this.head) {", - " this.head.prev = node;", - " node.next = this.head;", - " }", - " this.head = node;", - " this.length++;", - " }", - " /**", - " * add at tail in O(1)", - " */", - " push(data) {", - " const node = new LinkedListNode(data);", - " if (!this.head) {", - " this.head = node;", - " }", - " if (this.tail) {", - " this.tail.next = node;", - " node.prev = this.tail;", - " }", - " this.tail = node;", - " this.length++;", - " }", - " insertBefore(node, data) {", - " const newNode = new LinkedListNode(data);", - " newNode.next = node;", - " newNode.prev = node.prev;", - " if (newNode.prev !== null) {", - " newNode.prev.next = newNode;", - " }", - " newNode.next.prev = newNode;", - " if (node == this.head) {", - " this.head = newNode;", - " }", - " this.length++;", - " }", - " remove(data) {", - " if (this.head === null || this.tail === null) {", - " return;", - " }", - " let tempNode = this.head;", - " if (data === this.head.data) {", - " this.head = this.head.next;", - " }", - " if (data === this.tail.data) {", - " this.tail = this.tail.prev;", - " }", - " while (tempNode.next !== null && tempNode.data !== data) {", - " tempNode = tempNode.next;", - " }", - " if (tempNode.data === data) {", - " if (tempNode.prev !== null)", - " tempNode.prev.next = tempNode.next;", - " if (tempNode.next !== null)", - " tempNode.next.prev = tempNode.prev;", - " this.length--;", - " }", - " }", - " /**", - " * Returns an iterator over the values", - " */", - " *values() {", - " let current = this.head;", - " while (current !== null) {", - " yield current.data;", - " current = current.next;", - " }", - " }", - "}", - "", - "class SpriteParticle {", - " constructor() {", - " // CPU", - " this.startSpeed = 0;", - " this.startColor = new THREE.Vector4();", - " this.startSize = 1;", - " this.position = new THREE.Vector3();", - " this.velocity = new THREE.Vector3();", - " this.age = 0;", - " this.life = 1;", - " this.size = 1;", - " // GPU", - " this.rotation = 0;", - " this.color = new THREE.Vector4();", - " this.uvTile = 0;", - " }", - " get died() {", - " return this.age >= this.life;", - " }", - "}", - "class RecordState {", - " constructor(position, size, color) {", - " this.position = position;", - " this.size = size;", - " this.color = color;", - " }", - "}", - "class TrailParticle {", - " constructor() {", - " this.startSpeed = 0;", - " this.startColor = new THREE.Vector4();", - " this.startSize = 1;", - " this.position = new THREE.Vector3();", - " this.velocity = new THREE.Vector3();", - " this.age = 0;", - " this.life = 1;", - " this.size = 1;", - " this.length = 100;", - " // GPU", - " this.color = new THREE.Vector4();", - " // use link list instead", - " this.previous = new LinkedList();", - " this.uvTile = 0;", - " }", - " update() {", - " if (this.age <= this.life) {", - " this.previous.push(new RecordState(this.position.clone(), this.size, this.color.clone()));", - " }", - " else {", - " if (this.previous.length > 0) {", - " this.previous.dequeue();", - " }", - " }", - " while (this.previous.length > this.length) {", - " this.previous.dequeue();", - " }", - " }", - " get died() {", - " return this.age >= this.life;", - " }", - " reset() {", - " this.previous.clear();", - " }", - "}", - "", - "class ConstantValue {", - " constructor(value) {", - " this.value = value;", - " this.type = 'value';", - " }", - " genValue() {", - " return this.value;", - " }", - " toJSON() {", - " return {", - " type: \"ConstantValue\",", - " value: this.value", - " };", - " }", - " static fromJSON(json) {", - " return new ConstantValue(json.value);", - " }", - " clone() {", - " return new ConstantValue(this.value);", - " }", - "}", - "", - "class IntervalValue {", - " constructor(a, b) {", - " this.a = a;", - " this.b = b;", - " this.type = \"value\";", - " }", - " genValue() {", - " return THREE.MathUtils.lerp(this.a, this.b, Math.random());", - " }", - " toJSON() {", - " return {", - " type: \"IntervalValue\",", - " a: this.a,", - " b: this.b,", - " };", - " }", - " static fromJSON(json) {", - " return new IntervalValue(json.a, json.b);", - " }", - " clone() {", - " return new IntervalValue(this.a, this.b);", - " }", - "}", - "", - "class PiecewiseFunction {", - " constructor() {", - " this.functions = new Array();", - " }", - " findFunction(t) {", - " let mid = 0;", - " let left = 0, right = this.functions.length - 1;", - " while (left + 1 < right) {", - " mid = Math.floor((left + right) / 2);", - " if (t < this.getStartX(mid))", - " right = mid - 1;", - " else if (t > this.getEndX(mid))", - " left = mid + 1;", - " else", - " return mid;", - " }", - " for (let i = left; i <= right; i++) {", - " if (t >= this.functions[i][1] && t <= this.getEndX(i))", - " return i;", - " }", - " return -1;", - " }", - " getStartX(index) {", - " return this.functions[index][1];", - " }", - " setStartX(index, x) {", - " if (index > 0)", - " this.functions[index][1] = x;", - " }", - " getEndX(index) {", - " if (index + 1 < this.functions.length)", - " return this.functions[index + 1][1];", - " return 1;", - " }", - " setEndX(index, x) {", - " if (index + 1 < this.functions.length)", - " this.functions[index + 1][1] = x;", - " }", - " insertFunction(t, func) {", - " const index = this.findFunction(t);", - " this.functions.splice(index + 1, 0, [func, t]);", - " }", - " removeFunction(index) {", - " return this.functions.splice(index, 1)[0][0];", - " }", - " getFunction(index) {", - " return this.functions[index][0];", - " }", - " setFunction(index, func) {", - " this.functions[index][0] = func;", - " }", - " get numOfFunctions() {", - " return this.functions.length;", - " }", - "}", - "", - "class Bezier {", - " constructor(p1, p2, p3, p4) {", - " this.p = [p1, p2, p3, p4];", - " }", - " genValue(t) {", - " const t2 = t * t;", - " const t3 = t * t * t;", - " const mt = 1 - t;", - " const mt2 = mt * mt;", - " const mt3 = mt2 * mt;", - " return this.p[0] * mt3 + this.p[1] * mt2 * t * 3 + this.p[2] * mt * t2 * 3 + this.p[3] * t3;", - " }", - " // get the coefficients of the polynomial's derivatives", - " derivativeCoefficients(points) {", - " const dpoints = [];", - " for (let p = points, c = p.length - 1; c > 0; c--) {", - " const list = [];", - " for (let j = 0; j < c; j++) {", - " const dpt = c * (p[j + 1] - p[j]);", - " list.push(dpt);", - " }", - " dpoints.push(list);", - " p = list;", - " }", - " return dpoints;", - " }", - " // calculate the slope", - " getSlope(t) {", - " const p = this.derivativeCoefficients(this.p)[0];", - " const mt = 1 - t;", - " const a = mt * mt;", - " const b = mt * t * 2;", - " const c = t * t;", - " return a * p[0] + b * p[1] + c * p[2];", - " //return a * (p[1] - p[0]) * 3 + b * (p[2] - p[1]) * 3 + c * (p[3] - p[2]) * 3;", - " }", - " // derivative(0) = (p[1] - p[0]) * 3", - " // derivative(1) = (p[3] - p[2]) * 3", - " controlCurve(d0, d1) {", - " this.p[1] = d0 / 3 + this.p[0];", - " this.p[2] = this.p[3] - d1 / 3;", - " }", - " hull(t) {", - " let p = this.p;", - " let _p = [], pt, idx = 0, i = 0, l = 0;", - " const q = [];", - " q[idx++] = p[0];", - " q[idx++] = p[1];", - " q[idx++] = p[2];", - " q[idx++] = p[3];", - " // we lerp between all points at each iteration, until we have 1 point left.", - " while (p.length > 1) {", - " _p = [];", - " for (i = 0, l = p.length - 1; i < l; i++) {", - " pt = t * p[i] + (1 - t) * p[i + 1];", - " q[idx++] = pt;", - " _p.push(pt);", - " }", - " p = _p;", - " }", - " return q;", - " }", - " split(t) {", - " // no shortcut: use \"de Casteljau\" iteration.", - " const q = this.hull(t);", - " const result = {", - " left: new Bezier(q[0], q[4], q[7], q[9]),", - " right: new Bezier(q[9], q[8], q[6], q[3]),", - " span: q", - " };", - " return result;", - " }", - " clone() {", - " return new Bezier(this.p[0], this.p[1], this.p[2], this.p[3]);", - " }", - " toJSON() {", - " return {", - " p0: this.p[0],", - " p1: this.p[1],", - " p2: this.p[2],", - " p3: this.p[3],", - " };", - " }", - " static fromJSON(json) {", - " return new Bezier(json.p0, json.p1, json.p2, json.p3);", - " }", - "}", - "", - "class PiecewiseBezier extends PiecewiseFunction {", - " // default linear bezier", - " constructor(curves = [[new Bezier(0, 1.0 / 3, 1.0 / 3 * 2, 1), 0]]) {", - " super();", - " this.type = \"function\";", - " this.functions = curves;", - " }", - " genValue(t = 0) {", - " const index = this.findFunction(t);", - " if (index === -1) {", - " return 0;", - " }", - " return this.functions[index][0].genValue((t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", - " }", - " toSVG(length, segments) {", - " if (segments < 1)", - " return \"\";", - " let result = [\"M\", 0, this.functions[0][0].p[0]].join(\" \");", - " for (let i = 1.0 / segments; i <= 1; i += 1.0 / segments) {", - " result = [result, \"L\", i * length, this.genValue(i)].join(\" \");", - " }", - " return result;", - " }", - " toJSON() {", - " return {", - " type: \"PiecewiseBezier\",", - " functions: this.functions.map(([bezier, start]) => ({ function: bezier.toJSON(), start: start })),", - " };", - " }", - " static fromJSON(json) {", - " return new PiecewiseBezier(json.functions.map((piecewiseFunction) => ([Bezier.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", - " }", - " clone() {", - " return new PiecewiseBezier(this.functions.map(([bezier, start]) => ([bezier.clone(), start])));", - " }", - "}", - "", - "function ValueGeneratorFromJSON(json) {", - " switch (json.type) {", - " case 'ConstantValue':", - " return ConstantValue.fromJSON(json);", - " case 'IntervalValue':", - " return IntervalValue.fromJSON(json);", - " case 'PiecewiseBezier':", - " return PiecewiseBezier.fromJSON(json);", - " default:", - " return new ConstantValue(0);", - " }", - "}", - "", - "const ColorToJSON = (color) => {", - " return { r: color.x, g: color.y, b: color.z, a: color.w };", - "};", - "const JSONToColor = (json) => {", - " return new THREE.Vector4(json.r, json.g, json.b, json.a);", - "};", - "", - "class RandomColor {", - " constructor(a, b) {", - " this.a = a;", - " this.b = b;", - " this.type = \"value\";", - " }", - " genColor(color) {", - " const rand = Math.random();", - " return color.copy(this.a).lerp(this.b, rand);", - " }", - " toJSON() {", - " return {", - " type: \"RandomColor\",", - " a: ColorToJSON(this.a),", - " b: ColorToJSON(this.b),", - " };", - " }", - " static fromJSON(json) {", - " return new RandomColor(JSONToColor(json.a), JSONToColor(json.b));", - " }", - " clone() {", - " return new RandomColor(this.a.clone(), this.b.clone());", - " }", - "}", - "", - "class ColorRange {", - " constructor(a, b) {", - " this.a = a;", - " this.b = b;", - " this.type = \"function\";", - " }", - " genColor(color, t) {", - " return color.copy(this.a).lerp(this.b, t);", - " }", - " toJSON() {", - " return {", - " type: \"ColorRange\",", - " a: ColorToJSON(this.a),", - " b: ColorToJSON(this.b),", - " };", - " }", - " static fromJSON(json) {", - " return new ColorRange(JSONToColor(json.a), JSONToColor(json.b));", - " }", - " clone() {", - " return new ColorRange(this.a.clone(), this.b.clone());", - " }", - "}", - "", - "class Gradient extends PiecewiseFunction {", - " // default linear bezier", - " constructor(functions = [[new ColorRange(new THREE.Vector4(0, 0, 0, 1), new THREE.Vector4(1, 1, 1, 1)), 0]]) {", - " super();", - " this.type = \"function\";", - " this.functions = functions;", - " }", - " genColor(color, t) {", - " const index = this.findFunction(t);", - " if (index === -1) {", - " return color.copy(this.functions[0][0].a);", - " }", - " return this.getFunction(index).genColor(color, (t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", - " }", - " toJSON() {", - " return {", - " type: \"Gradient\",", - " functions: this.functions.map(([range, start]) => ({ function: range.toJSON(), start: start })),", - " };", - " }", - " static fromJSON(json) {", - " return new Gradient(json.functions.map((piecewiseFunction) => ([ColorRange.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", - " }", - " clone() {", - " return new Gradient(this.functions.map(([range, start]) => ([range.clone(), start])));", - " }", - "}", - "", - "const tempColor = new THREE.Vector4();", - "// generate a random color from the start two gradients", - "class RandomColorBetweenGradient {", - " constructor(gradient1, gradient2) {", - " this.type = 'memorizedFunction';", - " this.gradient1 = gradient1;", - " this.gradient2 = gradient2;", - " }", - " startGen(memory) {", - " memory.rand = Math.random();", - " }", - " genColor(color, t, memory) {", - " this.gradient1.genColor(color, t);", - " this.gradient2.genColor(tempColor, t);", - " color.lerp(tempColor, memory.rand);", - " return color;", - " }", - " toJSON() {", - " return {", - " type: 'RandomColorBetweenGradient',", - " gradient1: this.gradient1.toJSON(),", - " gradient2: this.gradient2.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new RandomColorBetweenGradient(Gradient.fromJSON(json.gradient1), Gradient.fromJSON(json.gradient2));", - " }", - " clone() {", - " return new RandomColorBetweenGradient(this.gradient1.clone(), this.gradient2.clone());", - " }", - "}", - "", - "class ConstantColor {", - " constructor(color) {", - " this.color = color;", - " this.type = 'value';", - " }", - " genColor(color) {", - " return color.copy(this.color);", - " }", - " toJSON() {", - " return {", - " type: 'ConstantColor',", - " color: ColorToJSON(this.color),", - " };", - " }", - " static fromJSON(json) {", - " return new ConstantColor(JSONToColor(json.color));", - " }", - " clone() {", - " return new ConstantColor(this.color.clone());", - " }", - "}", - "function ColorGeneratorFromJSON(json) {", - " switch (json.type) {", - " case 'ConstantColor':", - " return ConstantColor.fromJSON(json);", - " case 'ColorRange':", - " return ColorRange.fromJSON(json);", - " case 'RandomColor':", - " return RandomColor.fromJSON(json);", - " case 'Gradient':", - " return Gradient.fromJSON(json);", - " case 'RandomColorBetweenGradient':", - " return RandomColorBetweenGradient.fromJSON(json);", - " default:", - " return new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", - " }", - "}", - "", - "class RandomQuatGenerator {", - " constructor() {", - " this.type = \"rotation\";", - " }", - " genValue(quat, t) {", - " let x, y, z, u, v, w;", - " do {", - " x = Math.random() * 2 - 1;", - " y = Math.random() * 2 - 1;", - " z = x * x + y * y;", - " } while (z > 1);", - " do {", - " u = Math.random() * 2 - 1;", - " v = Math.random() * 2 - 1;", - " w = u * u + v * v;", - " } while (w > 1);", - " const s = Math.sqrt((1 - z) / w);", - " quat.set(x, y, s * u, s * v);", - " return quat;", - " }", - " toJSON() {", - " return {", - " type: \"RandomQuat\"", - " };", - " }", - " static fromJSON(json) {", - " return new RandomQuatGenerator();", - " }", - " clone() {", - " return new RandomQuatGenerator();", - " }", - "}", - "", - "class AxisAngleGenerator {", - " constructor(axis, angle) {", - " this.axis = axis;", - " this.angle = angle;", - " this.type = \"rotation\";", - " }", - " genValue(quat, t) {", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " return quat.setFromAxisAngle(this.axis, this.angle.genValue(t));", - " }", - " toJSON() {", - " return {", - " type: \"AxisAngle\",", - " axis: { x: this.axis.x, y: this.axis.y, z: this.axis.z },", - " angle: this.angle.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new AxisAngleGenerator(json.axis, ValueGeneratorFromJSON(json.angle));", - " }", - " clone() {", - " return new AxisAngleGenerator(this.axis.clone(), this.angle.clone());", - " }", - "}", - "", - "class EulerGenerator {", - " constructor(angleX, angleY, angleZ) {", - " this.angleX = angleX;", - " this.angleY = angleY;", - " this.angleZ = angleZ;", - " this.type = \"rotation\";", - " }", - " genValue(quat, t) {", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " return quat.setFromEuler(new THREE.Euler(this.angleX.genValue(t), this.angleY.genValue(t), this.angleZ.genValue(t)));", - " }", - " toJSON() {", - " return {", - " type: \"Euler\",", - " angleX: this.angleX.toJSON(),", - " angleY: this.angleY.toJSON(),", - " angleZ: this.angleZ.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new EulerGenerator(ValueGeneratorFromJSON(json.angleX), ValueGeneratorFromJSON(json.angleY), ValueGeneratorFromJSON(json.angleZ));", - " }", - " clone() {", - " return new EulerGenerator(this.angleX, this.angleY, this.angleZ);", - " }", - "}", - "", - "function RotationGeneratorFromJSON(json) {", - " switch (json.type) {", - " case 'AxisAngle':", - " return AxisAngleGenerator.fromJSON(json);", - " case 'Euler':", - " return EulerGenerator.fromJSON(json);", - " case 'RandomQuat':", - " return RandomQuatGenerator.fromJSON(json);", - " default:", - " return new RandomQuatGenerator();", - " }", - "}", - "", - "function GeneratorFromJSON(json) {", - " switch (json.type) {", - " case 'ConstantValue':", - " case 'IntervalValue':", - " case 'PiecewiseBezier':", - " return ValueGeneratorFromJSON(json);", - " case 'AxisAngle':", - " case 'RandomQuat':", - " case 'Euler':", - " return RotationGeneratorFromJSON(json);", - " default:", - " return new ConstantValue(0);", - " }", - "}", - "", - "class ColorOverLife {", - " constructor(color) {", - " this.color = color;", - " this.type = 'ColorOverLife';", - " }", - " initialize(particle) {", - " if (this.color.type === 'memorizedFunction') {", - " particle.colorOverLifeMemory = {};", - " this.color.startGen(particle.colorOverLifeMemory);", - " }", - " }", - " update(particle, delta) {", - " if (this.color.type === 'memorizedFunction') {", - " this.color.genColor(particle.color, particle.age / particle.life, particle.colorOverLifeMemory);", - " }", - " else {", - " this.color.genColor(particle.color, particle.age / particle.life);", - " }", - " particle.color.x *= particle.startColor.x;", - " particle.color.y *= particle.startColor.y;", - " particle.color.z *= particle.startColor.z;", - " particle.color.w *= particle.startColor.w;", - " }", - " frameUpdate(delta) { }", - " toJSON() {", - " return {", - " type: this.type,", - " color: this.color.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new ColorOverLife(ColorGeneratorFromJSON(json.color));", - " }", - " clone() {", - " return new ColorOverLife(this.color.clone());", - " }", - " reset() { }", - "}", - "", - "class RotationOverLife {", - " constructor(angularVelocity, dynamic) {", - " this.angularVelocity = angularVelocity;", - " this.dynamic = dynamic;", - " this.type = 'RotationOverLife';", - " this.tempQuat = new THREE.Quaternion();", - " }", - " initialize(particle) {", - " if (!this.dynamic && particle instanceof SpriteParticle) {", - " particle.angularVelocity = this.angularVelocity.genValue();", - " }", - " }", - " update(particle, delta) {", - " if (!this.dynamic) {", - " if (particle instanceof SpriteParticle) {", - " particle.rotation += delta * particle.angularVelocity;", - " }", - " }", - " else {", - " particle.rotation += delta * this.angularVelocity.genValue(particle.age / particle.life);", - " }", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " angularVelocity: this.angularVelocity.toJSON(),", - " dynamic: this.dynamic,", - " };", - " }", - " static fromJSON(json) {", - " return new RotationOverLife(ValueGeneratorFromJSON(json.angularVelocity), json.dynamic);", - " }", - " frameUpdate(delta) {", - " }", - " clone() {", - " return new RotationOverLife(this.angularVelocity.clone(), this.dynamic);", - " }", - " reset() {", - " }", - "}", - "", - "class SizeOverLife {", - " initialize(particle) {", - " }", - " constructor(size) {", - " this.size = size;", - " this.type = 'SizeOverLife';", - " }", - " update(particle) {", - " particle.size = particle.startSize * this.size.genValue(particle.age / particle.life);", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " size: this.size.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new SizeOverLife(ValueGeneratorFromJSON(json.size));", - " }", - " frameUpdate(delta) {", - " }", - " clone() {", - " return new SizeOverLife(this.size.clone());", - " }", - " reset() {", - " }", - "}", - "", - "class SpeedOverLife {", - " initialize(particle) {", - " }", - " constructor(speed) {", - " this.speed = speed;", - " this.type = 'SpeedOverLife';", - " }", - " update(particle) {", - " particle.velocity.normalize().multiplyScalar(particle.startSpeed * this.speed.genValue(particle.age / particle.life));", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " speed: this.speed.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new SpeedOverLife(ValueGeneratorFromJSON(json.speed));", - " }", - " frameUpdate(delta) {", - " }", - " clone() {", - " return new SpeedOverLife(this.speed.clone());", - " }", - " reset() {", - " }", - "}", - "", - "class FrameOverLife {", - " constructor(frame) {", - " this.frame = frame;", - " this.type = 'FrameOverLife';", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " particle.uvTile = Math.floor(this.frame.genValue(particle.age / particle.life));", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " frame: this.frame.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new FrameOverLife(ValueGeneratorFromJSON(json.frame));", - " }", - " clone() {", - " return new FrameOverLife(this.frame.clone());", - " }", - " reset() {", - " }", - "}", - "", - "new THREE.Vector3(0, 0, 1);", - "class OrbitOverLife {", - " constructor(orbitSpeed, axis = new THREE.Vector3(0, 1, 0)) {", - " this.orbitSpeed = orbitSpeed;", - " this.axis = axis;", - " this.type = 'OrbitOverLife';", - " this.temp = new THREE.Vector3();", - " this.rotation = new THREE.Quaternion();", - " this.line = new THREE.Line3();", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " this.line.set(new THREE.Vector3(0, 0, 0), this.axis);", - " this.line.closestPointToPoint(particle.position, false, this.temp);", - " this.rotation.setFromAxisAngle(this.axis, this.orbitSpeed.genValue(particle.age / particle.life) * delta);", - " particle.position.sub(this.temp);", - " particle.position.applyQuaternion(this.rotation);", - " particle.position.add(this.temp);", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " orbitSpeed: this.orbitSpeed.toJSON(),", - " axis: [this.axis.x, this.axis.y, this.axis.z],", - " };", - " }", - " static fromJSON(json) {", - " return new OrbitOverLife(ValueGeneratorFromJSON(json.orbitSpeed), json.axis ? new THREE.Vector3(json.axis[0], json.axis[1], json.axis[2]) : undefined);", - " }", - " clone() {", - " return new OrbitOverLife(this.orbitSpeed.clone());", - " }", - " reset() {", - " }", - "}", - "", - "class ApplyForce {", - " constructor(direction, magnitude) {", - " this.direction = direction;", - " this.magnitude = magnitude;", - " this.type = 'ApplyForce';", - " this.magnitudeValue = this.magnitude.genValue();", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " particle.velocity.addScaledVector(this.direction, this.magnitudeValue * delta);", - " }", - " frameUpdate(delta) {", - " this.magnitudeValue = this.magnitude.genValue();", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " direction: [this.direction.x, this.direction.y, this.direction.z],", - " magnitude: this.magnitude.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " var _a;", - " return new ApplyForce(new THREE.Vector3(json.direction[0], json.direction[1], json.direction[2]), ValueGeneratorFromJSON((_a = json.magnitude) !== null && _a !== void 0 ? _a : json.force));", - " }", - " clone() {", - " return new ApplyForce(this.direction.clone(), this.magnitude.clone());", - " }", - " reset() {", - " }", - "}", - "", - "class GravityForce {", - " constructor(center, magnitude) {", - " this.center = center;", - " this.magnitude = magnitude;", - " this.type = 'GravityForce';", - " this.temp = new THREE.Vector3();", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " this.temp.copy(this.center).sub(particle.position).normalize();", - " particle.velocity.addScaledVector(this.temp, this.magnitude / particle.position.distanceToSquared(this.center) * delta);", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " center: [this.center.x, this.center.y, this.center.z],", - " magnitude: this.magnitude,", - " };", - " }", - " static fromJSON(json) {", - " return new GravityForce(new THREE.Vector3(json.center[0], json.center[1], json.center[2]), json.magnitude);", - " }", - " clone() {", - " return new GravityForce(this.center.clone(), this.magnitude);", - " }", - " reset() {", - " }", - "}", - "", - "class WidthOverLength {", - " initialize(particle) {", - " }", - " constructor(width) {", - " this.width = width;", - " this.type = 'WidthOverLength';", - " }", - " update(particle) {", - " if (particle instanceof TrailParticle) {", - " const iter = particle.previous.values();", - " for (let i = 0; i < particle.previous.length; i++) {", - " const cur = iter.next();", - " cur.value.size = this.width.genValue((particle.previous.length - i) / particle.length);", - " }", - " }", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " width: this.width.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new WidthOverLength(ValueGeneratorFromJSON(json.width));", - " }", - " clone() {", - " return new WidthOverLength(this.width.clone());", - " }", - " reset() {", - " }", - "}", - "", - "new THREE.Vector3(0, 0, 1);", - "class ChangeEmitDirection {", - " constructor(angle) {", - " this.angle = angle;", - " this.type = 'ChangeEmitDirection';", - " this._temp = new THREE.Vector3();", - " this._q = new THREE.Quaternion();", - " }", - " initialize(particle) {", - " const len = particle.velocity.length();", - " if (len == 0)", - " return;", - " particle.velocity.normalize();", - " if (particle.velocity.x === 0 && particle.velocity.y === 0) {", - " this._temp.set(0, particle.velocity.z, 0);", - " }", - " else {", - " this._temp.set(-particle.velocity.y, particle.velocity.x, 0);", - " }", - " this._q.setFromAxisAngle(this._temp.normalize(), this.angle.genValue());", - " this._temp.copy(particle.velocity);", - " particle.velocity.applyQuaternion(this._q);", - " this._q.setFromAxisAngle(this._temp, Math.random() * Math.PI * 2);", - " particle.velocity.applyQuaternion(this._q);", - " particle.velocity.setLength(len);", - " }", - " update(particle, delta) {", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " angle: this.angle.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new ChangeEmitDirection(ValueGeneratorFromJSON(json.angle));", - " }", - " clone() {", - " return new ChangeEmitDirection(this.angle);", - " }", - " reset() {", - " }", - "}", - "", - "const VECTOR_ONE = new THREE.Vector3(1, 1, 1);", - "const VECTOR_Z = new THREE.Vector3(0, 0, 1);", - "class EmitSubParticleSystem {", - " constructor(particleSystem, useVelocityAsBasis, subParticleSystem) {", - " this.particleSystem = particleSystem;", - " this.useVelocityAsBasis = useVelocityAsBasis;", - " this.subParticleSystem = subParticleSystem;", - " this.type = \"EmitSubParticleSystem\";", - " //private matrix_ = new Matrix4();", - " this.q_ = new THREE.Quaternion();", - " this.v_ = new THREE.Vector3();", - " this.v2_ = new THREE.Vector3();", - " if (this.subParticleSystem && this.subParticleSystem.system) {", - " this.subParticleSystem.system.onlyUsedByOther = true;", - " }", - " }", - " initialize(particle) {", - " particle.emissionState = {", - " burstIndex: 0,", - " burstWaveIndex: 0,", - " time: 0,", - " waitEmiting: 0,", - " matrix: new THREE.Matrix4(),", - " };", - " }", - " update(particle, delta) {", - " if (!this.subParticleSystem || !particle.emissionState)", - " return;", - " const m = particle.emissionState.matrix;", - " let rotation;", - " if (particle.rotation === undefined || this.useVelocityAsBasis) {", - " if (particle.velocity.x === 0 && particle.velocity.y === 0 && (particle.velocity.z === 1 || particle.velocity.z === 0)) {", - " m.set(1, 0, 0, particle.position.x, 0, 1, 0, particle.position.y, 0, 0, 1, particle.position.z, 0, 0, 0, 1);", - " }", - " else {", - " this.v_.copy(VECTOR_Z).cross(particle.velocity);", - " this.v2_.copy(particle.velocity).cross(this.v_);", - " const len = this.v_.length();", - " const len2 = this.v2_.length();", - " m.set(this.v_.x / len, this.v2_.x / len2, particle.velocity.x, particle.position.x, this.v_.y / len, this.v2_.y / len2, particle.velocity.y, particle.position.y, this.v_.z / len, this.v2_.z / len2, particle.velocity.z, particle.position.z, 0, 0, 0, 1);", - " }", - " }", - " else {", - " if (particle.rotation instanceof THREE.Quaternion) {", - " rotation = particle.rotation;", - " }", - " else {", - " this.q_.setFromAxisAngle(VECTOR_Z, particle.rotation);", - " rotation = this.q_;", - " }", - " m.compose(particle.position, rotation, VECTOR_ONE);", - " }", - " if (!this.particleSystem.worldSpace) {", - " m.multiplyMatrices(this.particleSystem.emitter.matrixWorld, m);", - " }", - " this.subParticleSystem.system.emit(delta, particle.emissionState, m);", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " subParticleSystem: this.subParticleSystem ? this.subParticleSystem.uuid : \"\",", - " useVelocityAsBasis: this.useVelocityAsBasis", - " };", - " }", - " static fromJSON(json, particleSystem) {", - " return new EmitSubParticleSystem(particleSystem, json.useVelocityAsBasis, json.subParticleSystem);", - " }", - " clone() {", - " return new EmitSubParticleSystem(this.particleSystem, this.useVelocityAsBasis, this.subParticleSystem);", - " }", - " reset() {", - " }", - "}", - "", - "/*", - " * A fast javascript implementation of simplex noise by Jonas Wagner", - "Based on a speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.", - "Which is based on example code by Stefan Gustavson (stegu@itn.liu.se).", - "With Optimisations by Peter Eastman (peastman@drizzle.stanford.edu).", - "Better rank ordering method by Stefan Gustavson in 2012.", - " Copyright (c) 2021 Jonas Wagner", - " Permission is hereby granted, free of charge, to any person obtaining a copy", - " of this software and associated documentation files (the \"Software\"), to deal", - " in the Software without restriction, including without limitation the rights", - " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", - " copies of the Software, and to permit persons to whom the Software is", - " furnished to do so, subject to the following conditions:", - " The above copyright notice and this permission notice shall be included in all", - " copies or substantial portions of the Software.", - " THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", - " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", - " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", - " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", - " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", - " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE", - " SOFTWARE.", - " */", - "const F2 = 0.5 * (Math.sqrt(3.0) - 1.0);", - "const G2 = (3.0 - Math.sqrt(3.0)) / 6.0;", - "const F3 = 1.0 / 3.0;", - "const G3 = 1.0 / 6.0;", - "const F4 = (Math.sqrt(5.0) - 1.0) / 4.0;", - "const G4 = (5.0 - Math.sqrt(5.0)) / 20.0;", - "const grad3 = new Float32Array([1, 1, 0,", - " -1, 1, 0,", - " 1, -1, 0,", - " -1, -1, 0,", - " 1, 0, 1,", - " -1, 0, 1,", - " 1, 0, -1,", - " -1, 0, -1,", - " 0, 1, 1,", - " 0, -1, 1,", - " 0, 1, -1,", - " 0, -1, -1]);", - "const grad4 = new Float32Array([0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1,", - " 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1,", - " 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1,", - " -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1,", - " 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1,", - " -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1,", - " 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0,", - " -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0]);", - "/** Deterministic simplex noise generator suitable for 2D, 3D and 4D spaces. */", - "class SimplexNoise {", - " /**", - " * Creates a new `SimplexNoise` instance.", - " * This involves some setup. You can save a few cpu cycles by reusing the same instance.", - " * @param randomOrSeed A random number generator or a seed (string|number).", - " * Defaults to Math.random (random irreproducible initialization).", - " */", - " constructor(randomOrSeed = Math.random) {", - " const random = typeof randomOrSeed == 'function' ? randomOrSeed : alea(randomOrSeed);", - " this.p = buildPermutationTable(random);", - " this.perm = new Uint8Array(512);", - " this.permMod12 = new Uint8Array(512);", - " for (let i = 0; i < 512; i++) {", - " this.perm[i] = this.p[i & 255];", - " this.permMod12[i] = this.perm[i] % 12;", - " }", - " }", - " /**", - " * Samples the noise field in 2 dimensions", - " * @param x", - " * @param y", - " * @returns a number in the interval [-1, 1]", - " */", - " noise2D(x, y) {", - " const permMod12 = this.permMod12;", - " const perm = this.perm;", - " let n0 = 0; // Noise contributions from the three corners", - " let n1 = 0;", - " let n2 = 0;", - " // Skew the input space to determine which simplex cell we're in", - " const s = (x + y) * F2; // Hairy factor for 2D", - " const i = Math.floor(x + s);", - " const j = Math.floor(y + s);", - " const t = (i + j) * G2;", - " const X0 = i - t; // Unskew the cell origin back to (x,y) space", - " const Y0 = j - t;", - " const x0 = x - X0; // The x,y distances from the cell origin", - " const y0 = y - Y0;", - " // For the 2D case, the simplex shape is an equilateral triangle.", - " // Determine which simplex we are in.", - " let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords", - " if (x0 > y0) {", - " i1 = 1;", - " j1 = 0;", - " } // lower triangle, XY order: (0,0)->(1,0)->(1,1)", - " else {", - " i1 = 0;", - " j1 = 1;", - " } // upper triangle, YX order: (0,0)->(0,1)->(1,1)", - " // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and", - " // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where", - " // c = (3-sqrt(3))/6", - " const x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords", - " const y1 = y0 - j1 + G2;", - " const x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) unskewed coords", - " const y2 = y0 - 1.0 + 2.0 * G2;", - " // Work out the hashed gradient indices of the three simplex corners", - " const ii = i & 255;", - " const jj = j & 255;", - " // Calculate the contribution from the three corners", - " let t0 = 0.5 - x0 * x0 - y0 * y0;", - " if (t0 >= 0) {", - " const gi0 = permMod12[ii + perm[jj]] * 3;", - " t0 *= t0;", - " n0 = t0 * t0 * (grad3[gi0] * x0 + grad3[gi0 + 1] * y0); // (x,y) of grad3 used for 2D gradient", - " }", - " let t1 = 0.5 - x1 * x1 - y1 * y1;", - " if (t1 >= 0) {", - " const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;", - " t1 *= t1;", - " n1 = t1 * t1 * (grad3[gi1] * x1 + grad3[gi1 + 1] * y1);", - " }", - " let t2 = 0.5 - x2 * x2 - y2 * y2;", - " if (t2 >= 0) {", - " const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;", - " t2 *= t2;", - " n2 = t2 * t2 * (grad3[gi2] * x2 + grad3[gi2 + 1] * y2);", - " }", - " // Add contributions from each corner to get the final noise value.", - " // The result is scaled to return values in the interval [-1,1].", - " return 70.0 * (n0 + n1 + n2);", - " }", - " /**", - " * Samples the noise field in 3 dimensions", - " * @param x", - " * @param y", - " * @param z", - " * @returns a number in the interval [-1, 1]", - " */", - " noise3D(x, y, z) {", - " const permMod12 = this.permMod12;", - " const perm = this.perm;", - " let n0, n1, n2, n3; // Noise contributions from the four corners", - " // Skew the input space to determine which simplex cell we're in", - " const s = (x + y + z) * F3; // Very nice and simple skew factor for 3D", - " const i = Math.floor(x + s);", - " const j = Math.floor(y + s);", - " const k = Math.floor(z + s);", - " const t = (i + j + k) * G3;", - " const X0 = i - t; // Unskew the cell origin back to (x,y,z) space", - " const Y0 = j - t;", - " const Z0 = k - t;", - " const x0 = x - X0; // The x,y,z distances from the cell origin", - " const y0 = y - Y0;", - " const z0 = z - Z0;", - " // For the 3D case, the simplex shape is a slightly irregular tetrahedron.", - " // Determine which simplex we are in.", - " let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords", - " let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords", - " if (x0 >= y0) {", - " if (y0 >= z0) {", - " i1 = 1;", - " j1 = 0;", - " k1 = 0;", - " i2 = 1;", - " j2 = 1;", - " k2 = 0;", - " } // X Y Z order", - " else if (x0 >= z0) {", - " i1 = 1;", - " j1 = 0;", - " k1 = 0;", - " i2 = 1;", - " j2 = 0;", - " k2 = 1;", - " } // X Z Y order", - " else {", - " i1 = 0;", - " j1 = 0;", - " k1 = 1;", - " i2 = 1;", - " j2 = 0;", - " k2 = 1;", - " } // Z X Y order", - " }", - " else { // x0 y0)", - " rankx++;", - " else", - " ranky++;", - " if (x0 > z0)", - " rankx++;", - " else", - " rankz++;", - " if (x0 > w0)", - " rankx++;", - " else", - " rankw++;", - " if (y0 > z0)", - " ranky++;", - " else", - " rankz++;", - " if (y0 > w0)", - " ranky++;", - " else", - " rankw++;", - " if (z0 > w0)", - " rankz++;", - " else", - " rankw++;", - " // simplex[c] is a 4-vector with the numbers 0, 1, 2 and 3 in some order.", - " // Many values of c will never occur, since e.g. x>y>z>w makes x= 3 ? 1 : 0;", - " const j1 = ranky >= 3 ? 1 : 0;", - " const k1 = rankz >= 3 ? 1 : 0;", - " const l1 = rankw >= 3 ? 1 : 0;", - " // The integer offsets for the third simplex corner", - " const i2 = rankx >= 2 ? 1 : 0;", - " const j2 = ranky >= 2 ? 1 : 0;", - " const k2 = rankz >= 2 ? 1 : 0;", - " const l2 = rankw >= 2 ? 1 : 0;", - " // The integer offsets for the fourth simplex corner", - " const i3 = rankx >= 1 ? 1 : 0;", - " const j3 = ranky >= 1 ? 1 : 0;", - " const k3 = rankz >= 1 ? 1 : 0;", - " const l3 = rankw >= 1 ? 1 : 0;", - " // The fifth corner has all coordinate offsets = 1, so no need to compute that.", - " const x1 = x0 - i1 + G4; // Offsets for second corner in (x,y,z,w) coords", - " const y1 = y0 - j1 + G4;", - " const z1 = z0 - k1 + G4;", - " const w1 = w0 - l1 + G4;", - " const x2 = x0 - i2 + 2.0 * G4; // Offsets for third corner in (x,y,z,w) coords", - " const y2 = y0 - j2 + 2.0 * G4;", - " const z2 = z0 - k2 + 2.0 * G4;", - " const w2 = w0 - l2 + 2.0 * G4;", - " const x3 = x0 - i3 + 3.0 * G4; // Offsets for fourth corner in (x,y,z,w) coords", - " const y3 = y0 - j3 + 3.0 * G4;", - " const z3 = z0 - k3 + 3.0 * G4;", - " const w3 = w0 - l3 + 3.0 * G4;", - " const x4 = x0 - 1.0 + 4.0 * G4; // Offsets for last corner in (x,y,z,w) coords", - " const y4 = y0 - 1.0 + 4.0 * G4;", - " const z4 = z0 - 1.0 + 4.0 * G4;", - " const w4 = w0 - 1.0 + 4.0 * G4;", - " // Work out the hashed gradient indices of the five simplex corners", - " const ii = i & 255;", - " const jj = j & 255;", - " const kk = k & 255;", - " const ll = l & 255;", - " // Calculate the contribution from the five corners", - " let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;", - " if (t0 < 0)", - " n0 = 0.0;", - " else {", - " const gi0 = (perm[ii + perm[jj + perm[kk + perm[ll]]]] % 32) * 4;", - " t0 *= t0;", - " n0 = t0 * t0 * (grad4[gi0] * x0 + grad4[gi0 + 1] * y0 + grad4[gi0 + 2] * z0 + grad4[gi0 + 3] * w0);", - " }", - " let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;", - " if (t1 < 0)", - " n1 = 0.0;", - " else {", - " const gi1 = (perm[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] % 32) * 4;", - " t1 *= t1;", - " n1 = t1 * t1 * (grad4[gi1] * x1 + grad4[gi1 + 1] * y1 + grad4[gi1 + 2] * z1 + grad4[gi1 + 3] * w1);", - " }", - " let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;", - " if (t2 < 0)", - " n2 = 0.0;", - " else {", - " const gi2 = (perm[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] % 32) * 4;", - " t2 *= t2;", - " n2 = t2 * t2 * (grad4[gi2] * x2 + grad4[gi2 + 1] * y2 + grad4[gi2 + 2] * z2 + grad4[gi2 + 3] * w2);", - " }", - " let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;", - " if (t3 < 0)", - " n3 = 0.0;", - " else {", - " const gi3 = (perm[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] % 32) * 4;", - " t3 *= t3;", - " n3 = t3 * t3 * (grad4[gi3] * x3 + grad4[gi3 + 1] * y3 + grad4[gi3 + 2] * z3 + grad4[gi3 + 3] * w3);", - " }", - " let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;", - " if (t4 < 0)", - " n4 = 0.0;", - " else {", - " const gi4 = (perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32) * 4;", - " t4 *= t4;", - " n4 = t4 * t4 * (grad4[gi4] * x4 + grad4[gi4 + 1] * y4 + grad4[gi4 + 2] * z4 + grad4[gi4 + 3] * w4);", - " }", - " // Sum up and scale the result to cover the range [-1,1]", - " return 27.0 * (n0 + n1 + n2 + n3 + n4);", - " }", - "}", - "/**", - " * Builds a random permutation table.", - " * This is exported only for (internal) testing purposes.", - " * Do not rely on this export.", - " * @private", - " */", - "function buildPermutationTable(random) {", - " const p = new Uint8Array(256);", - " for (let i = 0; i < 256; i++) {", - " p[i] = i;", - " }", - " for (let i = 0; i < 255; i++) {", - " const r = i + ~~(random() * (256 - i));", - " const aux = p[i];", - " p[i] = p[r];", - " p[r] = aux;", - " }", - " return p;", - "}", - "/*", - "The ALEA PRNG and masher code used by simplex-noise.js", - "is based on code by Johannes Baagøe, modified by Jonas Wagner.", - "See alea.md for the full license.", - "*/", - "function alea(seed) {", - " let s0 = 0;", - " let s1 = 0;", - " let s2 = 0;", - " let c = 1;", - " const mash = masher();", - " s0 = mash(' ');", - " s1 = mash(' ');", - " s2 = mash(' ');", - " s0 -= mash(seed);", - " if (s0 < 0) {", - " s0 += 1;", - " }", - " s1 -= mash(seed);", - " if (s1 < 0) {", - " s1 += 1;", - " }", - " s2 -= mash(seed);", - " if (s2 < 0) {", - " s2 += 1;", - " }", - " return function () {", - " const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32", - " s0 = s1;", - " s1 = s2;", - " return s2 = t - (c = t | 0);", - " };", - "}", - "function masher() {", - " let n = 0xefc8249d;", - " return function (data) {", - " data = data.toString();", - " for (let i = 0; i < data.length; i++) {", - " n += data.charCodeAt(i);", - " let h = 0.02519603282416938 * n;", - " n = h >>> 0;", - " h -= n;", - " h *= n;", - " n = h >>> 0;", - " h -= n;", - " n += h * 0x100000000; // 2^32", - " }", - " return (n >>> 0) * 2.3283064365386963e-10; // 2^-32", - " };", - "}", - "", - "class TurbulenceField {", - " constructor(scale, octaves, velocityMultiplier, timeScale) {", - " this.scale = scale;", - " this.octaves = octaves;", - " this.velocityMultiplier = velocityMultiplier;", - " this.timeScale = timeScale;", - " this.type = 'TurbulenceField';", - " this.generator = new SimplexNoise();", - " this.timeOffset = new THREE.Vector3();", - " this.temp = new THREE.Vector3();", - " this.temp2 = new THREE.Vector3();", - " this.timeOffset.x = Math.random() / this.scale.x * this.timeScale.x;", - " this.timeOffset.y = Math.random() / this.scale.y * this.timeScale.y;", - " this.timeOffset.z = Math.random() / this.scale.z * this.timeScale.z;", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " const x = particle.position.x / this.scale.x;", - " const y = particle.position.y / this.scale.y;", - " const z = particle.position.z / this.scale.z;", - " this.temp.set(0, 0, 0);", - " let lvl = 1;", - " for (let i = 0; i < this.octaves; i++) {", - " this.temp2.set(this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.x * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.y * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.z * lvl) / lvl);", - " this.temp.add(this.temp2);", - " lvl *= 2;", - " }", - " this.temp.multiply(this.velocityMultiplier);", - " particle.velocity.addScaledVector(this.temp, delta);", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " scale: [this.scale.x, this.scale.y, this.scale.z],", - " octaves: this.octaves,", - " velocityMultiplier: [this.velocityMultiplier.x, this.velocityMultiplier.y, this.velocityMultiplier.z],", - " timeScale: [this.timeScale.x, this.timeScale.y, this.timeScale.z],", - " };", - " }", - " frameUpdate(delta) {", - " this.timeOffset.x += delta * this.timeScale.x;", - " this.timeOffset.y += delta * this.timeScale.y;", - " this.timeOffset.z += delta * this.timeScale.z;", - " }", - " static fromJSON(json) {", - " return new TurbulenceField(new THREE.Vector3(json.scale[0], json.scale[1], json.scale[2]), json.octaves, new THREE.Vector3(json.velocityMultiplier[0], json.velocityMultiplier[1], json.velocityMultiplier[2]), new THREE.Vector3(json.timeScale[0], json.timeScale[1], json.timeScale[2]));", - " }", - " clone() {", - " return new TurbulenceField(this.scale.clone(), this.octaves, this.velocityMultiplier.clone(), this.timeScale.clone());", - " }", - " reset() {", - " }", - "}", - "", - "const IdentityQuaternion = new THREE.Quaternion();", - "class Rotation3DOverLife {", - " constructor(angularVelocity, dynamic) {", - " this.angularVelocity = angularVelocity;", - " this.dynamic = dynamic;", - " this.type = 'Rotation3DOverLife';", - " this.tempQuat = new THREE.Quaternion();", - " }", - " initialize(particle) {", - " if (!this.dynamic && particle instanceof SpriteParticle) {", - " particle.angularVelocity = new THREE.Quaternion();", - " this.angularVelocity.genValue(particle.angularVelocity);", - " }", - " }", - " update(particle, delta) {", - " if (!this.dynamic) {", - " if (particle instanceof SpriteParticle) {", - " this.tempQuat.slerpQuaternions(IdentityQuaternion, particle.angularVelocity, delta);", - " particle.rotation.multiply(this.tempQuat);", - " }", - " }", - " else {", - " this.angularVelocity.genValue(this.tempQuat, particle.age / particle.life);", - " this.tempQuat.slerpQuaternions(IdentityQuaternion, this.tempQuat, delta);", - " particle.rotation.multiply(this.tempQuat);", - " }", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " angularVelocity: this.angularVelocity.toJSON(),", - " dynamic: this.dynamic,", - " };", - " }", - " static fromJSON(json) {", - " return new Rotation3DOverLife(RotationGeneratorFromJSON(json.angularVelocity), json.dynamic);", - " }", - " frameUpdate(delta) {", - " }", - " clone() {", - " return new Rotation3DOverLife(this.angularVelocity.clone(), this.dynamic);", - " }", - " reset() {", - " }", - "}", - "", - "class ForceOverLife {", - " initialize(particle) {", - " }", - " constructor(x, y, z) {", - " this.x = x;", - " this.y = y;", - " this.z = z;", - " this.type = 'ForceOverLife';", - " this._temp = new THREE.Vector3();", - " }", - " update(particle) {", - " this._temp.set(this.x.genValue(particle.age / particle.life), this.y.genValue(particle.age / particle.life), this.z.genValue(particle.age / particle.life));", - " particle.velocity.add(this._temp);", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " x: this.x.toJSON(),", - " y: this.y.toJSON(),", - " z: this.z.toJSON(),", - " };", - " }", - " static fromJSON(json) {", - " return new ForceOverLife(ValueGeneratorFromJSON(json.x), ValueGeneratorFromJSON(json.y), ValueGeneratorFromJSON(json.z));", - " }", - " frameUpdate(delta) {", - " }", - " clone() {", - " return new ForceOverLife(this.x.clone(), this.y.clone(), this.z.clone());", - " }", - " reset() {", - " }", - "}", - "", - "class Noise {", - " constructor(frequency, power) {", - " this.frequency = frequency;", - " this.power = power;", - " this.type = 'Noise';", - " this.generator = new SimplexNoise();", - " this.duration = 0;", - " this.temp = new THREE.Vector3();", - " }", - " initialize(particle) {", - " particle.startTime = this.duration;", - " }", - " update(particle, delta) {", - " this.temp.set(this.generator.noise2D(particle.startTime * this.frequency.x, particle.life / particle.age * this.frequency.x), this.generator.noise2D(particle.startTime * this.frequency.y + 100.25, particle.life / particle.age * this.frequency.y + 100.154), this.generator.noise2D(particle.startTime * this.frequency.z + 200.89, particle.life / particle.age * this.frequency.z + 200.1)).multiply(this.power);", - " particle.position.addScaledVector(this.temp, delta);", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " frequency: [this.frequency.x, this.frequency.y, this.frequency.z],", - " power: [this.power.x, this.power.y, this.power.z],", - " };", - " }", - " frameUpdate(delta) {", - " this.duration += delta;", - " }", - " static fromJSON(json) {", - " return new Noise(new THREE.Vector3(json.frequency[0], json.frequency[1], json.frequency[2]), new THREE.Vector3(json.power[0], json.power[1], json.power[2]));", - " }", - " clone() {", - " return new Noise(this.frequency.clone(), this.power.clone());", - " }", - " reset() {", - " }", - "}", - "", - "const BehaviorTypes = {", - " \"ApplyForce\": { type: \"ApplyForce\", constructor: ApplyForce, params: [[\"direction\", \"vec3\"], [\"magnitude\", \"value\"]], loadJSON: ApplyForce.fromJSON },", - " \"Noise\": { type: \"Noise\", constructor: Noise, params: [[\"frequency\", \"vec3\"], [\"power\", \"vec3\"]], loadJSON: Noise.fromJSON },", - " \"TurbulenceField\": { type: \"TurbulenceField\", constructor: TurbulenceField, params: [[\"scale\", \"vec3\"], [\"octaves\", \"number\"], [\"velocityMultiplier\", \"vec3\"], [\"timeScale\", \"vec3\"]], loadJSON: TurbulenceField.fromJSON },", - " \"GravityForce\": { type: \"GravityForce\", constructor: GravityForce, params: [[\"center\", \"vec3\"], [\"magnitude\", \"number\"]], loadJSON: GravityForce.fromJSON },", - " \"ColorOverLife\": { type: \"ColorOverLife\", constructor: ColorOverLife, params: [[\"color\", \"colorFunc\"]], loadJSON: ColorOverLife.fromJSON },", - " \"RotationOverLife\": { type: \"RotationOverLife\", constructor: RotationOverLife, params: [[\"angularVelocity\", \"valueFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: RotationOverLife.fromJSON },", - " \"Rotation3DOverLife\": { type: \"Rotation3DOverLife\", constructor: Rotation3DOverLife, params: [[\"angularVelocity\", \"rotationFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: Rotation3DOverLife.fromJSON },", - " \"SizeOverLife\": { type: \"SizeOverLife\", constructor: SizeOverLife, params: [[\"size\", \"valueFunc\"]], loadJSON: SizeOverLife.fromJSON },", - " \"SpeedOverLife\": { type: \"SpeedOverLife\", constructor: SpeedOverLife, params: [[\"speed\", \"valueFunc\"]], loadJSON: SpeedOverLife.fromJSON },", - " \"FrameOverLife\": { type: \"FrameOverLife\", constructor: FrameOverLife, params: [[\"frame\", \"valueFunc\"]], loadJSON: FrameOverLife.fromJSON },", - " \"ForceOverLife\": { type: \"ForceOverLife\", constructor: ForceOverLife, params: [[\"x\", \"valueFunc\"], [\"y\", \"valueFunc\"], [\"z\", \"valueFunc\"]], loadJSON: ForceOverLife.fromJSON },", - " \"OrbitOverLife\": { type: \"OrbitOverLife\", constructor: OrbitOverLife, params: [[\"orbitSpeed\", \"valueFunc\"], [\"axis\", \"vec3\"],], loadJSON: OrbitOverLife.fromJSON },", - " \"WidthOverLength\": { type: \"WidthOverLength\", constructor: WidthOverLength, params: [[\"width\", \"valueFunc\"]], loadJSON: WidthOverLength.fromJSON },", - " \"ChangeEmitDirection\": { type: \"ChangeEmitDirection\", constructor: ChangeEmitDirection, params: [[\"angle\", \"value\"]], loadJSON: ChangeEmitDirection.fromJSON },", - " \"EmitSubParticleSystem\": { type: \"EmitSubParticleSystem\", constructor: EmitSubParticleSystem, params: [[\"particleSystem\", \"self\"], ['useVelocityAsBasis', 'boolean'], [\"subParticleSystem\", \"particleSystem\"]], loadJSON: EmitSubParticleSystem.fromJSON },", - "};", - "function BehaviorFromJSON(json, particleSystem) {", - " return BehaviorTypes[json.type].loadJSON(json, particleSystem);", - "}", - "", - "class ConeEmitter {", - " constructor(parameters = {}) {", - " var _a, _b, _c, _d;", - " this.type = \"cone\";", - " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", - " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", - " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", - " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", - " }", - " initialize(p) {", - " const u = Math.random();", - " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", - " const theta = u * this.arc;", - " const r = Math.sqrt(rand);", - " const sinTheta = Math.sin(theta);", - " const cosTheta = Math.cos(theta);", - " p.position.x = r * cosTheta;", - " p.position.y = r * sinTheta;", - " p.position.z = 0;", - " const angle = this.angle * r;", - " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", - " //const v = Math.random();", - " p.position.multiplyScalar(this.radius);", - " }", - " toJSON() {", - " return {", - " type: \"cone\",", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " angle: this.angle,", - " };", - " }", - " static fromJSON(json) {", - " return new ConeEmitter(json);", - " }", - " clone() {", - " return new ConeEmitter({", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " angle: this.angle,", - " });", - " }", - "}", - "", - "class DonutEmitter {", - " constructor(parameters = {}) {", - " var _a, _b, _c, _d;", - " this.type = \"donut\";", - " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", - " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", - " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", - " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", - " }", - " initialize(p) {", - " const u = Math.random();", - " const rand = THREE.MathUtils.lerp(this.thickness, 1, Math.random());", - " const theta = u * this.arc;", - " const r = Math.sqrt(rand);", - " const sinTheta = Math.sin(theta);", - " const cosTheta = Math.cos(theta);", - " p.position.x = r * cosTheta;", - " p.position.y = r * sinTheta;", - " p.position.z = 0;", - " const angle = this.angle * r;", - " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", - " //const v = Math.random();", - " p.position.multiplyScalar(this.radius);", - " }", - " toJSON() {", - " return {", - " type: \"donut\",", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " angle: this.angle", - " };", - " }", - " static fromJSON(json) {", - " return new DonutEmitter(json);", - " }", - " clone() {", - " return new DonutEmitter({", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " angle: this.angle,", - " });", - " }", - "}", - "", - "class PointEmitter {", - " constructor() {", - " this.type = \"point\";", - " }", - " initialize(p) {", - " const u = Math.random();", - " const v = Math.random();", - " const theta = u * Math.PI * 2;", - " const phi = Math.acos(2.0 * v - 1.0);", - " const r = Math.cbrt(Math.random());", - " const sinTheta = Math.sin(theta);", - " const cosTheta = Math.cos(theta);", - " const sinPhi = Math.sin(phi);", - " const cosPhi = Math.cos(phi);", - " p.velocity.x = r * sinPhi * cosTheta;", - " p.velocity.y = r * sinPhi * sinTheta;", - " p.velocity.z = r * cosPhi;", - " p.velocity.multiplyScalar(p.startSpeed);", - " p.position.setScalar(0);", - " }", - " toJSON() {", - " return {", - " type: 'point',", - " };", - " }", - " static fromJSON(json) {", - " return new PointEmitter();", - " }", - " clone() {", - " return new PointEmitter();", - " }", - "}", - "", - "class SphereEmitter {", - " constructor(parameters = {}) {", - " var _a, _b, _c;", - " this.type = \"sphere\";", - " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", - " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", - " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", - " }", - " initialize(p) {", - " const u = Math.random();", - " const v = Math.random();", - " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", - " const theta = u * this.arc;", - " const phi = Math.acos(2.0 * v - 1.0);", - " const r = Math.cbrt(rand);", - " const sinTheta = Math.sin(theta);", - " const cosTheta = Math.cos(theta);", - " const sinPhi = Math.sin(phi);", - " const cosPhi = Math.cos(phi);", - " p.position.x = r * sinPhi * cosTheta;", - " p.position.y = r * sinPhi * sinTheta;", - " p.position.z = r * cosPhi;", - " p.velocity.setScalar(0).addScaledVector(p.position, p.startSpeed);", - " p.position.multiplyScalar(this.radius);", - " }", - " toJSON() {", - " return {", - " type: \"sphere\",", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " };", - " }", - " static fromJSON(json) {", - " return new SphereEmitter(json);", - " }", - " clone() {", - " return new SphereEmitter({", - " radius: this.radius,", - " arc: this.arc,", - " thickness: this.thickness,", - " });", - " }", - "}", - "", - "class MeshSurfaceEmitter {", - " get geometry() {", - " return this._geometry;", - " }", - " set geometry(geometry) {", - " this._geometry = geometry;", - " if (geometry === undefined) {", - " return;", - " }", - " if (typeof geometry === \"string\") {", - " return;", - " }", - " // optimization", - " /*if (mesh.userData.triangleIndexToArea) {", - " this._triangleIndexToArea = mesh.userData.triangleIndexToArea;", - " return;", - " }*/", - " const tri = new THREE.Triangle();", - " this._triangleIndexToArea.length = 0;", - " let area = 0;", - " if (!geometry.getIndex()) {", - " return;", - " }", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const array = geometry.getIndex().array;", - " const triCount = array.length / 3;", - " this._triangleIndexToArea.push(0);", - " for (let i = 0; i < triCount; i++) {", - " tri.setFromAttributeAndIndices(geometry.getAttribute(\"position\"), array[i * 3], array[i * 3 + 1], array[i * 3 + 2]);", - " area += tri.getArea();", - " this._triangleIndexToArea.push(area);", - " }", - " geometry.userData.triangleIndexToArea = this._triangleIndexToArea;", - " }", - " constructor(geometry) {", - " this.type = \"mesh_surface\";", - " this._triangleIndexToArea = [];", - " this._tempA = new THREE.Vector3();", - " this._tempB = new THREE.Vector3();", - " this._tempC = new THREE.Vector3();", - " if (!geometry) {", - " return;", - " }", - " this.geometry = geometry;", - " }", - " initialize(p) {", - " const geometry = this._geometry;", - " if (!geometry || geometry.getIndex() === null) {", - " p.position.set(0, 0, 0);", - " p.velocity.set(0, 0, 1).multiplyScalar(p.startSpeed);", - " return;", - " }", - " const triCount = this._triangleIndexToArea.length - 1;", - " let left = 0, right = triCount;", - " const target = Math.random() * this._triangleIndexToArea[triCount];", - " while (left + 1 < right) {", - " const mid = Math.floor((left + right) / 2);", - " if (target < this._triangleIndexToArea[mid]) {", - " right = mid;", - " }", - " else {", - " left = mid;", - " }", - " }", - " //const area = this._triangleIndexToArea[left + 1] - this._triangleIndexToArea[left];", - " //const percent = (target - this._triangleIndexToArea[left]) / area;", - " let u1 = Math.random();", - " let u2 = Math.random();", - " if (u1 + u2 > 1) {", - " u1 = 1 - u1;", - " u2 = 1 - u2;", - " }", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const index1 = geometry.getIndex().array[left * 3];", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const index2 = geometry.getIndex().array[left * 3 + 1];", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " const index3 = geometry.getIndex().array[left * 3 + 2];", - " const positionBuffer = geometry.getAttribute(\"position\");", - " this._tempA.fromBufferAttribute(positionBuffer, index1);", - " this._tempB.fromBufferAttribute(positionBuffer, index2);", - " this._tempC.fromBufferAttribute(positionBuffer, index3);", - " this._tempB.sub(this._tempA);", - " this._tempC.sub(this._tempA);", - " this._tempA.addScaledVector(this._tempB, u1).addScaledVector(this._tempC, u2);", - " p.position.copy(this._tempA);", - " // velocity based on tri normal", - " this._tempA.copy(this._tempB).cross(this._tempC).normalize();", - " p.velocity.copy(this._tempA).normalize().multiplyScalar(p.startSpeed);", - " /*p.position.applyMatrix4(this._mesh.matrixWorld);", - " p.velocity.applyMatrix3(this._mesh.normalMatrix);*/", - " }", - " toJSON() {", - " return {", - " type: 'mesh_surface',", - " mesh: this._geometry ? this._geometry.uuid : \"\",", - " };", - " }", - " static fromJSON(json, meta) {", - " return new MeshSurfaceEmitter(meta.geometries[json.geometry]);", - " }", - " clone() {", - " return new MeshSurfaceEmitter(this._geometry);", - " }", - "}", - "", - "class GridEmitter {", - " constructor(parameters = {}) {", - " var _a, _b, _c, _d;", - " this.type = \"grid\";", - " this.width = (_a = parameters.width) !== null && _a !== void 0 ? _a : 1;", - " this.height = (_b = parameters.height) !== null && _b !== void 0 ? _b : 1;", - " this.column = (_c = parameters.column) !== null && _c !== void 0 ? _c : 10;", - " this.row = (_d = parameters.row) !== null && _d !== void 0 ? _d : 10;", - " }", - " initialize(p) {", - " const r = Math.floor(Math.random() * this.row);", - " const c = Math.floor(Math.random() * this.column);", - " p.position.x = c * this.width / this.column - this.width / 2;", - " p.position.y = r * this.height / this.row - this.height / 2;", - " p.position.z = 0;", - " p.velocity.set(0, 0, p.startSpeed);", - " }", - " toJSON() {", - " return {", - " type: \"grid\",", - " width: this.width,", - " height: this.height,", - " column: this.column,", - " row: this.row,", - " };", - " }", - " static fromJSON(json) {", - " return new GridEmitter(json);", - " }", - " clone() {", - " return new GridEmitter({", - " width: this.width,", - " height: this.height,", - " column: this.column,", - " row: this.row,", - " });", - " }", - "}", - "", - "const EmitterShapes = {", - " \"cone\": { type: \"cone\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: ConeEmitter, loadJSON: ConeEmitter.fromJSON },", - " \"donut\": { type: \"donut\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: DonutEmitter, loadJSON: DonutEmitter.fromJSON },", - " \"point\": { type: \"point\", params: [], constructor: PointEmitter, loadJSON: PointEmitter.fromJSON },", - " \"sphere\": { type: \"sphere\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: SphereEmitter, loadJSON: SphereEmitter.fromJSON },", - " \"grid\": { type: \"grid\", params: [[\"width\", \"number\"], [\"height\", \"number\"], [\"rows\", \"number\"], [\"column\", \"number\"]], constructor: GridEmitter, loadJSON: GridEmitter.fromJSON },", - " \"mesh_surface\": { type: \"mesh_surface\", params: [[\"geometry\", \"geometry\"]], constructor: MeshSurfaceEmitter, loadJSON: MeshSurfaceEmitter.fromJSON },", - "};", - "function EmitterFromJSON(json, meta) {", - " return EmitterShapes[json.type].loadJSON(json, meta);", - "}", - "", - "(function (RenderMode) {", - " RenderMode[RenderMode[\"BillBoard\"] = 0] = \"BillBoard\";", - " RenderMode[RenderMode[\"StretchedBillBoard\"] = 1] = \"StretchedBillBoard\";", - " RenderMode[RenderMode[\"Mesh\"] = 2] = \"Mesh\";", - " RenderMode[RenderMode[\"Trail\"] = 3] = \"Trail\";", - "})(gdjs.__particleEmmiter3DExtension.RenderMode || (gdjs.__particleEmmiter3DExtension.RenderMode = {}));", - "", - "class VFXBatch extends THREE.Mesh {", - " constructor(settings) {", - " super();", - " this.type = \"VFXBatch\";", - " this.maxParticles = 1000;", - " this.systems = new Set();", - " const layers = new THREE.Layers();", - " layers.mask = settings.layers.mask;", - " this.settings = {", - " instancingGeometry: settings.instancingGeometry,", - " renderMode: settings.renderMode,", - " renderOrder: settings.renderOrder,", - " material: settings.material,", - " uTileCount: settings.uTileCount,", - " vTileCount: settings.vTileCount,", - " layers: layers,", - " };", - " this.frustumCulled = false;", - " this.renderOrder = this.settings.renderOrder;", - " }", - " addSystem(system) {", - " this.systems.add(system);", - " }", - " removeSystem(system) {", - " this.systems.delete(system);", - " }", - "}", - "", - "const UP = new THREE.Vector3(0, 0, 1);", - "const tempQ = new THREE.Quaternion();", - "const tempV = new THREE.Vector3();", - "const tempV2 = new THREE.Vector3();", - "new THREE.Vector3();", - "const PREWARM_FPS = 60;", - "const DEFAULT_GEOMETRY = new THREE.PlaneGeometry(1, 1, 1, 1);", - "/**", - " * ParticleSystem represents a system that generates and controls particles with similar attributes.", - " *", - " * @class", - " */", - "class ParticleSystem {", - " set time(time) {", - " this.emissionState.time = time;", - " }", - " get time() {", - " return this.emissionState.time;", - " }", - " // currently if you change the layers setting, you need manually set this.neededToUpdateRender = true;", - " get layers() {", - " return this.rendererSettings.layers;", - " }", - " get texture() {", - " return this.rendererSettings.material.map;", - " }", - " set texture(texture) {", - " this.rendererSettings.material.map = texture;", - " this.neededToUpdateRender = true;", - " //this.emitter.material.uniforms.map.value = texture;", - " }", - " get material() {", - " return this.rendererSettings.material;", - " }", - " set material(material) {", - " this.rendererSettings.material = material;", - " this.neededToUpdateRender = true;", - " }", - " get uTileCount() {", - " return this.rendererSettings.uTileCount;", - " }", - " set uTileCount(u) {", - " this.rendererSettings.uTileCount = u;", - " this.neededToUpdateRender = true;", - " //this.emitter.material.uniforms.tileCount.value.x = u;", - " }", - " get vTileCount() {", - " return this.rendererSettings.vTileCount;", - " }", - " set vTileCount(v) {", - " this.rendererSettings.vTileCount = v;", - " this.neededToUpdateRender = true;", - " }", - " get instancingGeometry() {", - " return this.rendererSettings.instancingGeometry;", - " }", - " set instancingGeometry(geometry) {", - " this.restart();", - " this.particles.length = 0;", - " this.rendererSettings.instancingGeometry = geometry;", - " this.neededToUpdateRender = true;", - " }", - " get renderMode() {", - " return this.rendererSettings.renderMode;", - " }", - " set renderMode(renderMode) {", - " if ((this.rendererSettings.renderMode != gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) ||", - " (this.rendererSettings.renderMode == gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode !== gdjs.__particleEmmiter3DExtension.RenderMode.Trail)) {", - " this.restart();", - " this.particles.length = 0;", - " }", - " if (this.rendererSettings.renderMode !== renderMode) {", - " switch (renderMode) {", - " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", - " this.rendererEmitterSettings = {", - " startLength: new ConstantValue(30),", - " followLocalOrigin: false,", - " };", - " break;", - " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", - " this.rendererEmitterSettings = {", - " geometry: new THREE.PlaneGeometry(1, 1),", - " };", - " this.startRotation = new AxisAngleGenerator(new THREE.Vector3(0, 1, 0), new ConstantValue(0));", - " break;", - " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", - " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", - " this.rendererEmitterSettings = {};", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " this.startRotation = new ConstantValue(0);", - " }", - " break;", - " }", - " }", - " this.rendererSettings.renderMode = renderMode;", - " this.neededToUpdateRender = true;", - " //this.emitter.rebuildMaterial();", - " }", - " get renderOrder() {", - " return this.rendererSettings.renderOrder;", - " }", - " set renderOrder(renderOrder) {", - " this.rendererSettings.renderOrder = renderOrder;", - " this.neededToUpdateRender = true;", - " //this.emitter.rebuildMaterial();", - " }", - " get blending() {", - " return this.rendererSettings.material.blending;", - " }", - " set blending(blending) {", - " this.rendererSettings.material.blending = blending;", - " this.neededToUpdateRender = true;", - " }", - " constructor(parameters) {", - " var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;", - " this.temp = new THREE.Vector3();", - " this.travelDistance = 0;", - " this.normalMatrix = new THREE.Matrix3();", - " this.autoDestroy = parameters.autoDestroy === undefined ? false : parameters.autoDestroy;", - " this.duration = (_a = parameters.duration) !== null && _a !== void 0 ? _a : 1;", - " this.looping = parameters.looping === undefined ? true : parameters.looping;", - " this.prewarm = parameters.prewarm === undefined ? false : parameters.prewarm;", - " this.startLife = (_b = parameters.startLife) !== null && _b !== void 0 ? _b : new ConstantValue(5);", - " this.startSpeed = (_c = parameters.startSpeed) !== null && _c !== void 0 ? _c : new ConstantValue(0);", - " this.startRotation = (_d = parameters.startRotation) !== null && _d !== void 0 ? _d : new ConstantValue(0);", - " this.startSize = (_e = parameters.startSize) !== null && _e !== void 0 ? _e : new ConstantValue(1);", - " this.startColor = (_f = parameters.startColor) !== null && _f !== void 0 ? _f : new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", - " //this.startLength = parameters.startLength ?? new ConstantValue(30);", - " this.emissionOverTime = (_g = parameters.emissionOverTime) !== null && _g !== void 0 ? _g : new ConstantValue(10);", - " this.emissionOverDistance = (_h = parameters.emissionOverDistance) !== null && _h !== void 0 ? _h : new ConstantValue(0);", - " this.emissionBursts = (_j = parameters.emissionBursts) !== null && _j !== void 0 ? _j : [];", - " this.onlyUsedByOther = (_k = parameters.onlyUsedByOther) !== null && _k !== void 0 ? _k : false;", - " this.emitterShape = (_l = parameters.shape) !== null && _l !== void 0 ? _l : new SphereEmitter();", - " this.behaviors = (_m = parameters.behaviors) !== null && _m !== void 0 ? _m : new Array();", - " this.worldSpace = (_o = parameters.worldSpace) !== null && _o !== void 0 ? _o : false;", - " this.speedFactor = (_p = parameters.speedFactor) !== null && _p !== void 0 ? _p : 0;", - " this.rendererEmitterSettings = (_q = parameters.rendererEmitterSettings) !== null && _q !== void 0 ? _q : {};", - " this.rendererSettings = {", - " instancingGeometry: (_r = parameters.instancingGeometry) !== null && _r !== void 0 ? _r : DEFAULT_GEOMETRY,", - " renderMode: (_s = parameters.renderMode) !== null && _s !== void 0 ? _s : gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard,", - " renderOrder: (_t = parameters.renderOrder) !== null && _t !== void 0 ? _t : 0,", - " material: parameters.material,", - " uTileCount: (_u = parameters.uTileCount) !== null && _u !== void 0 ? _u : 1,", - " vTileCount: (_v = parameters.vTileCount) !== null && _v !== void 0 ? _v : 1,", - " layers: (_w = parameters.layers) !== null && _w !== void 0 ? _w : new THREE.Layers(),", - " };", - " this.neededToUpdateRender = true;", - " this.particles = new Array();", - " this.startTileIndex = parameters.startTileIndex || new ConstantValue(0);", - " this.emitter = new ParticleEmitter(this);", - " this.paused = false;", - " this.particleNum = 0;", - " this.emissionState = {", - " burstIndex: 0,", - " burstWaveIndex: 0,", - " time: 0,", - " waitEmiting: 0,", - " };", - " this.emitEnded = false;", - " this.markForDestroy = false;", - " this.prewarmed = false;", - " }", - " pause() {", - " this.paused = true;", - " }", - " play() {", - " this.paused = false;", - " }", - " spawn(count, emissionState, matrix) {", - " tempQ.setFromRotationMatrix(matrix);", - " const translation = tempV;", - " const quaternion = tempQ;", - " const scale = tempV2;", - " matrix.decompose(translation, quaternion, scale);", - " for (let i = 0; i < count; i++) {", - " this.particleNum++;", - " while (this.particles.length < this.particleNum) {", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " this.particles.push(new TrailParticle());", - " }", - " else {", - " this.particles.push(new SpriteParticle());", - " }", - " }", - " const particle = this.particles[this.particleNum - 1];", - " this.startColor.genColor(particle.startColor, Math.random());", - " particle.color.copy(particle.startColor);", - " particle.startSpeed = this.startSpeed.genValue(emissionState.time / this.duration);", - " particle.life = this.startLife.genValue(emissionState.time / this.duration);", - " particle.age = 0;", - " particle.startSize = this.startSize.genValue(emissionState.time / this.duration);", - " particle.uvTile = Math.floor(this.startTileIndex.genValue());", - " particle.size = particle.startSize;", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh ||", - " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", - " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", - " const sprite = particle;", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " if (!(sprite.rotation instanceof THREE.Quaternion)) {", - " sprite.rotation = new THREE.Quaternion();", - " }", - " if (this.startRotation.type === 'rotation') {", - " this.startRotation.genValue(sprite.rotation, emissionState.time / this.duration);", - " }", - " else {", - " sprite.rotation.setFromAxisAngle(UP, this.startRotation.genValue((emissionState.time / this.duration)));", - " }", - " }", - " else {", - " if (this.startRotation.type === 'rotation') {", - " sprite.rotation = 0;", - " }", - " else {", - " sprite.rotation = this.startRotation.genValue(emissionState.time / this.duration);", - " }", - " }", - " }", - " else if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " const trail = particle;", - " trail.length = this.rendererEmitterSettings.startLength.genValue(emissionState.time / this.duration);", - " trail.reset();", - " }", - " this.emitterShape.initialize(particle);", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail &&", - " this.rendererEmitterSettings.followLocalOrigin) {", - " const trail = particle;", - " trail.localPosition = new THREE.Vector3().copy(trail.position);", - " }", - " if (this.worldSpace) {", - " particle.position.applyMatrix4(matrix);", - " particle.startSize = (particle.startSize * (scale.x + scale.y + scale.z)) / 3;", - " particle.size = particle.startSize;", - " particle.velocity.multiply(scale).applyMatrix3(this.normalMatrix);", - " if (particle.rotation && particle.rotation instanceof THREE.Quaternion) {", - " particle.rotation.multiplyQuaternions(tempQ, particle.rotation);", - " }", - " }", - " else {", - " if (this.onlyUsedByOther) {", - " particle.parentMatrix = matrix;", - " }", - " }", - " for (let j = 0; j < this.behaviors.length; j++) {", - " this.behaviors[j].initialize(particle);", - " }", - " }", - " }", - " endEmit() {", - " this.emitEnded = true;", - " if (this.autoDestroy) {", - " this.markForDestroy = true;", - " }", - " }", - " dispose() {", - " if (this._renderer)", - " this._renderer.deleteSystem(this);", - " this.emitter.dispose();", - " if (this.emitter.parent)", - " this.emitter.parent.remove(this.emitter);", - " }", - " restart() {", - " this.paused = false;", - " this.particleNum = 0;", - " this.emissionState.burstIndex = 0;", - " this.emissionState.burstWaveIndex = 0;", - " this.emissionState.time = 0;", - " this.emissionState.waitEmiting = 0;", - " this.behaviors.forEach((behavior) => {", - " behavior.reset();", - " });", - " this.emitEnded = false;", - " this.markForDestroy = false;", - " this.prewarmed = false;", - " }", - " //firstTimeUpdate = true;", - " update(delta) {", - " /*if (this.firstTimeUpdate) {", - " this.renderer.addSystem(this);", - " this.firstTimeUpdate = false;", - " }*/", - " if (this.paused)", - " return;", - " let currentParent = this.emitter;", - " while (currentParent.parent) {", - " currentParent = currentParent.parent;", - " }", - " if (currentParent.type !== 'Scene') {", - " this.dispose();", - " return;", - " }", - " if (this.emitEnded && this.particleNum === 0) {", - " if (this.markForDestroy && this.emitter.parent)", - " this.dispose();", - " return;", - " }", - " if (this.looping && this.prewarm && !this.prewarmed) {", - " this.prewarmed = true;", - " for (let i = 0; i < this.duration * PREWARM_FPS; i++) {", - " this.update(1.0 / PREWARM_FPS);", - " }", - " }", - " if (this.neededToUpdateRender) {", - " if (this._renderer)", - " this._renderer.updateSystem(this);", - " this.neededToUpdateRender = false;", - " }", - " if (!this.onlyUsedByOther) {", - " this.emit(delta, this.emissionState, this.emitter.matrixWorld);", - " }", - " // simulate", - " for (let j = 0; j < this.behaviors.length; j++) {", - " for (let i = 0; i < this.particleNum; i++) {", - " if (!this.particles[i].died) {", - " this.behaviors[j].update(this.particles[i], delta);", - " }", - " }", - " this.behaviors[j].frameUpdate(delta);", - " }", - " for (let i = 0; i < this.particleNum; i++) {", - " if (this.rendererEmitterSettings.followLocalOrigin &&", - " this.particles[i].localPosition) {", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " this.particles[i].position.copy(this.particles[i].localPosition);", - " if (this.particles[i].parentMatrix) {", - " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", - " this.particles[i].position.applyMatrix4(this.particles[i].parentMatrix);", - " }", - " else {", - " this.particles[i].position.applyMatrix4(this.emitter.matrixWorld);", - " }", - " }", - " else {", - " this.particles[i].position.addScaledVector(this.particles[i].velocity, delta);", - " }", - " this.particles[i].age += delta;", - " }", - " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " for (let i = 0; i < this.particleNum; i++) {", - " const particle = this.particles[i];", - " particle.update();", - " }", - " }", - " // particle die", - " for (let i = 0; i < this.particleNum; i++) {", - " const particle = this.particles[i];", - " if (particle.died && (!(particle instanceof TrailParticle) || particle.previous.length === 0)) {", - " this.particles[i] = this.particles[this.particleNum - 1];", - " this.particles[this.particleNum - 1] = particle;", - " this.particleNum--;", - " i--;", - " }", - " }", - " }", - " emit(delta, emissionState, emitterMatrix) {", - " if (emissionState.time > this.duration) {", - " if (this.looping) {", - " emissionState.time -= this.duration;", - " emissionState.burstIndex = 0;", - " this.behaviors.forEach((behavior) => {", - " behavior.reset();", - " });", - " }", - " else {", - " if (!this.emitEnded && !this.onlyUsedByOther) {", - " this.endEmit();", - " }", - " }", - " }", - " this.normalMatrix.getNormalMatrix(emitterMatrix);", - " // spawn", - " const totalSpawn = Math.ceil(emissionState.waitEmiting);", - " this.spawn(totalSpawn, emissionState, emitterMatrix);", - " emissionState.waitEmiting -= totalSpawn;", - " // spawn burst", - " while (emissionState.burstIndex < this.emissionBursts.length &&", - " this.emissionBursts[emissionState.burstIndex].time <= emissionState.time) {", - " if (Math.random() < this.emissionBursts[emissionState.burstIndex].probability) {", - " const count = this.emissionBursts[emissionState.burstIndex].count;", - " this.spawn(count, emissionState, emitterMatrix);", - " }", - " emissionState.burstIndex++;", - " }", - " if (!this.emitEnded) {", - " emissionState.waitEmiting += delta * this.emissionOverTime.genValue(emissionState.time / this.duration);", - " if (this.previousWorldPos != undefined) {", - " this.emitter.getWorldPosition(this.temp);", - " this.travelDistance += this.previousWorldPos.distanceTo(this.temp);", - " const emitPerMeter = this.emissionOverDistance.genValue(emissionState.time / this.duration);", - " if (this.travelDistance * emitPerMeter > 0) {", - " const count = Math.floor(this.travelDistance * emitPerMeter);", - " this.travelDistance -= count / emitPerMeter;", - " emissionState.waitEmiting += count;", - " }", - " }", - " }", - " if (this.previousWorldPos === undefined)", - " this.previousWorldPos = new THREE.Vector3();", - " this.emitter.getWorldPosition(this.previousWorldPos);", - " emissionState.time += delta;", - " }", - " toJSON(meta, options = {}) {", - " const isRootObject = meta === undefined || typeof meta === 'string';", - " if (isRootObject) {", - " // initialize meta obj", - " meta = {", - " geometries: {},", - " materials: {},", - " textures: {},", - " images: {},", - " shapes: {},", - " skeletons: {},", - " animations: {},", - " nodes: {},", - " };", - " }", - " meta.materials[this.rendererSettings.material.uuid] = this.rendererSettings.material.toJSON(meta);", - " if (options.useUrlForImage) {", - " if (this.texture.source !== undefined) {", - " const image = this.texture.source;", - " meta.images[image.uuid] = {", - " uuid: image.uuid,", - " url: this.texture.image.url,", - " };", - " }", - " }", - " // TODO: support URL", - " let rendererSettingsJSON;", - " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " rendererSettingsJSON = {", - " startLength: this.rendererEmitterSettings.startLength.toJSON(),", - " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", - " };", - " }", - " else if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " rendererSettingsJSON = {};", - " /*;*/", - " }", - " else {", - " rendererSettingsJSON = {};", - " }", - " const geometry = this.rendererSettings.instancingGeometry;", - " if (meta.geometries && !meta.geometries[geometry.uuid]) {", - " meta.geometries[geometry.uuid] = geometry.toJSON();", - " }", - " return {", - " version: '2.0',", - " autoDestroy: this.autoDestroy,", - " looping: this.looping,", - " prewarm: this.prewarm,", - " duration: this.duration,", - " shape: this.emitterShape.toJSON(),", - " startLife: this.startLife.toJSON(),", - " startSpeed: this.startSpeed.toJSON(),", - " startRotation: this.startRotation.toJSON(),", - " startSize: this.startSize.toJSON(),", - " startColor: this.startColor.toJSON(),", - " emissionOverTime: this.emissionOverTime.toJSON(),", - " emissionOverDistance: this.emissionOverDistance.toJSON(),", - " emissionBursts: this.emissionBursts,", - " onlyUsedByOther: this.onlyUsedByOther,", - " instancingGeometry: this.rendererSettings.instancingGeometry.uuid,", - " renderOrder: this.renderOrder,", - " renderMode: this.renderMode,", - " rendererEmitterSettings: rendererSettingsJSON,", - " speedFactor: this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ? this.speedFactor : 0,", - " //texture: this.texture.uuid,", - " material: this.rendererSettings.material.uuid,", - " layers: this.layers.mask,", - " startTileIndex: this.startTileIndex.toJSON(),", - " uTileCount: this.uTileCount,", - " vTileCount: this.vTileCount,", - " behaviors: this.behaviors.map((behavior) => behavior.toJSON()),", - " worldSpace: this.worldSpace,", - " };", - " }", - " static fromJSON(json, meta, dependencies) {", - " var _a;", - " const shape = EmitterFromJSON(json.shape, meta);", - " let rendererEmitterSettings;", - " if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " rendererEmitterSettings = {", - " startLength: json.rendererEmitterSettings.startLength != undefined", - " ? ValueGeneratorFromJSON(json.rendererEmitterSettings.startLength)", - " : new ConstantValue(30),", - " followLocalOrigin: json.rendererEmitterSettings.followLocalOrigin,", - " };", - " }", - " else if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " rendererEmitterSettings = {};", - " }", - " else {", - " rendererEmitterSettings = {};", - " }", - " const layers = new THREE.Layers();", - " if (json.layers) {", - " layers.mask = json.layers;", - " }", - " const ps = new ParticleSystem({", - " autoDestroy: json.autoDestroy,", - " looping: json.looping,", - " prewarm: json.prewarm,", - " duration: json.duration,", - " shape: shape,", - " startLife: ValueGeneratorFromJSON(json.startLife),", - " startSpeed: ValueGeneratorFromJSON(json.startSpeed),", - " startRotation: GeneratorFromJSON(json.startRotation),", - " startSize: ValueGeneratorFromJSON(json.startSize),", - " startColor: ColorGeneratorFromJSON(json.startColor),", - " emissionOverTime: ValueGeneratorFromJSON(json.emissionOverTime),", - " emissionOverDistance: ValueGeneratorFromJSON(json.emissionOverDistance),", - " emissionBursts: json.emissionBursts,", - " onlyUsedByOther: json.onlyUsedByOther,", - " instancingGeometry: meta.geometries[json.instancingGeometry],", - " renderMode: json.renderMode,", - " rendererEmitterSettings: rendererEmitterSettings,", - " renderOrder: json.renderOrder,", - " speedFactor: json.speedFactor,", - " layers: layers,", - " material: json.material", - " ? meta.materials[json.material]", - " : json.texture", - " ? new THREE.MeshBasicMaterial({", - " map: meta.textures[json.texture],", - " transparent: (_a = json.transparent) !== null && _a !== void 0 ? _a : true,", - " blending: json.blending,", - " side: THREE.DoubleSide,", - " })", - " : new THREE.MeshBasicMaterial({", - " color: 0xffffff,", - " transparent: true,", - " blending: THREE.AdditiveBlending,", - " side: THREE.DoubleSide,", - " }),", - " startTileIndex: typeof json.startTileIndex === 'number'", - " ? new ConstantValue(json.startTileIndex)", - " : ValueGeneratorFromJSON(json.startTileIndex),", - " uTileCount: json.uTileCount,", - " vTileCount: json.vTileCount,", - " behaviors: [],", - " worldSpace: json.worldSpace,", - " });", - " ps.behaviors = json.behaviors.map((behaviorJson) => {", - " const behavior = BehaviorFromJSON(behaviorJson, ps);", - " if (behavior.type === 'EmitSubParticleSystem') {", - " dependencies[behaviorJson.subParticleSystem] = behavior;", - " }", - " return behavior;", - " });", - " return ps;", - " }", - " addBehavior(behavior) {", - " this.behaviors.push(behavior);", - " }", - " getRendererSettings() {", - " return this.rendererSettings;", - " }", - " clone() {", - " const newEmissionBursts = [];", - " for (const emissionBurst of this.emissionBursts) {", - " const newEmissionBurst = {};", - " Object.assign(newEmissionBurst, emissionBurst);", - " newEmissionBursts.push(newEmissionBurst);", - " }", - " const newBehaviors = [];", - " for (const behavior of this.behaviors) {", - " newBehaviors.push(behavior.clone());", - " }", - " let rendererEmitterSettings;", - " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " rendererEmitterSettings = {", - " startLength: this.rendererEmitterSettings.startLength.clone(),", - " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", - " };", - " }", - " else {", - " rendererEmitterSettings = {};", - " }", - " const layers = new THREE.Layers();", - " layers.mask = this.layers.mask;", - " return new ParticleSystem({", - " autoDestroy: this.autoDestroy,", - " looping: this.looping,", - " duration: this.duration,", - " shape: this.emitterShape.clone(),", - " startLife: this.startLife.clone(),", - " startSpeed: this.startSpeed.clone(),", - " startRotation: this.startRotation.clone(),", - " startSize: this.startSize.clone(),", - " startColor: this.startColor.clone(),", - " emissionOverTime: this.emissionOverTime.clone(),", - " emissionOverDistance: this.emissionOverDistance.clone(),", - " emissionBursts: newEmissionBursts,", - " onlyUsedByOther: this.onlyUsedByOther,", - " instancingGeometry: this.rendererSettings.instancingGeometry,", - " renderMode: this.renderMode,", - " renderOrder: this.renderOrder,", - " rendererEmitterSettings: rendererEmitterSettings,", - " speedFactor: this.speedFactor,", - " material: this.rendererSettings.material,", - " startTileIndex: this.startTileIndex,", - " uTileCount: this.uTileCount,", - " vTileCount: this.vTileCount,", - " behaviors: newBehaviors,", - " worldSpace: this.worldSpace,", - " layers: layers,", - " });", - " }", - "}", - "", - "var particle_frag = /* glsl */ `", - "", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "void main() {", - "", - "#include ", - "", - "vec3 outgoingLight = vec3( 0.0 );", - "vec4 diffuseColor = vColor;", - "", - "#include ", - "", - "#ifdef USE_MAP", - "vec4 texelColor = texture2D( map, vUv);", - "diffuseColor *= texelColor;", - "#endif", - "", - "outgoingLight = diffuseColor.rgb;", - "", - "gl_FragColor = vec4( outgoingLight, diffuseColor.a );", - "", - "#include ", - "", - "}", - "`;", - "/*", - " gl_FragColor = vec4(vUv.x, vUv.y, 1.0, 1.0);", - "", - " #ifdef USE_MAP", - " vec4 texelColor = texture2D( map, vUv);", - " diffuseColor *= texelColor;", - " #endif", - "", - " outgoingLight = diffuseColor.rgb;", - "", - " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", - "*/", - "", - "var particle_physics_frag = /* glsl */ `", - "#define STANDARD", - "#ifdef PHYSICAL", - "#define IOR", - "#define SPECULAR", - "#endif", - "uniform vec3 diffuse;", - "uniform vec3 emissive;", - "uniform float roughness;", - "uniform float metalness;", - "uniform float opacity;", - "#ifdef IOR", - "uniform float ior;", - "#endif", - "#ifdef SPECULAR", - "uniform float specularIntensity;", - "uniform vec3 specularColor;", - "#ifdef USE_SPECULARINTENSITYMAP", - "uniform sampler2D specularIntensityMap;", - "#endif", - "#ifdef USE_SPECULARCOLORMAP", - "uniform sampler2D specularColorMap;", - "#endif", - "#endif", - "#ifdef USE_CLEARCOAT", - "uniform float clearcoat;", - "uniform float clearcoatRoughness;", - "#endif", - "#ifdef USE_IRIDESCENCE", - "uniform float iridescence;", - "uniform float iridescenceIOR;", - "uniform float iridescenceThicknessMinimum;", - "uniform float iridescenceThicknessMaximum;", - "#endif", - "#ifdef USE_SHEEN", - "uniform vec3 sheenColor;", - "uniform float sheenRoughness;", - "#ifdef USE_SHEENCOLORMAP", - "uniform sampler2D sheenColorMap;", - "#endif", - "#ifdef USE_SHEENROUGHNESSMAP", - "uniform sampler2D sheenRoughnessMap;", - "#endif", - "#endif", - "", - "varying vec3 vViewPosition;", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "void main() {", - "#include ", - "vec4 diffuseColor = vec4( diffuse, opacity );", - "ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );", - "vec3 totalEmissiveRadiance = emissive;", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "// accumulation", - "#include ", - "#include ", - "#include ", - "#include ", - "// modulation", - "#include ", - "vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;", - "vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;", - "#include ", - "vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;", - "#ifdef USE_SHEEN", - "// Sheen energy compensation approximation calculation can be found at the end of", - " // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing", - " float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );", - " outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;", - "#endif", - "#ifdef USE_CLEARCOAT", - " float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );", - " vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );", - " outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;", - "#endif", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "}`;", - "", - "var particle_vert = /* glsl */ `", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "attribute vec3 offset;", - "attribute float rotation;", - "attribute float size;", - "attribute float uvTile;", - "", - "#ifdef UV_TILE", - "uniform vec2 tileCount;", - "#endif", - "", - "void main() {", - "", - "#ifdef UV_TILE", - " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", - "#else", - " #include ", - "#endif", - "", - "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", - "", - "vec2 alignedPosition = ( position.xy ) * size;", - "", - "vec2 rotatedPosition;", - "rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;", - "rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;", - "", - "mvPosition.xy += rotatedPosition;", - "", - "vColor = color;", - "", - "gl_Position = projectionMatrix * mvPosition;", - "", - "#include ", - "#include ", - "", - "}", - "`;", - "/*", - " #ifndef USE_SIZEATTENUATION", - " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", - " if ( isPerspective ) computedSize *= - mvPosition.z;", - " #endif", - " */", - "", - "var local_particle_vert = /* glsl */ `", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "attribute vec3 offset;", - "attribute vec4 rotation;", - "attribute float size;", - "// attribute vec4 color;", - "attribute float uvTile;", - "", - "#ifdef UV_TILE", - "uniform vec2 tileCount;", - "#endif", - "", - "void main() {", - "", - "#ifdef UV_TILE", - " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", - "#else", - " #include ", - "#endif", - "", - "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", - "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", - "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", - "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", - "float sx = size, sy = size, sz = size;", - "", - "mat4 matrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", - " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", - " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", - " offset.x, offset.y, offset.z, 1.0);", - "", - "vec4 mvPosition = modelViewMatrix * (matrix * vec4( position, 1.0 ));", - "", - "vColor = color;", - "", - "gl_Position = projectionMatrix * mvPosition;", - "", - "#include ", - "#include ", - "", - "}", - "`;", - "", - "var local_particle_physics_vert = /* glsl */ `", - "#define STANDARD", - "varying vec3 vViewPosition;", - "#ifdef USE_TRANSMISSION", - "varying vec3 vWorldPosition;", - "#endif", - "#include ", - "#include ", - "", - "attribute vec3 offset;", - "attribute vec4 rotation;", - "attribute float size;", - "attribute float uvTile;", - "", - "#ifdef UV_TILE", - "uniform vec2 tileCount;", - "#endif", - "", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "void main() {", - "#ifdef UV_TILE", - " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", - "#else", - " #include ", - "#endif", - "", - "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", - "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", - "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", - "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", - "float sx = size, sy = size, sz = size;", - "", - "mat4 particleMatrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", - " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", - " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", - " offset.x, offset.y, offset.z, 1.0);", - " ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "// replace defaultnormal_vertex", - "vec3 transformedNormal = objectNormal;", - "mat3 m = mat3( particleMatrix );", - "transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );", - "transformedNormal = m * transformedNormal;", - "transformedNormal = normalMatrix * transformedNormal;", - "#ifdef FLIP_SIDED", - " transformedNormal = - transformedNormal;", - "#endif", - "#ifdef USE_TANGENT", - " vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;", - " #ifdef FLIP_SIDED", - " transformedTangent = - transformedTangent;", - " #endif", - "#endif", - "", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "// replace include ", - "vec4 mvPosition = vec4( transformed, 1.0 );", - "mvPosition = modelViewMatrix * (particleMatrix * mvPosition);", - "gl_Position = projectionMatrix * mvPosition;", - "", - "#include ", - "#include ", - "", - "vViewPosition = - mvPosition.xyz;", - "", - "#include ", - "#include ", - "#include ", - "#ifdef USE_TRANSMISSION", - "vWorldPosition = worldPosition.xyz;", - "#endif", - "}", - "`;", - "", - "var stretched_bb_particle_vert = /* glsl */ `", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "attribute vec3 offset;", - "attribute float rotation;", - "attribute float size;", - "attribute vec3 velocity;", - "attribute float uvTile;", - "", - "#ifdef UV_TILE", - "uniform vec2 tileCount;", - "#endif", - "", - "uniform float speedFactor;", - "", - "void main() {", - "", - "#ifdef UV_TILE", - " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", - "#else", - " #include ", - "#endif", - "", - "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", - "vec3 viewVelocity = normalMatrix * velocity;", - "", - "vec3 scaledPos = vec3(position.xy * size, position.z);", - "mvPosition.xyz += scaledPos + dot(scaledPos, viewVelocity) * viewVelocity / length(viewVelocity) * speedFactor;", - "", - "vColor = color;", - "", - "gl_Position = projectionMatrix * mvPosition;", - "", - "#include ", - "#include ", - "", - "}", - "`;", - "/*", - "", - " vec3 instancePos = vec3(position.xy * size, position.z);", - " instancePos += dot(instancePos, viewVelocity) * viewVelocity * speedFactor;", - " mvPosition.xyz += instancePos;", - "", - " vColor = color; //vec4(1, 1, 1, 1); //color; //length(viewVelocity) * 0.1", - "", - " #ifndef USE_SIZEATTENUATION", - " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", - " if ( isPerspective ) computedSize *= - mvPosition.z;", - " #endif", - " */", - "", - "function getMaterialUVChannelName(value) {", - " if (value === 0)", - " return 'uv';", - " return `uv${value}`;", - "}", - "", - "new THREE.Vector3(0, 0, 1);", - "class SpriteBatch extends VFXBatch {", - " constructor(settings) {", - " super(settings);", - " /*", - " clone() {", - " let system = this.system.clone();", - " return system.emitter as any;", - " }*/", - " this.vector_ = new THREE.Vector3();", - " this.vector2_ = new THREE.Vector3();", - " this.vector3_ = new THREE.Vector3();", - " this.quaternion_ = new THREE.Quaternion();", - " this.quaternion2_ = new THREE.Quaternion();", - " this.quaternion3_ = new THREE.Quaternion();", - " this.rotationMat_ = new THREE.Matrix3();", - " this.rotationMat2_ = new THREE.Matrix3();", - " this.maxParticles = 1000;", - " this.setupBuffers();", - " this.rebuildMaterial();", - " // TODO: implement boundingVolume", - " }", - " buildExpandableBuffers() {", - " this.offsetBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", - " this.offsetBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('offset', this.offsetBuffer);", - " this.colorBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", - " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('color', this.colorBuffer);", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", - " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('rotation', this.rotationBuffer);", - " }", - " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", - " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", - " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", - " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('rotation', this.rotationBuffer);", - " }", - " this.sizeBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", - " this.sizeBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('size', this.sizeBuffer);", - " this.uvTileBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", - " this.uvTileBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('uvTile', this.uvTileBuffer);", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", - " this.velocityBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", - " this.velocityBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('velocity', this.velocityBuffer);", - " }", - " }", - " setupBuffers() {", - " if (this.geometry)", - " this.geometry.dispose();", - " this.geometry = new THREE.InstancedBufferGeometry();", - " this.geometry.setIndex(this.settings.instancingGeometry.getIndex());", - " if (this.settings.instancingGeometry.hasAttribute('normal')) {", - " this.geometry.setAttribute('normal', this.settings.instancingGeometry.getAttribute('normal'));", - " }", - " this.geometry.setAttribute('position', this.settings.instancingGeometry.getAttribute('position')); //new InterleavedBufferAttribute(this.interleavedBuffer, 3, 0, false));", - " this.geometry.setAttribute('uv', this.settings.instancingGeometry.getAttribute('uv')); //new InterleavedBufferAttribute(this.interleavedBuffer, 2, 3, false));", - " this.buildExpandableBuffers();", - " }", - " expandBuffers(target) {", - " while (target >= this.maxParticles) {", - " this.maxParticles *= 2;", - " }", - " this.setupBuffers();", - " }", - " rebuildMaterial() {", - " this.layers.mask = this.settings.layers.mask;", - " let uniforms;", - " const defines = {};", - " if (this.settings.material.type === 'MeshStandardMaterial' ||", - " this.settings.material.type === 'MeshPhysicalMaterial') {", - " const mat = this.settings.material;", - " uniforms = THREE.UniformsUtils.merge([", - " THREE.UniformsLib.common,", - " THREE.UniformsLib.envmap,", - " THREE.UniformsLib.aomap,", - " THREE.UniformsLib.lightmap,", - " THREE.UniformsLib.emissivemap,", - " THREE.UniformsLib.bumpmap,", - " THREE.UniformsLib.normalmap,", - " THREE.UniformsLib.displacementmap,", - " THREE.UniformsLib.roughnessmap,", - " THREE.UniformsLib.metalnessmap,", - " THREE.UniformsLib.fog,", - " THREE.UniformsLib.lights,", - " {", - " emissive: { value: /*@__PURE__*/ new THREE.Color(0x000000) },", - " roughness: { value: 1.0 },", - " metalness: { value: 0.0 },", - " envMapIntensity: { value: 1 }, // temporary", - " },", - " ]);", - " uniforms['diffuse'].value = mat.color;", - " uniforms['opacity'].value = mat.opacity;", - " uniforms['emissive'].value = mat.emissive;", - " uniforms['roughness'].value = mat.roughness;", - " uniforms['metalness'].value = mat.metalness;", - " if (mat.envMap) {", - " uniforms['envMap'].value = mat.envMap;", - " uniforms['envMapIntensity'].value = mat.envMapIntensity;", - " }", - " if (mat.normalMap) {", - " uniforms['normalMap'].value = mat.normalMap;", - " uniforms['normalScale'].value = mat.normalScale;", - " }", - " if (mat.roughnessMap) {", - " uniforms['roughnessMap'].value = mat.roughnessMap;", - " }", - " if (mat.metalnessMap) {", - " uniforms['metalnessMap'].value = mat.metalnessMap;", - " }", - " }", - " else {", - " uniforms = {};", - " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", - " }", - " if (this.settings.material.map) {", - " defines['USE_MAP'] = '';", - " defines['USE_UV'] = '';", - " defines['UV_TILE'] = '';", - " const uTileCount = this.settings.uTileCount;", - " const vTileCount = this.settings.vTileCount;", - " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", - " uniforms['uvTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", - " uniforms['tileCount'] = new THREE.Uniform(new THREE.Vector2(uTileCount, vTileCount));", - " }", - " defines['USE_COLOR_ALPHA'] = '';", - " let needLights = false;", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard || this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " let vertexShader;", - " let fragmentShader;", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " if (this.settings.material.type === 'MeshStandardMaterial' ||", - " this.settings.material.type === 'MeshPhysicalMaterial') {", - " defines['USE_COLOR'] = '';", - " vertexShader = local_particle_physics_vert;", - " fragmentShader = particle_physics_frag;", - " needLights = true;", - " }", - " else {", - " vertexShader = local_particle_vert;", - " fragmentShader = particle_frag;", - " }", - " }", - " else {", - " vertexShader = particle_vert;", - " fragmentShader = particle_frag;", - " }", - " this.material = new THREE.ShaderMaterial({", - " uniforms: uniforms,", - " defines: defines,", - " vertexShader: vertexShader,", - " fragmentShader: fragmentShader,", - " transparent: this.settings.material.transparent,", - " depthWrite: !this.settings.material.transparent,", - " blending: this.settings.material.blending,", - " side: this.settings.material.side,", - " lights: needLights,", - " });", - " }", - " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", - " uniforms['speedFactor'] = new THREE.Uniform(1.0);", - " this.material = new THREE.ShaderMaterial({", - " uniforms: uniforms,", - " defines: defines,", - " vertexShader: stretched_bb_particle_vert,", - " fragmentShader: particle_frag,", - " transparent: this.settings.material.transparent,", - " depthWrite: !this.settings.material.transparent,", - " blending: this.settings.material.blending,", - " side: this.settings.material.side,", - " });", - " }", - " else {", - " throw new Error('render mode unavailable');", - " }", - " }", - " update() {", - " let index = 0;", - " let particleCount = 0;", - " this.systems.forEach((system) => {", - " particleCount += system.particleNum;", - " });", - " if (particleCount > this.maxParticles) {", - " this.expandBuffers(particleCount);", - " }", - " this.systems.forEach((system) => {", - " const particles = system.particles;", - " const particleNum = system.particleNum;", - " const rotation = this.quaternion2_;", - " const translation = this.vector2_;", - " const scale = this.vector3_;", - " system.emitter.matrixWorld.decompose(translation, rotation, scale);", - " this.rotationMat_.setFromMatrix4(system.emitter.matrixWorld);", - " for (let j = 0; j < particleNum; j++, index++) {", - " const particle = particles[j];", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " //this.quaternion_.setFromAxisAngle(UP, particle.rotation as number);", - " let q;", - " if (system.worldSpace) {", - " q = particle.rotation;", - " }", - " else {", - " let parentQ;", - " if (particle.parentMatrix) {", - " parentQ = this.quaternion3_.setFromRotationMatrix(particle.parentMatrix);", - " }", - " else {", - " parentQ = rotation;", - " }", - " q = this.quaternion_;", - " q.copy(particle.rotation).multiply(parentQ);", - " }", - " this.rotationBuffer.setXYZW(index, q.x, q.y, q.z, q.w);", - " }", - " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", - " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", - " this.rotationBuffer.setX(index, particle.rotation);", - " }", - " let vec;", - " if (system.worldSpace) {", - " vec = particle.position;", - " }", - " else {", - " vec = this.vector_;", - " if (particle.parentMatrix) {", - " vec.copy(particle.position).applyMatrix4(particle.parentMatrix);", - " }", - " else {", - " vec.copy(particle.position).applyMatrix4(system.emitter.matrixWorld);", - " }", - " }", - " this.offsetBuffer.setXYZ(index, vec.x, vec.y, vec.z);", - " this.colorBuffer.setXYZW(index, particle.color.x, particle.color.y, particle.color.z, particle.color.w);", - " if (system.worldSpace) {", - " this.sizeBuffer.setX(index, particle.size);", - " }", - " else {", - " if (particle.parentMatrix) {", - " this.sizeBuffer.setX(index, particle.size);", - " }", - " else {", - " this.sizeBuffer.setX(index, (particle.size * (scale.x + scale.y + scale.z)) / 3);", - " }", - " }", - " this.uvTileBuffer.setX(index, particle.uvTile);", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", - " const speedFactor = system.speedFactor;", - " let vec;", - " if (system.worldSpace) {", - " vec = particle.velocity;", - " }", - " else {", - " vec = this.vector_;", - " if (particle.parentMatrix) {", - " this.rotationMat2_.setFromMatrix4(particle.parentMatrix);", - " vec.copy(particle.velocity).applyMatrix3(this.rotationMat2_);", - " }", - " else {", - " vec.copy(particle.velocity).applyMatrix3(this.rotationMat_);", - " }", - " }", - " this.velocityBuffer.setXYZ(index, vec.x * speedFactor, vec.y * speedFactor, vec.z * speedFactor);", - " }", - " }", - " });", - " this.geometry.instanceCount = index;", - " if (index > 0) {", - " this.offsetBuffer.updateRange.count = index * 3;", - " this.offsetBuffer.needsUpdate = true;", - " this.sizeBuffer.updateRange.count = index;", - " this.sizeBuffer.needsUpdate = true;", - " this.colorBuffer.updateRange.count = index * 4;", - " this.colorBuffer.needsUpdate = true;", - " this.uvTileBuffer.updateRange.count = index;", - " this.uvTileBuffer.needsUpdate = true;", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", - " this.velocityBuffer.updateRange.count = index * 3;", - " this.velocityBuffer.needsUpdate = true;", - " }", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", - " this.rotationBuffer.updateRange.count = index * 4;", - " this.rotationBuffer.needsUpdate = true;", - " }", - " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", - " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", - " this.rotationBuffer.updateRange.count = index;", - " this.rotationBuffer.needsUpdate = true;", - " }", - " }", - " }", - " dispose() {", - " this.geometry.dispose();", - " }", - "}", - "", - "var trail_frag = /* glsl */ `", - "", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "uniform sampler2D alphaMap;", - "uniform float useAlphaMap;", - "uniform float visibility;", - "uniform float alphaTest;", - "uniform vec2 repeat;", - "", - "varying vec4 vColor;", - "", - "void main() {", - "#include ", - "#include ", - "", - "vec4 c = vColor;", - "", - "#ifdef USE_MAP", - "c *= texture2D( map, vUv * repeat );", - "#endif", - "if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUv * repeat ).a;", - "if( c.a < alphaTest ) discard;", - "gl_FragColor = c;", - "", - "#include ", - "#include ", - "}`;", - "", - "var trail_vert = /* glsl */ `", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "#include ", - "", - "attribute vec3 previous;", - "attribute vec3 next;", - "attribute float side;", - "attribute float width;", - "", - "uniform vec2 resolution;", - "uniform float lineWidth;", - "uniform float sizeAttenuation;", - "", - "vec2 fix(vec4 i, float aspect) {", - "vec2 res = i.xy / i.w;", - "res.x *= aspect;", - "return res;", - "}", - "", - "void main() {", - "", - "#include ", - "", - "float aspect = resolution.x / resolution.y;", - "", - "vColor = color;", - "", - "mat4 m = projectionMatrix * modelViewMatrix;", - "vec4 finalPosition = m * vec4( position, 1.0 );", - "vec4 prevPos = m * vec4( previous, 1.0 );", - "vec4 nextPos = m * vec4( next, 1.0 );", - "", - "vec2 currentP = fix( finalPosition, aspect );", - "vec2 prevP = fix( prevPos, aspect );", - "vec2 nextP = fix( nextPos, aspect );", - "", - "float w = lineWidth * width;", - "", - "vec2 dir;", - "if( nextP == currentP ) dir = normalize( currentP - prevP );", - "else if( prevP == currentP ) dir = normalize( nextP - currentP );", - "else {", - " vec2 dir1 = normalize( currentP - prevP );", - " vec2 dir2 = normalize( nextP - currentP );", - " dir = normalize( dir1 + dir2 );", - "", - " vec2 perp = vec2( -dir1.y, dir1.x );", - " vec2 miter = vec2( -dir.y, dir.x );", - " //w = clamp( w / dot( miter, perp ), 0., 4., * lineWidth * width );", - "", - "}", - "", - "//vec2 normal = ( cross( vec3( dir, 0. ) vec3( 0., 0., 1. ) ) ).xy;", - "vec4 normal = vec4( -dir.y, dir.x, 0., 1. );", - "normal.xy *= .5 * w;", - "normal *= projectionMatrix;", - "if( sizeAttenuation == 0. ) {", - " normal.xy *= finalPosition.w;", - " normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;", - "}", - "", - "finalPosition.xy += normal.xy * side;", - "", - "gl_Position = finalPosition;", - "", - "#include ", - "#include ", - "", - "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", - "", - "#include ", - "}`;", - "", - "new THREE.Vector3(0, 0, 1);", - "class TrailBatch extends VFXBatch {", - " constructor(settings) {", - " super(settings);", - " /*", - " clone() {", - " let system = this.system.clone();", - " return system.emitter as any;", - " }*/", - " this.vector_ = new THREE.Vector3();", - " this.vector2_ = new THREE.Vector3();", - " this.vector3_ = new THREE.Vector3();", - " this.quaternion_ = new THREE.Quaternion();", - " this.maxParticles = 10000;", - " this.setupBuffers();", - " this.rebuildMaterial();", - " // TODO: implement boundingVolume", - " }", - " setupBuffers() {", - " if (this.geometry)", - " this.geometry.dispose();", - " this.geometry = new THREE.BufferGeometry();", - " this.indexBuffer = new THREE.BufferAttribute(new Uint32Array(this.maxParticles * 6), 1);", - " this.indexBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setIndex(this.indexBuffer);", - " this.positionBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", - " this.positionBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('position', this.positionBuffer);", - " this.previousBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", - " this.previousBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('previous', this.previousBuffer);", - " this.nextBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", - " this.nextBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('next', this.nextBuffer);", - " this.widthBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", - " this.widthBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('width', this.widthBuffer);", - " this.sideBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", - " this.sideBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('side', this.sideBuffer);", - " this.uvBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 4), 2);", - " this.uvBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('uv', this.uvBuffer);", - " this.colorBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 8), 4);", - " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", - " this.geometry.setAttribute('color', this.colorBuffer);", - " }", - " expandBuffers(target) {", - " while (target >= this.maxParticles) {", - " this.maxParticles *= 2;", - " }", - " this.setupBuffers();", - " }", - " rebuildMaterial() {", - " this.layers.mask = this.settings.layers.mask;", - " const uniforms = {", - " lineWidth: { value: 1 },", - " map: { value: null },", - " useMap: { value: 0 },", - " alphaMap: { value: null },", - " useAlphaMap: { value: 0 },", - " resolution: { value: new THREE.Vector2(1, 1) },", - " sizeAttenuation: { value: 1 },", - " visibility: { value: 1 },", - " alphaTest: { value: 0 },", - " repeat: { value: new THREE.Vector2(1, 1) },", - " };", - " const defines = {};", - " defines['USE_UV'] = '';", - " defines['USE_COLOR_ALPHA'] = '';", - " if (this.settings.material.map) {", - " defines['USE_MAP'] = '';", - " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", - " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", - " uniforms['mapTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", - " }", - " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", - " this.material = new THREE.ShaderMaterial({", - " uniforms: uniforms,", - " defines: defines,", - " vertexShader: trail_vert,", - " fragmentShader: trail_frag,", - " transparent: this.settings.material.transparent,", - " depthWrite: !this.settings.material.transparent,", - " side: this.settings.material.side,", - " blending: this.settings.material.blending || THREE.AdditiveBlending,", - " });", - " }", - " else {", - " throw new Error('render mode unavailable');", - " }", - " }", - " update() {", - " let index = 0;", - " let triangles = 0;", - " let particleCount = 0;", - " this.systems.forEach((system) => {", - " for (let j = 0; j < system.particleNum; j++) {", - " particleCount += system.particles[j].previous.length * 2;", - " }", - " });", - " if (particleCount > this.maxParticles) {", - " this.expandBuffers(particleCount);", - " }", - " this.systems.forEach((system) => {", - " const rotation = this.quaternion_;", - " const translation = this.vector2_;", - " const scale = this.vector3_;", - " system.emitter.matrixWorld.decompose(translation, rotation, scale);", - " const particles = system.particles;", - " const particleNum = system.particleNum;", - " const uTileCount = this.settings.uTileCount;", - " const vTileCount = this.settings.vTileCount;", - " const tileWidth = 1 / uTileCount;", - " const tileHeight = 1 / vTileCount;", - " for (let j = 0; j < particleNum; j++) {", - " const particle = particles[j];", - " const col = particle.uvTile % vTileCount;", - " const row = Math.floor(particle.uvTile / vTileCount);", - " const iter = particle.previous.values();", - " let curIter = iter.next();", - " let previous = curIter.value;", - " let current = previous;", - " if (!curIter.done)", - " curIter = iter.next();", - " let next;", - " if (curIter.value !== undefined) {", - " next = curIter.value;", - " }", - " else {", - " next = current;", - " }", - " for (let i = 0; i < particle.previous.length; i++, index += 2) {", - " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", - " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", - " if (system.worldSpace) {", - " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", - " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", - " }", - " else {", - " if (particle.parentMatrix) {", - " this.vector_.copy(current.position).applyMatrix4(particle.parentMatrix);", - " }", - " else {", - " this.vector_.copy(current.position).applyMatrix4(system.emitter.matrixWorld);", - " }", - " this.positionBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", - " this.positionBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", - " }", - " if (system.worldSpace) {", - " this.previousBuffer.setXYZ(index, previous.position.x, previous.position.y, previous.position.z);", - " this.previousBuffer.setXYZ(index + 1, previous.position.x, previous.position.y, previous.position.z);", - " }", - " else {", - " if (particle.parentMatrix) {", - " this.vector_.copy(previous.position).applyMatrix4(particle.parentMatrix);", - " }", - " else {", - " this.vector_.copy(previous.position).applyMatrix4(system.emitter.matrixWorld);", - " }", - " this.previousBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", - " this.previousBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", - " }", - " if (system.worldSpace) {", - " this.nextBuffer.setXYZ(index, next.position.x, next.position.y, next.position.z);", - " this.nextBuffer.setXYZ(index + 1, next.position.x, next.position.y, next.position.z);", - " }", - " else {", - " if (particle.parentMatrix) {", - " this.vector_.copy(next.position).applyMatrix4(particle.parentMatrix);", - " }", - " else {", - " this.vector_.copy(next.position).applyMatrix4(system.emitter.matrixWorld);", - " }", - " this.nextBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", - " this.nextBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", - " }", - " this.sideBuffer.setX(index, -1);", - " this.sideBuffer.setX(index + 1, 1);", - " if (system.worldSpace) {", - " this.widthBuffer.setX(index, current.size);", - " this.widthBuffer.setX(index + 1, current.size);", - " }", - " else {", - " if (particle.parentMatrix) {", - " this.widthBuffer.setX(index, current.size);", - " this.widthBuffer.setX(index + 1, current.size);", - " }", - " else {", - " this.widthBuffer.setX(index, (current.size * (scale.x + scale.y + scale.z)) / 3);", - " this.widthBuffer.setX(index + 1, (current.size * (scale.x + scale.y + scale.z)) / 3);", - " }", - " }", - " this.uvBuffer.setXY(index, (i / particle.previous.length + col) * tileWidth, (vTileCount - row - 1) * tileHeight);", - " this.uvBuffer.setXY(index + 1, (i / particle.previous.length + col) * tileWidth, (vTileCount - row) * tileHeight);", - " this.colorBuffer.setXYZW(index, current.color.x, current.color.y, current.color.z, current.color.w);", - " this.colorBuffer.setXYZW(index + 1, current.color.x, current.color.y, current.color.z, current.color.w);", - " if (i + 1 < particle.previous.length) {", - " this.indexBuffer.setX(triangles * 3, index);", - " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", - " this.indexBuffer.setX(triangles * 3 + 2, index + 2);", - " triangles++;", - " this.indexBuffer.setX(triangles * 3, index + 2);", - " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", - " this.indexBuffer.setX(triangles * 3 + 2, index + 3);", - " triangles++;", - " }", - " previous = current;", - " current = next;", - " if (!curIter.done) {", - " curIter = iter.next();", - " if (curIter.value !== undefined) {", - " next = curIter.value;", - " }", - " }", - " }", - " }", - " });", - " this.positionBuffer.updateRange.count = index * 3;", - " this.positionBuffer.needsUpdate = true;", - " this.previousBuffer.updateRange.count = index * 3;", - " this.previousBuffer.needsUpdate = true;", - " this.nextBuffer.updateRange.count = index * 3;", - " this.nextBuffer.needsUpdate = true;", - " this.sideBuffer.updateRange.count = index;", - " this.sideBuffer.needsUpdate = true;", - " this.widthBuffer.updateRange.count = index;", - " this.widthBuffer.needsUpdate = true;", - " this.uvBuffer.updateRange.count = index * 2;", - " this.uvBuffer.needsUpdate = true;", - " this.colorBuffer.updateRange.count = index * 4;", - " this.colorBuffer.needsUpdate = true;", - " this.indexBuffer.updateRange.count = triangles * 3;", - " this.indexBuffer.needsUpdate = true;", - " this.geometry.setDrawRange(0, triangles * 3);", - " }", - " dispose() {", - " this.geometry.dispose();", - " }", - "}", - "", - "class BatchedRenderer extends THREE.Object3D {", - " constructor() {", - " super();", - " this.batches = [];", - " this.systemToBatchIndex = new Map();", - " this.type = \"BatchedRenderer\";", - " }", - " static equals(a, b) {", - " return a.material.side === b.material.side &&", - " a.material.blending === b.material.blending &&", - " a.material.transparent === b.material.transparent &&", - " a.material.map === b.material.map &&", - " a.renderMode === b.renderMode &&", - " a.uTileCount === b.uTileCount &&", - " a.vTileCount === b.vTileCount &&", - " a.instancingGeometry === b.instancingGeometry &&", - " a.renderOrder === b.renderOrder &&", - " a.layers.mask === b.layers.mask;", - " }", - " addSystem(system) {", - " system._renderer = this;", - " const settings = system.getRendererSettings();", - " for (let i = 0; i < this.batches.length; i++) {", - " if (BatchedRenderer.equals(this.batches[i].settings, settings)) {", - " this.batches[i].addSystem(system);", - " this.systemToBatchIndex.set(system, i);", - " return;", - " }", - " }", - " let batch;", - " switch (settings.renderMode) {", - " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", - " batch = new TrailBatch(settings);", - " break;", - " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", - " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", - " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", - " batch = new SpriteBatch(settings);", - " break;", - " }", - " batch.addSystem(system);", - " this.batches.push(batch);", - " this.systemToBatchIndex.set(system, this.batches.length - 1);", - " this.add(batch);", - " }", - " deleteSystem(system) {", - " const batchIndex = this.systemToBatchIndex.get(system);", - " if (batchIndex != undefined) {", - " this.batches[batchIndex].removeSystem(system);", - " this.systemToBatchIndex.delete(system);", - " }", - " /*const settings = system.getRendererSettings();", - " for (let i = 0; i < this.batches.length; i++) {", - " if (BatchedParticleRenderer.equals(this.batches[i].settings, settings)) {", - " this.batches[i].removeSystem(system);", - " return;", - " }", - " }*/", - " }", - " updateSystem(system) {", - " this.deleteSystem(system);", - " this.addSystem(system);", - " }", - " update(delta) {", - " this.systemToBatchIndex.forEach((value, ps) => {", - " ps.update(delta);", - " });", - " for (let i = 0; i < this.batches.length; i++) {", - " this.batches[i].update();", - " }", - " }", - "}", - "", - "// deprecated", - "const BatchedParticleRenderer = BatchedRenderer;", - "", - "class TextureSequencer {", - " constructor(scaleX = 0, scaleY = 0, position = new THREE.Vector3()) {", - " this.scaleX = scaleX;", - " this.scaleY = scaleY;", - " this.position = position;", - " this.locations = [];", - " }", - " transform(position, index) {", - " position.x = this.locations[index % this.locations.length].x * this.scaleX + this.position.x;", - " position.y = this.locations[index % this.locations.length].y * this.scaleY + this.position.y;", - " position.z = this.position.z;", - " }", - " static fromJSON(json) {", - " const textureSequencer = new TextureSequencer(json.scaleX, json.scaleY, new THREE.Vector3(json.position[0], json.position[1], json.position[2]));", - " textureSequencer.locations = json.locations.map((loc) => new THREE.Vector2(loc.x, loc.y));", - " return textureSequencer;", - " }", - " clone() {", - " const textureSequencer = new TextureSequencer(this.scaleX, this.scaleY, this.position.clone());", - " textureSequencer.locations = this.locations.map(loc => loc.clone());", - " return textureSequencer;", - " }", - " toJSON() {", - " return {", - " scaleX: this.scaleX,", - " scaleY: this.scaleY,", - " position: this.position,", - " locations: this.locations.map(loc => ({", - " x: loc.x,", - " y: loc.y,", - " }))", - " };", - " }", - " fromImage(img, threshold) {", - " // Create an empty canvas element", - " const canvas = document.createElement(\"canvas\");", - " canvas.width = img.width;", - " canvas.height = img.height;", - " // Copy the image contents to the canvas", - " const ctx = canvas.getContext(\"2d\");", - " if (!ctx) {", - " return;", - " }", - " ctx.drawImage(img, 0, 0);", - " const data = ctx.getImageData(0, 0, canvas.width, canvas.height, { colorSpace: \"srgb\" });", - " canvas.remove();", - " this.locations.length = 0;", - " for (let i = 0; i < data.height; i++) {", - " for (let j = 0; j < data.width; j++) {", - " if (data.data[(i * data.width + j) * 4 + 3] > threshold) {", - " this.locations.push(new THREE.Vector2(j, data.height - i));", - " }", - " }", - " }", - " //return data;", - " // Get the data-URL formatted image", - " // Firefox supports PNG and JPEG. You could check img.src to", - " // guess the original format, but be aware the using \"image/jpg\"", - " // will re-encode the image.", - " //var dataURL = canvas.toDataURL(\"image/png\");", - " //return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");", - " }", - "}", - "", - "function SequencerFromJSON(json) {", - " switch (json.type) {", - " case 'TextureSequencer':", - " return TextureSequencer.fromJSON(json);", - " default:", - " return new TextureSequencer();", - " }", - "}", - "", - "class ApplySequences {", - " constructor(delayBetweenParticles) {", - " this.type = 'ApplySequences';", - " this.sequencers = [];", - " this.time = 0;", - " this.index = 0;", - " this.pCount = 0;", - " this.tempV = new THREE.Vector3();", - " this.delay = delayBetweenParticles;", - " }", - " initialize(particle) {", - " particle.id = this.pCount;", - " particle.dst = new THREE.Vector3();", - " particle.begin = new THREE.Vector3();", - " particle.inMotion = false;", - " this.pCount++;", - " }", - " reset() {", - " this.time = 0;", - " this.index = 0;", - " this.pCount = 0;", - " }", - " update(particle, delta) {", - " const sequencer = this.sequencers[this.index];", - " const delay = particle.id * this.delay;", - " if (this.time >= sequencer[0].a + delay && this.time <= sequencer[0].b + delay) {", - " if (!particle.inMotion) {", - " particle.inMotion = true;", - " particle.begin.copy(particle.position);", - " sequencer[1].transform(particle.dst, particle.id);", - " }", - " particle.position.lerpVectors(particle.begin, particle.dst, ApplySequences.BEZIER.genValue((this.time - sequencer[0].a - delay) / (sequencer[0].b - sequencer[0].a)));", - " }", - " else if (this.time > sequencer[0].b + delay) {", - " particle.inMotion = false;", - " }", - " }", - " frameUpdate(delta) {", - " while (this.index + 1 < this.sequencers.length && this.time >= this.sequencers[this.index + 1][0].a) {", - " this.index++;", - " }", - " this.time += delta;", - " }", - " appendSequencer(range, sequencer) {", - " this.sequencers.push([range, sequencer]);", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " delay: this.delay,", - " sequencers: this.sequencers.map(([range, sequencer]) => ({", - " range: range.toJSON(),", - " sequencer: sequencer.toJSON(),", - " })),", - " };", - " }", - " static fromJSON(json) {", - " const seq = new ApplySequences(json.delay);", - " json.sequencers.forEach((sequencerJson) => {", - " seq.sequencers.push([ValueGeneratorFromJSON(sequencerJson.range), SequencerFromJSON(sequencerJson.sequencer)]);", - " });", - " return seq;", - " }", - " clone() {", - " const applySequences = new ApplySequences(this.delay);", - " applySequences.sequencers = this.sequencers.map(seq => [seq[0].clone(), seq[1].clone()]);", - " return applySequences;", - " }", - "}", - "ApplySequences.BEZIER = new Bezier(0, 0, 1, 1);", - "", - "let physicsResolver;", - "function setPhysicsResolver(resolver) {", - " physicsResolver = resolver;", - "}", - "function getPhysicsResolver() {", - " return physicsResolver;", - "}", - "class ApplyCollision {", - " constructor(resolver, bounce) {", - " this.resolver = resolver;", - " this.bounce = bounce;", - " this.type = 'ApplyCollision';", - " this.tempV = new THREE.Vector3();", - " }", - " initialize(particle) {", - " }", - " update(particle, delta) {", - " if (this.resolver.resolve(particle.position, this.tempV)) {", - " particle.velocity.reflect(this.tempV).multiplyScalar(this.bounce);", - " }", - " }", - " frameUpdate(delta) {", - " }", - " toJSON() {", - " return {", - " type: this.type,", - " bounce: this.bounce,", - " };", - " }", - " static fromJSON(json) {", - " return new ApplyCollision(getPhysicsResolver(), json.bounce);", - " }", - " clone() {", - " return new ApplyCollision(this.resolver, this.bounce);", - " }", - " reset() {", - " }", - "}", - "", - "class QuarksLoader extends THREE.ObjectLoader {", - " /*manager: LoadingManager;", - " crossOrigin: string = \"anonymous\";", - " path?: string;", - " resourcePath: string;", - "*/", - " constructor(manager) {", - " super(manager);", - " //this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;", - " //this.resourcePath = '';", - " }", - " linkReference(object) {", - " const objectsMap = {};", - " object.traverse(function (child) {", - " objectsMap[child.uuid] = child;", - " });", - " object.traverse(function (child) {", - " if (child.type === \"ParticleEmitter\") {", - " const system = child.system;", - " system.emitterShape;", - " /*if (shape instanceof MeshSurfaceEmitter) {", - " shape.geometry = objectsMap[shape.geometry as any] as Mesh;", - " }*/", - " for (let i = 0; i < system.behaviors.length; i++) {", - " if (system.behaviors[i] instanceof EmitSubParticleSystem) {", - " system.behaviors[i].subParticleSystem = objectsMap[system.behaviors[i].subParticleSystem];", - " }", - " }", - " }", - " });", - " }", - " parse(json, onLoad) {", - " const object = super.parse(json, onLoad);", - " this.linkReference(object);", - " return object;", - " }", - " // @ts-ignore", - " parseObject(data, geometries, materials, textures, animations) {", - " let object;", - " function getGeometry(name) {", - " if (geometries[name] === undefined) {", - " console.warn('THREE.ObjectLoader: Undefined geometry', name);", - " }", - " return geometries[name];", - " }", - " function getMaterial(name) {", - " if (name === undefined)", - " return undefined;", - " if (Array.isArray(name)) {", - " const array = [];", - " for (let i = 0, l = name.length; i < l; i++) {", - " const uuid = name[i];", - " if (materials[uuid] === undefined) {", - " console.warn('THREE.ObjectLoader: Undefined material', uuid);", - " }", - " array.push(materials[uuid]);", - " }", - " return array;", - " }", - " if (materials[name] === undefined) {", - " console.warn('THREE.ObjectLoader: Undefined material', name);", - " }", - " return materials[name];", - " }", - " function getTexture(uuid) {", - " if (textures[uuid] === undefined) {", - " console.warn('THREE.ObjectLoader: Undefined texture', uuid);", - " }", - " return textures[uuid];", - " }", - " let geometry, material;", - " const meta = {", - " textures: textures,", - " geometries: geometries,", - " materials: materials,", - " };", - " const dependencies = {};", - " switch (data.type) {", - " case 'ParticleEmitter':", - " object = ParticleSystem.fromJSON(data.ps, meta, dependencies).emitter;", - " break;", - " case 'Scene':", - " object = new THREE.Scene();", - " if (data.background !== undefined) {", - " if (Number.isInteger(data.background)) {", - " object.background = new THREE.Color(data.background);", - " }", - " else {", - " object.background = getTexture(data.background);", - " }", - " }", - " if (data.environment !== undefined) {", - " object.environment = getTexture(data.environment);", - " }", - " if (data.fog !== undefined) {", - " if (data.fog.type === 'Fog') {", - " object.fog = new THREE.Fog(data.fog.color, data.fog.near, data.fog.far);", - " }", - " else if (data.fog.type === 'FogExp2') {", - " object.fog = new THREE.FogExp2(data.fog.color, data.fog.density);", - " }", - " }", - " if (data.backgroundBlurriness !== undefined)", - " object.backgroundBlurriness = data.backgroundBlurriness;", - " break;", - " case 'PerspectiveCamera':", - " object = new THREE.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);", - " if (data.focus !== undefined)", - " object.focus = data.focus;", - " if (data.zoom !== undefined)", - " object.zoom = data.zoom;", - " if (data.filmGauge !== undefined)", - " object.filmGauge = data.filmGauge;", - " if (data.filmOffset !== undefined)", - " object.filmOffset = data.filmOffset;", - " if (data.view !== undefined)", - " object.view = Object.assign({}, data.view);", - " break;", - " case 'OrthographicCamera':", - " object = new THREE.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);", - " if (data.zoom !== undefined)", - " object.zoom = data.zoom;", - " if (data.view !== undefined)", - " object.view = Object.assign({}, data.view);", - " break;", - " case 'AmbientLight':", - " object = new THREE.AmbientLight(data.color, data.intensity);", - " break;", - " case 'DirectionalLight':", - " object = new THREE.DirectionalLight(data.color, data.intensity);", - " break;", - " case 'PointLight':", - " object = new THREE.PointLight(data.color, data.intensity, data.distance, data.decay);", - " break;", - " case 'RectAreaLight':", - " object = new THREE.RectAreaLight(data.color, data.intensity, data.width, data.height);", - " break;", - " case 'SpotLight':", - " object = new THREE.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);", - " break;", - " case 'HemisphereLight':", - " object = new THREE.HemisphereLight(data.color, data.groundColor, data.intensity);", - " break;", - " case 'LightProbe':", - " object = new THREE.LightProbe().fromJSON(data);", - " break;", - " case 'SkinnedMesh':", - " geometry = getGeometry(data.geometry);", - " material = getMaterial(data.material);", - " object = new THREE.SkinnedMesh(geometry, material);", - " if (data.bindMode !== undefined)", - " object.bindMode = data.bindMode;", - " if (data.bindMatrix !== undefined)", - " object.bindMatrix.fromArray(data.bindMatrix);", - " if (data.skeleton !== undefined)", - " object.skeleton = data.skeleton;", - " break;", - " case 'Mesh':", - " geometry = getGeometry(data.geometry);", - " material = getMaterial(data.material);", - " object = new THREE.Mesh(geometry, material);", - " break;", - " case 'InstancedMesh': {", - " geometry = getGeometry(data.geometry);", - " material = getMaterial(data.material);", - " const count = data.count;", - " const instanceMatrix = data.instanceMatrix;", - " const instanceColor = data.instanceColor;", - " object = new THREE.InstancedMesh(geometry, material, count);", - " object.instanceMatrix = new THREE.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);", - " if (instanceColor !== undefined)", - " object.instanceColor = new THREE.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);", - " break;", - " }", - " case 'LOD':", - " object = new THREE.LOD();", - " break;", - " case 'Line':", - " object = new THREE.Line(getGeometry(data.geometry), getMaterial(data.material));", - " break;", - " case 'LineLoop':", - " object = new THREE.LineLoop(getGeometry(data.geometry), getMaterial(data.material));", - " break;", - " case 'LineSegments':", - " object = new THREE.LineSegments(getGeometry(data.geometry), getMaterial(data.material));", - " break;", - " case 'PointCloud':", - " case 'Points':", - " object = new THREE.Points(getGeometry(data.geometry), getMaterial(data.material));", - " break;", - " case 'Sprite':", - " object = new THREE.Sprite(getMaterial(data.material));", - " break;", - " case 'Group':", - " object = new THREE.Group();", - " break;", - " case 'Bone':", - " object = new THREE.Bone();", - " break;", - " default:", - " object = new THREE.Object3D();", - " }", - " object.uuid = data.uuid;", - " if (data.name !== undefined)", - " object.name = data.name;", - " if (data.matrix !== undefined) {", - " object.matrix.fromArray(data.matrix);", - " if (data.matrixAutoUpdate !== undefined)", - " object.matrixAutoUpdate = data.matrixAutoUpdate;", - " if (object.matrixAutoUpdate)", - " object.matrix.decompose(object.position, object.quaternion, object.scale);", - " }", - " else {", - " if (data.position !== undefined)", - " object.position.fromArray(data.position);", - " if (data.rotation !== undefined)", - " object.rotation.fromArray(data.rotation);", - " if (data.quaternion !== undefined)", - " object.quaternion.fromArray(data.quaternion);", - " if (data.scale !== undefined)", - " object.scale.fromArray(data.scale);", - " }", - " if (data.castShadow !== undefined)", - " object.castShadow = data.castShadow;", - " if (data.receiveShadow !== undefined)", - " object.receiveShadow = data.receiveShadow;", - " if (data.shadow) {", - " if (data.shadow.bias !== undefined)", - " object.shadow.bias = data.shadow.bias;", - " if (data.shadow.normalBias !== undefined)", - " object.normalBias = data.shadow.normalBias;", - " if (data.shadow.radius !== undefined)", - " object.radius = data.shadow.radius;", - " if (data.shadow.mapSize !== undefined)", - " object.mapSize.fromArray(data.shadow.mapSize);", - " if (data.shadow.camera !== undefined) { // @ts-ignore", - " object.camera = this.parseObject(data.shadow.camera);", - " }", - " }", - " if (data.visible !== undefined)", - " object.visible = data.visible;", - " if (data.frustumCulled !== undefined)", - " object.frustumCulled = data.frustumCulled;", - " if (data.renderOrder !== undefined)", - " object.renderOrder = data.renderOrder;", - " if (data.userData !== undefined)", - " object.userData = data.userData;", - " if (data.layers !== undefined)", - " object.layers.mask = data.layers;", - " if (data.children !== undefined) {", - " const children = data.children;", - " for (let i = 0; i < children.length; i++) {", - " object.add(this.parseObject(children[i], geometries, materials, textures, animations));", - " }", - " }", - " if (data.animations !== undefined) {", - " const objectAnimations = data.animations;", - " for (let i = 0; i < objectAnimations.length; i++) {", - " const uuid = objectAnimations[i];", - " object.animations.push(animations[uuid]);", - " }", - " }", - " if (data.type === 'LOD') {", - " if (data.autoUpdate !== undefined)", - " object.autoUpdate = data.autoUpdate;", - " const levels = data.levels;", - " for (let l = 0; l < levels.length; l++) {", - " const level = levels[l];", - " const child = object.getObjectByProperty('uuid', level.object);", - " if (child !== undefined) {", - " // @ts-ignore", - " object.addLevel(child, level.distance);", - " }", - " }", - " }", - " // @ts-ignore", - " return object;", - " }", - "}", - "", - "const Plugins = [];", - "function loadPlugin(plugin) {", - " const existing = Plugins.find(item => item.id === plugin.id);", - " if (!existing) {", - " plugin.initialize();", - " for (const emitterShape of plugin.emitterShapes) {", - " if (!EmitterShapes[emitterShape.type]) {", - " EmitterShapes[emitterShape.type] = emitterShape;", - " }", - " }", - " for (const behavior of plugin.behaviors) {", - " if (!BehaviorTypes[behavior.type]) {", - " BehaviorTypes[behavior.type] = behavior;", - " }", - " }", - " }", - "}", - "function unloadPlugin(pluginId) {", - " const plugin = Plugins.find(item => item.id === pluginId);", - " if (plugin) {", - " for (const emitterShape of plugin.emitterShapes) {", - " if (EmitterShapes[emitterShape.type]) {", - " delete EmitterShapes[emitterShape.type];", - " }", - " }", - " for (const behavior of plugin.behaviors) {", - " if (BehaviorTypes[behavior.type]) {", - " delete BehaviorTypes[behavior.type];", - " }", - " }", - " }", - "}", - "", - "gdjs.__particleEmmiter3DExtension.NodeValueType = void 0;", - "(function (NodeValueType) {", - " NodeValueType[NodeValueType[\"Number\"] = 0] = \"Number\";", - " NodeValueType[NodeValueType[\"Vec2\"] = 1] = \"Vec2\";", - " NodeValueType[NodeValueType[\"Vec3\"] = 2] = \"Vec3\";", - " NodeValueType[NodeValueType[\"Vec4\"] = 3] = \"Vec4\";", - " NodeValueType[NodeValueType[\"Boolean\"] = 4] = \"Boolean\";", - " NodeValueType[NodeValueType[\"AnyType\"] = 5] = \"AnyType\";", - "})(gdjs.__particleEmmiter3DExtension.NodeValueType || (gdjs.__particleEmmiter3DExtension.NodeValueType = {}));", - "const genDefaultForNodeValueType = (type) => {", - " switch (type) {", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.Boolean:", - " return false;", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.Number:", - " return 0;", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec2:", - " return new THREE.Vector2();", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec3:", - " return new THREE.Vector3();", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec4:", - " return new THREE.Vector4();", - " case gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType:", - " return 0;", - " }", - "};", - "", - "class Node {", - " constructor(type) {", - " this.inputs = [];", - " this.outputs = [];", - " this.data = {};", - " // display", - " this.position = new THREE.Vector2();", - " // execution", - " this.outputValues = [];", - " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", - " this.type = type;", - " for (let i = 0; i < type.inputTypes.length; i++) {", - " this.inputs.push(undefined);", - " }", - " for (let i = 0; i < type.outputTypes.length; i++) {", - " this.outputs.push(undefined);", - " this.outputValues.push(genDefaultForNodeValueType(type.outputTypes[i]));", - " }", - " }", - "}", - "class Wire {", - " constructor(input, inputIndex, output, outputIndex) {", - " this.input = input;", - " this.inputIndex = inputIndex;", - " this.input.outputs[inputIndex] = this;", - " this.output = output;", - " this.outputIndex = outputIndex;", - " this.output.inputs[outputIndex] = this;", - " }", - "}", - "", - "class Interpreter {", - " constructor() {", - " this.visited = new Set();", - " Interpreter.Instance = this;", - " }", - " traverse(node) {", - " if (this.context_ === undefined) {", - " throw new Error(\"context is undefined\");", - " }", - " if (this.graph_ === undefined) {", - " throw new Error(\"graph is undefined\");", - " }", - " this.visited.add(node.id);", - " const inputValues = [];", - " for (let i = 0; i < node.inputs.length; i++) {", - " if (node.inputs[i] instanceof Wire) {", - " const inputNode = node.inputs[i].input;", - " //if (inputNode) {", - " if (!this.visited.has(inputNode.id)) {", - " this.traverse(inputNode);", - " }", - " inputValues.push(inputNode.outputValues[node.inputs[i].inputIndex]);", - " /*} else {", - " throw new Error(`Node ${node.id} has not inputs`);", - " }*/", - " }", - " else {", - " inputValues.push(node.inputs[i].getValue(this.context_));", - " }", - " }", - " // calculation", - " node.type.func(this.context_, inputValues, node.outputValues);", - " this.graph_.nodesInOrder.push(node);", - " }", - " executeCompiledGraph() {", - " if (this.context_ === undefined) {", - " throw new Error(\"context is undefined\");", - " }", - " if (this.graph_ === undefined) {", - " throw new Error(\"graph is undefined\");", - " }", - " const nodes = this.graph_.nodesInOrder;", - " for (let i = 0; i < nodes.length; i++) {", - " const inputValues = [];", - " const node = nodes[i];", - " for (let j = 0; j < node.inputs.length; j++) {", - " if (node.inputs[j] instanceof Wire) {", - " inputValues.push(node.inputs[j].input.outputValues[node.inputs[j].inputIndex]);", - " }", - " else if (node.inputs[j] !== undefined) {", - " inputValues.push(node.inputs[j].getValue(this.context_));", - " }", - " else {", - " throw new Error(`miss input for node ${node.id}`);", - " }", - " }", - " node.type.func(this.context_, inputValues, node.outputValues);", - " }", - " }", - " run(graph, context) {", - " this.graph_ = graph;", - " this.context_ = context;", - " if (graph.compiled) {", - " this.executeCompiledGraph();", - " }", - " else {", - " graph.nodesInOrder.length = 0;", - " this.visited.clear();", - " for (let i = 0; i < graph.outputNodes.length; i++) {", - " const node = graph.outputNodes[i];", - " this.traverse(node);", - " }", - " graph.compiled = true;", - " }", - " }", - "}", - "", - "class NodeType {", - " constructor(name, func, inputTypes, outputTypes) {", - " this.inputTypes = [];", - " this.outputTypes = [];", - " this.name = name;", - " this.func = func;", - " this.inputTypes = inputTypes;", - " this.outputTypes = outputTypes;", - " }", - "}", - "class GraphNodeType extends NodeType {", - " constructor(nodeGraph) {", - " const inputTypes = [];", - " for (let i = 0; i < nodeGraph.inputNodes.length; i++) {", - " if (nodeGraph.inputNodes[i].type.name === 'input') {", - " inputTypes.push(nodeGraph.inputNodes[i].data.type);", - " }", - " }", - " const outputTypes = [];", - " for (let i = 0; i < nodeGraph.outputNodes.length; i++) {", - " if (nodeGraph.outputNodes[i].type.name === 'output') {", - " outputTypes.push(nodeGraph.outputNodes[i].data.type);", - " }", - " }", - " super(nodeGraph.name, (context, inputs, outputs) => {", - " context.inputs = inputs;", - " context.outputs = outputs;", - " Interpreter.Instance.run(nodeGraph, context);", - " }, inputTypes, outputTypes);", - " this.nodeGraph = nodeGraph;", - " }", - "}", - "", - "const NodeTypes = {", - " \"add\": new NodeType(\"add\", (context, inputs, outputs) => {", - " if (typeof inputs[0] === 'number') {", - " outputs[0] = inputs[0] + inputs[1];", - " }", - " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", - " outputs[0].addVectors(inputs[0], inputs[1]);", - " }", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - " \"sub\": new NodeType(\"sub\", (context, inputs, outputs) => {", - " if (typeof inputs[0] === 'number') {", - " outputs[0] = inputs[0] - inputs[1];", - " }", - " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", - " outputs[0].subVectors(inputs[0], inputs[1]);", - " }", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - " \"mul\": new NodeType(\"mul\", (context, inputs, outputs) => {", - " if (typeof inputs[0] === 'number') {", - " outputs[0] = inputs[0] * inputs[1];", - " }", - " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", - " outputs[0].multiplyVectors(inputs[0], inputs[1]);", - " }", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - " \"div\": new NodeType(\"div\", (context, inputs, outputs) => {", - " if (typeof inputs[0] === 'number') {", - " outputs[0] = inputs[0] / inputs[1];", - " }", - " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", - " outputs[0].copy(inputs[0]).divide(inputs[1]);", - " }", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - " \"curve\": new NodeType(\"curve\", (context, inputs, outputs) => {", - " //outputs[0] = inputs[0] + inputs[1];", - " }, [], []),", - " \"vrand\": new NodeType(\"vrand\", (context, inputs, outputs) => {", - " //outputs[0] = inputs[0] + inputs[1];", - " }, [], []),", - " \"curveSample\": new NodeType(\"curveSample\", (context, inputs, outputs) => {", - " //outputs[0] = inputs[0] + inputs[1];", - " }, [], []),", - " \"random\": new NodeType(\"random\", (context, inputs, outputs) => {", - " outputs[0] = Math.random() * (inputs[1] - inputs[0]) + inputs[0];", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.Number, gdjs.__particleEmmiter3DExtension.NodeValueType.Number], [gdjs.__particleEmmiter3DExtension.NodeValueType.Number]),", - " \"input\": new NodeType(\"input\", (context, inputs, outputs) => {", - " outputs[0] = inputs[0];", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - " \"output\": new NodeType(\"output\", (context, inputs, outputs) => {", - " outputs[0] = inputs[0];", - " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", - "};", - "", - "class NodeGraph {", - " constructor(name) {", - " this.inputNodes = [];", - " this.outputNodes = [];", - " this.allNodes = new Map();", - " this.wires = [];", - " this.compiled = false;", - " this.nodesInOrder = [];", - " this.version = \"1.0\";", - " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", - " this.name = name;", - " }", - " addWire(wire) {", - " this.wires.push(wire);", - " }", - " addNode(node) {", - " //this.nodes.push(node);", - " this.allNodes.set(node.id, node);", - " if (node.type === NodeTypes['input']) {", - " this.inputNodes.push(node);", - " }", - " else if (node.type === NodeTypes['output']) {", - " this.outputNodes.push(node);", - " }", - " }", - " getNode(id) {", - " return this.allNodes.get(id);", - " }", - " deleteNode(node) {", - " /*let index = this.nodes.indexOf(node);", - " if (index != -1) {", - " this.nodes[index] = this.nodes[this.nodes.length - 1];", - " this.nodes.pop();", - " }*/", - " this.allNodes.delete(node.id);", - " }", - " deleteWire(wire) {", - " wire.input.outputs[wire.inputIndex] = undefined;", - " wire.output.inputs[wire.outputIndex] = undefined;", - " const index = this.wires.indexOf(wire);", - " if (index != -1) {", - " this.wires[index] = this.wires[this.wires.length - 1];", - " this.wires.pop();", - " }", - " }", - " toJSON() {", - " throw new Error(\"not implemented\");", - " }", - " clone() {", - " throw new Error(\"not implemented\");", - " }", - "}", - "", - "gdjs.__particleEmmiter3DExtension.ApplyCollision = ApplyCollision;", - "gdjs.__particleEmmiter3DExtension.ApplyForce = ApplyForce;", - "gdjs.__particleEmmiter3DExtension.ApplySequences = ApplySequences;", - "gdjs.__particleEmmiter3DExtension.AxisAngleGenerator = AxisAngleGenerator;", - "gdjs.__particleEmmiter3DExtension.BatchedParticleRenderer = BatchedParticleRenderer;", - "gdjs.__particleEmmiter3DExtension.BatchedRenderer = BatchedRenderer;", - "gdjs.__particleEmmiter3DExtension.BehaviorFromJSON = BehaviorFromJSON;", - "gdjs.__particleEmmiter3DExtension.BehaviorTypes = BehaviorTypes;", - "gdjs.__particleEmmiter3DExtension.Bezier = Bezier;", - "gdjs.__particleEmmiter3DExtension.ChangeEmitDirection = ChangeEmitDirection;", - "gdjs.__particleEmmiter3DExtension.ColorGeneratorFromJSON = ColorGeneratorFromJSON;", - "gdjs.__particleEmmiter3DExtension.ColorOverLife = ColorOverLife;", - "gdjs.__particleEmmiter3DExtension.ColorRange = ColorRange;", - "gdjs.__particleEmmiter3DExtension.ConeEmitter = ConeEmitter;", - "gdjs.__particleEmmiter3DExtension.ConstantColor = ConstantColor;", - "gdjs.__particleEmmiter3DExtension.ConstantValue = ConstantValue;", - "gdjs.__particleEmmiter3DExtension.DonutEmitter = DonutEmitter;", - "gdjs.__particleEmmiter3DExtension.EmitSubParticleSystem = EmitSubParticleSystem;", - "gdjs.__particleEmmiter3DExtension.EmitterFromJSON = EmitterFromJSON;", - "gdjs.__particleEmmiter3DExtension.EmitterShapes = EmitterShapes;", - "gdjs.__particleEmmiter3DExtension.EulerGenerator = EulerGenerator;", - "gdjs.__particleEmmiter3DExtension.ForceOverLife = ForceOverLife;", - "gdjs.__particleEmmiter3DExtension.FrameOverLife = FrameOverLife;", - "gdjs.__particleEmmiter3DExtension.GeneratorFromJSON = GeneratorFromJSON;", - "gdjs.__particleEmmiter3DExtension.Gradient = Gradient;", - "gdjs.__particleEmmiter3DExtension.GraphNodeType = GraphNodeType;", - "gdjs.__particleEmmiter3DExtension.GravityForce = GravityForce;", - "gdjs.__particleEmmiter3DExtension.GridEmitter = GridEmitter;", - "gdjs.__particleEmmiter3DExtension.Interpreter = Interpreter;", - "gdjs.__particleEmmiter3DExtension.IntervalValue = IntervalValue;", - "gdjs.__particleEmmiter3DExtension.MeshSurfaceEmitter = MeshSurfaceEmitter;", - "gdjs.__particleEmmiter3DExtension.Node = Node;", - "gdjs.__particleEmmiter3DExtension.NodeGraph = NodeGraph;", - "gdjs.__particleEmmiter3DExtension.NodeType = NodeType;", - "gdjs.__particleEmmiter3DExtension.NodeTypes = NodeTypes;", - "gdjs.__particleEmmiter3DExtension.Noise = Noise;", - "gdjs.__particleEmmiter3DExtension.OrbitOverLife = OrbitOverLife;", - "gdjs.__particleEmmiter3DExtension.ParticleEmitter = ParticleEmitter;", - "gdjs.__particleEmmiter3DExtension.ParticleSystem = ParticleSystem;", - "gdjs.__particleEmmiter3DExtension.PiecewiseBezier = PiecewiseBezier;", - "gdjs.__particleEmmiter3DExtension.PiecewiseFunction = PiecewiseFunction;", - "gdjs.__particleEmmiter3DExtension.Plugins = Plugins;", - "gdjs.__particleEmmiter3DExtension.PointEmitter = PointEmitter;", - "gdjs.__particleEmmiter3DExtension.QuarksLoader = QuarksLoader;", - "gdjs.__particleEmmiter3DExtension.RandomColor = RandomColor;", - "gdjs.__particleEmmiter3DExtension.RandomColorBetweenGradient = RandomColorBetweenGradient;", - "gdjs.__particleEmmiter3DExtension.RandomQuatGenerator = RandomQuatGenerator;", - "gdjs.__particleEmmiter3DExtension.RecordState = RecordState;", - "gdjs.__particleEmmiter3DExtension.Rotation3DOverLife = Rotation3DOverLife;", - "gdjs.__particleEmmiter3DExtension.RotationGeneratorFromJSON = RotationGeneratorFromJSON;", - "gdjs.__particleEmmiter3DExtension.RotationOverLife = RotationOverLife;", - "gdjs.__particleEmmiter3DExtension.SequencerFromJSON = SequencerFromJSON;", - "gdjs.__particleEmmiter3DExtension.SizeOverLife = SizeOverLife;", - "gdjs.__particleEmmiter3DExtension.SpeedOverLife = SpeedOverLife;", - "gdjs.__particleEmmiter3DExtension.SphereEmitter = SphereEmitter;", - "gdjs.__particleEmmiter3DExtension.SpriteBatch = SpriteBatch;", - "gdjs.__particleEmmiter3DExtension.SpriteParticle = SpriteParticle;", - "gdjs.__particleEmmiter3DExtension.TextureSequencer = TextureSequencer;", - "gdjs.__particleEmmiter3DExtension.TrailBatch = TrailBatch;", - "gdjs.__particleEmmiter3DExtension.TrailParticle = TrailParticle;", - "gdjs.__particleEmmiter3DExtension.TurbulenceField = TurbulenceField;", - "gdjs.__particleEmmiter3DExtension.VFXBatch = VFXBatch;", - "gdjs.__particleEmmiter3DExtension.ValueGeneratorFromJSON = ValueGeneratorFromJSON;", - "gdjs.__particleEmmiter3DExtension.WidthOverLength = WidthOverLength;", - "gdjs.__particleEmmiter3DExtension.Wire = Wire;", - "gdjs.__particleEmmiter3DExtension.genDefaultForNodeValueType = genDefaultForNodeValueType;", - "gdjs.__particleEmmiter3DExtension.getPhysicsResolver = getPhysicsResolver;", - "gdjs.__particleEmmiter3DExtension.loadPlugin = loadPlugin;", - "gdjs.__particleEmmiter3DExtension.setPhysicsResolver = setPhysicsResolver;", - "gdjs.__particleEmmiter3DExtension.unloadPlugin = unloadPlugin;", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ] - } - ], - "parameters": [], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onScenePreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "\r", - "// See doStepPostEvents\r", - "runtimeScene.__particleEmmiter3DExtension = runtimeScene.__particleEmmiter3DExtension || {};\r", - "runtimeScene.__particleEmmiter3DExtension.emittersStepped = 0;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [], - "eventsBasedObjects": [ - { - "defaultName": "ParticleEmitter", - "description": "Display a large number of particles to create visual effects.", - "fullName": "3D particle emitter", - "name": "ParticleEmitter3D", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::DefineHelperClasses" - }, - "parameters": [ - "", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const BatchedRenderer = gdjs.__particleEmmiter3DExtension.BatchedRenderer;", - "const ParticleSystem = gdjs.__particleEmmiter3DExtension.ParticleSystem;", - "const TextureLoader = gdjs.__particleEmmiter3DExtension.TextureLoader;", - "const IntervalValue = gdjs.__particleEmmiter3DExtension.IntervalValue;", - "const ConstantValue = gdjs.__particleEmmiter3DExtension.ConstantValue;", - "const ConstantColor = gdjs.__particleEmmiter3DExtension.ConstantColor;", - "const ColorOverLife = gdjs.__particleEmmiter3DExtension.ColorOverLife;", - "const SizeOverLife = gdjs.__particleEmmiter3DExtension.SizeOverLife;", - "const ApplyForce = gdjs.__particleEmmiter3DExtension.ApplyForce;", - "const ColorRange = gdjs.__particleEmmiter3DExtension.ColorRange;", - "const PiecewiseBezier = gdjs.__particleEmmiter3DExtension.PiecewiseBezier;", - "const Bezier = gdjs.__particleEmmiter3DExtension.Bezier;", - "const PointEmitter = gdjs.__particleEmmiter3DExtension.PointEmitter;", - "const ConeEmitter = gdjs.__particleEmmiter3DExtension.ConeEmitter;", - "const RenderMode = gdjs.__particleEmmiter3DExtension.RenderMode;", - "", - "const ParticleEmitterAdapter = gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter;", - "", - "/** @type {gdjs.CustomRuntimeObject} */", - "const object = objects[0];", - "", - "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", - "const gameScene = object.getRuntimeScene();", - "const layer = gameScene.getLayer(object.getLayer());", - "", - "gameScene.__particleEmmiter3DExtension = gameScene.__particleEmmiter3DExtension || {};", - "if (!gameScene.__particleEmmiter3DExtension.batchSystem) {", - " const batchSystem = new BatchedRenderer();", - " layer.getRenderer().getThreeScene().add(batchSystem);", - " gameScene.__particleEmmiter3DExtension.batchSystem = batchSystem;", - "}", - "const batchSystem = gameScene.__particleEmmiter3DExtension.batchSystem;", - "", - "/** @type {SpriteObjectDataType} */", - "const particleSpriteData = object._instanceContainer._objects.get(\"Particle\");", - "const resourceName = particleSpriteData.animations[0].directions[0].sprites[0].image;", - "const texture = object", - " .getInstanceContainer()", - " .getGame()", - " .getImageManager().getThreeTexture(resourceName);", - "", - "// Set the blending here because changes are not applied after the emitter creation.", - "const blendingString = object._getBlending();", - "const blending =", - " blendingString === \"Additive\" ? THREE.AdditiveBlending :", - " blendingString === \"Normal\" ? THREE.NormalBlending :", - " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", - " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", - " blendingString === \"None\" ? THREE.NoBlending :", - " THREE.AdditiveBlending;", - "", - "", - "// Build a configuration with the right kind of objects.", - "// These values are not important as they are overrided by the object properties values.", - "const muzzle = {", - " duration: 10,", - " looping: false,", - " startLife: new IntervalValue(1, 2),", - " startSpeed: new IntervalValue(100, 200),", - " startSize: new IntervalValue(20, 50),", - " startColor: new ConstantColor(new THREE.Vector4(1, 1, 1, 1)),", - " worldSpace: true,", - "", - " maxParticle: 5,", - " emissionOverTime: new ConstantValue(50),", - " emissionBursts: [{", - " time: 0,", - " count: 1,", - " cycle: 1,", - " interval: 0.01,", - " probability: 1,", - " }],", - "", - " shape: new PointEmitter(),", - " material: new THREE.MeshBasicMaterial({", - " map: texture,", - " blending: blending,", - " transparent: true,", - " side: THREE.DoubleSide", - " }),", - " startTileIndex: 0,", - " uTileCount: 1,", - " vTileCount: 1,", - " renderOrder: 2,", - " renderMode: RenderMode.BillBoard", - "};", - "const particleSystem = new ParticleSystem(muzzle);", - "object.__particleSystem = particleSystem;", - "", - "const colorOverLife = new ColorOverLife(new ColorRange(", - " new THREE.Vector4(1, 0.3882312, 0.125, 1),", - " new THREE.Vector4(1, 0.826827, 0.3014706, 1)));", - "particleSystem.addBehavior(colorOverLife);", - "const sizeOverLife = new SizeOverLife(new PiecewiseBezier([[new Bezier(1, 2 / 3, 1 / 3, 0), 0]]));", - "particleSystem.addBehavior(sizeOverLife);", - "const applyForce = new ApplyForce(new THREE.Vector3(0, 0, -1), new ConstantValue(0));", - "particleSystem.addBehavior(applyForce);", - "", - "particleSystem.emitter.rotation.order = 'ZYX';", - "particleSystem.emitter.name = object.getName() + object.getNameId();", - "batchSystem.addSystem(particleSystem);", - "", - "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", - "", - "layer.get3DRendererObject().add(particleSystem.emitter);", - "const ParticleEmitter3D = Object.getPrototypeOf(object);", - "if (!ParticleEmitter3D.__isDefined) {", - " ParticleEmitter3D.__isDefined = true;", - " ParticleEmitter3D.get3DRendererObject = () => this.__emitter;", - "}", - "", - "// See doStepPostEvents", - "gameScene.__particleEmmiter3DExtension.emittersCount = gameScene.__particleEmmiter3DExtension.emittersCount || 0;", - "gameScene.__particleEmmiter3DExtension.emittersCount++;", - "", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" - }, - "parameters": [ - "Object", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onDestroy", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {gdjs.CustomRuntimeObject} */", - "const object = objects[0];", - "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", - "const gameScene = object.getRuntimeScene();", - "", - "object.__particleSystem.dispose();", - "", - "// See doStepPostEvents", - "gameScene.__particleEmmiter3DExtension.emittersCount--;" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onHotReloading", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" - }, - "parameters": [ - "Object", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Update from properties.", - "fullName": "Update from properties", - "functionType": "Action", - "name": "UpdateFromProperties", - "private": true, - "sentence": "Update from properties of _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetZ" - }, - "parameters": [ - "Object", - "=", - "Object.Z()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationX" - }, - "parameters": [ - "Object", - "=", - "Object.PropertyRotationX()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationY" - }, - "parameters": [ - "Object", - "=", - "Object.PropertyRotationY()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartColor" - }, - "parameters": [ - "Object", - "=", - "Object.StartColor()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndColor" - }, - "parameters": [ - "Object", - "=", - "Object.EndColor()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartOpacity" - }, - "parameters": [ - "Object", - "=", - "Object.StartOpacity()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndOpacity" - }, - "parameters": [ - "Object", - "=", - "Object.EndOpacity()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" - }, - "parameters": [ - "Object", - "=", - "Object.Flow()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMin" - }, - "parameters": [ - "Object", - "=", - "Object.StartSizeMin()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMax" - }, - "parameters": [ - "Object", - "=", - "Object.StartSizeMax()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" - }, - "parameters": [ - "Object", - "=", - "Object.StartSpeedMin()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" - }, - "parameters": [ - "Object", - "=", - "Object.StartSpeedMax()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMin" - }, - "parameters": [ - "Object", - "=", - "Object.LifespanMin()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMax" - }, - "parameters": [ - "Object", - "=", - "Object.LifespanMax()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetDuration" - }, - "parameters": [ - "Object", - "=", - "Object.Duration()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetSpayConeAngle" - }, - "parameters": [ - "Object", - "=", - "Object.SpayConeAngle()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravity" - }, - "parameters": [ - "Object", - "=", - "Object.Gravity()", - "" - ] - }, - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravityTop" - }, - "parameters": [ - "Object", - "=", - "Object.GravityTop()", - "" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" - }, - "parameters": [ - "Object", - "no", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" - }, - "parameters": [ - "Object", - "yes", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "TODO: Blending can't be changed." - }, - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetBlending" - }, - "parameters": [ - "Object", - "=", - "Object.Blending()", - "" - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" - }, - "parameters": [ - "Object", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" - }, - "parameters": [ - "Object", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", - "const gameScene = object.getRuntimeScene();", - "", - "const emitter = object.__particleSystem.emitter;", - "emitter.position.x = object.getX();", - "emitter.position.y = -object.getY();", - "", - "emitter.rotation.z = -object.getAngle() * Math.PI / 180;", - "", - "// Update batch system after having moved every emitter.", - "// See onScenePreEvents", - "gameScene.__particleEmmiter3DExtension.emittersStepped++;", - "if (gameScene.__particleEmmiter3DExtension.emittersStepped === gameScene.__particleEmmiter3DExtension.emittersCount) {", - " gameScene.__particleEmmiter3DExtension.batchSystem.update(object.getElapsedTime() / 1000);", - "}" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Delete itself", - "fullName": "Delete itself", - "functionType": "Action", - "name": "Delete", - "private": true, - "sentence": "Delete _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "", - "object.deleteFromScene(object.getParent());", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Check that emission has ended and no particle is alive anymore.", - "fullName": "Emission has ended", - "functionType": "Condition", - "name": "HasEnded", - "sentence": "Emission from _PARAM0_ has ended", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "\r", - "eventsFunctionContext.returnValue =\r", - " object._getShouldAutodestruct()\r", - " && object.__particleSystem.emitEnded\r", - " && object.__particleSystem.particleNum === 0;\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Restart particule emission from the beginning.", - "fullName": "Restart", - "functionType": "Action", - "name": "Restart", - "sentence": "Restart particule emission from _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {gdjs.CustomRuntimeObject} */\r", - "const object = objects[0];\r", - "\r", - "object.__particleSystem.restart();\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the Z position of the emitter.", - "fullName": "Z (elevation)", - "functionType": "ExpressionAndCondition", - "group": "Position", - "name": "Z", - "sentence": "the Z position", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyZ()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Z", - "name": "SetZ", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyZ" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "", - "object.__particleSystem.emitter.position.z = eventsFunctionContext.getArgument(\"Value\");" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the rotation on X axis of the emitter.", - "fullName": "Rotation on X axis", - "functionType": "ExpressionAndCondition", - "group": "Angle", - "name": "RotationX", - "sentence": "the rotation on X axis", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyRotationX()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "RotationX", - "name": "SetRotationX", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationX" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "\r", - "object.__particleSystem.emitter.rotation.x = eventsFunctionContext.getArgument(\"Value\") * Math.PI / 180;" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the rotation on Y axis of the emitter.", - "fullName": "Rotation on Y axis", - "functionType": "ExpressionAndCondition", - "group": "Angle", - "name": "RotationY", - "sentence": "the rotation on Y axis", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyRotationY()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "RotationY", - "name": "SetRotationY", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationY" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "\r", - "object.__particleSystem.emitter.rotation.y = (90 + eventsFunctionContext.getArgument(\"Value\")) * Math.PI / 180;" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the start color of the object.", - "fullName": "Start color", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter color configuration", - "name": "StartColor", - "sentence": "the start color", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.PropertyStartColor()" - ] - } - ] - } - ], - "expressionType": { - "type": "color" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartColor", - "name": "SetStartColor", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartColor" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startColor = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartColor(startColor);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the end color of the object.", - "fullName": "End color", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter color configuration", - "name": "EndColor", - "sentence": "the end color", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.PropertyEndColor()" - ] - } - ] - } - ], - "expressionType": { - "type": "color" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "EndColor", - "name": "SetEndColor", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndColor" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const endColor = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setEndColor(endColor);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the start opacity of the object.", - "fullName": "Start opacity", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter color configuration", - "name": "StartOpacity", - "sentence": "the start opacity", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyStartOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartOpacity", - "name": "SetStartOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartOpacity" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startOpacity = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartOpacity(startOpacity);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the end opacity of the object.", - "fullName": "End opacity", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter color configuration", - "name": "EndOpacity", - "sentence": "the end opacity", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyEndOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "EndOpacity", - "name": "SetEndOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndOpacity" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const endOpacity = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setEndOpacity(endOpacity);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the flow of particles of the object (particles per second).", - "fullName": "Flow of particles", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "Flow", - "sentence": "the flow of particles", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyFlow()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Flow", - "name": "SetFlow", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyFlow" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const flow = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setFlow(flow);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the start min size of the object.", - "fullName": "Start min size", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "StartSizeMin", - "sentence": "the start min size", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyStartSizeMin()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartSizeMin", - "name": "SetStartSizeMin", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMin" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startMinSize = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartMinSize(startMinSize);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the start max size of the object.", - "fullName": "Start max size", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "StartSizeMax", - "sentence": "the start max size", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyStartSizeMax()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartSizeMax", - "name": "SetStartSizeMax", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMax" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startMaxSize = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartMaxSize(startMaxSize);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the end scale of the object.", - "fullName": "End scale", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "EndScale", - "sentence": "the end scale", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyEndScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "EndScale", - "name": "SetEndScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndScale" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const endScale = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setEndScale(endScale);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the min start speed of the object.", - "fullName": "Min start speed", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter speed configuration", - "name": "StartSpeedMin", - "sentence": "the min start speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyStartSpeedMin()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartSpeedMin", - "name": "SetStartSpeedMin", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMin" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startSpeedMin = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartSpeedMin(startSpeedMin);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the max start speed of the object.", - "fullName": "Max start speed", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter speed configuration", - "name": "StartSpeedMax", - "sentence": "the max start speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyStartSpeedMax()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "StartSpeedMax", - "name": "SetStartSpeedMax", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMax" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const startSpeedMax = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setStartSpeedMax(startSpeedMax);" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the min lifespan of the object.", - "fullName": "Min lifespan", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "LifespanMin", - "sentence": "the min lifespan", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyLifespanMin()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "LifespanMin", - "name": "SetLifespanMin", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMin" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const lifespanMin = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setLifespanMin(lifespanMin);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the max lifespan of the object.", - "fullName": "Max lifespan", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "LifespanMax", - "sentence": "the max lifespan", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyLifespanMax()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "LifespanMax", - "name": "SetLifespanMax", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMax" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const lifespanMax = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setLifespanMax(lifespanMax);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the emission duration of the object.", - "fullName": "Emission duration", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "Duration", - "sentence": "the emission duration", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyDuration()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Duration", - "name": "SetDuration", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyDuration" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const duration = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setDuration(duration);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Check if particles move with the emitter.", - "fullName": "Particles move with the emitter", - "functionType": "Condition", - "group": "3D particle emitter speed configuration", - "name": "AreParticlesRelative", - "sentence": "_PARAM0_ particles move with the emitter", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Change if particles move with the emitter.", - "fullName": "Particles move with the emitter", - "functionType": "Action", - "group": "3D particle emitter speed configuration", - "name": "SetAreParticlesRelative", - "sentence": "_PARAM0_ particles move with the emitter: _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" - }, - "parameters": [ - "Object", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" - }, - "parameters": [ - "Object", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const areParticlesRelative = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setParticlesRelative(areParticlesRelative);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - }, - { - "defaultValue": "yes", - "description": "AreParticlesRelative", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - }, - { - "description": "the spay cone angle of the object.", - "fullName": "Spay cone angle", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter configuration", - "name": "SpayConeAngle", - "sentence": "the spay cone angle", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertySpayConeAngle()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "SpayConeAngle", - "name": "SetSpayConeAngle", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertySpayConeAngle" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const sprayConeAngle = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setSprayConeAngle(sprayConeAngle);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the blending of the object.", - "fullName": "Blending", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter color configuration", - "name": "Blending", - "sentence": "the blending", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.PropertyBlending()" - ] - } - ] - } - ], - "expressionType": { - "supplementaryInformation": "[\"Normal\",\"Additive\",\"Substractive\",\"Multiply\",\"None\"]", - "type": "stringWithSelector" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Blending", - "name": "SetBlending", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyBlending" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const blending = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setBlending(blending);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the gravity top of the object.", - "fullName": "Gravity top", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter speed configuration", - "name": "GravityTop", - "sentence": "the gravity top", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.PropertyGravityTop()" - ] - } - ] - } - ], - "expressionType": { - "supplementaryInformation": "[\"Y-\",\"Z+\"]", - "type": "stringWithSelector" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "GravityTop", - "name": "SetGravityTop", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravityTop" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const gravityTop = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setGravityTop(gravityTop);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "the gravity of the object.", - "fullName": "Gravity", - "functionType": "ExpressionAndCondition", - "group": "3D particle emitter speed configuration", - "name": "Gravity", - "sentence": "the gravity", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.PropertyGravity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Gravity", - "name": "SetGravity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravity" - }, - "parameters": [ - "Object", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const gravity = eventsFunctionContext.getArgument(\"Value\");\r", - "\r", - "object.__particleEmitterAdapter.setGravity(gravity);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Check if delete when emission ends.", - "fullName": "Delete when emission ends", - "functionType": "Condition", - "group": "3D particle emitter configuration", - "name": "ShouldAutodestruct", - "sentence": "_PARAM0_ delete when emission ends", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyShouldAutodestruct" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - } - ], - "objectGroups": [] - }, - { - "description": "Change if delete when emission ends.", - "fullName": "Delete when emission ends", - "functionType": "Action", - "group": "3D particle emitter configuration", - "name": "SetShouldAutodestruct", - "sentence": "_PARAM0_ delete when emission ends: _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" - }, - "parameters": [ - "Object", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" - }, - "parameters": [ - "Object", - "yes" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", - "type": "object" - }, - { - "defaultValue": "yes", - "description": "ShouldAutodestruct", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "255;0;0", - "type": "Color", - "label": "Start color", - "description": "", - "group": "Color", - "extraInformation": [], - "hidden": false, - "name": "StartColor" - }, - { - "value": "255;255;0", - "type": "Color", - "label": "End color", - "description": "", - "group": "Color", - "extraInformation": [], - "hidden": false, - "name": "EndColor" - }, - { - "value": "255", - "type": "Number", - "unit": "Dimensionless", - "label": "Start opacity", - "description": "", - "group": "Color", - "extraInformation": [], - "hidden": false, - "name": "StartOpacity" - }, - { - "value": "0", - "type": "Number", - "unit": "Dimensionless", - "label": "End opacity", - "description": "", - "group": "Color", - "extraInformation": [], - "hidden": false, - "name": "EndOpacity" - }, - { - "value": "50", - "type": "Number", - "label": "Flow of particles (particles per second)", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Flow" - }, - { - "value": "10", - "type": "Number", - "unit": "Pixel", - "label": "Start min size", - "description": "", - "group": "Size", - "extraInformation": [], - "hidden": false, - "name": "StartSizeMin" - }, - { - "value": "20", - "type": "Number", - "unit": "Pixel", - "label": "Start max size", - "description": "", - "group": "Size", - "extraInformation": [], - "hidden": false, - "name": "StartSizeMax" - }, - { - "value": "0", - "type": "Number", - "unit": "Dimensionless", - "label": "End scale", - "description": "", - "group": "Size", - "extraInformation": [], - "hidden": false, - "name": "EndScale" - }, - { - "value": "100", - "type": "Number", - "unit": "PixelSpeed", - "label": "Start min speed", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "StartSpeedMin" - }, - { - "value": "100", - "type": "Number", - "unit": "PixelSpeed", - "label": "Start max speed", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "StartSpeedMax" - }, - { - "value": "1", - "type": "Number", - "unit": "Second", - "label": "Min lifespan", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "LifespanMin" - }, - { - "value": "2", - "type": "Number", - "unit": "Second", - "label": "Max lifespan", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "LifespanMax" - }, - { - "value": "5", - "type": "Number", - "unit": "Second", - "label": "Emission duration", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Duration" - }, - { - "value": "", - "type": "Boolean", - "label": "Particles move with the emitter", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "AreParticlesRelative" - }, - { - "value": "30", - "type": "Number", - "unit": "DegreeAngle", - "label": "Spay cone angle", - "description": "", - "group": "Position", - "extraInformation": [], - "hidden": false, - "name": "SpayConeAngle" - }, - { - "value": "Additive", - "type": "Choice", - "label": "Blending", - "description": "", - "group": "Color", - "extraInformation": [ - "Normal", - "Additive", - "Subtractive", - "Multiply", - "None" - ], - "hidden": false, - "name": "Blending" - }, - { - "value": "Y-", - "type": "Choice", - "label": "Gravity top", - "description": "", - "group": "Speed", - "extraInformation": [ - "Y-", - "Z+" - ], - "hidden": false, - "name": "GravityTop" - }, - { - "value": "0", - "type": "Number", - "unit": "PixelAcceleration", - "label": "Gravity", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "Gravity" - }, - { - "value": "true", - "type": "Boolean", - "label": "Delete when emission ends", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "ShouldAutodestruct" - }, - { - "value": "Center-center", - "type": "String", - "label": "", - "description": "Only used by the scene editor.", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "ParentOrigin" - }, - { - "value": "0", - "type": "Number", - "unit": "Pixel", - "label": "Z (elevation)", - "description": "", - "group": "Position", - "extraInformation": [], - "hidden": false, - "name": "Z" - }, - { - "value": "0", - "type": "Number", - "unit": "DegreeAngle", - "label": "Rotation on X axis", - "description": "", - "group": "Position", - "extraInformation": [], - "hidden": false, - "name": "RotationX" - }, - { - "value": "0", - "type": "Number", - "unit": "DegreeAngle", - "label": "Rotation on Y axis", - "description": "", - "group": "Position", - "extraInformation": [], - "hidden": false, - "name": "RotationY" - } - ], - "objects": [ - { - "adaptCollisionMaskAutomatically": true, - "assetStoreId": "", - "name": "Particle", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "Image", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [] - } - ] - } - ] - } - ] - } - ] - }, - { - "author": "Gustavo Marciano", - "category": "Visual effect", - "extensionNamespace": "", - "fullName": "YSort", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNvcnQtYXNjZW5kaW5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDE3SDIyTDE4IDIxTDE0IDE3SDE3VjNIMTlNMiAxN0gxMlYxOUgyTTYgNVY3SDJWNU0yIDExSDlWMTNIMlYxMVoiIC8+PC9zdmc+", - "name": "YSort", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sort-ascending.svg", - "shortDescription": "Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a \"Top-Down\" view, RPG...", - "version": "0.1.0", - "description": [ - "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", - "", - "This is useful for:", - "- isometric games ([open the project online](https://editor.gdevelop.io/?project=example://isometric-game))", - "- top-down games ([open the project online](https://editor.gdevelop.io/?project=example://top-down-grid-movement))" - ], - "origin": { - "identifier": "YSort", - "name": "gdevelop-extension-store" - }, - "tags": [ - "z-order", - "y-sort", - "depth", - "fake-depth", - "isometric", - "rpg" - ], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", - "fullName": "YSort", - "name": "YSort", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "This is done in doStepPostEvents because the sort must happens right before the rendering to avoid a 1 frame delay." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Object", - "=", - "Object.Y() + Object.Behavior::PropertyOffset()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "YSort::YSort", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "0", - "type": "Number", - "unit": "Pixel", - "label": "Y offset", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Offset" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Input", - "extensionNamespace": "", - "fullName": "Behavior Remapper", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", - "name": "BehaviorRemapper", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", - "shortDescription": "Quickly remap Behavior controls to different keys. ", - "version": "1.0.0", - "description": [ - "Make sure to disable default controls unless you want two keys to do the same action.", - "", - "Actions have two versions. `custom` allow the movement keys to be changed to what ever you would like. `presets` provide a common key-bindings that can be selected from a list.", - "", - "### Available Presets:", - "", - "##### `WASD`", - "-\tW: Up", - "-\tA: Left", - "-\tS: Down", - "-\tD: Right", - "-\tSpace: Jump", - "", - "##### `ZQSD`", - "-\tZ: Up", - "-\tQ: Left", - "-\tS: Down", - "-\tD: Right", - "-\tSpace: Jump", - "", - "##### `Numpad` (Num lock must be disabled)", - "-\tNumpad Up: Up", - "-\tNumpad Left: Left", - "-\tNumpad Down: Down", - "-\tNumpad Right: Right", - "-\tNumpad Return/Enter: Jump", - "", - "##### `IJKL`", - "-\tI: Up", - "-\tJ: Left", - "-\tK: Down", - "-\tL: Right", - "-\tReturn/Enter: Jump", - "" - ], - "origin": { - "identifier": "BehaviorRemapper", - "name": "gdevelop-extension-store" - }, - "tags": [ - "remapper", - "key", - "bindings", - "presets", - "platformer", - "top-down" - ], - "authorIds": [ - "AlZ3D1xkH0QDao7T37VZZUeYNpn1" - ], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Allows for the controls of a Top-Down behavior to be re-mapped via a single action.", - "fullName": "Remap Top-down", - "name": "RemapForTopdown", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyUp()" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "Topdown" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyLeft()" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "Topdown" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyRight()" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "Topdown" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyDown()" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "Topdown" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Remaps Top-Down behavior controls to a custom control scheme.", - "fullName": "Remap Top-Down controls to a custom scheme", - "functionType": "Action", - "name": "SetCustom", - "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"up\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"left\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"right\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"down\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", - "type": "behavior" - }, - { - "description": "Up key", - "name": "up", - "type": "key" - }, - { - "description": "Left key", - "name": "left", - "type": "key" - }, - { - "description": "Down key", - "name": "down", - "type": "key" - }, - { - "description": "Right key", - "name": "right", - "type": "key" - } - ], - "objectGroups": [] - }, - { - "description": "Remaps Top-Down behavior controls to a preset control scheme.", - "fullName": "Remap Top-Down controls to a preset", - "functionType": "Action", - "name": "SetPreset", - "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "QWERTY bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"WASD\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"w\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"a\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"s\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"d\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "AZERTY bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"ZQSD\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"z\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"q\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"s\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"d\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Numpad bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"Numpad\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadUp\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadLeft\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadDown\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadRight\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "QWERTY player 2 bindings " - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"IJKL\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"i\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"j\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"k\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"l\"" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", - "type": "behavior" - }, - { - "description": "Preset name", - "name": "options", - "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "w", - "type": "String", - "label": "Up key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Up" - }, - { - "value": "a", - "type": "String", - "label": "Left key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Left" - }, - { - "value": "d", - "type": "String", - "label": "Right key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Right" - }, - { - "value": "s", - "type": "String", - "label": "Down key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Down" - }, - { - "value": "", - "type": "Behavior", - "label": "", - "description": "", - "group": "", - "extraInformation": [ - "TopDownMovementBehavior::TopDownMovementBehavior" - ], - "hidden": false, - "name": "Topdown" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Allows for the controls of a platformer behavior to be re-mapped via a single action.", - "fullName": "Remap Platformer controls", - "name": "RemapForPlatformer", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyUp()" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - }, - { - "type": { - "value": "PlatformBehavior::SimulateLadderKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyLeft()" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyRight()" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyDown()" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - }, - { - "type": { - "value": "PlatformBehavior::SimulateReleaseLadderKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyFromTextPressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyJump()" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "Platformer" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Remaps Platformer behavior controls to a custom control scheme.", - "fullName": "Remap Platformer controls to a custom scheme", - "functionType": "Action", - "name": "SetCustom", - "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_, Jump: _PARAM6_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"up\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"left\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"right\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"down\")" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"jump\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", - "type": "behavior" - }, - { - "description": "Up key", - "name": "up", - "type": "key" - }, - { - "description": "Left key", - "name": "left", - "type": "key" - }, - { - "description": "Down key", - "name": "down", - "type": "key" - }, - { - "description": "Right key", - "name": "right", - "type": "key" - }, - { - "description": "Jump key", - "name": "jump", - "type": "key" - } - ], - "objectGroups": [] - }, - { - "description": "Remaps Platformer behavior controls to a preset control scheme.", - "fullName": "Remap Platformer controls to a preset", - "functionType": "Action", - "name": "SetPreset", - "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "QWERTY bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"WASD\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"w\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"a\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"s\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"d\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Space\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "AZERTY bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"ZQSD\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"z\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"q\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"s\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"d\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Space\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Numpad bindings" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"Numpad\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadUp\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadLeft\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadDown\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadRight\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NumpadReturn\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "QWERTY player 2 bindings " - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "StrEqual" - }, - "parameters": [ - "GetArgumentAsString(\"options\")", - "=", - "\"IJKL\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"i\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"j\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"k\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"l\"" - ] - }, - { - "type": { - "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Return\"" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", - "type": "behavior" - }, - { - "description": "Preset name", - "name": "options", - "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "String", - "label": "Up key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Up" - }, - { - "value": "", - "type": "String", - "label": "Left key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Left" - }, - { - "value": "", - "type": "String", - "label": "Down key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Down" - }, - { - "value": "", - "type": "String", - "label": "Right key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Right" - }, - { - "value": "", - "type": "String", - "label": "Jump key", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Jump" - }, - { - "value": "", - "type": "Behavior", - "label": "", - "description": "", - "group": "", - "extraInformation": [ - "PlatformBehavior::PlatformerObjectBehavior" - ], - "hidden": false, - "name": "Platformer" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Movement", - "extensionNamespace": "", - "fullName": "Top-down corner sliding", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN1YmRpcmVjdG9yeS1hcnJvdy1yaWdodCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOSwxNUwxMywyMUwxMS41OCwxOS41OEwxNS4xNywxNkg0VjRINlYxNEgxNS4xN0wxMS41OCwxMC40MkwxMyw5TDE5LDE1WiIgLz48L3N2Zz4=", - "name": "TopDownCornerSliding", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f1e89ff4f907ed2245e2d4ad2d5f52f9e1bb6d0127aa370d44cc77462e5be8e3_subdirectory-arrow-right.svg", - "shortDescription": "Slide on corners of rectangular obstacles.", - "version": "0.1.0", - "description": [ - "In top-down games, players may have to go though gaps the same size as their avatar. This is almost impossible to do without any assistance. This extension makes objects slide on obstacles to lead them in the right direction.", - "", - "It can be used for:", - "* Bomberman-like games ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))", - "" - ], - "tags": [ - "top down", - "movement", - "grid", - "align" - ], - "authorIds": [ - "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" - ], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Define JavaScript classes for top-down.", - "fullName": "Define JavaScript classes for top-down", - "functionType": "Action", - "name": "DefineJavaScriptForTopDown", - "private": true, - "sentence": "Define JavaScript classes for top-down", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GlobalVariableAsBoolean" - }, - "parameters": [ - "__pixelPerfect.TopDownClassesDefined", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetGlobalVariableAsBoolean" - }, - "parameters": [ - "__pixelPerfect.TopDownClassesDefined", - "True" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "// TODO Remove this when afterPositionUpdate is added to the hook interface.", - "gdjs.TopDownMovementRuntimeBehavior.prototype.actuallyDoStepPreEvents = gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents;", - "gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents = function (instanceContainer) {", - " this.actuallyDoStepPreEvents(instanceContainer);", - "", - " for (const topDownMovementHook of this._topDownMovementHooks) {", - " topDownMovementHook.afterPositionUpdateTODO(null);", - " }", - "}", - "", - "const deltasX = [1, 1, 0, -1, -1, -1, 0, 1];", - "const deltasY = [0, 1, 1, 1, 0, -1, -1, -1];", - "const temporaryPointForTransformations = [0, 0];", - "const epsilon = 0.015625;", - "", - "/**", - " * {number} a", - " * {number} b", - " * {return {boolean}}", - " */", - "const almostEquals = function (a, b) {", - " return b - epsilon < a && a < b + epsilon;", - "}", - "", - "const CornerSlider = /** @class */ (function () {", - "", - " /**", - " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", - " * @param {gdjs.RuntimeBehavior} behavior", - " * @param {gdjs.TopDownMovementRuntimeBehavior} topDownBehavior", - " */", - " function CornerSlider(instanceContainer, behavior, topDownBehavior) {", - " this.instanceContainer = instanceContainer;", - " this.behavior = behavior;", - " this.topDownBehavior = topDownBehavior;", - "", - " topDownBehavior.registerHook(this);", - "", - " /**", - " * Obstacles near the object, updated with _updatePotentialCollidingObjects.", - " * @type {Obstacle[]}", - " */", - " this.potentialCollidingObjects = [];", - " /** @type {gdjs.RuntimeObject[]} */", - " this.collidingObjects = [];", - " this.obstacleManager = ObstacleManager.getManager(instanceContainer);", - "", - " // Remember the decision to bypass an obstacle...", - " this.lastAnyObstacle = false;", - " this.needToCheckBypassWay = true;", - "", - " // ...and the context of that decision", - " this.lastAssistanceDirection = -1;", - " this.lastDirection = -1;", - "", - " /** @type {FloatPoint} */", - " this.transformedPosition = [0, 0];", - " /** @type {gdjs.AABB} */", - " this.relativeHitBoxesAABB = { min: [0, 0], max: [0, 0] };", - " /** @type {gdjs.AABB} */", - " this.absoluteHitBoxesAABB = { min: [0, 0], max: [0, 0] };", - " this.hitBoxesAABBUpToDate = false;", - " this.oldWidth = 0;", - " this.oldHeight = 0;", - " this.previousX = 0;", - " this.previousY = 0;", - "", - " /** @type {AssistanceResult} */", - " this.result = new AssistanceResult();", - " }", - "", - " /**", - " * Return the direction to use instead of the direction given in", - " * parameter.", - " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", - " * @return {number}", - " */", - " CornerSlider.prototype.overrideDirection = function (context) {", - " let direction = context.getDirection();", - " if (!this.behavior.activated()) {", - " return direction;", - " }", - "", - " const object = this.topDownBehavior.owner;", - " // Check if the object has moved", - " // To avoid to loop on the transform and its inverse", - " // because of float approximation.", - " const position = temporaryPointForTransformations;", - " // TODO Handle isometry", - " // if (this.topDownBehavior._basisTransformation) {", - " // this.topDownBehavior._basisTransformation.toScreen(", - " // this.transformedPosition,", - " // position", - " // );", - " // } else {", - " position[0] = this.transformedPosition[0];", - " position[1] = this.transformedPosition[1];", - " // }", - " if (object.getX() !== position[0] || object.getY() !== position[1]) {", - " position[0] = object.getX();", - " position[1] = object.getY();", - " // TODO Handle isometry", - " // if (this.topDownBehavior._basisTransformation) {", - " // this.topDownBehavior._basisTransformation.toWorld(", - " // position,", - " // this.transformedPosition", - " // );", - " // } else {", - " this.transformedPosition[0] = position[0];", - " this.transformedPosition[1] = position[1];", - " // }", - " }", - "", - " const stickIsUsed =", - " this.topDownBehavior._stickForce !== 0 && direction === -1;", - " let inputDirection = 0;", - " if (stickIsUsed) {", - " inputDirection = this.getStickDirection();", - " } else {", - " inputDirection = direction;", - " }", - " const assistanceDirection = this.suggestDirection(", - " inputDirection", - " );", - " if (assistanceDirection !== -1) {", - " if (stickIsUsed) {", - " this.topDownBehavior._stickAngle = assistanceDirection * 45;", - " }", - " return assistanceDirection;", - " }", - " return direction;", - " }", - "", - " /**", - " * Called before the acceleration and new direction is applied to the", - " * velocity.", - " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", - " */", - " CornerSlider.prototype.beforeSpeedUpdate = function (context) { }", - "", - " /**", - " * Called before the velocity is applied to the object position and", - " * angle.", - " */", - " CornerSlider.prototype.beforePositionUpdate = function () {", - " if (!this.behavior.activated()) {", - " return;", - " }", - "", - " const object = this.topDownBehavior.owner;", - " this.previousX = object.getX();", - " this.previousY = object.getY();", - " }", - "", - " // TODO Rename this methode to the new hook interface method.", - " CornerSlider.prototype.afterPositionUpdateTODO = function () {", - " if (!this.behavior.activated()) {", - " return;", - " }", - "", - " const object = this.topDownBehavior.owner;", - " const point = temporaryPointForTransformations;", - " point[0] = object.getX() - this.previousX;", - " point[1] = object.getY() - this.previousY;", - " // TODO Handle isometry", - " // if (this.topDownBehavior._basisTransformation) {", - " // this.topDownBehavior._basisTransformation.toWorld(point, point);", - " // }", - " this.shift(point[0], point[1]);", - "", - " this.applyCollision();", - "", - " const position = temporaryPointForTransformations;", - "", - " // TODO Handle isometry", - " // if (this.topDownBehavior._basisTransformation) {", - " // this.topDownBehavior._basisTransformation.toScreen(", - " // this.transformedPosition,", - " // position", - " // );", - " // } else {", - " position[0] = this.transformedPosition[0];", - " position[1] = this.transformedPosition[1];", - " // }", - " object.setX(position[0]);", - " object.setY(position[1]);", - " }", - "", - " CornerSlider.prototype.getStickDirection = function () {", - " let direction =", - " (this.topDownBehavior._stickAngle +", - " this.topDownBehavior._movementAngleOffset) /", - " 45;", - " direction = direction - Math.floor(direction / 8) * 8;", - " for (let strait = 0; strait < 8; strait += 2) {", - " if (strait - 0.125 < direction && direction < strait + 0.125) {", - " direction = strait;", - " }", - " if (strait + 0.125 <= direction && direction <= strait + 2 - 0.125) {", - " direction = strait + 1;", - " }", - " }", - " if (8 - 0.125 < direction) {", - " direction = 0;", - " }", - " return direction;", - " }", - "", - " /** Analyze the real intent of the player instead of applying the input blindly.", - " * @param {integer} direction", - " * @returns {integer} a direction that matches the player intents.", - " */", - " CornerSlider.prototype.suggestDirection = function (direction) {", - " this.needToCheckBypassWay =", - " this.needToCheckBypassWay || direction !== this.lastDirection;", - "", - " if (direction === -1) {", - " return this.noAssistance();", - " }", - "", - " const object = this.topDownBehavior.owner;", - " if (", - " object.getWidth() !== this.oldWidth ||", - " object.getHeight() !== this.oldHeight", - " ) {", - " this.hitBoxesAABBUpToDate = false;", - " this.oldWidth = object.getWidth();", - " this.oldHeight = object.getHeight();", - " }", - "", - " // Compute the list of the objects that will be used", - " const timeDelta = object.getElapsedTime(this.instanceContainer) / 1000;", - " this.updatePotentialCollidingObjects(", - " 1 + this.topDownBehavior.getMaxSpeed() * timeDelta", - " );", - "", - " const downKey = 1 <= direction && direction <= 3;", - " const leftKey = 3 <= direction && direction <= 5;", - " const upKey = 5 <= direction && direction <= 7;", - " const rightKey = direction <= 1 || 7 <= direction;", - "", - " // Used to align the player when the assistance make him bypass an obstacle", - " let stopMinX = Number.MAX_VALUE;", - " let stopMinY = Number.MAX_VALUE;", - " let stopMaxX = -Number.MAX_VALUE;", - " let stopMaxY = -Number.MAX_VALUE;", - " let isBypassX = false;", - " let isBypassY = false;", - "", - " // Incites of how the player should be assisted", - " let assistanceLeft = 0;", - " let assistanceRight = 0;", - " let assistanceUp = 0;", - " let assistanceDown = 0;", - "", - " // the actual decision", - " let assistanceDirection = -1;", - "", - " const objectAABB = this.getHitBoxesAABB();", - " const minX = objectAABB.min[0];", - " const minY = objectAABB.min[1];", - " const maxX = objectAABB.max[0];", - " const maxY = objectAABB.max[1];", - " const width = maxX - minX;", - " const height = maxY - minY;", - "", - " // This affectation has no meaning, it will be override.", - " /** @type {gdjs.AABB | null} */", - " let bypassedObstacleAABB = null;", - "", - " this.collidingObjects.length = 0;", - " this.collidingObjects.push(object);", - "", - " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", - " const obstacleBehavior = this.potentialCollidingObjects[i];", - " const corner = obstacleBehavior.behavior._getSlidingCornerSize();", - " const obstacle = obstacleBehavior.owner;", - " if (obstacle === object) {", - " continue;", - " }", - "", - " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", - " const obstacleMinX = obstacleAABB.min[0];", - " const obstacleMinY = obstacleAABB.min[1];", - " const obstacleMaxX = obstacleAABB.max[0];", - " const obstacleMaxY = obstacleAABB.max[1];", - "", - " const deltaX = deltasX[direction];", - " const deltaY = deltasY[direction];", - " // Extends the box in the player direction", - " if (", - " Math.max(maxX, Math.floor(maxX + deltaX)) > obstacleMinX &&", - " Math.min(minX, Math.ceil(minX + deltaX)) < obstacleMaxX &&", - " Math.max(maxY, Math.floor(maxY + deltaY)) > obstacleMinY &&", - " Math.min(minY, Math.ceil(minY + deltaY)) < obstacleMaxY", - " ) {", - " this.collidingObjects.push(obstacle);", - "", - " // The player is corner to corner to the obstacle.", - " // The assistance will depend on other obstacles.", - " // Both direction are set and the actual to take", - " // is decided at the end.", - " if (", - " almostEquals(maxX, obstacleMinX) &&", - " almostEquals(maxY, obstacleMinY)", - " ) {", - " assistanceRight++;", - " assistanceDown++;", - " } else if (", - " almostEquals(maxX, obstacleMinX) &&", - " almostEquals(minY, obstacleMaxY)", - " ) {", - " assistanceRight++;", - " assistanceUp++;", - " } else if (", - " almostEquals(minX, obstacleMaxX) &&", - " almostEquals(minY, obstacleMaxY)", - " ) {", - " assistanceLeft++;", - " assistanceUp++;", - " } else if (", - " almostEquals(minX, obstacleMaxX) &&", - " almostEquals(maxY, obstacleMinY)", - " ) {", - " assistanceLeft++;", - " assistanceDown++;", - " } else if (", - " (upKey && almostEquals(minY, obstacleMaxY)) ||", - " (downKey && almostEquals(maxY, obstacleMinY))", - " ) {", - " // The player is not on the corner of the obstacle.", - " // Set the assistance both ways to fall back in", - " // the same case as 2 obstacles side by side", - " // being collide with the player.", - " if (", - " (rightKey || maxX > obstacleMinX + corner) &&", - " minX < obstacleMaxX &&", - " (leftKey || minX < obstacleMaxX - corner) &&", - " maxX > obstacleMinX", - " ) {", - " assistanceLeft++;", - " assistanceRight++;", - " }", - " // The player is on the corner of the obstacle.", - " // (not the exact corner, see corner affectation)", - " else if (", - " !rightKey &&", - " obstacleMinX < maxX &&", - " maxX <= obstacleMinX + corner &&", - " // In case the cornerSize is bigger than the obstacle size,", - " // go the on the shortest side.", - " (leftKey || minX + maxX <= obstacleMinX + obstacleMaxX)", - " ) {", - " assistanceLeft++;", - " isBypassX = true;", - " if (obstacleMinX - width < stopMinX) {", - " stopMinX = obstacleMinX - width;", - " bypassedObstacleAABB = obstacleAABB;", - " }", - " } else if (", - " !leftKey &&", - " obstacleMaxX - corner <= minX &&", - " minX < obstacleMaxX &&", - " (rightKey || minX + maxX > obstacleMinX + obstacleMaxX)", - " ) {", - " assistanceRight++;", - " isBypassX = true;", - " if (obstacleMaxX > stopMaxX) {", - " stopMaxX = obstacleMaxX;", - " bypassedObstacleAABB = obstacleAABB;", - " }", - " }", - " } else if (", - " (leftKey && almostEquals(minX, obstacleMaxX)) ||", - " (rightKey && almostEquals(maxX, obstacleMinX))", - " ) {", - " // The player is not on the corner of the obstacle.", - " // Set the assistance both ways to fall back in", - " // the same case as 2 obstacles side by side", - " // being collide with the player.", - " if (", - " (downKey || maxY > obstacleMinY + corner) &&", - " minY < obstacleMaxY &&", - " (upKey || minY < obstacleMaxY - corner) &&", - " maxY > obstacleMinY", - " ) {", - " assistanceUp++;", - " assistanceDown++;", - " }", - " // The player is on the corner of the obstacle.", - " // (not the exact corner, see corner affectation)", - " else if (", - " !downKey &&", - " obstacleMinY < maxY &&", - " maxY <= obstacleMinY + corner &&", - " (upKey || minY + maxY <= obstacleMinY + obstacleMaxY)", - " ) {", - " assistanceUp++;", - " isBypassY = true;", - " if (obstacleMinY - height < stopMinY) {", - " stopMinY = obstacleMinY - height;", - " bypassedObstacleAABB = obstacleAABB;", - " }", - " } else if (", - " !upKey &&", - " obstacleMaxY - corner <= minY &&", - " minY < obstacleMaxY &&", - " (downKey || minY + maxY > obstacleMinY + obstacleMaxY)", - " ) {", - " assistanceDown++;", - " isBypassY = true;", - " if (obstacleMaxY > stopMaxY) {", - " stopMaxY = obstacleMaxY;", - " bypassedObstacleAABB = obstacleAABB;", - " }", - " }", - " }", - " }", - " }", - "", - " // This may happen when the player is in the corner of 2 perpendicular walls.", - " // No assistance is needed.", - " if (", - " assistanceLeft &&", - " assistanceRight &&", - " assistanceUp &&", - " assistanceDown", - " ) {", - " return this.noAssistance();", - " }", - " // This may happen when the player goes in diagonal against a wall.", - " // Make him follow the wall. This allows player to keep full speed.", - " //", - " // When he collided a square from the wall corner to corner,", - " // a 3rd assistance may be true but it fall back in the same case.", - " else if (assistanceLeft && assistanceRight) {", - " isBypassX = false;", - " if (leftKey && !rightKey) {", - " assistanceDirection = 4;", - " } else if (rightKey && !leftKey) {", - " assistanceDirection = 0;", - " } else {", - " // Contradictory decisions are dismissed.", - " //", - " // This can happen, for instance, with a wall composed of squares.", - " // Taken separately from one to another, a square could be bypass one the right", - " // and the next one on the left even though they are side by side", - " // and the player can't actually go between them.", - " return this.noAssistance();", - " }", - " } else if (assistanceUp && assistanceDown) {", - " isBypassY = false;", - " if (upKey && !downKey) {", - " assistanceDirection = 6;", - " } else if (downKey && !upKey) {", - " assistanceDirection = 2;", - " } else {", - " // see previous comment", - " return this.noAssistance();", - " }", - " }", - " // The player goes in diagonal and is corner to corner with the obstacle.", - " // (but not against a wall, this time)", - " // The velocity is used to decide.", - " // This may only happen after an alignment.", - " // (see \"Alignment:\" comment)", - " else if (assistanceRight && assistanceDown) {", - " if (", - " (downKey && !rightKey) ||", - " (downKey === rightKey && assistanceDown > assistanceRight) ||", - " (assistanceDown === assistanceRight &&", - " this.topDownBehavior._yVelocity > 0 &&", - " Math.abs(this.topDownBehavior._xVelocity) <", - " Math.abs(this.topDownBehavior._yVelocity))", - " ) {", - " assistanceDirection = 2;", - " } else {", - " assistanceDirection = 0;", - " }", - " } else if (assistanceLeft && assistanceDown) {", - " if (", - " (downKey && !leftKey) ||", - " (downKey === leftKey && assistanceDown > assistanceLeft) ||", - " (assistanceDown === assistanceLeft &&", - " this.topDownBehavior._yVelocity > 0 &&", - " Math.abs(this.topDownBehavior._xVelocity) <", - " Math.abs(this.topDownBehavior._yVelocity))", - " ) {", - " assistanceDirection = 2;", - " } else {", - " assistanceDirection = 4;", - " }", - " } else if (assistanceLeft && assistanceUp) {", - " if (", - " (upKey && !leftKey) ||", - " (upKey === leftKey && assistanceUp > assistanceLeft) ||", - " (assistanceUp === assistanceLeft &&", - " this.topDownBehavior._yVelocity < 0 &&", - " Math.abs(this.topDownBehavior._xVelocity) <", - " Math.abs(this.topDownBehavior._yVelocity))", - " ) {", - " assistanceDirection = 6;", - " } else {", - " assistanceDirection = 4;", - " }", - " } else if (assistanceRight && assistanceUp) {", - " if (", - " (upKey && !rightKey) ||", - " (upKey === rightKey && assistanceUp > assistanceRight) ||", - " (assistanceUp === assistanceRight &&", - " this.topDownBehavior._yVelocity < 0 &&", - " Math.abs(this.topDownBehavior._xVelocity) <", - " Math.abs(this.topDownBehavior._yVelocity))", - " ) {", - " assistanceDirection = 6;", - " } else {", - " assistanceDirection = 0;", - " }", - " } else {", - " // Slide on the corner of an obstacle to bypass it.", - " // Every tricky cases are already handled .", - " if (assistanceLeft) {", - " assistanceDirection = 4;", - " } else if (assistanceRight) {", - " assistanceDirection = 0;", - " } else if (assistanceUp) {", - " assistanceDirection = 6;", - " } else if (assistanceDown) {", - " assistanceDirection = 2;", - " } else {", - " return this.noAssistance();", - " }", - " }", - "", - " // Check if there is any obstacle in the way.", - " //", - " // There must be no obstacle to go at least", - " // as far in the direction the player chose", - " // as the assistance must take to align the player.", - " //", - " // Because, if the assistance moves the player by 32 pixels", - " // before been able to go in the right direction", - " // and can only move by 4 pixels afterward", - " // that it'll sound silly.", - " this.needToCheckBypassWay =", - " this.needToCheckBypassWay ||", - " assistanceDirection !== this.lastAssistanceDirection;", - " if ((isBypassX || isBypassY) && !this.needToCheckBypassWay) {", - " // Don't check again if the player intent stays the same.", - " //", - " // Do it, for instance, if an obstacle has moved out of the way", - " // and the player releases and presses agin the key.", - " // Because, doing it automatically would seems weird.", - " if (this.lastAnyObstacle) {", - " return this.noAssistance();", - " }", - " } else if (isBypassX || isBypassY) {", - " this.lastAssistanceDirection = assistanceDirection;", - " this.lastDirection = direction;", - "", - " let anyObstacle = false;", - " // reflection symmetry: y = x", - " // 0 to 6, 2 to 4, 4 to 2, 6 to 0", - " if (direction + assistanceDirection === 6) {", - " // Because the obstacle may not be a square.", - " let cornerX = 0;", - " let cornerY = 0;", - " if (assistanceDirection === 4 || assistanceDirection === 6) {", - " cornerX = bypassedObstacleAABB.min[0];", - " cornerY = bypassedObstacleAABB.min[1];", - " } else {", - " cornerX = bypassedObstacleAABB.max[0];", - " cornerY = bypassedObstacleAABB.max[1];", - " }", - " // / cornerX \\ / 0 1 \\ / x - cornerX \\", - " // \\ cornerY / + \\ 1 0 / * \\ y - cornerY /", - " //", - " // min and max are preserved by the symmetry.", - " // The symmetry image is extended to check there is no obstacle before going into the passage.", - " const searchMinX =", - " cornerX +", - " minY -", - " cornerY +", - " epsilon +", - " (assistanceDirection === 6 ? cornerY - maxY : 0);", - " const searchMaxX =", - " cornerX +", - " maxY -", - " cornerY -", - " epsilon +", - " (assistanceDirection === 2 ? cornerY - minY : 0);", - " const searchMinY =", - " cornerY +", - " minX -", - " cornerX +", - " epsilon +", - " (assistanceDirection === 4 ? cornerX - maxX : 0);", - " const searchMaxY =", - " cornerY +", - " maxX -", - " cornerX -", - " epsilon +", - " (assistanceDirection === 0 ? cornerX - minX : 0);", - "", - " anyObstacle = this.obstacleManager.anyObstacle(", - " searchMinX,", - " searchMaxX,", - " searchMinY,", - " searchMaxY,", - " this.collidingObjects", - " );", - " }", - " // reflection symmetry: y = -x", - " // 0 to 2, 2 to 0, 4 to 6, 6 to 4", - " else if ((direction + assistanceDirection) % 8 === 2) {", - " // Because the obstacle may not be a square.", - " let cornerX = 0;", - " let cornerY = 0;", - " if (assistanceDirection === 2 || assistanceDirection === 4) {", - " cornerX = bypassedObstacleAABB.min[0];", - " cornerY = bypassedObstacleAABB.max[1];", - " } else {", - " cornerX = bypassedObstacleAABB.max[0];", - " cornerY = bypassedObstacleAABB.min[1];", - " }", - " // / cornerX \\ / 0 -1 \\ / x - cornerX \\", - " // \\ cornerY / + \\ -1 0 / * \\ y - cornerY /", - " //", - " // min and max are switched by the symmetry.", - " // The symmetry image is extended to check there is no obstacle before going into the passage.", - " const searchMinX =", - " cornerX -", - " (maxY - cornerY) +", - " epsilon +", - " (assistanceDirection === 2 ? minY - cornerY : 0);", - " const searchMaxX =", - " cornerX -", - " (minY - cornerY) -", - " epsilon +", - " (assistanceDirection === 6 ? maxY - cornerY : 0);", - " const searchMinY =", - " cornerY -", - " (maxX - cornerX) +", - " epsilon +", - " (assistanceDirection === 0 ? minX - cornerX : 0);", - " const searchMaxY =", - " cornerY -", - " (minX - cornerX) -", - " epsilon +", - " (assistanceDirection === 4 ? maxX - cornerX : 0);", - "", - " anyObstacle = this.obstacleManager.anyObstacle(", - " searchMinX,", - " searchMaxX,", - " searchMinY,", - " searchMaxY,", - " this.collidingObjects", - " );", - " }", - " this.lastAnyObstacle = anyObstacle;", - " this.needToCheckBypassWay = false;", - "", - " if (anyObstacle) {", - " return this.noAssistance();", - " }", - " }", - "", - " this.result.inputDirection = direction;", - " this.result.assistanceLeft = assistanceLeft > 0;", - " this.result.assistanceRight = assistanceRight > 0;", - " this.result.assistanceUp = assistanceUp > 0;", - " this.result.assistanceDown = assistanceDown > 0;", - " this.result.isBypassX = isBypassX;", - " this.result.isBypassY = isBypassY;", - " this.result.stopMinX = stopMinX;", - " this.result.stopMinY = stopMinY;", - " this.result.stopMaxX = stopMaxX;", - " this.result.stopMaxY = stopMaxY;", - "", - " return assistanceDirection;", - " }", - "", - " /**", - " * @return {integer}", - " */", - " CornerSlider.prototype.noAssistance = function() {", - " this.result.isBypassX = false;", - " this.result.isBypassY = false;", - "", - " return -1;", - " }", - "", - " CornerSlider.prototype.applyCollision = function() {", - " this.checkCornerStop();", - " this.separateFromObstacles();", - " // check again because the object can be pushed on the stop limit,", - " // it won't be detected on the next frame and the alignment won't be applied.", - " this.checkCornerStop();", - " }", - "", - " /**", - " * Check if the object must take a corner.", - " *", - " * When the object reach the limit of an obstacle", - " * and it should take the corner according to the player intent,", - " * it is aligned right on this limit and the velocity is set in the right direction.", - " *", - " * This avoid issues with the inertia. For instance,", - " * when the object could go between 2 obstacles,", - " * with it will just fly over the hole because of its inertia.", - " */", - " CornerSlider.prototype.checkCornerStop = function() {", - " const objectAABB = this.getHitBoxesAABB();", - " const minX = objectAABB.min[0];", - " const minY = objectAABB.min[1];", - " const object = this.topDownBehavior.owner;", - "", - " const direction = this.result.inputDirection;", - " const leftKey = 3 <= direction && direction <= 5;", - " const upKey = 5 <= direction && direction <= 7;", - "", - " // Alignment: avoid to go too far and kind of drift or oscillate in front of a hole.", - " if (", - " this.result.isBypassX &&", - " ((this.result.assistanceLeft && minX <= this.result.stopMinX) ||", - " (this.result.assistanceRight && minX >= this.result.stopMaxX))", - " ) {", - " this.shift(", - " -minX +", - " (this.result.assistanceLeft", - " ? this.result.stopMinX", - " : this.result.stopMaxX),", - " 0", - " );", - " this.topDownBehavior._yVelocity =", - " (upKey ? -1 : 1) *", - " Math.sqrt(", - " this.topDownBehavior._xVelocity *", - " this.topDownBehavior._xVelocity +", - " this.topDownBehavior._yVelocity *", - " this.topDownBehavior._yVelocity", - " );", - " this.topDownBehavior._xVelocity = 0;", - " }", - " if (", - " this.result.isBypassY &&", - " ((this.result.assistanceUp && minY <= this.result.stopMinY) ||", - " (this.result.assistanceDown && minY >= this.result.stopMaxY))", - " ) {", - " this.shift(", - " 0,", - " -minY +", - " (this.result.assistanceUp", - " ? this.result.stopMinY", - " : this.result.stopMaxY)", - " );", - " this.topDownBehavior._xVelocity =", - " (leftKey ? -1 : 1) *", - " Math.sqrt(", - " this.topDownBehavior._xVelocity *", - " this.topDownBehavior._xVelocity +", - " this.topDownBehavior._yVelocity *", - " this.topDownBehavior._yVelocity", - " );", - " this.topDownBehavior._yVelocity = 0;", - " }", - " }", - "", - " /**", - " * Separate from TopDownObstacleRuntimeBehavior instances.", - " */", - " CornerSlider.prototype.separateFromObstacles = function() {", - " const object = this.topDownBehavior.owner;", - " const objectAABB = this.getHitBoxesAABB();", - " const minX = objectAABB.min[0];", - " const minY = objectAABB.min[1];", - " const maxX = objectAABB.max[0];", - " const maxY = objectAABB.max[1];", - "", - " // Search the obstacle with the biggest intersection", - " // to separate from this one first.", - " // Because smaller collisions may shift the player", - " // in the wrong direction.", - " let maxSurface = 0;", - " /** @type {gdjs.RuntimeBehavior | null} */", - " let bestObstacleBehavior = null;", - " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", - " const obstacleBehavior = this.potentialCollidingObjects[i];", - " if (obstacleBehavior.behavior.owner === object) {", - " continue;", - " }", - "", - " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", - " const obstacleMinX = obstacleAABB.min[0];", - " const obstacleMinY = obstacleAABB.min[1];", - " const obstacleMaxX = obstacleAABB.max[0];", - " const obstacleMaxY = obstacleAABB.max[1];", - "", - " const interMinX = Math.max(minX, obstacleMinX);", - " const interMinY = Math.max(minY, obstacleMinY);", - " const interMaxX = Math.min(maxX, obstacleMaxX);", - " const interMaxY = Math.min(maxY, obstacleMaxY);", - "", - " if (interMinX < interMaxX && interMinY < interMaxY) {", - " const surface = (interMaxX - interMinX) * (interMaxY - interMinY);", - " if (surface > maxSurface) {", - " maxSurface = surface;", - " bestObstacleBehavior = obstacleBehavior;", - " }", - " }", - " }", - " if (bestObstacleBehavior !== null) {", - " this.separateFrom(bestObstacleBehavior);", - " }", - " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", - " const obstacleBehavior = this.potentialCollidingObjects[i];", - " const obstacle = obstacleBehavior.behavior.owner;", - " if (obstacle === object) {", - " continue;", - " }", - " this.separateFrom(obstacleBehavior);", - " }", - " }", - "", - " /**", - " * Separate object and obstacle, only object move.", - " * @param {Obstacle} obstacleBehavior", - " */", - " CornerSlider.prototype.separateFrom = function(obstacleBehavior) {", - " const objectAABB = this.getHitBoxesAABB();", - " const minX = objectAABB.min[0];", - " const minY = objectAABB.min[1];", - " const maxX = objectAABB.max[0];", - " const maxY = objectAABB.max[1];", - "", - " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", - " const obstacleMinX = obstacleAABB.min[0];", - " const obstacleMinY = obstacleAABB.min[1];", - " const obstacleMaxX = obstacleAABB.max[0];", - " const obstacleMaxY = obstacleAABB.max[1];", - "", - " const leftDistance = maxX - obstacleMinX;", - " const upDistance = maxY - obstacleMinY;", - " const rightDistance = obstacleMaxX - minX;", - " const downDistance = obstacleMaxY - minY;", - " const minDistance = Math.min(", - " leftDistance,", - " upDistance,", - " rightDistance,", - " downDistance", - " );", - "", - " if (minDistance > 0) {", - " if (leftDistance === minDistance) {", - " this.shift(-maxX + obstacleMinX, 0);", - " } else if (rightDistance === minDistance) {", - " this.shift(-minX + obstacleMaxX, 0);", - " } else if (upDistance === minDistance) {", - " this.shift(0, -maxY + obstacleMinY);", - " } else if (downDistance === minDistance) {", - " this.shift(0, -minY + obstacleMaxY);", - " }", - " }", - " }", - "", - "/**", - " * @param {float} deltaX", - " * @param {float} deltaY", - " */", - " CornerSlider.prototype.shift = function (deltaX, deltaY) {", - " this.transformedPosition[0] += deltaX;", - " this.transformedPosition[1] += deltaY;", - " }", - "", - " /**", - " * @return {gdjs.AABB}", - " */", - " CornerSlider.prototype.getHitBoxesAABB = function() {", - " if (!this.hitBoxesAABBUpToDate) {", - " const hitBoxes = this.topDownBehavior.owner.getHitBoxes();", - "", - " let minX = Number.MAX_VALUE;", - " let minY = Number.MAX_VALUE;", - " let maxX = -Number.MAX_VALUE;", - " let maxY = -Number.MAX_VALUE;", - " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", - " let hitBox = hitBoxes[h];", - " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", - " const point = this.topDownBehavior", - " ._temporaryPointForTransformations;", - " // TODO Handle isometry", - " // if (this.topDownBehavior._basisTransformation) {", - " // this.topDownBehavior._basisTransformation.toWorld(", - " // hitBox.vertices[p],", - " // point", - " // );", - " // } else {", - " point[0] = hitBox.vertices[p][0];", - " point[1] = hitBox.vertices[p][1];", - " // }", - " minX = Math.min(minX, point[0]);", - " maxX = Math.max(maxX, point[0]);", - " minY = Math.min(minY, point[1]);", - " maxY = Math.max(maxY, point[1]);", - " }", - " }", - " this.relativeHitBoxesAABB.min[0] = minX - this.transformedPosition[0];", - " this.relativeHitBoxesAABB.min[1] = minY - this.transformedPosition[1];", - " this.relativeHitBoxesAABB.max[0] = maxX - this.transformedPosition[0];", - " this.relativeHitBoxesAABB.max[1] = maxY - this.transformedPosition[1];", - "", - " this.hitBoxesAABBUpToDate = true;", - " }", - " this.absoluteHitBoxesAABB.min[0] =", - " this.relativeHitBoxesAABB.min[0] + this.transformedPosition[0];", - " this.absoluteHitBoxesAABB.min[1] =", - " this.relativeHitBoxesAABB.min[1] + this.transformedPosition[1];", - " this.absoluteHitBoxesAABB.max[0] =", - " this.relativeHitBoxesAABB.max[0] + this.transformedPosition[0];", - " this.absoluteHitBoxesAABB.max[1] =", - " this.relativeHitBoxesAABB.max[1] + this.transformedPosition[1];", - " return this.absoluteHitBoxesAABB;", - " }", - "", - " /**", - " * Update _potentialCollidingObjects member with platforms near the object.", - " * @param {float} maxMovementLength", - " */", - " CornerSlider.prototype.updatePotentialCollidingObjects = function(maxMovementLength) {", - " this.obstacleManager.getAllObstaclesAround(", - " this.getHitBoxesAABB(),", - " maxMovementLength,", - " this.potentialCollidingObjects", - " );", - " }", - "", - " return CornerSlider;", - "}());", - "", - "", - "/**", - " * TopDownMovementRuntimeBehavior represents a behavior allowing objects to", - " * follow a path computed to avoid obstacles.", - " */", - "const AssistanceResult = /** @class */ (function () {", - " function AssistanceResult() {", - " this.inputDirection = -1;", - " this.assistanceLeft = false;", - " this.assistanceRight = false;", - " this.assistanceUp = false;", - " this.assistanceDown = false;", - " this.isBypassX = false;", - " this.isBypassY = false;", - " this.stopMinX = 0;", - " this.stopMinY = 0;", - " this.stopMaxX = 0;", - " this.stopMaxY = 0;", - " }", - "", - " return AssistanceResult;", - "}());", - "", - " /**", - " * Allow to store a behavior in a RBush (spatial data structure).", - " * Because this duplicates the AABB, this ensures the RBush AABB", - " * stays the same even if the underlying object is moved", - " * (in which case the behavior is responsible for removing/adding", - " * back/updating this BehaviorRBushAABB).", - " */", - " const ObstacleRBushAABB = /** @class */ (function () {", - " /**", - " * @param {Obstacle} obstacle", - " */", - " function ObstacleRBushAABB(obstacle) {", - " this.obstacle = obstacle;", - " this.minX = 0;", - " this.minY = 0;", - " this.maxX = 0;", - " this.maxY = 0;", - " this.updateAABBFromOwner();", - " }", - "", - " ObstacleRBushAABB.prototype.updateAABBFromOwner = function () {", - " const aabb = this.obstacle.getHitBoxesAABB();", - " this.minX = aabb.min[0];", - " this.minY = aabb.min[1];", - " this.maxX = aabb.max[0];", - " this.maxY = aabb.max[1];", - " }", - "", - " return ObstacleRBushAABB;", - "}());", - "", - "/**", - " * An obstacle manager for fast spacial search.", - " */", - "const ObstacleManager = /** @class */ (function () {", - " /**", - " * Create a manager.", - " */", - " function ObstacleManager() {", - " this.obstacleRBush = new rbush();", - " }", - "", - " /**", - " * Get the obstacle manager of an instance container.", - " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", - " * @return {ObstacleManager}", - " */", - " ObstacleManager.getManager = function (instanceContainer) {", - " if (!instanceContainer.__topDownCornerSlidingExtension) {", - " instanceContainer.__topDownCornerSlidingExtension = {};", - " }", - " if (!instanceContainer.__topDownCornerSlidingExtension.manager) {", - " // Create the shared manager if necessary.", - " instanceContainer.__topDownCornerSlidingExtension.manager = new ObstacleManager();", - " }", - " return instanceContainer.__topDownCornerSlidingExtension.manager;", - " };", - "", - " /**", - " * Register an obstacle.", - " * @param {Obstacle} obstacle", - " */", - " ObstacleManager.prototype.addObstacle = function (obstacle) {", - " obstacle.currentRBushAABB.updateAABBFromOwner();", - " this.obstacleRBush.insert(obstacle.currentRBushAABB);", - " }", - "", - " /**", - " * Unregister an obstacle.", - " * @param {Obstacle} obstacle", - " */", - " ObstacleManager.prototype.removeObstacle = function (obstacle) {", - " this.obstacleRBush.remove(obstacle.currentRBushAABB);", - " }", - "", - " /**", - " * Returns all the boids around the specified boid.", - " * @param {gdjs.AABB} aabb", - " * @param {number} maxMovementLength", - " * @param {Obstacle[]} result the returned array.", - " * @return {Obstacle[]} An array with all obstacles near the object.", - " */", - " ObstacleManager.prototype.getAllObstaclesAround = function (aabb, maxMovementLength, result) {", - " const searchArea = gdjs.staticObject(", - " ObstacleManager.prototype.getAllObstaclesAround", - " );", - " searchArea.minX = aabb.min[0] - maxMovementLength;", - " searchArea.minY = aabb.min[1] - maxMovementLength;", - " searchArea.maxX = aabb.max[0] + maxMovementLength;", - " searchArea.maxY = aabb.max[1] + maxMovementLength;", - " /** @type {ObstacleRBushAABB[]} */", - " const nearbyObstacles = this.obstacleRBush.search(searchArea);", - "", - " result.length = 0;", - " for (let i = 0; i < nearbyObstacles.length; i++) {", - " const obstacle = nearbyObstacles[i].obstacle;", - " result.push(obstacle);", - " }", - "", - " return result;", - " }", - "", - " /**", - " * Returns true if there is any obstacle intersecting the area.", - " * @param {number} minX", - " * @param {number} maxX", - " * @param {number} minY", - " * @param {number} maxY", - " * @param {gdjs.RuntimeObject[]} excluded", - " * @return {boolean}", - " */", - " ObstacleManager.prototype.anyObstacle = function (", - " minX,", - " maxX,", - " minY,", - " maxY,", - " excluded", - " ) {", - " const searchArea = gdjs.staticObject(", - " ObstacleManager.prototype.anyObstacle", - " );", - " // @ts-ignore", - " searchArea.minX = minX;", - " // @ts-ignore", - " searchArea.minY = minY;", - " // @ts-ignore", - " searchArea.maxX = maxX;", - " // @ts-ignore", - " searchArea.maxY = maxY;", - " /** @type {ObstacleRBushAABB[]} */", - " const nearbyObstacles = this.obstacleRBush.search(searchArea);", - "", - " for (let i = 0; i < nearbyObstacles.length; i++) {", - " if (!excluded.includes(nearbyObstacles[i].obstacle.behavior.owner)) {", - " return true;", - " }", - " }", - " return false;", - " }", - "", - " return ObstacleManager;", - "}());", - "", - "/**", - " * NavMeshPathfindingObstacleRuntimeBehavior represents a behavior allowing objects to be", - " * considered as a obstacle by objects having Pathfinding Behavior.", - " */", - "const Obstacle = /** @class */ (function () {", - " /**", - " * ", - " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", - " * @param {gdjs.RuntimeBehavior} behavior", - " */", - " function Obstacle(instanceContainer, behavior) {", - " this.oldX = 0;", - " this.oldY = 0;", - " this.oldWidth = 0;", - " this.oldHeight = 0;", - " this.registeredInManager = false;", - " this.behavior = behavior;", - " this.manager = ObstacleManager.getManager(instanceContainer);", - " // Note that we can't use getX(), getWidth()... of owner here:", - " // The owner is not yet fully constructed.", - " /** @type {gdjs.AABB} */", - " this.hitBoxesAABB = { min: [0, 0], max: [0, 0] };", - " this.hitBoxesAABBUpToDate = false;", - " ", - " /** @type {FloatPoint} */", - " this.point = [0, 0];", - " this.currentRBushAABB = new ObstacleRBushAABB(this);", - " }", - " Obstacle.prototype.onCreated = function () {", - " this.manager.addObstacle(this);", - " this.registeredInManager = true;", - " };", - " Obstacle.prototype.onDestroy = function () {", - " if (this.manager && this.registeredInManager) {", - " this.manager.removeObstacle(this);", - " }", - " };", - " Obstacle.prototype.doStepPreEvents = function (instanceContainer) {", - " var owner = this.behavior.owner;", - " // Make sure the obstacle is or is not in the obstacles manager.", - " if (!this.behavior.activated() && this.registeredInManager) {", - " this.manager.removeObstacle(this);", - " this.registeredInManager = false;", - " }", - " else {", - " if (this.behavior.activated() && !this.registeredInManager) {", - " this.manager.addObstacle(this);", - " this.registeredInManager = true;", - " }", - " }", - " // Track changes in size or position", - " if (this.oldX !== owner.getX() ||", - " this.oldY !== owner.getY() ||", - " this.oldWidth !== owner.getWidth() ||", - " this.oldHeight !== owner.getHeight()) {", - " this.hitBoxesAABBUpToDate = false;", - " if (this.registeredInManager) {", - " this.manager.removeObstacle(this);", - " this.manager.addObstacle(this);", - " }", - " this.oldX = owner.getX();", - " this.oldY = owner.getY();", - " this.oldWidth = owner.getWidth();", - " this.oldHeight = owner.getHeight();", - " }", - " };", - " Obstacle.prototype.doStepPostEvents = function (instanceContainer) { };", - " Obstacle.prototype.onActivate = function () {", - " if (this.registeredInManager) {", - " return;", - " }", - " this.manager.addObstacle(this);", - " this.registeredInManager = true;", - " };", - " Obstacle.prototype.onDeActivate = function () {", - " if (!this.registeredInManager) {", - " return;", - " }", - " this.manager.removeObstacle(this);", - " this.registeredInManager = false;", - " };", - "", - " /**", - " * @return {gdjs.AABB}", - " */", - " Obstacle.prototype.getHitBoxesAABB = function() {", - " if (!this.hitBoxesAABBUpToDate) {", - " const hitBoxes = this.behavior.owner.getHitBoxes();", - "", - " let minX = Number.MAX_VALUE;", - " let minY = Number.MAX_VALUE;", - " let maxX = -Number.MAX_VALUE;", - " let maxY = -Number.MAX_VALUE;", - " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", - " let hitBox = hitBoxes[h];", - " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", - " const point = this.point;", - " // TODO Handle Isometry", - " //this._basisTransformation.toWorld(hitBox.vertices[p], point);", - " point[0] = hitBox.vertices[p][0];", - " point[1] = hitBox.vertices[p][1];", - "", - " minX = Math.min(minX, point[0]);", - " maxX = Math.max(maxX, point[0]);", - " minY = Math.min(minY, point[1]);", - " maxY = Math.max(maxY, point[1]);", - " }", - " }", - " this.hitBoxesAABB.min[0] = minX;", - " this.hitBoxesAABB.min[1] = minY;", - " this.hitBoxesAABB.max[0] = maxX;", - " this.hitBoxesAABB.max[1] = maxY;", - "", - " this.hitBoxesAABBUpToDate = true;", - " }", - " return this.hitBoxesAABB;", - " }", - "", - " return Obstacle;", - "}());", - "", - "gdjs.__topDownCornerSlidingExtension = gdjs.__topDownCornerSlidingExtension || {};", - "gdjs.__topDownCornerSlidingExtension.CornerSlider = CornerSlider;", - "gdjs.__topDownCornerSlidingExtension.Obstacle = Obstacle;", - "", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ] - } - ], - "parameters": [], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "Slide on corners of rectangular obstacles.", - "fullName": "Top-down corner slider", - "name": "TopDownCornerSlider", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" - }, - "parameters": [ - "", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "\r", - "const object = objects[0];\r", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", - "const behavior = object.getBehavior(behaviorName);\r", - "\r", - "/** @type {gdjs.TopDownMovementRuntimeBehavior} */\r", - "const topDownBehavior = object.getBehavior(behavior._getTopDownMovement());\r", - "\r", - "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", - "behavior.__topDownCornerSlidingExtension.cornerSlider = new gdjs.__topDownCornerSlidingExtension.CornerSlider(runtimeScene, behavior, topDownBehavior);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSlider", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Top-down movement behavior", - "description": "", - "group": "", - "extraInformation": [ - "TopDownMovementBehavior::TopDownMovementBehavior" - ], - "hidden": false, - "name": "TopDownMovement" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Flag objects as obstacles for top-down characters.", - "fullName": "Top-down corner slider obstacle", - "name": "TopDownCornerSliderObstacle", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Initiate and attach properties as objects variables" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" - }, - "parameters": [ - "", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", - "const behavior = object.getBehavior(behaviorName);\r", - "\r", - "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", - "behavior.__topDownCornerSlidingExtension.obstacle =\r", - " new gdjs.__topDownCornerSlidingExtension.Obstacle(runtimeScene, behavior);\r", - "behavior.__topDownCornerSlidingExtension.obstacle.onCreated(runtimeScene, behavior);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];\r", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", - "const behavior = object.getBehavior(behaviorName);\r", - "\r", - "behavior.__topDownCornerSlidingExtension.obstacle.doStepPreEvents(runtimeScene);\r", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onActivate", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.__topDownCornerSlidingExtension.obstacle.onActivate(runtimeScene);", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onDeActivate", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.__topDownCornerSlidingExtension.obstacle.onDeActivate(runtimeScene);", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onDestroy", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.__topDownCornerSlidingExtension.obstacle.onDestroy(runtimeScene);", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "0", - "type": "Number", - "unit": "Pixel", - "label": "Sliding corner size", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "SlidingCornerSize" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "Bouh", - "category": "Input", - "extensionNamespace": "", - "fullName": "Gamepads (controllers)", - "helpPath": "/all-features/gamepad", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", - "name": "Gamepads", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg", - "shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...", - "version": "0.5.0", - "description": [ - "Add support for gamepads (or other controllers).", - "", - "It gives access to:", - "- button presses", - "- axis positions and force", - "- trigger pressure", - "- configurable deadzone", - "- vibration", - "- automatic mappers for platformer characters and top-down movement", - "", - "The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))." - ], - "origin": { - "identifier": "Gamepads", - "name": "gdevelop-extension-store" - }, - "tags": [ - "controllers", - "gamepads", - "joysticks", - "axis", - "xbox", - "ps4" - ], - "authorIds": [ - "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", - "taRwmWxwAFYFL9yyBwB3cwBw0BO2", - "mnImQKdn8nQxwzkS5D6a1JB27V23" - ], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Get the value of the pressure on a gamepad trigger.", - "fullName": "Pressure on a gamepad trigger", - "functionType": "Expression", - "name": "TriggerPressure", - "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const trigger = eventsFunctionContext.getArgument(\"trigger\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in expression: \"Pressure on a gamepad trigger\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "if (trigger != \"LT\" && trigger != \"RT\" && trigger != \"L2\" && trigger != \"R2\") {\r", - " console.error('Parameter trigger is not valid in expression: \"Pressure on a gamepad trigger\"');\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "switch (trigger) {\r", - " case 'LT':\r", - " case 'L2':\r", - " eventsFunctionContext.returnValue = gamepad.buttons[6].value;\r", - " break;\r", - "\r", - " case 'RT':\r", - " case 'R2':\r", - " eventsFunctionContext.returnValue = gamepad.buttons[7].value;\r", - " break;\r", - "\r", - " default:\r", - " eventsFunctionContext.returnValue = -1;\r", - " break;\r", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Trigger button", - "name": "trigger", - "supplementaryInformation": "[\"LT\",\"RT\",\"L2\",\"R2\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Get the force value of a gamepad stick.\n0 is stick on default position, 1 is at the maximum.", - "fullName": "Value of a stick force", - "functionType": "Expression", - "name": "StickForce", - "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", - "\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick force\"');\r", - " return;\r", - "}\r", - "\r", - "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", - " console.error('Parameter stick is not valid in expression: \"Value of a stick force\"');\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "\r", - "switch (stick) {\r", - " case 'LEFT':\r", - " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId)), 0, 1);\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId)), 0, 1);\r", - " break;\r", - "\r", - " default:\r", - " eventsFunctionContext.returnValue = -1;\r", - " break;\r", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Stick: \"Left\" or \"Right\"", - "name": "stick", - "supplementaryInformation": "[\"Left\",\"Right\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Get the rotation value of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", - "fullName": "Value of a stick rotation", - "functionType": "Expression", - "name": "StickRotationValue", - "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", - "\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick rotation\"');\r", - " return;\r", - "}\r", - "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", - " console.error('Parameter stick is not valid in expression: \"Value of a stick rotation\"');\r", - " return;\r", - "}\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "switch (stick) {\r", - " case 'LEFT':\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId));\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId));\r", - " break;\r", - "\r", - " default:\r", - " eventsFunctionContext.returnValue = -1;\r", - " break;\r", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Stick: \"Left\" or \"Right\"", - "name": "stick", - "supplementaryInformation": "[\"Left\",\"Right\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Get the value of axis of a gamepad stick.", - "fullName": "Value of a gamepad axis", - "functionType": "Expression", - "name": "AxisValue", - "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", - "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", - " return;\r", - "}\r", - "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", - " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", - " return;\r", - "}\r", - "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"HORIZONTAL\" && direction != \"VERTICAL\") {\r", - " console.error('Parameter direction is not valid in expression: \"Value of a gamepad axis\"');\r", - " return;\r", - "}\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "let parameterError = false;\r", - "switch (stick) {\r", - " case 'LEFT':\r", - " switch (direction) {\r", - " case 'LEFT':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'UP':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'DOWN':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", - " }\r", - " break;\r", - "\r", - " case \"HORIZONTAL\":\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", - " break;\r", - "\r", - " case \"VERTICAL\":\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", - " break;\r", - "\r", - " default:\r", - " break;\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " switch (direction) {\r", - " case 'LEFT':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'UP':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", - " }\r", - " break;\r", - "\r", - " case 'DOWN':\r", - " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", - " }\r", - " break;\r", - "\r", - " case \"HORIZONTAL\":\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", - " break;\r", - "\r", - " case \"VERTICAL\":\r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", - " break;\r", - "\r", - " default:\r", - " break;\r", - " }\r", - " break;\r", - "\r", - " default:\r", - " break;\r", - "}\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Stick: \"Left\" or \"Right\"", - "name": "stick", - "supplementaryInformation": "[\"Left\",\"Right\"]", - "type": "stringWithSelector" - }, - { - "description": "Direction", - "name": "direction", - "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Horizontal\",\"Vertical\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Test if a button is released on a gamepad. Buttons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", - "fullName": "Gamepad button released", - "functionType": "Condition", - "name": "C_Button_released", - "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is released", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in condition: \"Gamepad button released\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "if (button === \"\") {\r", - " console.error('Parameter button is not valid in condition: \"Gamepad button released\"');\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "let buttonId;\r", - "\r", - "switch (button) {\r", - " case 'A':\r", - " case 'CROSS':\r", - " buttonId = 0;\r", - " break;\r", - " case 'B':\r", - " case 'CIRCLE':\r", - " buttonId = 1;\r", - " break;\r", - " case 'X':\r", - " case 'SQUARE':\r", - " buttonId = 2;\r", - " break;\r", - " case 'Y':\r", - " case 'TRIANGLE':\r", - " buttonId = 3;\r", - " break;\r", - " case 'LB':\r", - " case 'L1':\r", - " buttonId = 4;\r", - " break;\r", - " case 'RB':\r", - " case 'R1':\r", - " buttonId = 5;\r", - " break;\r", - " case 'LT':\r", - " case 'L2':\r", - " buttonId = 6;\r", - " break;\r", - " case 'RT':\r", - " case 'R2':\r", - " buttonId = 7;\r", - " break;\r", - "\r", - " case 'UP':\r", - " buttonId = 12;\r", - " break;\r", - " case 'DOWN':\r", - " buttonId = 13;\r", - " break;\r", - " case 'LEFT':\r", - " buttonId = 14;\r", - " break;\r", - " case 'RIGHT':\r", - " buttonId = 15;\r", - " break;\r", - "\r", - " case 'BACK':\r", - " case 'SHARE':\r", - " buttonId = 8;\r", - " break;\r", - " case 'START':\r", - " case 'OPTIONS':\r", - " buttonId = 9;\r", - " break;\r", - "\r", - " case 'CLICK_STICK_LEFT':\r", - " buttonId = 10;\r", - " break;\r", - " case 'CLICK_STICK_RIGHT':\r", - " buttonId = 11;\r", - " break;\r", - "\r", - " //PS4\r", - " case 'PS_BUTTON':\r", - " buttonId = 16;\r", - " break;\r", - " case 'CLICK_TOUCHPAD':\r", - " buttonId = 17;\r", - " break;\r", - "\r", - " default:\r", - " console.error('The button: ' + button + ' in condition: \"Gamepad button released\" is not valid.');\r", - " break;\r", - "}\r", - "\r", - "if (buttonId === undefined) {\r", - " console.error('There is no buttons valid in condition: \"Gamepad button released\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", - " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button released\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "//Define default value on pressed button or use previous value\r", - "gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", - "\r", - "//Get state of button at previous frame\r", - "const previousStateButton = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", - "\r", - "//When previousStateButton is true and actual button state is not pressed\r", - "//Player have release the button\r", - "if (previousStateButton === true && gamepad.buttons[buttonId].pressed === false) {\r", - " // Save the last button used for the player \r", - " gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", - " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", - " eventsFunctionContext.returnValue = true;\r", - "\r", - "} else {\r", - " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", - " eventsFunctionContext.returnValue = false;\r", - "}\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Name of the button", - "name": "button", - "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Return the index of the last pressed button of a gamepad.", - "fullName": "Last pressed button (id)", - "functionType": "Expression", - "name": "LastButtonID", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "//Get function parameter\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "\r", - "//Player id is not valid\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in expression: \"Last pressed button (id)\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "\r", - "//Return the last button used by the player\r", - "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].lastButtonUsed;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Check if any button is pressed on a gamepad.", - "fullName": "Any gamepad button pressed", - "functionType": "Condition", - "name": "C_Any_Button_pressed", - "sentence": "Any button of gamepad _PARAM1_ is pressed", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameter\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in condition: \"Any gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "let buttonId;\r", - "for (let i = 0; i < gamepad.buttons.length; i++) { //For each buttons\r", - " if (gamepad.buttons[i].pressed) { //One of them is pressed\r", - " buttonId = i; //Save the button pressed\r", - " break;\r", - " }\r", - "}\r", - "\r", - "if (buttonId === undefined) {\r", - " // No buttons are pressed.\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", - " console.error('Buttons on the gamepad are not accessible in condition: \"Any gamepad button pressed\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "//When a button is pressed, save the button in lastButtonUsed for each players\r", - "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", - "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", - "\r", - "\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Return the last button pressed. \nButtons for Xbox and PS4 can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Both: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", - "fullName": "Last pressed button (string)", - "functionType": "StringExpression", - "name": "LastButtonString", - "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in string expression: \"Last pressed button (LastButtonString)\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "if (controllerType === \"\") {\r", - " console.error('Parameter controller type is not valid in string expression: \"Last pressed button (LastButtonString)\"');\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "if (gamepad !== null) { //Gamepad exist\r", - " //Get last btn id\r", - " const lastButtonUsedID = gdjs._extensionController.players[playerId].lastButtonUsed;\r", - "\r", - " //Return last button as string \r", - " eventsFunctionContext.returnValue = gdjs._extensionController.getInputString(controllerType, lastButtonUsedID);\r", - "\r", - "} else { //Gamepad dosen't exist\r", - " console.error('Your controller is not supported or the gamepad wasn\\'t detected in string expression: \"Last pressed button (LastButtonString)\"');\r", - " eventsFunctionContext.returnValue = \"Gamepad not connected\";\r", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Controller type", - "name": "controller_type", - "supplementaryInformation": "[\"Xbox\",\"PS4\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Return the number of gamepads.", - "fullName": "Gamepad count", - "functionType": "Expression", - "name": "GamepadCount", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get the last activated controller\r", - "const controllerId = gdjs._extensionController.lastActiveController;\r", - "\r", - "// Check if controller is active\r", - "const gamepad = gamepads[controllerId];\r", - "if (gamepad == null) {\r", - " eventsFunctionContext.returnValue = 0;\r", - "} else {\r", - " // Return active controller id\r", - " eventsFunctionContext.returnValue = controllerId + 1;\r", - "}\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [], - "objectGroups": [] - }, - { - "description": "Check if a button is pressed on a gamepad. \nButtons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", - "fullName": "Gamepad button pressed", - "functionType": "Condition", - "name": "C_Button_pressed", - "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in condition: \"Gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "if (button === \"\") {\r", - " console.error('Parameter button is not valid in condition: \"Gamepad button pressed\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "let buttonId;\r", - "\r", - "switch (button) {\r", - " case 'A':\r", - " case 'CROSS':\r", - " buttonId = 0;\r", - " break;\r", - " case 'B':\r", - " case 'CIRCLE':\r", - " buttonId = 1;\r", - " break;\r", - " case 'X':\r", - " case 'SQUARE':\r", - " buttonId = 2;\r", - " break;\r", - " case 'Y':\r", - " case 'TRIANGLE':\r", - " buttonId = 3;\r", - " break;\r", - " case 'LB':\r", - " case 'L1':\r", - " buttonId = 4;\r", - " break;\r", - " case 'RB':\r", - " case 'R1':\r", - " buttonId = 5;\r", - " break;\r", - " case 'LT':\r", - " case 'L2':\r", - " buttonId = 6;\r", - " break;\r", - " case 'RT':\r", - " case 'R2':\r", - " buttonId = 7;\r", - " break;\r", - "\r", - " case 'UP':\r", - " buttonId = 12;\r", - " break;\r", - " case 'DOWN':\r", - " buttonId = 13;\r", - " break;\r", - " case 'LEFT':\r", - " buttonId = 14;\r", - " break;\r", - " case 'RIGHT':\r", - " buttonId = 15;\r", - " break;\r", - "\r", - " case 'BACK':\r", - " case 'SHARE':\r", - " buttonId = 8;\r", - " break;\r", - " case 'START':\r", - " case 'OPTIONS':\r", - " buttonId = 9;\r", - " break;\r", - "\r", - " case 'CLICK_STICK_LEFT':\r", - " buttonId = 10;\r", - " break;\r", - " case 'CLICK_STICK_RIGHT':\r", - " buttonId = 11;\r", - " break;\r", - "\r", - " //PS4\r", - " case 'PS_BUTTON':\r", - " buttonId = 16;\r", - " break;\r", - " case 'CLICK_TOUCHPAD':\r", - " buttonId = 17;\r", - " break;\r", - "\r", - " default:\r", - " console.error('The button: ' + button + ' in condition: \"Gamepad button pressed\" is not valid.');\r", - " eventsFunctionContext.returnValue = false;\r", - " break;\r", - "}\r", - "\r", - "\r", - "\r", - "if (buttonId === undefined) {\r", - " console.error('There is no buttons valid in condition: \"Gamepad button pressed\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", - " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button pressed\"');\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "//When a button is pressed, save the button in lastButtonUsed for each players\r", - "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", - "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", - "\r", - "\r", - "\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Name of the button", - "name": "button", - "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Return the value of the deadzone applied to a gamepad sticks, between 0 and 1.", - "fullName": "Gamepad deadzone for sticks", - "functionType": "Expression", - "name": "Deadzone", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "//Get function parameter\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in expression: \"Gamepad deadzone for sticks\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "///Return the deadzone value for a given player\r", - "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].deadzone;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2.", - "fullName": "Set gamepad deadzone for sticks", - "functionType": "Action", - "name": "A_Set_deadzone", - "sentence": "Set deadzone for sticks on gamepad: _PARAM1_ to _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "//Get function parameter\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const newDeadzone = eventsFunctionContext.getArgument(\"deadzone\");\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in action: \"Set gamepad deadzone for sticks\", is not valid, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "\r", - "// clamp the newDeadzone in range [0, 1].\r", - "// https://github.com/4ian/GDevelop-extensions/pull/33#issuecomment-618224857\r", - "gdjs._extensionController.players[playerId].deadzone = gdjs.evtTools.common.clamp(newDeadzone, 0, 1);\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Deadzone for sticks, 0.2 by default (0 to 1)", - "name": "deadzone", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Check if a stick of a gamepad is pushed in a given direction.", - "fullName": "Gamepad stick pushed (axis)", - "functionType": "Condition", - "name": "C_Axis_pushed", - "sentence": "_PARAM2_ stick of gamepad _PARAM1_ is pushed in direction _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", - "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - " console.error('Parameter gamepad identifier in condition: \"Gamepad stick pushed (axis)\", is not valid number, must be between 0 and 4.');\r", - " return;\r", - "}\r", - "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", - " console.error('Parameter stick in condition: \"Gamepad stick pushed (axis)\", is not valid, must be LEFT or RIGHT');\r", - " return;\r", - "}\r", - "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"ANY\") {\r", - " console.error('Parameter deadzone in condition: \"Gamepad stick pushed (axis)\", is not valid, must be UP, DOWN, LEFT or RIGHT');\r", - " return;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) {\r", - " eventsFunctionContext.returnValue = false;\r", - " return;\r", - "}\r", - "\r", - "\r", - "//Define in onFirstSceneLoaded function\r", - "const getNormalizedAxisValue = gdjs._extensionController.getNormalizedAxisValue;\r", - "\r", - "switch (stick) {\r", - " case 'LEFT':\r", - " switch (direction) {\r", - " case 'LEFT':\r", - " if (getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " if (getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'UP':\r", - " if (getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'DOWN':\r", - " if (getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'ANY':\r", - " if ( getNormalizedAxisValue(gamepad.axes[0], playerId) < 0\r", - " || getNormalizedAxisValue(gamepad.axes[0], playerId) > 0\r", - " || getNormalizedAxisValue(gamepad.axes[1], playerId) < 0 \r", - " || getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " default:\r", - " console.error('The value Direction on stick Left on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", - " eventsFunctionContext.returnValue = false;\r", - " break;\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " switch (direction) {\r", - " case 'LEFT':\r", - " if (getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'RIGHT':\r", - " if (getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'UP':\r", - " if (getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'DOWN':\r", - " if (getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " case 'ANY':\r", - " if ( getNormalizedAxisValue(gamepad.axes[2], playerId) < 0\r", - " || getNormalizedAxisValue(gamepad.axes[2], playerId) > 0\r", - " || getNormalizedAxisValue(gamepad.axes[3], playerId) < 0 \r", - " || getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", - " eventsFunctionContext.returnValue = true;\r", - " return;\r", - " }\r", - " break;\r", - "\r", - " default:\r", - " console.error('The value Direction on stick Right on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", - " eventsFunctionContext.returnValue = false;\r", - " break;\r", - " }\r", - " break;\r", - "\r", - " default:\r", - " console.error('The value Stick on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", - " eventsFunctionContext.returnValue = false;\r", - " break;\r", - "}\r", - "\r", - "eventsFunctionContext.returnValue = false;\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Stick: \"Left\" or \"Right\"", - "name": "stick", - "supplementaryInformation": "[\"Left\",\"Right\"]", - "type": "stringWithSelector" - }, - { - "description": "Direction", - "name": "direction", - "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Any\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Return the number of connected gamepads.", - "fullName": "Connected gamepads number", - "functionType": "Expression", - "name": "ConnectedGamepadsCount", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "// Gamepads can be disconnected and become null, so we have to filter them.\r", - "eventsFunctionContext.returnValue = Object.keys(gamepads).filter(key => !!gamepads[key]).length;\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [], - "objectGroups": [] - }, - { - "description": "Return a string containing informations about the specified gamepad.", - "fullName": "Gamepad type", - "functionType": "StringExpression", - "name": "GamepadType", - "sentence": "Player _PARAM1_ use _PARAM2_ controller", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameter", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in string expression: \"Gamepad type\", is not valid number, must be between 0 and 4');", - " return;", - "}", - "", - "const gamepad = gamepads[playerId];", - "", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", - "if (gamepad == null) return;", - "", - "eventsFunctionContext.returnValue = (gamepad && gamepad.id) ? gamepad.id : \"No information for player \" + (playerId + 1)", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller.", - "fullName": "Gamepad type", - "functionType": "Condition", - "name": "C_Controller_type", - "sentence": "Gamepad _PARAM1_ is a _PARAM2_ controller", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameters", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", - "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in condition: \"Gamepad type\", is not valid number, must be between 0 and 4.');", - " return;", - "}", - "if (controllerType === \"\") {", - " console.error('Parameter type in condition: \"Gamepad type\", is not a string.');", - " return;", - "}", - "", - "const gamepad = gamepads[playerId];", - "", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", - "if (gamepad == null) return;", - "", - "", - "if (controllerType == \"XBOX\") {", - " eventsFunctionContext.returnValue = gdjs._extensionController.isXbox(gamepad);", - "} else {", - " eventsFunctionContext.returnValue = gamepad ? gamepad.id.toUpperCase().indexOf(controllerType) !== -1 : false;", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - }, - { - "description": "Type: \"Xbox\", \"PS4\", \"Steam\" or \"PS3\" (among other)", - "name": "controller_type", - "type": "string" - } - ], - "objectGroups": [] - }, - { - "description": "Check if a gamepad is connected.", - "fullName": "Gamepad connected", - "functionType": "Condition", - "name": "C_Controller_X_is_connected", - "sentence": "Gamepad _PARAM1_ is plugged and connected", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameter", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in condition: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", - " return;", - "}", - "", - "// If gamepad was disconnected it will be null (so this will return false)", - "// If gamepad was never connected it will be undefined (so this will return false)", - "eventsFunctionContext.returnValue = !!gamepads[playerId];" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser.", - "fullName": "Gamepad vibration", - "functionType": "Action", - "name": "A_Vibrate_controller", - "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "//Vibration work only on game in browser.", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameters", - "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", - "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in action: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", - " return;", - "}", - "", - "const gamepad = gamepads[playerId];", - "", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", - "if (gamepad == null) return;", - "", - "if (gamepad && gamepad.vibrationActuator) {", - " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", - " startDelay: 0,", - " duration: duration * 1000,", - " weakMagnitude: 1.0,", - " strongMagnitude: 1.0", - " });", - "}" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "Player_ID", - "type": "expression" - }, - { - "description": "Time of the vibration, in seconds (optional, default value is 1)", - "name": "Duration", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Generate an advanced vibration on the specified controller. Incompatible with Firefox.", - "fullName": "Advanced gamepad vibration", - "functionType": "Action", - "name": "A_Advanced_Vibration_Controller", - "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds with the vibration magnitude of _PARAM3_ and _PARAM4_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "//Vibration work only on game in browser.", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameters", - "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", - "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", - "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", - "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 4.');", - " return;", - "}", - "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", - " console.error('Parameter weakRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", - " return;", - "}", - "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", - " console.error('Parameter strongRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", - " return;", - "}", - "", - "const gamepad = gamepads[playerId];", - "", - "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", - "if (gamepad == null) return;", - "", - "if (gamepad && gamepad.vibrationActuator) {", - " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", - " startDelay: 0,", - " duration: duration * 1000,", - " weakMagnitude: weakRumbleMagnitude,", - " strongMagnitude: strongRumbleMagnitude", - " });", - "}", - "", - "gdjs._extensionController.players[playerId].rumble.duration = duration;", - "gdjs._extensionController.players[playerId].rumble.elapsedTime = 0;", - "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", - "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "Player_ID", - "type": "expression" - }, - { - "description": "Time of the vibration, in seconds (optional, default value is 1)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Strong rumble magnitude (from 0 to 1)", - "name": "StrongMagnitude", - "type": "expression" - }, - { - "description": "Weak rumble magnitude (from 0 to 1)", - "name": "WeakMagnitude", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Change a vibration on the specified controller. Incompatible with Firefox.", - "fullName": "Change gamepad active vibration", - "functionType": "Action", - "name": "A_Change_Vibration_Magnitude", - "sentence": "Change the vibration magnitude of _PARAM2_ & _PARAM3_ on gamepad _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */", - "//Vibration work only on game in browser.", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameters", - "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", - "const elapsedTime = gdjs._extensionController.players[playerId].rumble.elapsedTime || 0;", - "const originalDuration = gdjs._extensionController.players[playerId].rumble.duration || 1;", - "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", - "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", - "", - "", - "if (playerId < 0 || playerId > 4) {", - " console.error('Parameter gamepad identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 4.');", - " return;", - "}", - "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", - " console.error('Parameter weakRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", - " return;", - "}", - "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", - " console.error('Parameter strongRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", - " return;", - "}", - "", - "const gamepad = gamepads[playerId];", - "", - "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", - "if (gamepad == null) return;", - "", - "if (originalDuration - elapsedTime <= 0) return;", - "", - "if (gamepad && gamepad.vibrationActuator) {", - " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", - " startDelay: 0,", - " duration: 1000 * (originalDuration - elapsedTime),", - " weakMagnitude: weakRumbleMagnitude,", - " strongMagnitude: strongRumbleMagnitude", - " });", - "}", - "", - "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", - "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "Player_ID", - "type": "expression" - }, - { - "description": "Strong rumble magnitude (from 0 to 1)", - "name": "StrongMagnitude", - "type": "expression" - }, - { - "description": "Weak rumble magnitude (from 0 to 1)", - "name": "WeakMagnitude", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onFirstSceneLoaded", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "//Define an new private object javascript for the gamepad extension\r", - "gdjs._extensionController = {\r", - " players: {\r", - " 0: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", - " 1: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", - " 2: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", - " 3: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", - " },\r", - " lastActiveController: -1, // Last active controller\r", - " controllerButtonNames: { //Map associating controller button ids to button names\r", - " \"XBOX\": {\r", - " 0: \"A\",\r", - " 1: \"B\",\r", - " 2: \"X\",\r", - " 3: \"Y\",\r", - " 4: \"LB\",\r", - " 5: \"RB\",\r", - " 6: \"LT\",\r", - " 7: \"RT\",\r", - " 8: \"BACK\",\r", - " 9: \"START\",\r", - " 10: \"CLICK_STICK_LEFT\",\r", - " 11: \"CLICK_STICK_RIGHT\",\r", - " 12: \"UP\",\r", - " 13: \"DOWN\",\r", - " 14: \"LEFT\",\r", - " 15: \"RIGHT\",\r", - " 16: \"NONE\",\r", - " 17: \"NONE\"\r", - " },\r", - " \"PS4\": {\r", - " 0: \"CROSS\",\r", - " 1: \"CIRCLE\",\r", - " 2: \"SQUARE\",\r", - " 3: \"TRIANGLE\",\r", - " 4: \"L1\",\r", - " 5: \"R1\",\r", - " 6: \"L2\",\r", - " 7: \"R2\",\r", - " 8: \"SHARE\",\r", - " 9: \"OPTIONS\",\r", - " 10: \"CLICK_STICK_LEFT\",\r", - " 11: \"CLICK_STICK_RIGHT\",\r", - " 12: \"UP\",\r", - " 13: \"DOWN\",\r", - " 14: \"LEFT\",\r", - " 15: \"RIGHT\",\r", - " 16: \"PS_BUTTON\",\r", - " 17: \"CLICK_TOUCHPAD\"\r", - " }\r", - " }\r", - "};\r", - "\r", - "gdjs._extensionController.getInputString = function (type, buttonId) {\r", - " const controllerButtonNames = gdjs._extensionController.controllerButtonNames;\r", - " if (controllerButtonNames[type] !== undefined) {\r", - " return controllerButtonNames[type][buttonId];\r", - " }\r", - "\r", - " return \"UNKNOWN_BUTTON\";\r", - "}\r", - "\r", - "gdjs._extensionController.axisToAngle = function (deltaX, deltaY) {\r", - " const rad = Math.atan2(deltaY, deltaX);\r", - " const deg = rad * (180 / Math.PI);\r", - " return deg;\r", - "}\r", - "\r", - "gdjs._extensionController.isXbox = function (gamepad) {\r", - " return (gamepad ? (\r", - " gamepad.id.toUpperCase().indexOf(\"XBOX\") !== -1\r", - " // \"XINPUT\" cannot be used to check if it is a xbox controller is just a generic\r", - " // name reported in Firefox corresponding to the driver being used by the controller\r", - " // https://gamefaqs.gamespot.com/boards/916373-pc/73341312?page=1\r", - " ) : false);\r", - "}\r", - "\r", - "//Returns the new value taking into account the dead zone for the player_ID given\r", - "gdjs._extensionController.getNormalizedAxisValue = function (v, player_ID) {\r", - " // gdjs._extensionController = gdjs._extensionController || { deadzone: 0.2 };\r", - "\r", - " // Anything smaller than this is assumed to be 0,0\r", - " const DEADZONE = gdjs._extensionController.players[player_ID].deadzone;\r", - "\r", - " if (Math.abs(v) < DEADZONE) {\r", - " // In the dead zone, set to 0\r", - " v = 0;\r", - "\r", - " if (v == null) {\r", - " return 0;\r", - " } else {\r", - " return v;\r", - " }\r", - "\r", - " } else {\r", - " // We're outside the dead zone, but we'd like to smooth\r", - " // this value out so it still runs nicely between 0..1.\r", - " // That is, we don't want it to jump suddenly from 0 to\r", - " // DEADZONE.\r", - "\r", - " // Remap v from\r", - " // DEADZONE..1 to 0..(1-DEADZONE)\r", - " // or from\r", - " // -1..-DEADZONE to -(1-DEADZONE)..0\r", - "\r", - " v = v - Math.sign(v) * DEADZONE;\r", - "\r", - " // Remap v from\r", - " // 0..(1-DEADZONE) to 0..1\r", - " // or from\r", - " // -(1-DEADZONE)..0 to -1..0\r", - "\r", - " return v / (1 - DEADZONE);\r", - " }\r", - "};" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onScenePostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "//Each time a player press a button i save the last button pressed for the next frame", - "/** @type {Gamepad[]} */", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", - "", - "//Get function parameter", - "let countPlayers = Object.keys(gdjs._extensionController.players).length;", - "", - "//Repeat for each players", - "for (let i = 0; i < countPlayers; i++) {", - " let gamepad = gamepads[i]; // Get the gamepad of the player", - "", - " //We have to keep this condition because if the user hasn't plugged in his controller yet, we can't get the controller in the gamepad variable.", - " if (gamepad == null) {", - " continue;", - " }", - "", - " for (let b = 0; b < Object.keys(gamepad.buttons).length; b++) { //For each buttons", - " if (gamepad.buttons[b].pressed) { //One of them is pressed", - " gdjs._extensionController.players[i].lastButtonUsed = b; //Save the button pressed", - "", - " //Save the state of the button for the next frame.", - " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: true };", - "", - " // Update Last Active Controller", - " gdjs._extensionController.lastActiveController = i;", - " } else {", - " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: false };", - " }", - " }", - "", - "", - " gdjs._extensionController.players[i].rumble.elapsedTime += runtimeScene.getElapsedTime(runtimeScene) / 1000;", - " if (", - " gdjs._extensionController.players[i].rumble.duration - gdjs._extensionController.players[i].rumble.elapsedTime <= 0 &&", - " (gdjs._extensionController.players[i].rumble.weakMagnitude || gdjs._extensionController.players[i].rumble.strongMagnitude)", - " ) {", - " gdjs._extensionController.players[i].rumble.weakMagnitude = 0;", - " gdjs._extensionController.players[i].rumble.strongMagnitude = 0;", - " }", - "", - "", - "}", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [], - "objectGroups": [] - }, - { - "description": "Check if any button is released on a gamepad.", - "fullName": "Any gamepad button released", - "functionType": "Condition", - "name": "C_any_button_released", - "sentence": "Any button of gamepad _PARAM1_ is released", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "/** @type {Gamepad[]} */\r", - "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", - "\r", - "//Get function parameters\r", - "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", - "\r", - "if (playerId < 0 || playerId > 4) {\r", - "\tconsole.error('Parameter gamepad identifier in condition: \"Any gamepad button released\", is not valid number, must be between 0 and 4.');\r", - "\treturn;\r", - "}\r", - "\r", - "const gamepad = gamepads[playerId];\r", - "\r", - "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", - "if (gamepad == null) return;\r", - "\r", - "for (let buttonId = 0; buttonId < gamepad.buttons.length; buttonId++) { //For each buttons on current frame.\r", - "\r", - "\tif (buttonId === undefined) {\r", - "\t\teventsFunctionContext.returnValue = false;\r", - "\t\treturn;\r", - "\t}\r", - "\r", - "\t//Get previous value or define value by default for the current button\r", - "\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", - "\r", - "\t//Get state of the button at previous frame\r", - "\tconst previousStateButtonIsPressed = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", - "\r", - "\t//Get the state of the button on the current frame.\r", - "\tconst currentFrameStateButtonIsPressed = gamepad.buttons[buttonId].pressed;\r", - "\r", - "\t//When previousStateButtonIsPressed is true and actual button state is not pressed\r", - "\t//Player have release the button\r", - "\tif (previousStateButtonIsPressed === true && currentFrameStateButtonIsPressed === false) {\r", - "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", - "\t\teventsFunctionContext.returnValue = true;\r", - "\t\t//break;\r", - "\t\treturn;\r", - "\t} else {\r", - "\t\t//The player didn't released the button yet, the previous frame state is still true\r", - "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", - "\t\teventsFunctionContext.returnValue = false;\r", - "\t}\r", - "\r", - "\tif (currentFrameStateButtonIsPressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", - "}\r", - "" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Return the strength of the weak vibration motor on the gamepad of a player.", - "fullName": "Weak rumble magnitude", - "functionType": "Expression", - "name": "WeakVibrationMagnitude", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", - "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.weakMagnitude;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "Player_ID", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Return the strength of the strong vibration motor on the gamepad of a player.", - "fullName": "Strong rumble magnitude", - "functionType": "Expression", - "name": "StrongVibrationMagnitude", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", - "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.strongMagnitude;" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": false - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "The gamepad identifier: 1, 2, 3 or 4", - "name": "Player_ID", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "Control a platformer character with a gamepad.", - "fullName": "Platformer gamepad mapper", - "name": "PlatformerGamepadMapper", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Controller_X_is_connected" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Up\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - }, - { - "type": { - "value": "PlatformBehavior::SimulateLadderKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Down\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Left\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Right\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Up\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - }, - { - "type": { - "value": "PlatformBehavior::SimulateLadderKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Down\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Left\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Right\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Up\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - }, - { - "type": { - "value": "PlatformBehavior::SimulateLadderKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Down\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"A or Cross\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"A\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"B or Circle\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"B\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"X or Square\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"X\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Y or Triangle\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Y\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"LB or L1\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"LB\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"RB or R1\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"RB\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"LT or L2\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"LT\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"RT or R2\"" - ] - }, - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"RT\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlatformBehavior::SimulateJumpKey" - }, - "parameters": [ - "Object", - "PlatformerCharacter" - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Gamepads::PlatformerGamepadMapper", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Platformer character behavior", - "description": "", - "group": "", - "extraInformation": [ - "PlatformBehavior::PlatformerObjectBehavior" - ], - "hidden": false, - "name": "PlatformerCharacter" - }, - { - "value": "1", - "type": "Number", - "label": "Gamepad identifier (1, 2, 3 or 4)", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "GamepadIdentifier" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use directional pad", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseArrows" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use left stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseLeftStick" - }, - { - "value": "", - "type": "Boolean", - "label": "Use right stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseRightStick" - }, - { - "value": "A or Cross", - "type": "Choice", - "label": "Jump button", - "description": "", - "group": "Controls", - "extraInformation": [ - "A or Cross", - "B or Circle", - "X or Square", - "Y or Triangle", - "LB or L1", - "RB or R1", - "LT or L2", - "RT or R2" - ], - "hidden": false, - "name": "JumpButton" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Control a top-down character with a gamepad.", - "fullName": "Top-down gamepad mapper", - "name": "TopDownGamepadMapper", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Controller_X_is_connected" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Up\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Button_pressed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Down\"", - "\"Left\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Analog\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", - "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"360°\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", - "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\"))" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"8 Directions\"" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Left\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Right\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Up\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Left\"", - "\"Down\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Analog\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", - "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"360°\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"8 Directions\"" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Left\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Right\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Up\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Down\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - } - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Gamepads::TopDownGamepadMapper", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Top-down movement behavior", - "description": "", - "group": "", - "extraInformation": [ - "TopDownMovementBehavior::TopDownMovementBehavior" - ], - "hidden": false, - "name": "TopDownMovement" - }, - { - "value": "1", - "type": "Number", - "label": "Gamepad identifier (1, 2, 3 or 4)", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "GamepadIdentifier" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use directional pad", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseArrows" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use left stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseLeftStick" - }, - { - "value": "", - "type": "Boolean", - "label": "Use right stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseRightStick" - }, - { - "value": "Analog", - "type": "Choice", - "label": "Stick mode", - "description": "", - "group": "Controls", - "extraInformation": [ - "Analog", - "360°", - "8 Directions" - ], - "hidden": false, - "name": "StickMode" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Movement", - "extensionNamespace": "", - "fullName": "Top-down movement animator", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40bDQtNC4xYzAuNC0wLjQsMS0wLjQsMS40LDBzMC40LDEsMCwxLjRMMy40LDE2bDMuMywzLjMNCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDNi42LDIxLDYuMywyMS4xLDYsMjEuMXoiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0yNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNjLTAuNC0wLjQtMC40LTEsMC0xLjRsMy4zLTMuM2wtMy4zLTMuM2MtMC40LTAuNC0wLjQtMSwwLTEuNHMxLTAuNCwxLjQsMGw0LjEsNC4xDQoJCWMwLjIsMC4yLDAuMywwLjQsMC4zLDAuN3MtMC4xLDAuNS0wLjMsMC43bC00LjEsNC4xQzI2LjYsMjEsMjYuMywyMS4xLDI2LDIxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMTYsMzEuMUwxNiwzMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40czEtMC40LDEuNCwwbDMuMywzLjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwDQoJCXMwLjQsMSwwLDEuNGwtNC4xLDQuMUMxNi42LDMwLjksMTYuMywzMS4xLDE2LDMxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjAuMSw3Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNMMTYsMy40bC0zLjMsMy4zYy0wLjQsMC40LTEsMC40LTEuNCwwcy0wLjQtMSwwLTEuNGw0LTQuMWMwLjQtMC40LDEtMC40LDEuNCwwbDQuMSw0LjENCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDMjAuNiw2LjksMjAuNCw3LDIwLjEsN3oiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0xNiwzMGMtMC42LDAtMS0wLjQtMS0xVjNjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXYyNkMxNywyOS42LDE2LjYsMzAsMTYsMzB6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjksMTdIMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMWgyN2MwLjYsMCwxLDAuNCwxLDFTMjkuNiwxNywyOSwxN3oiLz4NCjwvZz4NCjwvc3ZnPg0K", - "name": "TopDownMovementAnimator", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Arrows/a6026156355ae5f03613b03971e4ddb50d0c95b8901e7a21edc57f33f0032e42_Arrows_thin_arrows_all_directions_cross.svg", - "shortDescription": "Change the animation according to the movement direction.", - "version": "0.1.0", - "description": "Change the animation according to the movement direction.", - "tags": [ - "animation", - "direction" - ], - "authorIds": [ - "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" - ], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Change the animation according to the movement direction.", - "fullName": "Top-down movement animator", - "name": "TopDownMovementAnimator", - "objectType": "Sprite", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "0" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::DiagonalsAllowed" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "8" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "TopDownMovementBehavior::DiagonalsAllowed" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "4" - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onActivate", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::Direction()", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::Speed" - }, - "parameters": [ - "Object", - "TopDownMovement", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "PauseAnimation" - }, - "parameters": [ - "Object" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::Speed" - }, - "parameters": [ - "Object", - "TopDownMovement", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlayAnimation" - }, - "parameters": [ - "Object" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyNewAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::Direction()" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Use a small margin is used to avoid to flicker between 2 directions." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "BuiltinCommonInstructions::CompareNumbers" - }, - "parameters": [ - "abs(Object.Behavior:: DirectionDifference(Object.Behavior::SharedPropertyNewAnimationDirection(), Object.Behavior::PropertyAnimationDirection()))", - ">", - "0.5 + 0.03125" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::SharedPropertyNewAnimationDirection()", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name of the object.", - "fullName": "Animation name", - "functionType": "ExpressionAndCondition", - "name": "AnimationName", - "sentence": "the animation name", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyAnimationName()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "AnimationName", - "name": "SetAnimationName", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyAnimationName" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "GetArgumentAsString(\"Value\")" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationName" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - }, - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Check if the animation is scaled according to speed.", - "fullName": "Scale animation according to speed", - "functionType": "Condition", - "name": "IsScalingAnimation", - "sentence": "_PARAM0_ animation is scaled according to speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change whether the animation is scaled according to speed or not.", - "fullName": "Scale animation according to speed", - "functionType": "Action", - "name": "SetIsScalingAnimation", - "sentence": "Scale the animation of _PARAM0_ according to speed: _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - }, - { - "type": { - "value": "ChangeAnimationSpeedScale" - }, - "parameters": [ - "Object", - "=", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior", - "yes" - ] - }, - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - }, - { - "defaultValue": "yes", - "description": "IsScalingAnimation", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - }, - { - "description": "Change the animation speed scale according to the object speed.", - "fullName": "Animation speed scale", - "functionType": "Action", - "name": "SetAnimationSpeedScale", - "private": true, - "sentence": "Change the animation speed scale according to _PARAM0_ speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ChangeAnimationSpeedScale" - }, - "parameters": [ - "Object", - "=", - "Object.TopDownMovement::Speed() / Object.TopDownMovement::MaxSpeed()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Return the object movement direction.", - "fullName": "Direction", - "functionType": "Expression", - "name": "Direction", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "(Object.TopDownMovement::Angle() + Object.Behavior::PropertyAngleOffset()) * Object.Behavior::PropertyDirectionCount() / 360" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Return the difference between 2 directions.", - "fullName": "Direction dirrerence", - "functionType": "Expression", - "name": "DirectionDifference", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "mod(mod(GetArgumentAsNumber(\"Direction\") - GetArgumentAsNumber(\"OtherDirection\"), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount() / 2, Object.Behavior::PropertyDirectionCount()) - Object.Behavior::PropertyDirectionCount() / 2" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - }, - { - "description": "Direction", - "name": "Direction", - "type": "expression" - }, - { - "description": "Other direction", - "name": "OtherDirection", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Change the animation direction of the object.", - "fullName": "Animation direction", - "functionType": "Action", - "name": "SetAnimationDirection", - "private": true, - "sentence": "Change the animation direction of _PARAM0_ to _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change the animation but keep the current frame number." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "mod(mod(round(GetArgumentAsNumber(\"Value\")), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount(), Object.Behavior::PropertyDirectionCount())" - ] - }, - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyAnimationFrame" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Sprite()" - ] - }, - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" - ] - }, - { - "type": { - "value": "ChangeSprite" - }, - "parameters": [ - "Object", - "=", - "Object.Behavior::SharedPropertyAnimationFrame()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Top-down movement", - "description": "", - "group": "", - "extraInformation": [ - "TopDownMovementBehavior::TopDownMovementBehavior" - ], - "hidden": false, - "name": "TopDownMovement" - }, - { - "value": "true", - "type": "Boolean", - "label": "Scale animation according to speed", - "description": "", - "group": "Animation", - "extraInformation": [], - "hidden": false, - "name": "IsScalingAnimation" - }, - { - "value": "Walk", - "type": "String", - "label": "Animation name", - "description": "Animations must be called \"Walk0\", \"Walk1\"... for left, down...", - "group": "Animation", - "extraInformation": [], - "hidden": false, - "name": "AnimationName" - }, - { - "value": "0", - "type": "Number", - "unit": "Dimensionless", - "label": "Number of directions", - "description": "Leave to 0 to automatically use 8 when diagonals are allowed and 4 otherwise.", - "group": "Direction", - "extraInformation": [], - "hidden": false, - "name": "DirectionCount" - }, - { - "value": "0", - "type": "Number", - "unit": "DegreeAngle", - "label": "Angle offset", - "description": "Setted to 90°, \"Walk0\" becomes the animation for down.", - "group": "Direction", - "extraInformation": [], - "hidden": false, - "name": "AngleOffset" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "AnimationDirection" - } - ], - "sharedPropertyDescriptors": [ - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "NewAnimationDirection" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "AnimationFrame" - } - ] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "", - "extensionNamespace": "", - "fullName": "", - "helpPath": "", - "iconUrl": "", - "name": "Respawn", - "previewIconUrl": "", - "shortDescription": "", - "version": "", - "description": "", - "tags": [ - "" - ], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Make the object come back to its initial location", - "fullName": "Respawn", - "name": "Respawn", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "OriginY", - "=", - "Object.Y()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "OriginX", - "=", - "Object.X()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Respawn::Respawn", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Respawn to its initial location", - "fullName": "Respawn", - "functionType": "Action", - "name": "respawn", - "sentence": "_PARAM0_ respawns to its initial location", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "Object", - "=", - "Object.Variable(OriginX)", - "=", - "Object.Variable(OriginY)" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Invincible", - "=", - "1" - ] - }, - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - }, - { - "type": { - "value": "UnPauseObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Respawn::Respawn", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Check if the object is invincible.", - "fullName": "Is the object invincible?", - "functionType": "Condition", - "name": "isInvincible", - "sentence": "_PARAM0_ is invincible", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Object", - "Invincible", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Respawn::Respawn", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "PauseObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - }, - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"", - "Object.Behavior::PropertyInvincibilityTime()" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Invincible", - "=", - "0" - ] - }, - { - "type": { - "value": "PauseObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - }, - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "Object", - "\"Invincible\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Respawn::Respawn", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "OriginY", - "=", - "Object.Y()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "OriginX", - "=", - "Object.X()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Respawn::Respawn", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "5", - "type": "Number", - "label": "The invincibility time after been respawn (in seconds).", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "InvincibilityTime" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "", - "extensionNamespace": "", - "fullName": "", - "helpPath": "", - "iconUrl": "", - "name": "BombExplosion", - "previewIconUrl": "", - "shortDescription": "", - "version": "", - "description": "", - "tags": [], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Explode a bombe into 4 lines of Explosion objects.", - "fullName": "Explode a bombe", - "functionType": "Action", - "name": "Explode", - "sentence": "_PARAM1_ explode into _PARAM2_ and is stopped by _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Creation of the central explosion square" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Explosion", - "Bomb.X()", - "Bomb.Y()", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Explosion", - "=", - "Explosion.Y() + 12" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Explosion", - "PlayerNum", - "=", - "Bomb.Variable(PlayerNum)" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Creation of the explosion squares on the 4 directions" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "BombExplosion::CreateExplosionArm" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "0", - "1", - "0", - "" - ] - }, - { - "type": { - "value": "BombExplosion::CreateExplosionArm" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "180", - "-1", - "0", - "" - ] - }, - { - "type": { - "value": "BombExplosion::CreateExplosionArm" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "90", - "0", - "1", - "" - ] - }, - { - "type": { - "value": "BombExplosion::CreateExplosionArm" - }, - "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "-90", - "0", - "-1", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Bomb", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Bomb", - "name": "Bomb", - "type": "objectList" - }, - { - "description": "Explosion", - "name": "Explosion", - "supplementaryInformation": "Sprite", - "type": "objectList" - }, - { - "description": "Obstacle", - "name": "Obstacle", - "type": "objectList" - } - ], - "objectGroups": [] - }, - { - "description": "Create one line of Explosion object in a given direction.", - "fullName": "Create an explosion arm", - "functionType": "Action", - "name": "CreateExplosionArm", - "private": true, - "sentence": "Creat an explosion arm with _PARAM2_ from _PARAM1_ to _PARAM3_ in the direction _PARAM4_° (_PARAM5_ ; _PARAM6_)", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "iteration", - "=", - "1" - ] - } - ], - "events": [ - { - "infiniteLoopWarning": true, - "type": "BuiltinCommonInstructions::While", - "whileConditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "iteration", - "<=", - "Bomb.Variable(Range)" - ] - } - ], - "conditions": [], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Explosion", - "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 48 * Variable(iteration)", - "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 48 * Variable(iteration)", - "\"\"" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Explosion", - "=", - "GetArgumentAsNumber(\"ExplosionDirection\")" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Explosion", - "PlayerNum", - "=", - "Bomb.Variable(PlayerNum)" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The arm squares (+11) are over the finger squares (+10) and the center squares are over the other 2 (+12). It makes a better continuity on the explosions sprites." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "iteration", - "<", - "Bomb.Variable(Range)" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Explosion", - "\"ExplosionArm\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Explosion", - "=", - "Explosion.Y() + 11" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "iteration", - "=", - "Bomb.Variable(Range)" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Explosion", - "\"ExplosionFinger\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Explosion", - "=", - "Explosion.Y() + 10" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "iteration", - "+", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "When an obstacle is reached, the loop is broken (by setting a big value in the iteration variable)." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Obstacle", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "iteration", - "=", - "666" - ] - } - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Bomb", - "name": "Bomb", - "type": "objectList" - }, - { - "description": "Explosion", - "name": "Explosion", - "supplementaryInformation": "Sprite", - "type": "objectList" - }, - { - "description": "Obstacle", - "name": "Obstacle", - "type": "objectList" - }, - { - "description": "Explosion direction angle", - "name": "ExplosionDirection", - "type": "expression" - }, - { - "description": "Explosion direction X", - "name": "ExplosionDirectionX", - "type": "expression" - }, - { - "description": "Explosion direction Y", - "name": "ExplosionDirectionY", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "Play the explosion animation and destroy itself.", - "fullName": "Explosion animator", - "name": "ExplosionAnimator", - "objectType": "Sprite", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The animation frame rate can only be constant. So, the animation is split to make the last frame last." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationEnded" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenter\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenterEnding\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArm\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArmEnding\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFinger\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFingerEnding\"" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationEnded" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenterEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArmEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFingerEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "BombExplosion::ExplosionAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "", - "extensionNamespace": "", - "fullName": "", - "helpPath": "", - "iconUrl": "", - "name": "Player", - "previewIconUrl": "", - "shortDescription": "", - "version": "", - "description": "", - "tags": [], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Create a bonus at specified position.", - "fullName": "Create bonus", - "functionType": "Action", - "name": "CreateBonus", - "sentence": "Create _PARAM1_ of type _PARAM4_ at position _PARAM2_ ; _PARAM3_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Bonus", - "GetArgumentAsNumber(\"PositionX\")", - "GetArgumentAsNumber(\"PositionY\")", - "" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Bonus", - "=", - "Bonus.Y() + 10" - ] - }, - { - "type": { - "value": "ChangeHeight" - }, - "parameters": [ - "Bonus", - "=", - "48" - ] - }, - { - "type": { - "value": "ChangeWidth" - }, - "parameters": [ - "Bonus", - "=", - "48" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Bonus", - "=", - "GetArgumentAsNumber(\"Type\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Bonus", - "name": "Bonus", - "supplementaryInformation": "Sprite", - "type": "objectList" - }, - { - "description": "X position", - "name": "PositionX", - "type": "expression" - }, - { - "description": "Y position", - "name": "PositionY", - "type": "expression" - }, - { - "description": "Bonus type", - "name": "Type", - "supplementaryInformation": "[]", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "A player that picks up bonuses to become more powerful.", - "fullName": "Player", - "name": "Player", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Player::Player::ResetPowers" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Player::Player", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Pick up a bonus and gain powers.", - "fullName": "Pick up bonus", - "functionType": "Action", - "name": "PickUpBonus", - "sentence": "_PARAM0_ pick up _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Bonus", - "\"BombBonus\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "BombCapacity", - "+", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Bonus", - "\"FlameBonus\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Range", - "+", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The structure Bonus of the Player allow to keep up the bonuses caught by the player and their location so they can be set back when he dies." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "newIndex", - "=", - "Object.VariableChildCount(Bonus)" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Bonus[VariableString(newIndex)][\"Number\"]", - "=", - "Bonus.Animation()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Bonus[VariableString(newIndex)][\"X\"]", - "=", - "Bonus.X()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Bonus[VariableString(newIndex)][\"Y\"]", - "=", - "Bonus.Y()" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Bonus", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Player::Player", - "type": "behavior" - }, - { - "description": "Bonus", - "name": "Bonus", - "supplementaryInformation": "Sprite", - "type": "objectList" - } - ], - "objectGroups": [] - }, - { - "description": "The bonus accumulated by the dead player come back to their initial locations.", - "fullName": "Give back all bonuses", - "functionType": "Action", - "name": "GiveBackBonuses", - "sentence": "_PARAM0_ give back all _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Player::Player::ResetPowers" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "iteration", - "=", - "0" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Repeat", - "repeatExpression": "Object.VariableChildCount(Bonus)", - "conditions": [], - "actions": [ - { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Object.Variable(Bonus[ToString(Variable(iteration))][\"X\"])", - "Object.Variable(Bonus[ToString(Variable(iteration))][\"Y\"])", - "Object.Variable(Bonus[ToString(Variable(iteration))][\"Number\"])", - "" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "iteration", - "+", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ObjectVariableClearChildren" - }, - "parameters": [ - "Object", - "Bonus" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Player::Player", - "type": "behavior" - }, - { - "description": "Bonus", - "name": "Bonus", - "supplementaryInformation": "Sprite", - "type": "objectList" - } - ], - "objectGroups": [] - }, - { - "fullName": "Reset powers", - "functionType": "Action", - "name": "ResetPowers", - "private": true, - "sentence": "Reset powers of _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Range", - "=", - "GlobalVariable(Flame)" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "BombCapacity", - "=", - "GlobalVariable(Bomb)" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Player::Player", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - } - ], - "externalLayouts": [ - { - "associatedLayout": "Game", - "name": "EmptyLevel", - "instances": [ - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "7d1c7157-fd69-4749-b573-4e4539880c28", - "width": 48, - "x": 384, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Player1", - "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", - "width": 48, - "x": 720, - "y": 528, - "zOrder": 4, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "58cfe16e-a34a-4efc-8507-21ea4e90d963", - "width": 48, - "x": 288, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "6b9a3b3f-0ae4-4e6c-a125-4ad687bdd090", - "width": 48, - "x": 384, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "14d2f3bc-ff05-46db-9685-486509a64632", - "width": 48, - "x": 288, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "b66eb171-4f48-40da-982f-067c5fb0dc3f", - "width": 48, - "x": 480, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "30bae1c1-27ee-4603-9376-3b70ce1dd0b1", - "width": 48, - "x": 480, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2ea8f2fd-3c88-4a63-9186-3e784d9c898d", - "width": 48, - "x": 480, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "4db75a83-cf1f-4935-9282-327e260b6826", - "width": 48, - "x": 384, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "6fc77e65-7e68-4fec-9d84-845619700d04", - "width": 48, - "x": 288, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "66ab9bba-67fa-45c8-92dc-b14b30f5e16c", - "width": 48, - "x": 96, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "752172d6-a7a4-4ac6-88ea-c09f9df89d69", - "width": 48, - "x": 96, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "3172b443-37df-413a-bc38-e76c98098d76", - "width": 48, - "x": 192, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "a46f2e21-7713-4b6c-a19e-74758ae95dee", - "width": 48, - "x": 192, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "d4870add-5d34-458a-b71b-3547405a5a9e", - "width": 48, - "x": 192, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2d693e24-af10-4a7d-a061-8aa00cc02933", - "width": 48, - "x": 96, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "angle": 0, + "customSize": true, + "height": 120, + "layer": "", + "name": "PlayerX2", + "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", + "width": 120, + "x": 288, + "y": 192, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 48, + "customSize": true, + "height": 120, "layer": "", - "name": "Wall", - "persistentUuid": "28f18d97-1264-46ba-a773-213e00174ed0", - "width": 48, - "x": 384, + "name": "PlayerX3", + "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", + "width": 120, + "x": 468, "y": 192, - "zOrder": 0, + "zOrder": 20, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 48, + "customSize": true, + "height": 120, "layer": "", - "name": "Wall", - "persistentUuid": "e87c969b-2139-4962-95a7-1ce0d6b15703", - "width": 48, - "x": 288, + "name": "PlayerX4", + "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", + "width": 120, + "x": 648, "y": 192, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "5c55b57c-f739-44ee-a958-b4ae3ad3333f", - "width": 48, - "x": 384, - "y": 96, - "zOrder": 0, + "zOrder": 20, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -23894,14 +4603,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "b214a93a-8993-4b74-86f4-b9bcc5f1a90a", - "width": 48, + "name": "ClassicLevel", + "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", + "width": 0, "x": 288, - "y": 96, - "zOrder": 0, + "y": 360, + "zOrder": 4, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -23909,43 +4618,43 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "0df3165f-cb8e-4739-a6ae-d8a4d913222e", - "width": 48, - "x": 480, - "y": 96, - "zOrder": 0, + "name": "EmptyLevel", + "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", + "width": 0, + "x": 564, + "y": 360, + "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 48, + "customSize": true, + "height": 72, "layer": "", - "name": "Wall", - "persistentUuid": "a737afc5-512f-4cd5-9eba-ece0b60515da", - "width": 48, - "x": 480, - "y": 192, - "zOrder": 0, + "name": "Message", + "persistentUuid": "102af169-1519-4d29-8d02-fdb4dd10ed38", + "width": 528, + "x": 288, + "y": 48, + "zOrder": 6, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 48, + "customSize": true, + "height": 120, "layer": "", - "name": "Wall", - "persistentUuid": "262f1617-ed16-4812-9df0-5c7f22d20ae1", - "width": 48, - "x": 96, - "y": 192, + "name": "Bubble", + "persistentUuid": "dc4421a9-d865-4d35-b679-d0ea94864f69", + "width": 528, + "x": 264, + "y": 24, "zOrder": 0, "numberProperties": [], "stringProperties": [], @@ -23954,14 +4663,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "89b0437a-01b7-4b1c-9aab-09bd14e73f60", - "width": 48, - "x": 96, - "y": 96, - "zOrder": 0, + "name": "Arrow", + "persistentUuid": "1b867022-f84c-498a-87ee-b8cf9aed916b", + "width": 0, + "x": 264, + "y": 144, + "zOrder": 7, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -23969,14 +4678,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "85a155af-c258-4c72-8644-d15de504164d", - "width": 48, - "x": 192, - "y": 96, - "zOrder": 0, + "name": "Narrator", + "persistentUuid": "8c98d64d-ae30-43d0-8756-61f3be3dc933", + "width": 0, + "x": -24, + "y": 144, + "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -23984,14 +4693,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "4d9b98b6-ccea-485c-8582-6d18ec85aeb1", - "width": 48, - "x": 192, - "y": 192, - "zOrder": 0, + "name": "Goose1", + "persistentUuid": "84f0fccf-dfbf-41ad-816b-22107bae2126", + "width": 0, + "x": 312, + "y": 240, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -23999,14 +4708,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "3a2cb06e-cb43-49ad-9318-a6c2977723de", - "width": 48, - "x": 672, - "y": 480, - "zOrder": 0, + "name": "Goose1", + "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", + "width": 0, + "x": 660, + "y": 240, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24014,14 +4723,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e45a735b-c0ff-4aec-80ed-3827a69b1876", - "width": 48, - "x": 576, - "y": 480, - "zOrder": 0, + "name": "Goose1", + "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", + "width": 0, + "x": 480, + "y": 240, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24029,14 +4738,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "874b3cd9-2aa6-456e-b24a-6af8015ddfc8", - "width": 48, - "x": 672, - "y": 384, - "zOrder": 0, + "name": "Goose2", + "persistentUuid": "d6379345-b3b8-49f9-a5f2-2d2d860acbc2", + "width": 0, + "x": 324, + "y": 228, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24044,14 +4753,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e9fc51dd-fa8f-4983-89f6-fea6bdad9f54", - "width": 48, - "x": 576, - "y": 384, - "zOrder": 0, + "name": "Goose2", + "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", + "width": 0, + "x": 492, + "y": 228, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24059,14 +4768,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "a39da3f5-8812-43de-8aad-8a31f18d44c9", - "width": 48, + "name": "Goose2", + "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", + "width": 0, "x": 672, - "y": 288, - "zOrder": 0, + "y": 228, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24074,14 +4783,14 @@ { "angle": 0, "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "f7205604-c930-4ae7-b0be-ca6cd35ef247", - "width": 48, - "x": 576, - "y": 288, - "zOrder": 0, + "height": 0, + "layer": "", + "name": "Goose3", + "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", + "width": 0, + "x": 504, + "y": 216, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24089,14 +4798,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "29295d67-390d-4cb5-b85f-b13309c22ea1", - "width": 48, - "x": 672, - "y": 192, - "zOrder": 0, + "name": "Goose3", + "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", + "width": 0, + "x": 684, + "y": 216, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -24104,951 +4813,18669 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "4a368537-4fa7-450b-9f6d-1b8141e32b05", - "width": 48, - "x": 576, - "y": 192, - "zOrder": 0, + "name": "Goose4", + "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", + "width": 0, + "x": 696, + "y": 204, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, + "customSize": true, "height": 48, "layer": "", - "name": "Wall", - "persistentUuid": "eb3c8657-38ad-4ff9-b5d3-5734e345b268", - "width": 48, - "x": 672, - "y": 96, - "zOrder": 0, + "name": "Controls", + "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", + "width": 480, + "x": 288, + "y": 552, + "zOrder": 21, "numberProperties": [], "stringProperties": [], "initialVariables": [] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "PlayerX4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "4P", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JoueurSelectionMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ClassicLevel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Name", + "type": "string", + "value": "ClassicLevel" + }, + { + "name": "Bomb", + "type": "string", + "value": "1" + }, + { + "name": "Flame", + "type": "string", + "value": "2" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "NiveauClassique.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "EmptyLevel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "Name", + "type": "string", + "value": "EmptyLevel" + }, + { + "name": "Bomb", + "type": "string", + "value": "4" + }, + { + "name": "Flame", + "type": "string", + "value": "6" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "NiveauVide.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "f71a4afd-1e64-4fc1-9796-64746ecc44ee", - "width": 48, - "x": 576, - "y": 96, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Message", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Bla, bla.\nBla, bla.", + "font": "", + "textAlignment": "", + "characterSize": 32, + "color": { + "b": 0, + "g": 0, + "r": 0 + } }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Player2", - "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", - "width": 48, - "x": 48, - "y": 48, - "zOrder": 5, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bubble", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bulle.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Player3", - "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", - "width": 48, - "x": 48, - "y": 528, - "zOrder": 9, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Arrow", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Fleche.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Player4", - "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", - "width": 48, - "x": 720, - "y": 48, - "zOrder": 10, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Narrator", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieGrand.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "63cd7cdb-5924-4742-9588-02d8f6bf299b", - "width": 48, - "x": 0, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose1", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieBlancheDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "e78ba022-908e-4a47-bd07-ef7cd13e8a34", - "width": 48, - "x": 0, - "y": 48, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieGriseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2686060d-bfdc-42b9-b0dd-65064c632499", - "width": 48, - "x": 0, - "y": 528, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "d3671486-2042-463e-b177-de09b55f4ecc", - "width": 48, - "x": 0, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Goose4", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieRoseDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "8b2836ac-9845-4508-a2c4-4ee111b51b62", - "width": 48, - "x": 0, - "y": 432, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Controls", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "arrows and RShift - ESDF and LShift - IJKL and H - 8456 and 0\nor gamepads", + "font": "", + "textAlignment": "", + "characterSize": 16, + "color": { + "b": 66, + "g": 61, + "r": 41 + } + } + ], + "events": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "fd7778a6-a9cf-4e3f-b69d-6ff846be2187", - "width": 48, - "x": 0, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Players count selection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "2" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX2" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX2", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "2" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX2" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX3", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX4", + "" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX3", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "3" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX2", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX3" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX4", + "" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX2", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX4", + "=", + "127" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayerX4", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "PlayerCount", + "=", + "4" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX2", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerX3", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerX4" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX2", + "=", + "127" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "PlayerX3", + "=", + "127" + ] + } + ] + } + ], + "parameters": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "62fd00b4-3840-4543-86a5-9c7d993b0a29", - "width": 48, - "x": 0, - "y": 336, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Level selection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Level", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobalTxt" + }, + "parameters": [ + "Level", + "=", + "Level.VariableString(Name)" + ] + }, + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Bomb", + "=", + "Level.Variable(Bomb)" + ] + }, + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Flame", + "=", + "Level.Variable(Flame)" + ] + }, + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ] + } + ] + } + ], + "parameters": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "4189ed2f-ee50-4b25-a006-a7cbac218d54", - "width": 48, - "x": 0, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Bubble messages", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Message" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Narrator", + "", + "", + "" + ] + }, + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Bubble", + "", + "", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "", + "10", + "\"ChangeBuble\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Message" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Bubble" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Arrow" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + }, + { + "type": { + "value": "UnPauseTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "", + "1", + "\"ShowBuble\"" + ] + }, + { + "type": { + "inverted": true, + "value": "TimerPaused" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Message", + "=", + "VariableString(Messages[ToString(RandomInRange(0, VariableChildCount(Messages) - 1))])" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Message", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Bubble", + "" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Arrow", + "" + ] + }, + { + "type": { + "value": "PauseTimer" + }, + "parameters": [ + "", + "\"ShowBuble\"" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"ChangeBuble\"" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "NeedToChangeMessage", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ], + "layers": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2d1ad764-f474-4fd5-82f2-2452fc2c8d26", - "width": 48, - "x": 0, - "y": 240, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "ambientLightColorB": 8099672, + "ambientLightColorG": 8127688, + "ambientLightColorR": 8867392, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + } + ], + "behaviorsSharedData": [] + } + ], + "externalEvents": [ + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Check explosion collision", + "events": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "c87ade20-b472-4775-a50b-f8ccbbb0fbf4", - "width": 48, - "x": 0, - "y": 192, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Wall", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "45754109-64de-4d48-8176-67a176194afa", - "width": 48, - "x": 0, - "y": 144, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Crate", + "", + "", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Random bonus creation" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "RandomInRange(1,4)", + "<=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "0465c1ea-62e3-4190-b5b9-c53782e49f73", - "width": 48, - "x": 0, - "y": 96, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "6cf8e2f2-7075-4b22-80b0-bca37161801e", - "width": 48, - "x": 0, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "5a2170c6-ad30-4073-9d6b-a2c381c2f5a9", - "width": 48, - "x": 768, - "y": 48, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "698e9ea3-52fe-434b-b5f9-0eb2487c3840", - "width": 48, - "x": 768, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "3D particle emitter (experimental)", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZpcmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTcuNjYgMTEuMkMxNy40MyAxMC45IDE3LjE1IDEwLjY0IDE2Ljg5IDEwLjM4QzE2LjIyIDkuNzggMTUuNDYgOS4zNSAxNC44MiA4LjcyQzEzLjMzIDcuMjYgMTMgNC44NSAxMy45NSAzQzEzIDMuMjMgMTIuMTcgMy43NSAxMS40NiA0LjMyQzguODcgNi40IDcuODUgMTAuMDcgOS4wNyAxMy4yMkM5LjExIDEzLjMyIDkuMTUgMTMuNDIgOS4xNSAxMy41NUM5LjE1IDEzLjc3IDkgMTMuOTcgOC44IDE0LjA1QzguNTcgMTQuMTUgOC4zMyAxNC4wOSA4LjE0IDEzLjkzQzguMDggMTMuODggOC4wNCAxMy44MyA4IDEzLjc2QzYuODcgMTIuMzMgNi42OSAxMC4yOCA3LjQ1IDguNjRDNS43OCAxMCA0Ljg3IDEyLjMgNSAxNC40N0M1LjA2IDE0Ljk3IDUuMTIgMTUuNDcgNS4yOSAxNS45N0M1LjQzIDE2LjU3IDUuNyAxNy4xNyA2IDE3LjdDNy4wOCAxOS40MyA4Ljk1IDIwLjY3IDEwLjk2IDIwLjkyQzEzLjEgMjEuMTkgMTUuMzkgMjAuOCAxNy4wMyAxOS4zMkMxOC44NiAxNy42NiAxOS41IDE1IDE4LjU2IDEyLjcyTDE4LjQzIDEyLjQ2QzE4LjIyIDEyIDE3LjY2IDExLjIgMTcuNjYgMTEuMk0xNC41IDE3LjVDMTQuMjIgMTcuNzQgMTMuNzYgMTggMTMuNCAxOC4xQzEyLjI4IDE4LjUgMTEuMTYgMTcuOTQgMTAuNSAxNy4yOEMxMS42OSAxNyAxMi40IDE2LjEyIDEyLjYxIDE1LjIzQzEyLjc4IDE0LjQzIDEyLjQ2IDEzLjc3IDEyLjMzIDEzQzEyLjIxIDEyLjI2IDEyLjIzIDExLjYzIDEyLjUgMTAuOTRDMTIuNjkgMTEuMzIgMTIuODkgMTEuNyAxMy4xMyAxMkMxMy45IDEzIDE1LjExIDEzLjQ0IDE1LjM3IDE0LjhDMTUuNDEgMTQuOTQgMTUuNDMgMTUuMDggMTUuNDMgMTUuMjNDMTUuNDYgMTYuMDUgMTUuMSAxNi45NSAxNC41IDE3LjVIMTQuNVoiIC8+PC9zdmc+", + "name": "ParticleEmitter3D", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", + "shortDescription": "Display a large number of particles to create visual effects.", + "version": "0.0.1", + "description": [ + "Particle emitters can be used to display:", + "- Fire", + "- Smoke", + "- Splashes", + "- Lights" + ], + "origin": { + "identifier": "ParticleEmitter3D", + "name": "gdevelop-extension-store" + }, + "tags": [ + "3d", + "particle", + "explosion", + "fire", + "smoke", + "splash", + "light" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "d9328c21-30d1-493e-8d06-00c9a09f7d00", - "width": 48, - "x": 768, - "y": 96, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Define helper classes JavaScript code.", + "fullName": "Define helper classes", + "functionType": "Action", + "name": "DefineHelperClasses", + "private": true, + "sentence": "Define helper classes JavaScript code", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GlobalVariableAsBoolean" + }, + "parameters": [ + "_ParticleEmmiter3DExtension_ClassesDefined", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetGlobalVariableAsBoolean" + }, + "parameters": [ + "_ParticleEmmiter3DExtension_ClassesDefined", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "gdjs.__particleEmmiter3DExtension = gdjs.__particleEmmiter3DExtension || {};", + "", + "/**", + " * @param {string} colorString", + " * @param {THREE.Vector4} threeColor", + " */", + "const setThreeColor = (colorString, threeColor = new THREE.Vector4()) => {", + " const integerColor = gdjs.rgbOrHexToRGBColor(colorString);", + " threeColor.x = integerColor[0] / 255;", + " threeColor.y = integerColor[1] / 255;", + " threeColor.z = integerColor[2] / 255;", + "};", + "", + "/**", + " * @param {string} integerOpacity", + " * @param {THREE.Vector4} threeColor", + " */", + "const setThreeOpacity = (integerOpacity, threeColor = new THREE.Vector4()) => {", + " threeColor.w = integerOpacity / 255;", + "};", + "", + "class ParticleEmitterAdapter {", + " /**", + " * @param particleSystem {ParticleSystem}", + " * @param colorOverLife {ColorOverLife}", + " * @param sizeOverLife {SizeOverLife}", + " * @param applyForce {ApplyForce}", + " */", + " constructor(particleSystem, colorOverLife, sizeOverLife, applyForce) {", + " this.particleSystem = particleSystem;", + " this.colorOverLife = colorOverLife;", + " this.sizeOverLife = sizeOverLife;", + " this.applyForce = applyForce;", + " }", + "", + " /**", + " * @param startColor {string}", + " */", + " setStartColor(startColor) {", + " setThreeColor(startColor, this.colorOverLife.color.a);", + " }", + "", + " /**", + " * @param endColor {string}", + " */", + " setEndColor(endColor) {", + " setThreeColor(endColor, this.colorOverLife.color.b);", + " }", + "", + " /**", + " * @param startOpacity {number}", + " */", + " setStartOpacity(startOpacity) {", + " setThreeOpacity(startOpacity, this.colorOverLife.color.a);", + " }", + "", + " /**", + " * @param endOpacity {number}", + " */", + " setEndOpacity(endOpacity) {", + " setThreeOpacity(endOpacity, this.colorOverLife.color.b);", + " }", + "", + " /**", + " * @param flow {number}", + " */", + " setFlow(flow) {", + " this.particleSystem.emissionOverTime.value = flow;", + " }", + "", + " /**", + " * @param startMinSize {number}", + " */", + " setStartMinSize(startMinSize) {", + " this.particleSystem.startSize.a = startMinSize;", + " }", + "", + " /**", + " * @param startMaxSize {number}", + " */", + " setStartMaxSize(startMaxSize) {", + " this.particleSystem.startSize.b = startMaxSize;", + " }", + "", + " /**", + " * @param endScale {number}", + " */", + " setEndScale(endScale) {", + " /** @type Bezier */", + " const bezier = this.sizeOverLife.functions[0];", + " bezier.p[0] = 1;", + " bezier.p[1] = gdjs.evtTools.common.lerp(1, endScale, 1 / 3);", + " bezier.p[2] = gdjs.evtTools.common.lerp(1, endScale, 2 / 3);", + " bezier.p[3] = endScale;", + " }", + "", + " /**", + " * @param startSpeedMin {number}", + " */", + " setStartSpeedMin(startSpeedMin) {", + " this.particleSystem.startSpeed.a = startSpeedMin;", + " }", + "", + " /**", + " * @param startSpeedMax {number}", + " */", + " setStartSpeedMax(startSpeedMax) {", + " this.particleSystem.startSpeed.b = startSpeedMax;", + " }", + "", + " /**", + " * @param lifespanMin {number}", + " */", + " setLifespanMin(lifespanMin) {", + " this.particleSystem.startLife.a = lifespanMin;", + " }", + "", + " /**", + " * @param lifespanMax {number}", + " */", + " setLifespanMax(lifespanMax) {", + " this.particleSystem.startLife.b = lifespanMax;", + " }", + "", + " /**", + " * @param duration {number}", + " */", + " setDuration(duration) {", + " this.particleSystem.duration = duration || Number.POSITIVE_INFINITY;", + " }", + "", + " /**", + " * @param areParticlesRelative {boolean}", + " */", + " setParticlesRelative(areParticlesRelative) {", + " this.particleSystem.worldSpace = !areParticlesRelative;", + " }", + "", + " /**", + " * @param sprayConeAngle {number}", + " */", + " setSprayConeAngle(sprayConeAngle) {", + " if (0 < sprayConeAngle && sprayConeAngle <= 180) {", + " if (!this.particleSystem.emitterShape.angle) {", + " this.particleSystem.emitterShape = new ConeEmitter({ radius: 0.1, angle: Math.PI / 8 });", + " }", + " this.particleSystem.emitterShape.angle = sprayConeAngle * Math.PI / 180;", + " }", + " else {", + " if (this.particleSystem.emitterShape.angle) {", + " this.particleSystem.emitterShape = new PointEmitter();", + " }", + " }", + " }", + "", + " /**", + " * @param blending {string}", + " */", + " setBlending(blendingString) {", + " const blending =", + " blendingString === \"Additive\" ? THREE.AdditiveBlending :", + " blendingString === \"Normal\" ? THREE.NormalBlending :", + " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", + " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", + " blendingString === \"None\" ? THREE.NoBlending :", + " THREE.AdditiveBlending;", + " // TODO This doesn't work.", + " this.particleSystem.blending = blending;", + " }", + " ", + " /**", + " * @param gravity {number}", + " */", + " setGravity(gravity) {", + " this.applyForce.magnitude.value = gravity;", + " }", + " ", + " /**", + " * @param gravityTop {string}", + " */", + " setGravityTop(gravityTop) {", + " // TODO Make gravity absolute even when \"relative\" is enabled. ", + " switch (gravityTop) {", + " case \"Z+\":", + " this.applyForce.direction.set(0, 0, -1);", + " break;", + "", + " case \"Y-\":", + " this.applyForce.direction.set(0, 1, 0);", + " break;", + " }", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter = ParticleEmitterAdapter;", + "", + "/**", + " * three.quarks v0.10.3 build Fri Jul 28 2023", + " * https://github.com/Alchemist0823/three.quarks#readme", + " * Copyright 2023 Alchemist0823 , MIT", + " */", + "class ParticleEmitter extends THREE.Object3D {", + " //interleavedBuffer: InterleavedBuffer;", + " constructor(system) {", + " super();", + " this.type = \"ParticleEmitter\";", + " this.system = system;", + " // this.visible = false;", + " // TODO: implement boundingVolume", + " }", + " clone() {", + " const system = this.system.clone();", + " system.emitter.copy(this, true);", + " return system.emitter;", + " }", + " dispose() {", + " }", + " // extract data from the cache hash", + " // remove metadata on each item", + " // and return as array", + " extractFromCache(cache) {", + " const values = [];", + " for (const key in cache) {", + " const data = cache[key];", + " delete data.metadata;", + " values.push(data);", + " }", + " return values;", + " }", + " toJSON(meta, options = {}) {", + " // meta is a string when called from JSON.stringify", + " const isRootObject = (meta === undefined || typeof meta === 'string');", + " const output = {};", + " // meta is a hash used to collect geometries, materials.", + " // not providing it implies that this is the root object", + " // being serialized.", + " if (isRootObject) {", + " // initialize meta obj", + " meta = {", + " geometries: {},", + " materials: {},", + " textures: {},", + " images: {},", + " shapes: {},", + " skeletons: {},", + " animations: {},", + " nodes: {}", + " };", + " output.metadata = {", + " version: 4.5,", + " type: 'Object',", + " generator: 'Object3D.toJSON'", + " };", + " }", + " // standard Object3D serialization", + " const object = {};", + " object.uuid = this.uuid;", + " object.type = this.type;", + " if (this.name !== '')", + " object.name = this.name;", + " if (this.castShadow === true)", + " object.castShadow = true;", + " if (this.receiveShadow === true)", + " object.receiveShadow = true;", + " if (this.visible === false)", + " object.visible = false;", + " if (this.frustumCulled === false)", + " object.frustumCulled = false;", + " if (this.renderOrder !== 0)", + " object.renderOrder = this.renderOrder;", + " if (JSON.stringify(this.userData) !== '{}')", + " object.userData = this.userData;", + " object.layers = this.layers.mask;", + " object.matrix = this.matrix.toArray();", + " if (this.matrixAutoUpdate === false)", + " object.matrixAutoUpdate = false;", + " // object specific properties", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " if (this.system !== null)", + " object.ps = this.system.toJSON(meta, options);", + " if (this.children.length > 0) {", + " object.children = [];", + " for (let i = 0; i < this.children.length; i++) {", + " if (this.children[i].type !== \"ParticleSystemPreview\") {", + " object.children.push(this.children[i].toJSON(meta).object);", + " }", + " }", + " }", + " if (isRootObject) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const geometries = this.extractFromCache(meta.geometries);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const materials = this.extractFromCache(meta.materials);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const textures = this.extractFromCache(meta.textures);", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const images = this.extractFromCache(meta.images);", + " if (geometries.length > 0)", + " output.geometries = geometries;", + " if (materials.length > 0)", + " output.materials = materials;", + " if (textures.length > 0)", + " output.textures = textures;", + " if (images.length > 0)", + " output.images = images;", + " }", + " output.object = object;", + " return output;", + " }", + "}", + "", + "class LinkedListNode {", + " constructor(data) {", + " this.data = data;", + " this.next = null;", + " this.prev = null;", + " }", + " hasPrev() {", + " return this.prev !== null;", + " }", + " hasNext() {", + " return this.next !== null;", + " }", + "}", + "class LinkedList {", + " constructor() {", + " this.length = 0;", + " this.head = this.tail = null;", + " }", + " isEmpty() {", + " return this.head === null;", + " }", + " clear() {", + " this.length = 0;", + " this.head = this.tail = null;", + " }", + " front() {", + " if (this.head === null)", + " return null;", + " return this.head.data;", + " }", + " back() {", + " if (this.tail === null)", + " return null;", + " return this.tail.data;", + " }", + " /**", + " * remove at head in O(1)", + " */", + " dequeue() {", + " if (this.head) {", + " const value = this.head.data;", + " this.head = this.head.next;", + " if (!this.head) {", + " this.tail = null;", + " }", + " else {", + " this.head.prev = null;", + " }", + " this.length--;", + " return value;", + " }", + " return undefined;", + " }", + " /**", + " * remove at tail in O(1)", + " */", + " pop() {", + " if (this.tail) {", + " const value = this.tail.data;", + " this.tail = this.tail.prev;", + " if (!this.tail) {", + " this.head = null;", + " }", + " else {", + " this.tail.next = null;", + " }", + " this.length--;", + " return value;", + " }", + " return undefined;", + " }", + " /**", + " * add at head in O(1)", + " */", + " queue(data) {", + " const node = new LinkedListNode(data);", + " if (!this.tail) {", + " this.tail = node;", + " }", + " if (this.head) {", + " this.head.prev = node;", + " node.next = this.head;", + " }", + " this.head = node;", + " this.length++;", + " }", + " /**", + " * add at tail in O(1)", + " */", + " push(data) {", + " const node = new LinkedListNode(data);", + " if (!this.head) {", + " this.head = node;", + " }", + " if (this.tail) {", + " this.tail.next = node;", + " node.prev = this.tail;", + " }", + " this.tail = node;", + " this.length++;", + " }", + " insertBefore(node, data) {", + " const newNode = new LinkedListNode(data);", + " newNode.next = node;", + " newNode.prev = node.prev;", + " if (newNode.prev !== null) {", + " newNode.prev.next = newNode;", + " }", + " newNode.next.prev = newNode;", + " if (node == this.head) {", + " this.head = newNode;", + " }", + " this.length++;", + " }", + " remove(data) {", + " if (this.head === null || this.tail === null) {", + " return;", + " }", + " let tempNode = this.head;", + " if (data === this.head.data) {", + " this.head = this.head.next;", + " }", + " if (data === this.tail.data) {", + " this.tail = this.tail.prev;", + " }", + " while (tempNode.next !== null && tempNode.data !== data) {", + " tempNode = tempNode.next;", + " }", + " if (tempNode.data === data) {", + " if (tempNode.prev !== null)", + " tempNode.prev.next = tempNode.next;", + " if (tempNode.next !== null)", + " tempNode.next.prev = tempNode.prev;", + " this.length--;", + " }", + " }", + " /**", + " * Returns an iterator over the values", + " */", + " *values() {", + " let current = this.head;", + " while (current !== null) {", + " yield current.data;", + " current = current.next;", + " }", + " }", + "}", + "", + "class SpriteParticle {", + " constructor() {", + " // CPU", + " this.startSpeed = 0;", + " this.startColor = new THREE.Vector4();", + " this.startSize = 1;", + " this.position = new THREE.Vector3();", + " this.velocity = new THREE.Vector3();", + " this.age = 0;", + " this.life = 1;", + " this.size = 1;", + " // GPU", + " this.rotation = 0;", + " this.color = new THREE.Vector4();", + " this.uvTile = 0;", + " }", + " get died() {", + " return this.age >= this.life;", + " }", + "}", + "class RecordState {", + " constructor(position, size, color) {", + " this.position = position;", + " this.size = size;", + " this.color = color;", + " }", + "}", + "class TrailParticle {", + " constructor() {", + " this.startSpeed = 0;", + " this.startColor = new THREE.Vector4();", + " this.startSize = 1;", + " this.position = new THREE.Vector3();", + " this.velocity = new THREE.Vector3();", + " this.age = 0;", + " this.life = 1;", + " this.size = 1;", + " this.length = 100;", + " // GPU", + " this.color = new THREE.Vector4();", + " // use link list instead", + " this.previous = new LinkedList();", + " this.uvTile = 0;", + " }", + " update() {", + " if (this.age <= this.life) {", + " this.previous.push(new RecordState(this.position.clone(), this.size, this.color.clone()));", + " }", + " else {", + " if (this.previous.length > 0) {", + " this.previous.dequeue();", + " }", + " }", + " while (this.previous.length > this.length) {", + " this.previous.dequeue();", + " }", + " }", + " get died() {", + " return this.age >= this.life;", + " }", + " reset() {", + " this.previous.clear();", + " }", + "}", + "", + "class ConstantValue {", + " constructor(value) {", + " this.value = value;", + " this.type = 'value';", + " }", + " genValue() {", + " return this.value;", + " }", + " toJSON() {", + " return {", + " type: \"ConstantValue\",", + " value: this.value", + " };", + " }", + " static fromJSON(json) {", + " return new ConstantValue(json.value);", + " }", + " clone() {", + " return new ConstantValue(this.value);", + " }", + "}", + "", + "class IntervalValue {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"value\";", + " }", + " genValue() {", + " return THREE.MathUtils.lerp(this.a, this.b, Math.random());", + " }", + " toJSON() {", + " return {", + " type: \"IntervalValue\",", + " a: this.a,", + " b: this.b,", + " };", + " }", + " static fromJSON(json) {", + " return new IntervalValue(json.a, json.b);", + " }", + " clone() {", + " return new IntervalValue(this.a, this.b);", + " }", + "}", + "", + "class PiecewiseFunction {", + " constructor() {", + " this.functions = new Array();", + " }", + " findFunction(t) {", + " let mid = 0;", + " let left = 0, right = this.functions.length - 1;", + " while (left + 1 < right) {", + " mid = Math.floor((left + right) / 2);", + " if (t < this.getStartX(mid))", + " right = mid - 1;", + " else if (t > this.getEndX(mid))", + " left = mid + 1;", + " else", + " return mid;", + " }", + " for (let i = left; i <= right; i++) {", + " if (t >= this.functions[i][1] && t <= this.getEndX(i))", + " return i;", + " }", + " return -1;", + " }", + " getStartX(index) {", + " return this.functions[index][1];", + " }", + " setStartX(index, x) {", + " if (index > 0)", + " this.functions[index][1] = x;", + " }", + " getEndX(index) {", + " if (index + 1 < this.functions.length)", + " return this.functions[index + 1][1];", + " return 1;", + " }", + " setEndX(index, x) {", + " if (index + 1 < this.functions.length)", + " this.functions[index + 1][1] = x;", + " }", + " insertFunction(t, func) {", + " const index = this.findFunction(t);", + " this.functions.splice(index + 1, 0, [func, t]);", + " }", + " removeFunction(index) {", + " return this.functions.splice(index, 1)[0][0];", + " }", + " getFunction(index) {", + " return this.functions[index][0];", + " }", + " setFunction(index, func) {", + " this.functions[index][0] = func;", + " }", + " get numOfFunctions() {", + " return this.functions.length;", + " }", + "}", + "", + "class Bezier {", + " constructor(p1, p2, p3, p4) {", + " this.p = [p1, p2, p3, p4];", + " }", + " genValue(t) {", + " const t2 = t * t;", + " const t3 = t * t * t;", + " const mt = 1 - t;", + " const mt2 = mt * mt;", + " const mt3 = mt2 * mt;", + " return this.p[0] * mt3 + this.p[1] * mt2 * t * 3 + this.p[2] * mt * t2 * 3 + this.p[3] * t3;", + " }", + " // get the coefficients of the polynomial's derivatives", + " derivativeCoefficients(points) {", + " const dpoints = [];", + " for (let p = points, c = p.length - 1; c > 0; c--) {", + " const list = [];", + " for (let j = 0; j < c; j++) {", + " const dpt = c * (p[j + 1] - p[j]);", + " list.push(dpt);", + " }", + " dpoints.push(list);", + " p = list;", + " }", + " return dpoints;", + " }", + " // calculate the slope", + " getSlope(t) {", + " const p = this.derivativeCoefficients(this.p)[0];", + " const mt = 1 - t;", + " const a = mt * mt;", + " const b = mt * t * 2;", + " const c = t * t;", + " return a * p[0] + b * p[1] + c * p[2];", + " //return a * (p[1] - p[0]) * 3 + b * (p[2] - p[1]) * 3 + c * (p[3] - p[2]) * 3;", + " }", + " // derivative(0) = (p[1] - p[0]) * 3", + " // derivative(1) = (p[3] - p[2]) * 3", + " controlCurve(d0, d1) {", + " this.p[1] = d0 / 3 + this.p[0];", + " this.p[2] = this.p[3] - d1 / 3;", + " }", + " hull(t) {", + " let p = this.p;", + " let _p = [], pt, idx = 0, i = 0, l = 0;", + " const q = [];", + " q[idx++] = p[0];", + " q[idx++] = p[1];", + " q[idx++] = p[2];", + " q[idx++] = p[3];", + " // we lerp between all points at each iteration, until we have 1 point left.", + " while (p.length > 1) {", + " _p = [];", + " for (i = 0, l = p.length - 1; i < l; i++) {", + " pt = t * p[i] + (1 - t) * p[i + 1];", + " q[idx++] = pt;", + " _p.push(pt);", + " }", + " p = _p;", + " }", + " return q;", + " }", + " split(t) {", + " // no shortcut: use \"de Casteljau\" iteration.", + " const q = this.hull(t);", + " const result = {", + " left: new Bezier(q[0], q[4], q[7], q[9]),", + " right: new Bezier(q[9], q[8], q[6], q[3]),", + " span: q", + " };", + " return result;", + " }", + " clone() {", + " return new Bezier(this.p[0], this.p[1], this.p[2], this.p[3]);", + " }", + " toJSON() {", + " return {", + " p0: this.p[0],", + " p1: this.p[1],", + " p2: this.p[2],", + " p3: this.p[3],", + " };", + " }", + " static fromJSON(json) {", + " return new Bezier(json.p0, json.p1, json.p2, json.p3);", + " }", + "}", + "", + "class PiecewiseBezier extends PiecewiseFunction {", + " // default linear bezier", + " constructor(curves = [[new Bezier(0, 1.0 / 3, 1.0 / 3 * 2, 1), 0]]) {", + " super();", + " this.type = \"function\";", + " this.functions = curves;", + " }", + " genValue(t = 0) {", + " const index = this.findFunction(t);", + " if (index === -1) {", + " return 0;", + " }", + " return this.functions[index][0].genValue((t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", + " }", + " toSVG(length, segments) {", + " if (segments < 1)", + " return \"\";", + " let result = [\"M\", 0, this.functions[0][0].p[0]].join(\" \");", + " for (let i = 1.0 / segments; i <= 1; i += 1.0 / segments) {", + " result = [result, \"L\", i * length, this.genValue(i)].join(\" \");", + " }", + " return result;", + " }", + " toJSON() {", + " return {", + " type: \"PiecewiseBezier\",", + " functions: this.functions.map(([bezier, start]) => ({ function: bezier.toJSON(), start: start })),", + " };", + " }", + " static fromJSON(json) {", + " return new PiecewiseBezier(json.functions.map((piecewiseFunction) => ([Bezier.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", + " }", + " clone() {", + " return new PiecewiseBezier(this.functions.map(([bezier, start]) => ([bezier.clone(), start])));", + " }", + "}", + "", + "function ValueGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantValue':", + " return ConstantValue.fromJSON(json);", + " case 'IntervalValue':", + " return IntervalValue.fromJSON(json);", + " case 'PiecewiseBezier':", + " return PiecewiseBezier.fromJSON(json);", + " default:", + " return new ConstantValue(0);", + " }", + "}", + "", + "const ColorToJSON = (color) => {", + " return { r: color.x, g: color.y, b: color.z, a: color.w };", + "};", + "const JSONToColor = (json) => {", + " return new THREE.Vector4(json.r, json.g, json.b, json.a);", + "};", + "", + "class RandomColor {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"value\";", + " }", + " genColor(color) {", + " const rand = Math.random();", + " return color.copy(this.a).lerp(this.b, rand);", + " }", + " toJSON() {", + " return {", + " type: \"RandomColor\",", + " a: ColorToJSON(this.a),", + " b: ColorToJSON(this.b),", + " };", + " }", + " static fromJSON(json) {", + " return new RandomColor(JSONToColor(json.a), JSONToColor(json.b));", + " }", + " clone() {", + " return new RandomColor(this.a.clone(), this.b.clone());", + " }", + "}", + "", + "class ColorRange {", + " constructor(a, b) {", + " this.a = a;", + " this.b = b;", + " this.type = \"function\";", + " }", + " genColor(color, t) {", + " return color.copy(this.a).lerp(this.b, t);", + " }", + " toJSON() {", + " return {", + " type: \"ColorRange\",", + " a: ColorToJSON(this.a),", + " b: ColorToJSON(this.b),", + " };", + " }", + " static fromJSON(json) {", + " return new ColorRange(JSONToColor(json.a), JSONToColor(json.b));", + " }", + " clone() {", + " return new ColorRange(this.a.clone(), this.b.clone());", + " }", + "}", + "", + "class Gradient extends PiecewiseFunction {", + " // default linear bezier", + " constructor(functions = [[new ColorRange(new THREE.Vector4(0, 0, 0, 1), new THREE.Vector4(1, 1, 1, 1)), 0]]) {", + " super();", + " this.type = \"function\";", + " this.functions = functions;", + " }", + " genColor(color, t) {", + " const index = this.findFunction(t);", + " if (index === -1) {", + " return color.copy(this.functions[0][0].a);", + " }", + " return this.getFunction(index).genColor(color, (t - this.getStartX(index)) / (this.getEndX(index) - this.getStartX(index)));", + " }", + " toJSON() {", + " return {", + " type: \"Gradient\",", + " functions: this.functions.map(([range, start]) => ({ function: range.toJSON(), start: start })),", + " };", + " }", + " static fromJSON(json) {", + " return new Gradient(json.functions.map((piecewiseFunction) => ([ColorRange.fromJSON(piecewiseFunction.function), piecewiseFunction.start])));", + " }", + " clone() {", + " return new Gradient(this.functions.map(([range, start]) => ([range.clone(), start])));", + " }", + "}", + "", + "const tempColor = new THREE.Vector4();", + "// generate a random color from the start two gradients", + "class RandomColorBetweenGradient {", + " constructor(gradient1, gradient2) {", + " this.type = 'memorizedFunction';", + " this.gradient1 = gradient1;", + " this.gradient2 = gradient2;", + " }", + " startGen(memory) {", + " memory.rand = Math.random();", + " }", + " genColor(color, t, memory) {", + " this.gradient1.genColor(color, t);", + " this.gradient2.genColor(tempColor, t);", + " color.lerp(tempColor, memory.rand);", + " return color;", + " }", + " toJSON() {", + " return {", + " type: 'RandomColorBetweenGradient',", + " gradient1: this.gradient1.toJSON(),", + " gradient2: this.gradient2.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new RandomColorBetweenGradient(Gradient.fromJSON(json.gradient1), Gradient.fromJSON(json.gradient2));", + " }", + " clone() {", + " return new RandomColorBetweenGradient(this.gradient1.clone(), this.gradient2.clone());", + " }", + "}", + "", + "class ConstantColor {", + " constructor(color) {", + " this.color = color;", + " this.type = 'value';", + " }", + " genColor(color) {", + " return color.copy(this.color);", + " }", + " toJSON() {", + " return {", + " type: 'ConstantColor',", + " color: ColorToJSON(this.color),", + " };", + " }", + " static fromJSON(json) {", + " return new ConstantColor(JSONToColor(json.color));", + " }", + " clone() {", + " return new ConstantColor(this.color.clone());", + " }", + "}", + "function ColorGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantColor':", + " return ConstantColor.fromJSON(json);", + " case 'ColorRange':", + " return ColorRange.fromJSON(json);", + " case 'RandomColor':", + " return RandomColor.fromJSON(json);", + " case 'Gradient':", + " return Gradient.fromJSON(json);", + " case 'RandomColorBetweenGradient':", + " return RandomColorBetweenGradient.fromJSON(json);", + " default:", + " return new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", + " }", + "}", + "", + "class RandomQuatGenerator {", + " constructor() {", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " let x, y, z, u, v, w;", + " do {", + " x = Math.random() * 2 - 1;", + " y = Math.random() * 2 - 1;", + " z = x * x + y * y;", + " } while (z > 1);", + " do {", + " u = Math.random() * 2 - 1;", + " v = Math.random() * 2 - 1;", + " w = u * u + v * v;", + " } while (w > 1);", + " const s = Math.sqrt((1 - z) / w);", + " quat.set(x, y, s * u, s * v);", + " return quat;", + " }", + " toJSON() {", + " return {", + " type: \"RandomQuat\"", + " };", + " }", + " static fromJSON(json) {", + " return new RandomQuatGenerator();", + " }", + " clone() {", + " return new RandomQuatGenerator();", + " }", + "}", + "", + "class AxisAngleGenerator {", + " constructor(axis, angle) {", + " this.axis = axis;", + " this.angle = angle;", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " return quat.setFromAxisAngle(this.axis, this.angle.genValue(t));", + " }", + " toJSON() {", + " return {", + " type: \"AxisAngle\",", + " axis: { x: this.axis.x, y: this.axis.y, z: this.axis.z },", + " angle: this.angle.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new AxisAngleGenerator(json.axis, ValueGeneratorFromJSON(json.angle));", + " }", + " clone() {", + " return new AxisAngleGenerator(this.axis.clone(), this.angle.clone());", + " }", + "}", + "", + "class EulerGenerator {", + " constructor(angleX, angleY, angleZ) {", + " this.angleX = angleX;", + " this.angleY = angleY;", + " this.angleZ = angleZ;", + " this.type = \"rotation\";", + " }", + " genValue(quat, t) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " return quat.setFromEuler(new THREE.Euler(this.angleX.genValue(t), this.angleY.genValue(t), this.angleZ.genValue(t)));", + " }", + " toJSON() {", + " return {", + " type: \"Euler\",", + " angleX: this.angleX.toJSON(),", + " angleY: this.angleY.toJSON(),", + " angleZ: this.angleZ.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new EulerGenerator(ValueGeneratorFromJSON(json.angleX), ValueGeneratorFromJSON(json.angleY), ValueGeneratorFromJSON(json.angleZ));", + " }", + " clone() {", + " return new EulerGenerator(this.angleX, this.angleY, this.angleZ);", + " }", + "}", + "", + "function RotationGeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'AxisAngle':", + " return AxisAngleGenerator.fromJSON(json);", + " case 'Euler':", + " return EulerGenerator.fromJSON(json);", + " case 'RandomQuat':", + " return RandomQuatGenerator.fromJSON(json);", + " default:", + " return new RandomQuatGenerator();", + " }", + "}", + "", + "function GeneratorFromJSON(json) {", + " switch (json.type) {", + " case 'ConstantValue':", + " case 'IntervalValue':", + " case 'PiecewiseBezier':", + " return ValueGeneratorFromJSON(json);", + " case 'AxisAngle':", + " case 'RandomQuat':", + " case 'Euler':", + " return RotationGeneratorFromJSON(json);", + " default:", + " return new ConstantValue(0);", + " }", + "}", + "", + "class ColorOverLife {", + " constructor(color) {", + " this.color = color;", + " this.type = 'ColorOverLife';", + " }", + " initialize(particle) {", + " if (this.color.type === 'memorizedFunction') {", + " particle.colorOverLifeMemory = {};", + " this.color.startGen(particle.colorOverLifeMemory);", + " }", + " }", + " update(particle, delta) {", + " if (this.color.type === 'memorizedFunction') {", + " this.color.genColor(particle.color, particle.age / particle.life, particle.colorOverLifeMemory);", + " }", + " else {", + " this.color.genColor(particle.color, particle.age / particle.life);", + " }", + " particle.color.x *= particle.startColor.x;", + " particle.color.y *= particle.startColor.y;", + " particle.color.z *= particle.startColor.z;", + " particle.color.w *= particle.startColor.w;", + " }", + " frameUpdate(delta) { }", + " toJSON() {", + " return {", + " type: this.type,", + " color: this.color.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ColorOverLife(ColorGeneratorFromJSON(json.color));", + " }", + " clone() {", + " return new ColorOverLife(this.color.clone());", + " }", + " reset() { }", + "}", + "", + "class RotationOverLife {", + " constructor(angularVelocity, dynamic) {", + " this.angularVelocity = angularVelocity;", + " this.dynamic = dynamic;", + " this.type = 'RotationOverLife';", + " this.tempQuat = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " if (!this.dynamic && particle instanceof SpriteParticle) {", + " particle.angularVelocity = this.angularVelocity.genValue();", + " }", + " }", + " update(particle, delta) {", + " if (!this.dynamic) {", + " if (particle instanceof SpriteParticle) {", + " particle.rotation += delta * particle.angularVelocity;", + " }", + " }", + " else {", + " particle.rotation += delta * this.angularVelocity.genValue(particle.age / particle.life);", + " }", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angularVelocity: this.angularVelocity.toJSON(),", + " dynamic: this.dynamic,", + " };", + " }", + " static fromJSON(json) {", + " return new RotationOverLife(ValueGeneratorFromJSON(json.angularVelocity), json.dynamic);", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new RotationOverLife(this.angularVelocity.clone(), this.dynamic);", + " }", + " reset() {", + " }", + "}", + "", + "class SizeOverLife {", + " initialize(particle) {", + " }", + " constructor(size) {", + " this.size = size;", + " this.type = 'SizeOverLife';", + " }", + " update(particle) {", + " particle.size = particle.startSize * this.size.genValue(particle.age / particle.life);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " size: this.size.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new SizeOverLife(ValueGeneratorFromJSON(json.size));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new SizeOverLife(this.size.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class SpeedOverLife {", + " initialize(particle) {", + " }", + " constructor(speed) {", + " this.speed = speed;", + " this.type = 'SpeedOverLife';", + " }", + " update(particle) {", + " particle.velocity.normalize().multiplyScalar(particle.startSpeed * this.speed.genValue(particle.age / particle.life));", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " speed: this.speed.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new SpeedOverLife(ValueGeneratorFromJSON(json.speed));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new SpeedOverLife(this.speed.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class FrameOverLife {", + " constructor(frame) {", + " this.frame = frame;", + " this.type = 'FrameOverLife';", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " particle.uvTile = Math.floor(this.frame.genValue(particle.age / particle.life));", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " frame: this.frame.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new FrameOverLife(ValueGeneratorFromJSON(json.frame));", + " }", + " clone() {", + " return new FrameOverLife(this.frame.clone());", + " }", + " reset() {", + " }", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class OrbitOverLife {", + " constructor(orbitSpeed, axis = new THREE.Vector3(0, 1, 0)) {", + " this.orbitSpeed = orbitSpeed;", + " this.axis = axis;", + " this.type = 'OrbitOverLife';", + " this.temp = new THREE.Vector3();", + " this.rotation = new THREE.Quaternion();", + " this.line = new THREE.Line3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " this.line.set(new THREE.Vector3(0, 0, 0), this.axis);", + " this.line.closestPointToPoint(particle.position, false, this.temp);", + " this.rotation.setFromAxisAngle(this.axis, this.orbitSpeed.genValue(particle.age / particle.life) * delta);", + " particle.position.sub(this.temp);", + " particle.position.applyQuaternion(this.rotation);", + " particle.position.add(this.temp);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " orbitSpeed: this.orbitSpeed.toJSON(),", + " axis: [this.axis.x, this.axis.y, this.axis.z],", + " };", + " }", + " static fromJSON(json) {", + " return new OrbitOverLife(ValueGeneratorFromJSON(json.orbitSpeed), json.axis ? new THREE.Vector3(json.axis[0], json.axis[1], json.axis[2]) : undefined);", + " }", + " clone() {", + " return new OrbitOverLife(this.orbitSpeed.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class ApplyForce {", + " constructor(direction, magnitude) {", + " this.direction = direction;", + " this.magnitude = magnitude;", + " this.type = 'ApplyForce';", + " this.magnitudeValue = this.magnitude.genValue();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " particle.velocity.addScaledVector(this.direction, this.magnitudeValue * delta);", + " }", + " frameUpdate(delta) {", + " this.magnitudeValue = this.magnitude.genValue();", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " direction: [this.direction.x, this.direction.y, this.direction.z],", + " magnitude: this.magnitude.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " var _a;", + " return new ApplyForce(new THREE.Vector3(json.direction[0], json.direction[1], json.direction[2]), ValueGeneratorFromJSON((_a = json.magnitude) !== null && _a !== void 0 ? _a : json.force));", + " }", + " clone() {", + " return new ApplyForce(this.direction.clone(), this.magnitude.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class GravityForce {", + " constructor(center, magnitude) {", + " this.center = center;", + " this.magnitude = magnitude;", + " this.type = 'GravityForce';", + " this.temp = new THREE.Vector3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " this.temp.copy(this.center).sub(particle.position).normalize();", + " particle.velocity.addScaledVector(this.temp, this.magnitude / particle.position.distanceToSquared(this.center) * delta);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " center: [this.center.x, this.center.y, this.center.z],", + " magnitude: this.magnitude,", + " };", + " }", + " static fromJSON(json) {", + " return new GravityForce(new THREE.Vector3(json.center[0], json.center[1], json.center[2]), json.magnitude);", + " }", + " clone() {", + " return new GravityForce(this.center.clone(), this.magnitude);", + " }", + " reset() {", + " }", + "}", + "", + "class WidthOverLength {", + " initialize(particle) {", + " }", + " constructor(width) {", + " this.width = width;", + " this.type = 'WidthOverLength';", + " }", + " update(particle) {", + " if (particle instanceof TrailParticle) {", + " const iter = particle.previous.values();", + " for (let i = 0; i < particle.previous.length; i++) {", + " const cur = iter.next();", + " cur.value.size = this.width.genValue((particle.previous.length - i) / particle.length);", + " }", + " }", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " width: this.width.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new WidthOverLength(ValueGeneratorFromJSON(json.width));", + " }", + " clone() {", + " return new WidthOverLength(this.width.clone());", + " }", + " reset() {", + " }", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class ChangeEmitDirection {", + " constructor(angle) {", + " this.angle = angle;", + " this.type = 'ChangeEmitDirection';", + " this._temp = new THREE.Vector3();", + " this._q = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " const len = particle.velocity.length();", + " if (len == 0)", + " return;", + " particle.velocity.normalize();", + " if (particle.velocity.x === 0 && particle.velocity.y === 0) {", + " this._temp.set(0, particle.velocity.z, 0);", + " }", + " else {", + " this._temp.set(-particle.velocity.y, particle.velocity.x, 0);", + " }", + " this._q.setFromAxisAngle(this._temp.normalize(), this.angle.genValue());", + " this._temp.copy(particle.velocity);", + " particle.velocity.applyQuaternion(this._q);", + " this._q.setFromAxisAngle(this._temp, Math.random() * Math.PI * 2);", + " particle.velocity.applyQuaternion(this._q);", + " particle.velocity.setLength(len);", + " }", + " update(particle, delta) {", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angle: this.angle.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ChangeEmitDirection(ValueGeneratorFromJSON(json.angle));", + " }", + " clone() {", + " return new ChangeEmitDirection(this.angle);", + " }", + " reset() {", + " }", + "}", + "", + "const VECTOR_ONE = new THREE.Vector3(1, 1, 1);", + "const VECTOR_Z = new THREE.Vector3(0, 0, 1);", + "class EmitSubParticleSystem {", + " constructor(particleSystem, useVelocityAsBasis, subParticleSystem) {", + " this.particleSystem = particleSystem;", + " this.useVelocityAsBasis = useVelocityAsBasis;", + " this.subParticleSystem = subParticleSystem;", + " this.type = \"EmitSubParticleSystem\";", + " //private matrix_ = new Matrix4();", + " this.q_ = new THREE.Quaternion();", + " this.v_ = new THREE.Vector3();", + " this.v2_ = new THREE.Vector3();", + " if (this.subParticleSystem && this.subParticleSystem.system) {", + " this.subParticleSystem.system.onlyUsedByOther = true;", + " }", + " }", + " initialize(particle) {", + " particle.emissionState = {", + " burstIndex: 0,", + " burstWaveIndex: 0,", + " time: 0,", + " waitEmiting: 0,", + " matrix: new THREE.Matrix4(),", + " };", + " }", + " update(particle, delta) {", + " if (!this.subParticleSystem || !particle.emissionState)", + " return;", + " const m = particle.emissionState.matrix;", + " let rotation;", + " if (particle.rotation === undefined || this.useVelocityAsBasis) {", + " if (particle.velocity.x === 0 && particle.velocity.y === 0 && (particle.velocity.z === 1 || particle.velocity.z === 0)) {", + " m.set(1, 0, 0, particle.position.x, 0, 1, 0, particle.position.y, 0, 0, 1, particle.position.z, 0, 0, 0, 1);", + " }", + " else {", + " this.v_.copy(VECTOR_Z).cross(particle.velocity);", + " this.v2_.copy(particle.velocity).cross(this.v_);", + " const len = this.v_.length();", + " const len2 = this.v2_.length();", + " m.set(this.v_.x / len, this.v2_.x / len2, particle.velocity.x, particle.position.x, this.v_.y / len, this.v2_.y / len2, particle.velocity.y, particle.position.y, this.v_.z / len, this.v2_.z / len2, particle.velocity.z, particle.position.z, 0, 0, 0, 1);", + " }", + " }", + " else {", + " if (particle.rotation instanceof THREE.Quaternion) {", + " rotation = particle.rotation;", + " }", + " else {", + " this.q_.setFromAxisAngle(VECTOR_Z, particle.rotation);", + " rotation = this.q_;", + " }", + " m.compose(particle.position, rotation, VECTOR_ONE);", + " }", + " if (!this.particleSystem.worldSpace) {", + " m.multiplyMatrices(this.particleSystem.emitter.matrixWorld, m);", + " }", + " this.subParticleSystem.system.emit(delta, particle.emissionState, m);", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " subParticleSystem: this.subParticleSystem ? this.subParticleSystem.uuid : \"\",", + " useVelocityAsBasis: this.useVelocityAsBasis", + " };", + " }", + " static fromJSON(json, particleSystem) {", + " return new EmitSubParticleSystem(particleSystem, json.useVelocityAsBasis, json.subParticleSystem);", + " }", + " clone() {", + " return new EmitSubParticleSystem(this.particleSystem, this.useVelocityAsBasis, this.subParticleSystem);", + " }", + " reset() {", + " }", + "}", + "", + "/*", + " * A fast javascript implementation of simplex noise by Jonas Wagner", + "Based on a speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.", + "Which is based on example code by Stefan Gustavson (stegu@itn.liu.se).", + "With Optimisations by Peter Eastman (peastman@drizzle.stanford.edu).", + "Better rank ordering method by Stefan Gustavson in 2012.", + " Copyright (c) 2021 Jonas Wagner", + " Permission is hereby granted, free of charge, to any person obtaining a copy", + " of this software and associated documentation files (the \"Software\"), to deal", + " in the Software without restriction, including without limitation the rights", + " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", + " copies of the Software, and to permit persons to whom the Software is", + " furnished to do so, subject to the following conditions:", + " The above copyright notice and this permission notice shall be included in all", + " copies or substantial portions of the Software.", + " THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", + " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", + " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", + " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", + " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", + " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE", + " SOFTWARE.", + " */", + "const F2 = 0.5 * (Math.sqrt(3.0) - 1.0);", + "const G2 = (3.0 - Math.sqrt(3.0)) / 6.0;", + "const F3 = 1.0 / 3.0;", + "const G3 = 1.0 / 6.0;", + "const F4 = (Math.sqrt(5.0) - 1.0) / 4.0;", + "const G4 = (5.0 - Math.sqrt(5.0)) / 20.0;", + "const grad3 = new Float32Array([1, 1, 0,", + " -1, 1, 0,", + " 1, -1, 0,", + " -1, -1, 0,", + " 1, 0, 1,", + " -1, 0, 1,", + " 1, 0, -1,", + " -1, 0, -1,", + " 0, 1, 1,", + " 0, -1, 1,", + " 0, 1, -1,", + " 0, -1, -1]);", + "const grad4 = new Float32Array([0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1,", + " 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1,", + " 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1,", + " -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1,", + " 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1,", + " -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1,", + " 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0,", + " -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0]);", + "/** Deterministic simplex noise generator suitable for 2D, 3D and 4D spaces. */", + "class SimplexNoise {", + " /**", + " * Creates a new `SimplexNoise` instance.", + " * This involves some setup. You can save a few cpu cycles by reusing the same instance.", + " * @param randomOrSeed A random number generator or a seed (string|number).", + " * Defaults to Math.random (random irreproducible initialization).", + " */", + " constructor(randomOrSeed = Math.random) {", + " const random = typeof randomOrSeed == 'function' ? randomOrSeed : alea(randomOrSeed);", + " this.p = buildPermutationTable(random);", + " this.perm = new Uint8Array(512);", + " this.permMod12 = new Uint8Array(512);", + " for (let i = 0; i < 512; i++) {", + " this.perm[i] = this.p[i & 255];", + " this.permMod12[i] = this.perm[i] % 12;", + " }", + " }", + " /**", + " * Samples the noise field in 2 dimensions", + " * @param x", + " * @param y", + " * @returns a number in the interval [-1, 1]", + " */", + " noise2D(x, y) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0 = 0; // Noise contributions from the three corners", + " let n1 = 0;", + " let n2 = 0;", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y) * F2; // Hairy factor for 2D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const t = (i + j) * G2;", + " const X0 = i - t; // Unskew the cell origin back to (x,y) space", + " const Y0 = j - t;", + " const x0 = x - X0; // The x,y distances from the cell origin", + " const y0 = y - Y0;", + " // For the 2D case, the simplex shape is an equilateral triangle.", + " // Determine which simplex we are in.", + " let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords", + " if (x0 > y0) {", + " i1 = 1;", + " j1 = 0;", + " } // lower triangle, XY order: (0,0)->(1,0)->(1,1)", + " else {", + " i1 = 0;", + " j1 = 1;", + " } // upper triangle, YX order: (0,0)->(0,1)->(1,1)", + " // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and", + " // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where", + " // c = (3-sqrt(3))/6", + " const x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords", + " const y1 = y0 - j1 + G2;", + " const x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) unskewed coords", + " const y2 = y0 - 1.0 + 2.0 * G2;", + " // Work out the hashed gradient indices of the three simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " // Calculate the contribution from the three corners", + " let t0 = 0.5 - x0 * x0 - y0 * y0;", + " if (t0 >= 0) {", + " const gi0 = permMod12[ii + perm[jj]] * 3;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad3[gi0] * x0 + grad3[gi0 + 1] * y0); // (x,y) of grad3 used for 2D gradient", + " }", + " let t1 = 0.5 - x1 * x1 - y1 * y1;", + " if (t1 >= 0) {", + " const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad3[gi1] * x1 + grad3[gi1 + 1] * y1);", + " }", + " let t2 = 0.5 - x2 * x2 - y2 * y2;", + " if (t2 >= 0) {", + " const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad3[gi2] * x2 + grad3[gi2 + 1] * y2);", + " }", + " // Add contributions from each corner to get the final noise value.", + " // The result is scaled to return values in the interval [-1,1].", + " return 70.0 * (n0 + n1 + n2);", + " }", + " /**", + " * Samples the noise field in 3 dimensions", + " * @param x", + " * @param y", + " * @param z", + " * @returns a number in the interval [-1, 1]", + " */", + " noise3D(x, y, z) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0, n1, n2, n3; // Noise contributions from the four corners", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y + z) * F3; // Very nice and simple skew factor for 3D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const k = Math.floor(z + s);", + " const t = (i + j + k) * G3;", + " const X0 = i - t; // Unskew the cell origin back to (x,y,z) space", + " const Y0 = j - t;", + " const Z0 = k - t;", + " const x0 = x - X0; // The x,y,z distances from the cell origin", + " const y0 = y - Y0;", + " const z0 = z - Z0;", + " // For the 3D case, the simplex shape is a slightly irregular tetrahedron.", + " // Determine which simplex we are in.", + " let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords", + " let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords", + " if (x0 >= y0) {", + " if (y0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 1;", + " k2 = 0;", + " } // X Y Z order", + " else if (x0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // X Z Y order", + " else {", + " i1 = 0;", + " j1 = 0;", + " k1 = 1;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // Z X Y order", + " }", + " else { // x0 y0)", + " rankx++;", + " else", + " ranky++;", + " if (x0 > z0)", + " rankx++;", + " else", + " rankz++;", + " if (x0 > w0)", + " rankx++;", + " else", + " rankw++;", + " if (y0 > z0)", + " ranky++;", + " else", + " rankz++;", + " if (y0 > w0)", + " ranky++;", + " else", + " rankw++;", + " if (z0 > w0)", + " rankz++;", + " else", + " rankw++;", + " // simplex[c] is a 4-vector with the numbers 0, 1, 2 and 3 in some order.", + " // Many values of c will never occur, since e.g. x>y>z>w makes x= 3 ? 1 : 0;", + " const j1 = ranky >= 3 ? 1 : 0;", + " const k1 = rankz >= 3 ? 1 : 0;", + " const l1 = rankw >= 3 ? 1 : 0;", + " // The integer offsets for the third simplex corner", + " const i2 = rankx >= 2 ? 1 : 0;", + " const j2 = ranky >= 2 ? 1 : 0;", + " const k2 = rankz >= 2 ? 1 : 0;", + " const l2 = rankw >= 2 ? 1 : 0;", + " // The integer offsets for the fourth simplex corner", + " const i3 = rankx >= 1 ? 1 : 0;", + " const j3 = ranky >= 1 ? 1 : 0;", + " const k3 = rankz >= 1 ? 1 : 0;", + " const l3 = rankw >= 1 ? 1 : 0;", + " // The fifth corner has all coordinate offsets = 1, so no need to compute that.", + " const x1 = x0 - i1 + G4; // Offsets for second corner in (x,y,z,w) coords", + " const y1 = y0 - j1 + G4;", + " const z1 = z0 - k1 + G4;", + " const w1 = w0 - l1 + G4;", + " const x2 = x0 - i2 + 2.0 * G4; // Offsets for third corner in (x,y,z,w) coords", + " const y2 = y0 - j2 + 2.0 * G4;", + " const z2 = z0 - k2 + 2.0 * G4;", + " const w2 = w0 - l2 + 2.0 * G4;", + " const x3 = x0 - i3 + 3.0 * G4; // Offsets for fourth corner in (x,y,z,w) coords", + " const y3 = y0 - j3 + 3.0 * G4;", + " const z3 = z0 - k3 + 3.0 * G4;", + " const w3 = w0 - l3 + 3.0 * G4;", + " const x4 = x0 - 1.0 + 4.0 * G4; // Offsets for last corner in (x,y,z,w) coords", + " const y4 = y0 - 1.0 + 4.0 * G4;", + " const z4 = z0 - 1.0 + 4.0 * G4;", + " const w4 = w0 - 1.0 + 4.0 * G4;", + " // Work out the hashed gradient indices of the five simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " const kk = k & 255;", + " const ll = l & 255;", + " // Calculate the contribution from the five corners", + " let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;", + " if (t0 < 0)", + " n0 = 0.0;", + " else {", + " const gi0 = (perm[ii + perm[jj + perm[kk + perm[ll]]]] % 32) * 4;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad4[gi0] * x0 + grad4[gi0 + 1] * y0 + grad4[gi0 + 2] * z0 + grad4[gi0 + 3] * w0);", + " }", + " let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;", + " if (t1 < 0)", + " n1 = 0.0;", + " else {", + " const gi1 = (perm[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] % 32) * 4;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad4[gi1] * x1 + grad4[gi1 + 1] * y1 + grad4[gi1 + 2] * z1 + grad4[gi1 + 3] * w1);", + " }", + " let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;", + " if (t2 < 0)", + " n2 = 0.0;", + " else {", + " const gi2 = (perm[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] % 32) * 4;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad4[gi2] * x2 + grad4[gi2 + 1] * y2 + grad4[gi2 + 2] * z2 + grad4[gi2 + 3] * w2);", + " }", + " let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;", + " if (t3 < 0)", + " n3 = 0.0;", + " else {", + " const gi3 = (perm[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] % 32) * 4;", + " t3 *= t3;", + " n3 = t3 * t3 * (grad4[gi3] * x3 + grad4[gi3 + 1] * y3 + grad4[gi3 + 2] * z3 + grad4[gi3 + 3] * w3);", + " }", + " let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;", + " if (t4 < 0)", + " n4 = 0.0;", + " else {", + " const gi4 = (perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32) * 4;", + " t4 *= t4;", + " n4 = t4 * t4 * (grad4[gi4] * x4 + grad4[gi4 + 1] * y4 + grad4[gi4 + 2] * z4 + grad4[gi4 + 3] * w4);", + " }", + " // Sum up and scale the result to cover the range [-1,1]", + " return 27.0 * (n0 + n1 + n2 + n3 + n4);", + " }", + "}", + "/**", + " * Builds a random permutation table.", + " * This is exported only for (internal) testing purposes.", + " * Do not rely on this export.", + " * @private", + " */", + "function buildPermutationTable(random) {", + " const p = new Uint8Array(256);", + " for (let i = 0; i < 256; i++) {", + " p[i] = i;", + " }", + " for (let i = 0; i < 255; i++) {", + " const r = i + ~~(random() * (256 - i));", + " const aux = p[i];", + " p[i] = p[r];", + " p[r] = aux;", + " }", + " return p;", + "}", + "/*", + "The ALEA PRNG and masher code used by simplex-noise.js", + "is based on code by Johannes Baagøe, modified by Jonas Wagner.", + "See alea.md for the full license.", + "*/", + "function alea(seed) {", + " let s0 = 0;", + " let s1 = 0;", + " let s2 = 0;", + " let c = 1;", + " const mash = masher();", + " s0 = mash(' ');", + " s1 = mash(' ');", + " s2 = mash(' ');", + " s0 -= mash(seed);", + " if (s0 < 0) {", + " s0 += 1;", + " }", + " s1 -= mash(seed);", + " if (s1 < 0) {", + " s1 += 1;", + " }", + " s2 -= mash(seed);", + " if (s2 < 0) {", + " s2 += 1;", + " }", + " return function () {", + " const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32", + " s0 = s1;", + " s1 = s2;", + " return s2 = t - (c = t | 0);", + " };", + "}", + "function masher() {", + " let n = 0xefc8249d;", + " return function (data) {", + " data = data.toString();", + " for (let i = 0; i < data.length; i++) {", + " n += data.charCodeAt(i);", + " let h = 0.02519603282416938 * n;", + " n = h >>> 0;", + " h -= n;", + " h *= n;", + " n = h >>> 0;", + " h -= n;", + " n += h * 0x100000000; // 2^32", + " }", + " return (n >>> 0) * 2.3283064365386963e-10; // 2^-32", + " };", + "}", + "", + "class TurbulenceField {", + " constructor(scale, octaves, velocityMultiplier, timeScale) {", + " this.scale = scale;", + " this.octaves = octaves;", + " this.velocityMultiplier = velocityMultiplier;", + " this.timeScale = timeScale;", + " this.type = 'TurbulenceField';", + " this.generator = new SimplexNoise();", + " this.timeOffset = new THREE.Vector3();", + " this.temp = new THREE.Vector3();", + " this.temp2 = new THREE.Vector3();", + " this.timeOffset.x = Math.random() / this.scale.x * this.timeScale.x;", + " this.timeOffset.y = Math.random() / this.scale.y * this.timeScale.y;", + " this.timeOffset.z = Math.random() / this.scale.z * this.timeScale.z;", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " const x = particle.position.x / this.scale.x;", + " const y = particle.position.y / this.scale.y;", + " const z = particle.position.z / this.scale.z;", + " this.temp.set(0, 0, 0);", + " let lvl = 1;", + " for (let i = 0; i < this.octaves; i++) {", + " this.temp2.set(this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.x * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.y * lvl) / lvl, this.generator.noise4D(x * lvl, y * lvl, z * lvl, this.timeOffset.z * lvl) / lvl);", + " this.temp.add(this.temp2);", + " lvl *= 2;", + " }", + " this.temp.multiply(this.velocityMultiplier);", + " particle.velocity.addScaledVector(this.temp, delta);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " scale: [this.scale.x, this.scale.y, this.scale.z],", + " octaves: this.octaves,", + " velocityMultiplier: [this.velocityMultiplier.x, this.velocityMultiplier.y, this.velocityMultiplier.z],", + " timeScale: [this.timeScale.x, this.timeScale.y, this.timeScale.z],", + " };", + " }", + " frameUpdate(delta) {", + " this.timeOffset.x += delta * this.timeScale.x;", + " this.timeOffset.y += delta * this.timeScale.y;", + " this.timeOffset.z += delta * this.timeScale.z;", + " }", + " static fromJSON(json) {", + " return new TurbulenceField(new THREE.Vector3(json.scale[0], json.scale[1], json.scale[2]), json.octaves, new THREE.Vector3(json.velocityMultiplier[0], json.velocityMultiplier[1], json.velocityMultiplier[2]), new THREE.Vector3(json.timeScale[0], json.timeScale[1], json.timeScale[2]));", + " }", + " clone() {", + " return new TurbulenceField(this.scale.clone(), this.octaves, this.velocityMultiplier.clone(), this.timeScale.clone());", + " }", + " reset() {", + " }", + "}", + "", + "const IdentityQuaternion = new THREE.Quaternion();", + "class Rotation3DOverLife {", + " constructor(angularVelocity, dynamic) {", + " this.angularVelocity = angularVelocity;", + " this.dynamic = dynamic;", + " this.type = 'Rotation3DOverLife';", + " this.tempQuat = new THREE.Quaternion();", + " }", + " initialize(particle) {", + " if (!this.dynamic && particle instanceof SpriteParticle) {", + " particle.angularVelocity = new THREE.Quaternion();", + " this.angularVelocity.genValue(particle.angularVelocity);", + " }", + " }", + " update(particle, delta) {", + " if (!this.dynamic) {", + " if (particle instanceof SpriteParticle) {", + " this.tempQuat.slerpQuaternions(IdentityQuaternion, particle.angularVelocity, delta);", + " particle.rotation.multiply(this.tempQuat);", + " }", + " }", + " else {", + " this.angularVelocity.genValue(this.tempQuat, particle.age / particle.life);", + " this.tempQuat.slerpQuaternions(IdentityQuaternion, this.tempQuat, delta);", + " particle.rotation.multiply(this.tempQuat);", + " }", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " angularVelocity: this.angularVelocity.toJSON(),", + " dynamic: this.dynamic,", + " };", + " }", + " static fromJSON(json) {", + " return new Rotation3DOverLife(RotationGeneratorFromJSON(json.angularVelocity), json.dynamic);", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new Rotation3DOverLife(this.angularVelocity.clone(), this.dynamic);", + " }", + " reset() {", + " }", + "}", + "", + "class ForceOverLife {", + " initialize(particle) {", + " }", + " constructor(x, y, z) {", + " this.x = x;", + " this.y = y;", + " this.z = z;", + " this.type = 'ForceOverLife';", + " this._temp = new THREE.Vector3();", + " }", + " update(particle) {", + " this._temp.set(this.x.genValue(particle.age / particle.life), this.y.genValue(particle.age / particle.life), this.z.genValue(particle.age / particle.life));", + " particle.velocity.add(this._temp);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " x: this.x.toJSON(),", + " y: this.y.toJSON(),", + " z: this.z.toJSON(),", + " };", + " }", + " static fromJSON(json) {", + " return new ForceOverLife(ValueGeneratorFromJSON(json.x), ValueGeneratorFromJSON(json.y), ValueGeneratorFromJSON(json.z));", + " }", + " frameUpdate(delta) {", + " }", + " clone() {", + " return new ForceOverLife(this.x.clone(), this.y.clone(), this.z.clone());", + " }", + " reset() {", + " }", + "}", + "", + "class Noise {", + " constructor(frequency, power) {", + " this.frequency = frequency;", + " this.power = power;", + " this.type = 'Noise';", + " this.generator = new SimplexNoise();", + " this.duration = 0;", + " this.temp = new THREE.Vector3();", + " }", + " initialize(particle) {", + " particle.startTime = this.duration;", + " }", + " update(particle, delta) {", + " this.temp.set(this.generator.noise2D(particle.startTime * this.frequency.x, particle.life / particle.age * this.frequency.x), this.generator.noise2D(particle.startTime * this.frequency.y + 100.25, particle.life / particle.age * this.frequency.y + 100.154), this.generator.noise2D(particle.startTime * this.frequency.z + 200.89, particle.life / particle.age * this.frequency.z + 200.1)).multiply(this.power);", + " particle.position.addScaledVector(this.temp, delta);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " frequency: [this.frequency.x, this.frequency.y, this.frequency.z],", + " power: [this.power.x, this.power.y, this.power.z],", + " };", + " }", + " frameUpdate(delta) {", + " this.duration += delta;", + " }", + " static fromJSON(json) {", + " return new Noise(new THREE.Vector3(json.frequency[0], json.frequency[1], json.frequency[2]), new THREE.Vector3(json.power[0], json.power[1], json.power[2]));", + " }", + " clone() {", + " return new Noise(this.frequency.clone(), this.power.clone());", + " }", + " reset() {", + " }", + "}", + "", + "const BehaviorTypes = {", + " \"ApplyForce\": { type: \"ApplyForce\", constructor: ApplyForce, params: [[\"direction\", \"vec3\"], [\"magnitude\", \"value\"]], loadJSON: ApplyForce.fromJSON },", + " \"Noise\": { type: \"Noise\", constructor: Noise, params: [[\"frequency\", \"vec3\"], [\"power\", \"vec3\"]], loadJSON: Noise.fromJSON },", + " \"TurbulenceField\": { type: \"TurbulenceField\", constructor: TurbulenceField, params: [[\"scale\", \"vec3\"], [\"octaves\", \"number\"], [\"velocityMultiplier\", \"vec3\"], [\"timeScale\", \"vec3\"]], loadJSON: TurbulenceField.fromJSON },", + " \"GravityForce\": { type: \"GravityForce\", constructor: GravityForce, params: [[\"center\", \"vec3\"], [\"magnitude\", \"number\"]], loadJSON: GravityForce.fromJSON },", + " \"ColorOverLife\": { type: \"ColorOverLife\", constructor: ColorOverLife, params: [[\"color\", \"colorFunc\"]], loadJSON: ColorOverLife.fromJSON },", + " \"RotationOverLife\": { type: \"RotationOverLife\", constructor: RotationOverLife, params: [[\"angularVelocity\", \"valueFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: RotationOverLife.fromJSON },", + " \"Rotation3DOverLife\": { type: \"Rotation3DOverLife\", constructor: Rotation3DOverLife, params: [[\"angularVelocity\", \"rotationFunc\"], [\"dynamic\", \"boolean\"]], loadJSON: Rotation3DOverLife.fromJSON },", + " \"SizeOverLife\": { type: \"SizeOverLife\", constructor: SizeOverLife, params: [[\"size\", \"valueFunc\"]], loadJSON: SizeOverLife.fromJSON },", + " \"SpeedOverLife\": { type: \"SpeedOverLife\", constructor: SpeedOverLife, params: [[\"speed\", \"valueFunc\"]], loadJSON: SpeedOverLife.fromJSON },", + " \"FrameOverLife\": { type: \"FrameOverLife\", constructor: FrameOverLife, params: [[\"frame\", \"valueFunc\"]], loadJSON: FrameOverLife.fromJSON },", + " \"ForceOverLife\": { type: \"ForceOverLife\", constructor: ForceOverLife, params: [[\"x\", \"valueFunc\"], [\"y\", \"valueFunc\"], [\"z\", \"valueFunc\"]], loadJSON: ForceOverLife.fromJSON },", + " \"OrbitOverLife\": { type: \"OrbitOverLife\", constructor: OrbitOverLife, params: [[\"orbitSpeed\", \"valueFunc\"], [\"axis\", \"vec3\"],], loadJSON: OrbitOverLife.fromJSON },", + " \"WidthOverLength\": { type: \"WidthOverLength\", constructor: WidthOverLength, params: [[\"width\", \"valueFunc\"]], loadJSON: WidthOverLength.fromJSON },", + " \"ChangeEmitDirection\": { type: \"ChangeEmitDirection\", constructor: ChangeEmitDirection, params: [[\"angle\", \"value\"]], loadJSON: ChangeEmitDirection.fromJSON },", + " \"EmitSubParticleSystem\": { type: \"EmitSubParticleSystem\", constructor: EmitSubParticleSystem, params: [[\"particleSystem\", \"self\"], ['useVelocityAsBasis', 'boolean'], [\"subParticleSystem\", \"particleSystem\"]], loadJSON: EmitSubParticleSystem.fromJSON },", + "};", + "function BehaviorFromJSON(json, particleSystem) {", + " return BehaviorTypes[json.type].loadJSON(json, particleSystem);", + "}", + "", + "class ConeEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"cone\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const r = Math.sqrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " p.position.x = r * cosTheta;", + " p.position.y = r * sinTheta;", + " p.position.z = 0;", + " const angle = this.angle * r;", + " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", + " //const v = Math.random();", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"cone\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " };", + " }", + " static fromJSON(json) {", + " return new ConeEmitter(json);", + " }", + " clone() {", + " return new ConeEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " });", + " }", + "}", + "", + "class DonutEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"donut\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " this.angle = (_d = parameters.angle) !== null && _d !== void 0 ? _d : Math.PI / 6;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const rand = THREE.MathUtils.lerp(this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const r = Math.sqrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " p.position.x = r * cosTheta;", + " p.position.y = r * sinTheta;", + " p.position.z = 0;", + " const angle = this.angle * r;", + " p.velocity.set(0, 0, Math.cos(angle)).addScaledVector(p.position, Math.sin(angle)).multiplyScalar(p.startSpeed);", + " //const v = Math.random();", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"donut\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle", + " };", + " }", + " static fromJSON(json) {", + " return new DonutEmitter(json);", + " }", + " clone() {", + " return new DonutEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " angle: this.angle,", + " });", + " }", + "}", + "", + "class PointEmitter {", + " constructor() {", + " this.type = \"point\";", + " }", + " initialize(p) {", + " const u = Math.random();", + " const v = Math.random();", + " const theta = u * Math.PI * 2;", + " const phi = Math.acos(2.0 * v - 1.0);", + " const r = Math.cbrt(Math.random());", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " const sinPhi = Math.sin(phi);", + " const cosPhi = Math.cos(phi);", + " p.velocity.x = r * sinPhi * cosTheta;", + " p.velocity.y = r * sinPhi * sinTheta;", + " p.velocity.z = r * cosPhi;", + " p.velocity.multiplyScalar(p.startSpeed);", + " p.position.setScalar(0);", + " }", + " toJSON() {", + " return {", + " type: 'point',", + " };", + " }", + " static fromJSON(json) {", + " return new PointEmitter();", + " }", + " clone() {", + " return new PointEmitter();", + " }", + "}", + "", + "class SphereEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c;", + " this.type = \"sphere\";", + " this.radius = (_a = parameters.radius) !== null && _a !== void 0 ? _a : 10;", + " this.arc = (_b = parameters.arc) !== null && _b !== void 0 ? _b : 2.0 * Math.PI;", + " this.thickness = (_c = parameters.thickness) !== null && _c !== void 0 ? _c : 1;", + " }", + " initialize(p) {", + " const u = Math.random();", + " const v = Math.random();", + " const rand = THREE.MathUtils.lerp(1 - this.thickness, 1, Math.random());", + " const theta = u * this.arc;", + " const phi = Math.acos(2.0 * v - 1.0);", + " const r = Math.cbrt(rand);", + " const sinTheta = Math.sin(theta);", + " const cosTheta = Math.cos(theta);", + " const sinPhi = Math.sin(phi);", + " const cosPhi = Math.cos(phi);", + " p.position.x = r * sinPhi * cosTheta;", + " p.position.y = r * sinPhi * sinTheta;", + " p.position.z = r * cosPhi;", + " p.velocity.setScalar(0).addScaledVector(p.position, p.startSpeed);", + " p.position.multiplyScalar(this.radius);", + " }", + " toJSON() {", + " return {", + " type: \"sphere\",", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " };", + " }", + " static fromJSON(json) {", + " return new SphereEmitter(json);", + " }", + " clone() {", + " return new SphereEmitter({", + " radius: this.radius,", + " arc: this.arc,", + " thickness: this.thickness,", + " });", + " }", + "}", + "", + "class MeshSurfaceEmitter {", + " get geometry() {", + " return this._geometry;", + " }", + " set geometry(geometry) {", + " this._geometry = geometry;", + " if (geometry === undefined) {", + " return;", + " }", + " if (typeof geometry === \"string\") {", + " return;", + " }", + " // optimization", + " /*if (mesh.userData.triangleIndexToArea) {", + " this._triangleIndexToArea = mesh.userData.triangleIndexToArea;", + " return;", + " }*/", + " const tri = new THREE.Triangle();", + " this._triangleIndexToArea.length = 0;", + " let area = 0;", + " if (!geometry.getIndex()) {", + " return;", + " }", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const array = geometry.getIndex().array;", + " const triCount = array.length / 3;", + " this._triangleIndexToArea.push(0);", + " for (let i = 0; i < triCount; i++) {", + " tri.setFromAttributeAndIndices(geometry.getAttribute(\"position\"), array[i * 3], array[i * 3 + 1], array[i * 3 + 2]);", + " area += tri.getArea();", + " this._triangleIndexToArea.push(area);", + " }", + " geometry.userData.triangleIndexToArea = this._triangleIndexToArea;", + " }", + " constructor(geometry) {", + " this.type = \"mesh_surface\";", + " this._triangleIndexToArea = [];", + " this._tempA = new THREE.Vector3();", + " this._tempB = new THREE.Vector3();", + " this._tempC = new THREE.Vector3();", + " if (!geometry) {", + " return;", + " }", + " this.geometry = geometry;", + " }", + " initialize(p) {", + " const geometry = this._geometry;", + " if (!geometry || geometry.getIndex() === null) {", + " p.position.set(0, 0, 0);", + " p.velocity.set(0, 0, 1).multiplyScalar(p.startSpeed);", + " return;", + " }", + " const triCount = this._triangleIndexToArea.length - 1;", + " let left = 0, right = triCount;", + " const target = Math.random() * this._triangleIndexToArea[triCount];", + " while (left + 1 < right) {", + " const mid = Math.floor((left + right) / 2);", + " if (target < this._triangleIndexToArea[mid]) {", + " right = mid;", + " }", + " else {", + " left = mid;", + " }", + " }", + " //const area = this._triangleIndexToArea[left + 1] - this._triangleIndexToArea[left];", + " //const percent = (target - this._triangleIndexToArea[left]) / area;", + " let u1 = Math.random();", + " let u2 = Math.random();", + " if (u1 + u2 > 1) {", + " u1 = 1 - u1;", + " u2 = 1 - u2;", + " }", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index1 = geometry.getIndex().array[left * 3];", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index2 = geometry.getIndex().array[left * 3 + 1];", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " const index3 = geometry.getIndex().array[left * 3 + 2];", + " const positionBuffer = geometry.getAttribute(\"position\");", + " this._tempA.fromBufferAttribute(positionBuffer, index1);", + " this._tempB.fromBufferAttribute(positionBuffer, index2);", + " this._tempC.fromBufferAttribute(positionBuffer, index3);", + " this._tempB.sub(this._tempA);", + " this._tempC.sub(this._tempA);", + " this._tempA.addScaledVector(this._tempB, u1).addScaledVector(this._tempC, u2);", + " p.position.copy(this._tempA);", + " // velocity based on tri normal", + " this._tempA.copy(this._tempB).cross(this._tempC).normalize();", + " p.velocity.copy(this._tempA).normalize().multiplyScalar(p.startSpeed);", + " /*p.position.applyMatrix4(this._mesh.matrixWorld);", + " p.velocity.applyMatrix3(this._mesh.normalMatrix);*/", + " }", + " toJSON() {", + " return {", + " type: 'mesh_surface',", + " mesh: this._geometry ? this._geometry.uuid : \"\",", + " };", + " }", + " static fromJSON(json, meta) {", + " return new MeshSurfaceEmitter(meta.geometries[json.geometry]);", + " }", + " clone() {", + " return new MeshSurfaceEmitter(this._geometry);", + " }", + "}", + "", + "class GridEmitter {", + " constructor(parameters = {}) {", + " var _a, _b, _c, _d;", + " this.type = \"grid\";", + " this.width = (_a = parameters.width) !== null && _a !== void 0 ? _a : 1;", + " this.height = (_b = parameters.height) !== null && _b !== void 0 ? _b : 1;", + " this.column = (_c = parameters.column) !== null && _c !== void 0 ? _c : 10;", + " this.row = (_d = parameters.row) !== null && _d !== void 0 ? _d : 10;", + " }", + " initialize(p) {", + " const r = Math.floor(Math.random() * this.row);", + " const c = Math.floor(Math.random() * this.column);", + " p.position.x = c * this.width / this.column - this.width / 2;", + " p.position.y = r * this.height / this.row - this.height / 2;", + " p.position.z = 0;", + " p.velocity.set(0, 0, p.startSpeed);", + " }", + " toJSON() {", + " return {", + " type: \"grid\",", + " width: this.width,", + " height: this.height,", + " column: this.column,", + " row: this.row,", + " };", + " }", + " static fromJSON(json) {", + " return new GridEmitter(json);", + " }", + " clone() {", + " return new GridEmitter({", + " width: this.width,", + " height: this.height,", + " column: this.column,", + " row: this.row,", + " });", + " }", + "}", + "", + "const EmitterShapes = {", + " \"cone\": { type: \"cone\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: ConeEmitter, loadJSON: ConeEmitter.fromJSON },", + " \"donut\": { type: \"donut\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: DonutEmitter, loadJSON: DonutEmitter.fromJSON },", + " \"point\": { type: \"point\", params: [], constructor: PointEmitter, loadJSON: PointEmitter.fromJSON },", + " \"sphere\": { type: \"sphere\", params: [[\"radius\", \"number\"], [\"arc\", \"radian\"], [\"thickness\", \"number\"], [\"angle\", \"radian\"]], constructor: SphereEmitter, loadJSON: SphereEmitter.fromJSON },", + " \"grid\": { type: \"grid\", params: [[\"width\", \"number\"], [\"height\", \"number\"], [\"rows\", \"number\"], [\"column\", \"number\"]], constructor: GridEmitter, loadJSON: GridEmitter.fromJSON },", + " \"mesh_surface\": { type: \"mesh_surface\", params: [[\"geometry\", \"geometry\"]], constructor: MeshSurfaceEmitter, loadJSON: MeshSurfaceEmitter.fromJSON },", + "};", + "function EmitterFromJSON(json, meta) {", + " return EmitterShapes[json.type].loadJSON(json, meta);", + "}", + "", + "(function (RenderMode) {", + " RenderMode[RenderMode[\"BillBoard\"] = 0] = \"BillBoard\";", + " RenderMode[RenderMode[\"StretchedBillBoard\"] = 1] = \"StretchedBillBoard\";", + " RenderMode[RenderMode[\"Mesh\"] = 2] = \"Mesh\";", + " RenderMode[RenderMode[\"Trail\"] = 3] = \"Trail\";", + "})(gdjs.__particleEmmiter3DExtension.RenderMode || (gdjs.__particleEmmiter3DExtension.RenderMode = {}));", + "", + "class VFXBatch extends THREE.Mesh {", + " constructor(settings) {", + " super();", + " this.type = \"VFXBatch\";", + " this.maxParticles = 1000;", + " this.systems = new Set();", + " const layers = new THREE.Layers();", + " layers.mask = settings.layers.mask;", + " this.settings = {", + " instancingGeometry: settings.instancingGeometry,", + " renderMode: settings.renderMode,", + " renderOrder: settings.renderOrder,", + " material: settings.material,", + " uTileCount: settings.uTileCount,", + " vTileCount: settings.vTileCount,", + " layers: layers,", + " };", + " this.frustumCulled = false;", + " this.renderOrder = this.settings.renderOrder;", + " }", + " addSystem(system) {", + " this.systems.add(system);", + " }", + " removeSystem(system) {", + " this.systems.delete(system);", + " }", + "}", + "", + "const UP = new THREE.Vector3(0, 0, 1);", + "const tempQ = new THREE.Quaternion();", + "const tempV = new THREE.Vector3();", + "const tempV2 = new THREE.Vector3();", + "new THREE.Vector3();", + "const PREWARM_FPS = 60;", + "const DEFAULT_GEOMETRY = new THREE.PlaneGeometry(1, 1, 1, 1);", + "/**", + " * ParticleSystem represents a system that generates and controls particles with similar attributes.", + " *", + " * @class", + " */", + "class ParticleSystem {", + " set time(time) {", + " this.emissionState.time = time;", + " }", + " get time() {", + " return this.emissionState.time;", + " }", + " // currently if you change the layers setting, you need manually set this.neededToUpdateRender = true;", + " get layers() {", + " return this.rendererSettings.layers;", + " }", + " get texture() {", + " return this.rendererSettings.material.map;", + " }", + " set texture(texture) {", + " this.rendererSettings.material.map = texture;", + " this.neededToUpdateRender = true;", + " //this.emitter.material.uniforms.map.value = texture;", + " }", + " get material() {", + " return this.rendererSettings.material;", + " }", + " set material(material) {", + " this.rendererSettings.material = material;", + " this.neededToUpdateRender = true;", + " }", + " get uTileCount() {", + " return this.rendererSettings.uTileCount;", + " }", + " set uTileCount(u) {", + " this.rendererSettings.uTileCount = u;", + " this.neededToUpdateRender = true;", + " //this.emitter.material.uniforms.tileCount.value.x = u;", + " }", + " get vTileCount() {", + " return this.rendererSettings.vTileCount;", + " }", + " set vTileCount(v) {", + " this.rendererSettings.vTileCount = v;", + " this.neededToUpdateRender = true;", + " }", + " get instancingGeometry() {", + " return this.rendererSettings.instancingGeometry;", + " }", + " set instancingGeometry(geometry) {", + " this.restart();", + " this.particles.length = 0;", + " this.rendererSettings.instancingGeometry = geometry;", + " this.neededToUpdateRender = true;", + " }", + " get renderMode() {", + " return this.rendererSettings.renderMode;", + " }", + " set renderMode(renderMode) {", + " if ((this.rendererSettings.renderMode != gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) ||", + " (this.rendererSettings.renderMode == gdjs.__particleEmmiter3DExtension.RenderMode.Trail && renderMode !== gdjs.__particleEmmiter3DExtension.RenderMode.Trail)) {", + " this.restart();", + " this.particles.length = 0;", + " }", + " if (this.rendererSettings.renderMode !== renderMode) {", + " switch (renderMode) {", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", + " this.rendererEmitterSettings = {", + " startLength: new ConstantValue(30),", + " followLocalOrigin: false,", + " };", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", + " this.rendererEmitterSettings = {", + " geometry: new THREE.PlaneGeometry(1, 1),", + " };", + " this.startRotation = new AxisAngleGenerator(new THREE.Vector3(0, 1, 0), new ConstantValue(0));", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", + " this.rendererEmitterSettings = {};", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.startRotation = new ConstantValue(0);", + " }", + " break;", + " }", + " }", + " this.rendererSettings.renderMode = renderMode;", + " this.neededToUpdateRender = true;", + " //this.emitter.rebuildMaterial();", + " }", + " get renderOrder() {", + " return this.rendererSettings.renderOrder;", + " }", + " set renderOrder(renderOrder) {", + " this.rendererSettings.renderOrder = renderOrder;", + " this.neededToUpdateRender = true;", + " //this.emitter.rebuildMaterial();", + " }", + " get blending() {", + " return this.rendererSettings.material.blending;", + " }", + " set blending(blending) {", + " this.rendererSettings.material.blending = blending;", + " this.neededToUpdateRender = true;", + " }", + " constructor(parameters) {", + " var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;", + " this.temp = new THREE.Vector3();", + " this.travelDistance = 0;", + " this.normalMatrix = new THREE.Matrix3();", + " this.autoDestroy = parameters.autoDestroy === undefined ? false : parameters.autoDestroy;", + " this.duration = (_a = parameters.duration) !== null && _a !== void 0 ? _a : 1;", + " this.looping = parameters.looping === undefined ? true : parameters.looping;", + " this.prewarm = parameters.prewarm === undefined ? false : parameters.prewarm;", + " this.startLife = (_b = parameters.startLife) !== null && _b !== void 0 ? _b : new ConstantValue(5);", + " this.startSpeed = (_c = parameters.startSpeed) !== null && _c !== void 0 ? _c : new ConstantValue(0);", + " this.startRotation = (_d = parameters.startRotation) !== null && _d !== void 0 ? _d : new ConstantValue(0);", + " this.startSize = (_e = parameters.startSize) !== null && _e !== void 0 ? _e : new ConstantValue(1);", + " this.startColor = (_f = parameters.startColor) !== null && _f !== void 0 ? _f : new ConstantColor(new THREE.Vector4(1, 1, 1, 1));", + " //this.startLength = parameters.startLength ?? new ConstantValue(30);", + " this.emissionOverTime = (_g = parameters.emissionOverTime) !== null && _g !== void 0 ? _g : new ConstantValue(10);", + " this.emissionOverDistance = (_h = parameters.emissionOverDistance) !== null && _h !== void 0 ? _h : new ConstantValue(0);", + " this.emissionBursts = (_j = parameters.emissionBursts) !== null && _j !== void 0 ? _j : [];", + " this.onlyUsedByOther = (_k = parameters.onlyUsedByOther) !== null && _k !== void 0 ? _k : false;", + " this.emitterShape = (_l = parameters.shape) !== null && _l !== void 0 ? _l : new SphereEmitter();", + " this.behaviors = (_m = parameters.behaviors) !== null && _m !== void 0 ? _m : new Array();", + " this.worldSpace = (_o = parameters.worldSpace) !== null && _o !== void 0 ? _o : false;", + " this.speedFactor = (_p = parameters.speedFactor) !== null && _p !== void 0 ? _p : 0;", + " this.rendererEmitterSettings = (_q = parameters.rendererEmitterSettings) !== null && _q !== void 0 ? _q : {};", + " this.rendererSettings = {", + " instancingGeometry: (_r = parameters.instancingGeometry) !== null && _r !== void 0 ? _r : DEFAULT_GEOMETRY,", + " renderMode: (_s = parameters.renderMode) !== null && _s !== void 0 ? _s : gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard,", + " renderOrder: (_t = parameters.renderOrder) !== null && _t !== void 0 ? _t : 0,", + " material: parameters.material,", + " uTileCount: (_u = parameters.uTileCount) !== null && _u !== void 0 ? _u : 1,", + " vTileCount: (_v = parameters.vTileCount) !== null && _v !== void 0 ? _v : 1,", + " layers: (_w = parameters.layers) !== null && _w !== void 0 ? _w : new THREE.Layers(),", + " };", + " this.neededToUpdateRender = true;", + " this.particles = new Array();", + " this.startTileIndex = parameters.startTileIndex || new ConstantValue(0);", + " this.emitter = new ParticleEmitter(this);", + " this.paused = false;", + " this.particleNum = 0;", + " this.emissionState = {", + " burstIndex: 0,", + " burstWaveIndex: 0,", + " time: 0,", + " waitEmiting: 0,", + " };", + " this.emitEnded = false;", + " this.markForDestroy = false;", + " this.prewarmed = false;", + " }", + " pause() {", + " this.paused = true;", + " }", + " play() {", + " this.paused = false;", + " }", + " spawn(count, emissionState, matrix) {", + " tempQ.setFromRotationMatrix(matrix);", + " const translation = tempV;", + " const quaternion = tempQ;", + " const scale = tempV2;", + " matrix.decompose(translation, quaternion, scale);", + " for (let i = 0; i < count; i++) {", + " this.particleNum++;", + " while (this.particles.length < this.particleNum) {", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " this.particles.push(new TrailParticle());", + " }", + " else {", + " this.particles.push(new SpriteParticle());", + " }", + " }", + " const particle = this.particles[this.particleNum - 1];", + " this.startColor.genColor(particle.startColor, Math.random());", + " particle.color.copy(particle.startColor);", + " particle.startSpeed = this.startSpeed.genValue(emissionState.time / this.duration);", + " particle.life = this.startLife.genValue(emissionState.time / this.duration);", + " particle.age = 0;", + " particle.startSize = this.startSize.genValue(emissionState.time / this.duration);", + " particle.uvTile = Math.floor(this.startTileIndex.genValue());", + " particle.size = particle.startSize;", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh ||", + " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", + " this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " const sprite = particle;", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " if (!(sprite.rotation instanceof THREE.Quaternion)) {", + " sprite.rotation = new THREE.Quaternion();", + " }", + " if (this.startRotation.type === 'rotation') {", + " this.startRotation.genValue(sprite.rotation, emissionState.time / this.duration);", + " }", + " else {", + " sprite.rotation.setFromAxisAngle(UP, this.startRotation.genValue((emissionState.time / this.duration)));", + " }", + " }", + " else {", + " if (this.startRotation.type === 'rotation') {", + " sprite.rotation = 0;", + " }", + " else {", + " sprite.rotation = this.startRotation.genValue(emissionState.time / this.duration);", + " }", + " }", + " }", + " else if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " const trail = particle;", + " trail.length = this.rendererEmitterSettings.startLength.genValue(emissionState.time / this.duration);", + " trail.reset();", + " }", + " this.emitterShape.initialize(particle);", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail &&", + " this.rendererEmitterSettings.followLocalOrigin) {", + " const trail = particle;", + " trail.localPosition = new THREE.Vector3().copy(trail.position);", + " }", + " if (this.worldSpace) {", + " particle.position.applyMatrix4(matrix);", + " particle.startSize = (particle.startSize * (scale.x + scale.y + scale.z)) / 3;", + " particle.size = particle.startSize;", + " particle.velocity.multiply(scale).applyMatrix3(this.normalMatrix);", + " if (particle.rotation && particle.rotation instanceof THREE.Quaternion) {", + " particle.rotation.multiplyQuaternions(tempQ, particle.rotation);", + " }", + " }", + " else {", + " if (this.onlyUsedByOther) {", + " particle.parentMatrix = matrix;", + " }", + " }", + " for (let j = 0; j < this.behaviors.length; j++) {", + " this.behaviors[j].initialize(particle);", + " }", + " }", + " }", + " endEmit() {", + " this.emitEnded = true;", + " if (this.autoDestroy) {", + " this.markForDestroy = true;", + " }", + " }", + " dispose() {", + " if (this._renderer)", + " this._renderer.deleteSystem(this);", + " this.emitter.dispose();", + " if (this.emitter.parent)", + " this.emitter.parent.remove(this.emitter);", + " }", + " restart() {", + " this.paused = false;", + " this.particleNum = 0;", + " this.emissionState.burstIndex = 0;", + " this.emissionState.burstWaveIndex = 0;", + " this.emissionState.time = 0;", + " this.emissionState.waitEmiting = 0;", + " this.behaviors.forEach((behavior) => {", + " behavior.reset();", + " });", + " this.emitEnded = false;", + " this.markForDestroy = false;", + " this.prewarmed = false;", + " }", + " //firstTimeUpdate = true;", + " update(delta) {", + " /*if (this.firstTimeUpdate) {", + " this.renderer.addSystem(this);", + " this.firstTimeUpdate = false;", + " }*/", + " if (this.paused)", + " return;", + " let currentParent = this.emitter;", + " while (currentParent.parent) {", + " currentParent = currentParent.parent;", + " }", + " if (currentParent.type !== 'Scene') {", + " this.dispose();", + " return;", + " }", + " if (this.emitEnded && this.particleNum === 0) {", + " if (this.markForDestroy && this.emitter.parent)", + " this.dispose();", + " return;", + " }", + " if (this.looping && this.prewarm && !this.prewarmed) {", + " this.prewarmed = true;", + " for (let i = 0; i < this.duration * PREWARM_FPS; i++) {", + " this.update(1.0 / PREWARM_FPS);", + " }", + " }", + " if (this.neededToUpdateRender) {", + " if (this._renderer)", + " this._renderer.updateSystem(this);", + " this.neededToUpdateRender = false;", + " }", + " if (!this.onlyUsedByOther) {", + " this.emit(delta, this.emissionState, this.emitter.matrixWorld);", + " }", + " // simulate", + " for (let j = 0; j < this.behaviors.length; j++) {", + " for (let i = 0; i < this.particleNum; i++) {", + " if (!this.particles[i].died) {", + " this.behaviors[j].update(this.particles[i], delta);", + " }", + " }", + " this.behaviors[j].frameUpdate(delta);", + " }", + " for (let i = 0; i < this.particleNum; i++) {", + " if (this.rendererEmitterSettings.followLocalOrigin &&", + " this.particles[i].localPosition) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " this.particles[i].position.copy(this.particles[i].localPosition);", + " if (this.particles[i].parentMatrix) {", + " // eslint-disable-next-line @typescript-eslint/no-non-null-assertion", + " this.particles[i].position.applyMatrix4(this.particles[i].parentMatrix);", + " }", + " else {", + " this.particles[i].position.applyMatrix4(this.emitter.matrixWorld);", + " }", + " }", + " else {", + " this.particles[i].position.addScaledVector(this.particles[i].velocity, delta);", + " }", + " this.particles[i].age += delta;", + " }", + " if (this.rendererSettings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " for (let i = 0; i < this.particleNum; i++) {", + " const particle = this.particles[i];", + " particle.update();", + " }", + " }", + " // particle die", + " for (let i = 0; i < this.particleNum; i++) {", + " const particle = this.particles[i];", + " if (particle.died && (!(particle instanceof TrailParticle) || particle.previous.length === 0)) {", + " this.particles[i] = this.particles[this.particleNum - 1];", + " this.particles[this.particleNum - 1] = particle;", + " this.particleNum--;", + " i--;", + " }", + " }", + " }", + " emit(delta, emissionState, emitterMatrix) {", + " if (emissionState.time > this.duration) {", + " if (this.looping) {", + " emissionState.time -= this.duration;", + " emissionState.burstIndex = 0;", + " this.behaviors.forEach((behavior) => {", + " behavior.reset();", + " });", + " }", + " else {", + " if (!this.emitEnded && !this.onlyUsedByOther) {", + " this.endEmit();", + " }", + " }", + " }", + " this.normalMatrix.getNormalMatrix(emitterMatrix);", + " // spawn", + " const totalSpawn = Math.ceil(emissionState.waitEmiting);", + " this.spawn(totalSpawn, emissionState, emitterMatrix);", + " emissionState.waitEmiting -= totalSpawn;", + " // spawn burst", + " while (emissionState.burstIndex < this.emissionBursts.length &&", + " this.emissionBursts[emissionState.burstIndex].time <= emissionState.time) {", + " if (Math.random() < this.emissionBursts[emissionState.burstIndex].probability) {", + " const count = this.emissionBursts[emissionState.burstIndex].count;", + " this.spawn(count, emissionState, emitterMatrix);", + " }", + " emissionState.burstIndex++;", + " }", + " if (!this.emitEnded) {", + " emissionState.waitEmiting += delta * this.emissionOverTime.genValue(emissionState.time / this.duration);", + " if (this.previousWorldPos != undefined) {", + " this.emitter.getWorldPosition(this.temp);", + " this.travelDistance += this.previousWorldPos.distanceTo(this.temp);", + " const emitPerMeter = this.emissionOverDistance.genValue(emissionState.time / this.duration);", + " if (this.travelDistance * emitPerMeter > 0) {", + " const count = Math.floor(this.travelDistance * emitPerMeter);", + " this.travelDistance -= count / emitPerMeter;", + " emissionState.waitEmiting += count;", + " }", + " }", + " }", + " if (this.previousWorldPos === undefined)", + " this.previousWorldPos = new THREE.Vector3();", + " this.emitter.getWorldPosition(this.previousWorldPos);", + " emissionState.time += delta;", + " }", + " toJSON(meta, options = {}) {", + " const isRootObject = meta === undefined || typeof meta === 'string';", + " if (isRootObject) {", + " // initialize meta obj", + " meta = {", + " geometries: {},", + " materials: {},", + " textures: {},", + " images: {},", + " shapes: {},", + " skeletons: {},", + " animations: {},", + " nodes: {},", + " };", + " }", + " meta.materials[this.rendererSettings.material.uuid] = this.rendererSettings.material.toJSON(meta);", + " if (options.useUrlForImage) {", + " if (this.texture.source !== undefined) {", + " const image = this.texture.source;", + " meta.images[image.uuid] = {", + " uuid: image.uuid,", + " url: this.texture.image.url,", + " };", + " }", + " }", + " // TODO: support URL", + " let rendererSettingsJSON;", + " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererSettingsJSON = {", + " startLength: this.rendererEmitterSettings.startLength.toJSON(),", + " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " rendererSettingsJSON = {};", + " /*;*/", + " }", + " else {", + " rendererSettingsJSON = {};", + " }", + " const geometry = this.rendererSettings.instancingGeometry;", + " if (meta.geometries && !meta.geometries[geometry.uuid]) {", + " meta.geometries[geometry.uuid] = geometry.toJSON();", + " }", + " return {", + " version: '2.0',", + " autoDestroy: this.autoDestroy,", + " looping: this.looping,", + " prewarm: this.prewarm,", + " duration: this.duration,", + " shape: this.emitterShape.toJSON(),", + " startLife: this.startLife.toJSON(),", + " startSpeed: this.startSpeed.toJSON(),", + " startRotation: this.startRotation.toJSON(),", + " startSize: this.startSize.toJSON(),", + " startColor: this.startColor.toJSON(),", + " emissionOverTime: this.emissionOverTime.toJSON(),", + " emissionOverDistance: this.emissionOverDistance.toJSON(),", + " emissionBursts: this.emissionBursts,", + " onlyUsedByOther: this.onlyUsedByOther,", + " instancingGeometry: this.rendererSettings.instancingGeometry.uuid,", + " renderOrder: this.renderOrder,", + " renderMode: this.renderMode,", + " rendererEmitterSettings: rendererSettingsJSON,", + " speedFactor: this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ? this.speedFactor : 0,", + " //texture: this.texture.uuid,", + " material: this.rendererSettings.material.uuid,", + " layers: this.layers.mask,", + " startTileIndex: this.startTileIndex.toJSON(),", + " uTileCount: this.uTileCount,", + " vTileCount: this.vTileCount,", + " behaviors: this.behaviors.map((behavior) => behavior.toJSON()),", + " worldSpace: this.worldSpace,", + " };", + " }", + " static fromJSON(json, meta, dependencies) {", + " var _a;", + " const shape = EmitterFromJSON(json.shape, meta);", + " let rendererEmitterSettings;", + " if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererEmitterSettings = {", + " startLength: json.rendererEmitterSettings.startLength != undefined", + " ? ValueGeneratorFromJSON(json.rendererEmitterSettings.startLength)", + " : new ConstantValue(30),", + " followLocalOrigin: json.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else if (json.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " rendererEmitterSettings = {};", + " }", + " else {", + " rendererEmitterSettings = {};", + " }", + " const layers = new THREE.Layers();", + " if (json.layers) {", + " layers.mask = json.layers;", + " }", + " const ps = new ParticleSystem({", + " autoDestroy: json.autoDestroy,", + " looping: json.looping,", + " prewarm: json.prewarm,", + " duration: json.duration,", + " shape: shape,", + " startLife: ValueGeneratorFromJSON(json.startLife),", + " startSpeed: ValueGeneratorFromJSON(json.startSpeed),", + " startRotation: GeneratorFromJSON(json.startRotation),", + " startSize: ValueGeneratorFromJSON(json.startSize),", + " startColor: ColorGeneratorFromJSON(json.startColor),", + " emissionOverTime: ValueGeneratorFromJSON(json.emissionOverTime),", + " emissionOverDistance: ValueGeneratorFromJSON(json.emissionOverDistance),", + " emissionBursts: json.emissionBursts,", + " onlyUsedByOther: json.onlyUsedByOther,", + " instancingGeometry: meta.geometries[json.instancingGeometry],", + " renderMode: json.renderMode,", + " rendererEmitterSettings: rendererEmitterSettings,", + " renderOrder: json.renderOrder,", + " speedFactor: json.speedFactor,", + " layers: layers,", + " material: json.material", + " ? meta.materials[json.material]", + " : json.texture", + " ? new THREE.MeshBasicMaterial({", + " map: meta.textures[json.texture],", + " transparent: (_a = json.transparent) !== null && _a !== void 0 ? _a : true,", + " blending: json.blending,", + " side: THREE.DoubleSide,", + " })", + " : new THREE.MeshBasicMaterial({", + " color: 0xffffff,", + " transparent: true,", + " blending: THREE.AdditiveBlending,", + " side: THREE.DoubleSide,", + " }),", + " startTileIndex: typeof json.startTileIndex === 'number'", + " ? new ConstantValue(json.startTileIndex)", + " : ValueGeneratorFromJSON(json.startTileIndex),", + " uTileCount: json.uTileCount,", + " vTileCount: json.vTileCount,", + " behaviors: [],", + " worldSpace: json.worldSpace,", + " });", + " ps.behaviors = json.behaviors.map((behaviorJson) => {", + " const behavior = BehaviorFromJSON(behaviorJson, ps);", + " if (behavior.type === 'EmitSubParticleSystem') {", + " dependencies[behaviorJson.subParticleSystem] = behavior;", + " }", + " return behavior;", + " });", + " return ps;", + " }", + " addBehavior(behavior) {", + " this.behaviors.push(behavior);", + " }", + " getRendererSettings() {", + " return this.rendererSettings;", + " }", + " clone() {", + " const newEmissionBursts = [];", + " for (const emissionBurst of this.emissionBursts) {", + " const newEmissionBurst = {};", + " Object.assign(newEmissionBurst, emissionBurst);", + " newEmissionBursts.push(newEmissionBurst);", + " }", + " const newBehaviors = [];", + " for (const behavior of this.behaviors) {", + " newBehaviors.push(behavior.clone());", + " }", + " let rendererEmitterSettings;", + " if (this.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " rendererEmitterSettings = {", + " startLength: this.rendererEmitterSettings.startLength.clone(),", + " followLocalOrigin: this.rendererEmitterSettings.followLocalOrigin,", + " };", + " }", + " else {", + " rendererEmitterSettings = {};", + " }", + " const layers = new THREE.Layers();", + " layers.mask = this.layers.mask;", + " return new ParticleSystem({", + " autoDestroy: this.autoDestroy,", + " looping: this.looping,", + " duration: this.duration,", + " shape: this.emitterShape.clone(),", + " startLife: this.startLife.clone(),", + " startSpeed: this.startSpeed.clone(),", + " startRotation: this.startRotation.clone(),", + " startSize: this.startSize.clone(),", + " startColor: this.startColor.clone(),", + " emissionOverTime: this.emissionOverTime.clone(),", + " emissionOverDistance: this.emissionOverDistance.clone(),", + " emissionBursts: newEmissionBursts,", + " onlyUsedByOther: this.onlyUsedByOther,", + " instancingGeometry: this.rendererSettings.instancingGeometry,", + " renderMode: this.renderMode,", + " renderOrder: this.renderOrder,", + " rendererEmitterSettings: rendererEmitterSettings,", + " speedFactor: this.speedFactor,", + " material: this.rendererSettings.material,", + " startTileIndex: this.startTileIndex,", + " uTileCount: this.uTileCount,", + " vTileCount: this.vTileCount,", + " behaviors: newBehaviors,", + " worldSpace: this.worldSpace,", + " layers: layers,", + " });", + " }", + "}", + "", + "var particle_frag = /* glsl */ `", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "", + "#include ", + "", + "vec3 outgoingLight = vec3( 0.0 );", + "vec4 diffuseColor = vColor;", + "", + "#include ", + "", + "#ifdef USE_MAP", + "vec4 texelColor = texture2D( map, vUv);", + "diffuseColor *= texelColor;", + "#endif", + "", + "outgoingLight = diffuseColor.rgb;", + "", + "gl_FragColor = vec4( outgoingLight, diffuseColor.a );", + "", + "#include ", + "", + "}", + "`;", + "/*", + " gl_FragColor = vec4(vUv.x, vUv.y, 1.0, 1.0);", + "", + " #ifdef USE_MAP", + " vec4 texelColor = texture2D( map, vUv);", + " diffuseColor *= texelColor;", + " #endif", + "", + " outgoingLight = diffuseColor.rgb;", + "", + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", + "*/", + "", + "var particle_physics_frag = /* glsl */ `", + "#define STANDARD", + "#ifdef PHYSICAL", + "#define IOR", + "#define SPECULAR", + "#endif", + "uniform vec3 diffuse;", + "uniform vec3 emissive;", + "uniform float roughness;", + "uniform float metalness;", + "uniform float opacity;", + "#ifdef IOR", + "uniform float ior;", + "#endif", + "#ifdef SPECULAR", + "uniform float specularIntensity;", + "uniform vec3 specularColor;", + "#ifdef USE_SPECULARINTENSITYMAP", + "uniform sampler2D specularIntensityMap;", + "#endif", + "#ifdef USE_SPECULARCOLORMAP", + "uniform sampler2D specularColorMap;", + "#endif", + "#endif", + "#ifdef USE_CLEARCOAT", + "uniform float clearcoat;", + "uniform float clearcoatRoughness;", + "#endif", + "#ifdef USE_IRIDESCENCE", + "uniform float iridescence;", + "uniform float iridescenceIOR;", + "uniform float iridescenceThicknessMinimum;", + "uniform float iridescenceThicknessMaximum;", + "#endif", + "#ifdef USE_SHEEN", + "uniform vec3 sheenColor;", + "uniform float sheenRoughness;", + "#ifdef USE_SHEENCOLORMAP", + "uniform sampler2D sheenColorMap;", + "#endif", + "#ifdef USE_SHEENROUGHNESSMAP", + "uniform sampler2D sheenRoughnessMap;", + "#endif", + "#endif", + "", + "varying vec3 vViewPosition;", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "#include ", + "vec4 diffuseColor = vec4( diffuse, opacity );", + "ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );", + "vec3 totalEmissiveRadiance = emissive;", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "// accumulation", + "#include ", + "#include ", + "#include ", + "#include ", + "// modulation", + "#include ", + "vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;", + "vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;", + "#include ", + "vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;", + "#ifdef USE_SHEEN", + "// Sheen energy compensation approximation calculation can be found at the end of", + " // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing", + " float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );", + " outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;", + "#endif", + "#ifdef USE_CLEARCOAT", + " float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );", + " vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );", + " outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;", + "#endif", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "}`;", + "", + "var particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute float rotation;", + "attribute float size;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", + "", + "vec2 alignedPosition = ( position.xy ) * size;", + "", + "vec2 rotatedPosition;", + "rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;", + "rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;", + "", + "mvPosition.xy += rotatedPosition;", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "/*", + " #ifndef USE_SIZEATTENUATION", + " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", + " if ( isPerspective ) computedSize *= - mvPosition.z;", + " #endif", + " */", + "", + "var local_particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute vec4 rotation;", + "attribute float size;", + "// attribute vec4 color;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", + "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", + "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", + "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", + "float sx = size, sy = size, sz = size;", + "", + "mat4 matrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", + " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", + " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", + " offset.x, offset.y, offset.z, 1.0);", + "", + "vec4 mvPosition = modelViewMatrix * (matrix * vec4( position, 1.0 ));", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "", + "var local_particle_physics_vert = /* glsl */ `", + "#define STANDARD", + "varying vec3 vViewPosition;", + "#ifdef USE_TRANSMISSION", + "varying vec3 vWorldPosition;", + "#endif", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute vec4 rotation;", + "attribute float size;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "void main() {", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "float x2 = rotation.x + rotation.x, y2 = rotation.y + rotation.y, z2 = rotation.z + rotation.z;", + "float xx = rotation.x * x2, xy = rotation.x * y2, xz = rotation.x * z2;", + "float yy = rotation.y * y2, yz = rotation.y * z2, zz = rotation.z * z2;", + "float wx = rotation.w * x2, wy = rotation.w * y2, wz = rotation.w * z2;", + "float sx = size, sy = size, sz = size;", + "", + "mat4 particleMatrix = mat4(( 1.0 - ( yy + zz ) ) * sx, ( xy + wz ) * sx, ( xz - wy ) * sx, 0.0, // 1. column", + " ( xy - wz ) * sy, ( 1.0 - ( xx + zz ) ) * sy, ( yz + wx ) * sy, 0.0, // 2. column", + " ( xz + wy ) * sz, ( yz - wx ) * sz, ( 1.0 - ( xx + yy ) ) * sz, 0.0, // 3. column", + " offset.x, offset.y, offset.z, 1.0);", + " ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "// replace defaultnormal_vertex", + "vec3 transformedNormal = objectNormal;", + "mat3 m = mat3( particleMatrix );", + "transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );", + "transformedNormal = m * transformedNormal;", + "transformedNormal = normalMatrix * transformedNormal;", + "#ifdef FLIP_SIDED", + " transformedNormal = - transformedNormal;", + "#endif", + "#ifdef USE_TANGENT", + " vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;", + " #ifdef FLIP_SIDED", + " transformedTangent = - transformedTangent;", + " #endif", + "#endif", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "// replace include ", + "vec4 mvPosition = vec4( transformed, 1.0 );", + "mvPosition = modelViewMatrix * (particleMatrix * mvPosition);", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "vViewPosition = - mvPosition.xyz;", + "", + "#include ", + "#include ", + "#include ", + "#ifdef USE_TRANSMISSION", + "vWorldPosition = worldPosition.xyz;", + "#endif", + "}", + "`;", + "", + "var stretched_bb_particle_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 offset;", + "attribute float rotation;", + "attribute float size;", + "attribute vec3 velocity;", + "attribute float uvTile;", + "", + "#ifdef UV_TILE", + "uniform vec2 tileCount;", + "#endif", + "", + "uniform float speedFactor;", + "", + "void main() {", + "", + "#ifdef UV_TILE", + " vUv = vec2((mod(uvTile, tileCount.x) + uv.x) * (1.0 / tileCount.x), ((tileCount.y - floor(uvTile / tileCount.x) - 1.0) + uv.y) * (1.0 / tileCount.y));", + "#else", + " #include ", + "#endif", + "", + "vec4 mvPosition = modelViewMatrix * vec4( offset, 1.0 );", + "vec3 viewVelocity = normalMatrix * velocity;", + "", + "vec3 scaledPos = vec3(position.xy * size, position.z);", + "mvPosition.xyz += scaledPos + dot(scaledPos, viewVelocity) * viewVelocity / length(viewVelocity) * speedFactor;", + "", + "vColor = color;", + "", + "gl_Position = projectionMatrix * mvPosition;", + "", + "#include ", + "#include ", + "", + "}", + "`;", + "/*", + "", + " vec3 instancePos = vec3(position.xy * size, position.z);", + " instancePos += dot(instancePos, viewVelocity) * viewVelocity * speedFactor;", + " mvPosition.xyz += instancePos;", + "", + " vColor = color; //vec4(1, 1, 1, 1); //color; //length(viewVelocity) * 0.1", + "", + " #ifndef USE_SIZEATTENUATION", + " bool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );", + " if ( isPerspective ) computedSize *= - mvPosition.z;", + " #endif", + " */", + "", + "function getMaterialUVChannelName(value) {", + " if (value === 0)", + " return 'uv';", + " return `uv${value}`;", + "}", + "", + "new THREE.Vector3(0, 0, 1);", + "class SpriteBatch extends VFXBatch {", + " constructor(settings) {", + " super(settings);", + " /*", + " clone() {", + " let system = this.system.clone();", + " return system.emitter as any;", + " }*/", + " this.vector_ = new THREE.Vector3();", + " this.vector2_ = new THREE.Vector3();", + " this.vector3_ = new THREE.Vector3();", + " this.quaternion_ = new THREE.Quaternion();", + " this.quaternion2_ = new THREE.Quaternion();", + " this.quaternion3_ = new THREE.Quaternion();", + " this.rotationMat_ = new THREE.Matrix3();", + " this.rotationMat2_ = new THREE.Matrix3();", + " this.maxParticles = 1000;", + " this.setupBuffers();", + " this.rebuildMaterial();", + " // TODO: implement boundingVolume", + " }", + " buildExpandableBuffers() {", + " this.offsetBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", + " this.offsetBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('offset', this.offsetBuffer);", + " this.colorBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", + " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('color', this.colorBuffer);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 4), 4);", + " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('rotation', this.rotationBuffer);", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " this.rotationBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.rotationBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('rotation', this.rotationBuffer);", + " }", + " this.sizeBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.sizeBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('size', this.sizeBuffer);", + " this.uvTileBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles), 1);", + " this.uvTileBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('uvTile', this.uvTileBuffer);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " this.velocityBuffer = new THREE.InstancedBufferAttribute(new Float32Array(this.maxParticles * 3), 3);", + " this.velocityBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('velocity', this.velocityBuffer);", + " }", + " }", + " setupBuffers() {", + " if (this.geometry)", + " this.geometry.dispose();", + " this.geometry = new THREE.InstancedBufferGeometry();", + " this.geometry.setIndex(this.settings.instancingGeometry.getIndex());", + " if (this.settings.instancingGeometry.hasAttribute('normal')) {", + " this.geometry.setAttribute('normal', this.settings.instancingGeometry.getAttribute('normal'));", + " }", + " this.geometry.setAttribute('position', this.settings.instancingGeometry.getAttribute('position')); //new InterleavedBufferAttribute(this.interleavedBuffer, 3, 0, false));", + " this.geometry.setAttribute('uv', this.settings.instancingGeometry.getAttribute('uv')); //new InterleavedBufferAttribute(this.interleavedBuffer, 2, 3, false));", + " this.buildExpandableBuffers();", + " }", + " expandBuffers(target) {", + " while (target >= this.maxParticles) {", + " this.maxParticles *= 2;", + " }", + " this.setupBuffers();", + " }", + " rebuildMaterial() {", + " this.layers.mask = this.settings.layers.mask;", + " let uniforms;", + " const defines = {};", + " if (this.settings.material.type === 'MeshStandardMaterial' ||", + " this.settings.material.type === 'MeshPhysicalMaterial') {", + " const mat = this.settings.material;", + " uniforms = THREE.UniformsUtils.merge([", + " THREE.UniformsLib.common,", + " THREE.UniformsLib.envmap,", + " THREE.UniformsLib.aomap,", + " THREE.UniformsLib.lightmap,", + " THREE.UniformsLib.emissivemap,", + " THREE.UniformsLib.bumpmap,", + " THREE.UniformsLib.normalmap,", + " THREE.UniformsLib.displacementmap,", + " THREE.UniformsLib.roughnessmap,", + " THREE.UniformsLib.metalnessmap,", + " THREE.UniformsLib.fog,", + " THREE.UniformsLib.lights,", + " {", + " emissive: { value: /*@__PURE__*/ new THREE.Color(0x000000) },", + " roughness: { value: 1.0 },", + " metalness: { value: 0.0 },", + " envMapIntensity: { value: 1 }, // temporary", + " },", + " ]);", + " uniforms['diffuse'].value = mat.color;", + " uniforms['opacity'].value = mat.opacity;", + " uniforms['emissive'].value = mat.emissive;", + " uniforms['roughness'].value = mat.roughness;", + " uniforms['metalness'].value = mat.metalness;", + " if (mat.envMap) {", + " uniforms['envMap'].value = mat.envMap;", + " uniforms['envMapIntensity'].value = mat.envMapIntensity;", + " }", + " if (mat.normalMap) {", + " uniforms['normalMap'].value = mat.normalMap;", + " uniforms['normalScale'].value = mat.normalScale;", + " }", + " if (mat.roughnessMap) {", + " uniforms['roughnessMap'].value = mat.roughnessMap;", + " }", + " if (mat.metalnessMap) {", + " uniforms['metalnessMap'].value = mat.metalnessMap;", + " }", + " }", + " else {", + " uniforms = {};", + " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", + " }", + " if (this.settings.material.map) {", + " defines['USE_MAP'] = '';", + " defines['USE_UV'] = '';", + " defines['UV_TILE'] = '';", + " const uTileCount = this.settings.uTileCount;", + " const vTileCount = this.settings.vTileCount;", + " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", + " uniforms['uvTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", + " uniforms['tileCount'] = new THREE.Uniform(new THREE.Vector2(uTileCount, vTileCount));", + " }", + " defines['USE_COLOR_ALPHA'] = '';", + " let needLights = false;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard || this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " let vertexShader;", + " let fragmentShader;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " if (this.settings.material.type === 'MeshStandardMaterial' ||", + " this.settings.material.type === 'MeshPhysicalMaterial') {", + " defines['USE_COLOR'] = '';", + " vertexShader = local_particle_physics_vert;", + " fragmentShader = particle_physics_frag;", + " needLights = true;", + " }", + " else {", + " vertexShader = local_particle_vert;", + " fragmentShader = particle_frag;", + " }", + " }", + " else {", + " vertexShader = particle_vert;", + " fragmentShader = particle_frag;", + " }", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: vertexShader,", + " fragmentShader: fragmentShader,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " blending: this.settings.material.blending,", + " side: this.settings.material.side,", + " lights: needLights,", + " });", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard) {", + " uniforms['speedFactor'] = new THREE.Uniform(1.0);", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: stretched_bb_particle_vert,", + " fragmentShader: particle_frag,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " blending: this.settings.material.blending,", + " side: this.settings.material.side,", + " });", + " }", + " else {", + " throw new Error('render mode unavailable');", + " }", + " }", + " update() {", + " let index = 0;", + " let particleCount = 0;", + " this.systems.forEach((system) => {", + " particleCount += system.particleNum;", + " });", + " if (particleCount > this.maxParticles) {", + " this.expandBuffers(particleCount);", + " }", + " this.systems.forEach((system) => {", + " const particles = system.particles;", + " const particleNum = system.particleNum;", + " const rotation = this.quaternion2_;", + " const translation = this.vector2_;", + " const scale = this.vector3_;", + " system.emitter.matrixWorld.decompose(translation, rotation, scale);", + " this.rotationMat_.setFromMatrix4(system.emitter.matrixWorld);", + " for (let j = 0; j < particleNum; j++, index++) {", + " const particle = particles[j];", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " //this.quaternion_.setFromAxisAngle(UP, particle.rotation as number);", + " let q;", + " if (system.worldSpace) {", + " q = particle.rotation;", + " }", + " else {", + " let parentQ;", + " if (particle.parentMatrix) {", + " parentQ = this.quaternion3_.setFromRotationMatrix(particle.parentMatrix);", + " }", + " else {", + " parentQ = rotation;", + " }", + " q = this.quaternion_;", + " q.copy(particle.rotation).multiply(parentQ);", + " }", + " this.rotationBuffer.setXYZW(index, q.x, q.y, q.z, q.w);", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", + " this.rotationBuffer.setX(index, particle.rotation);", + " }", + " let vec;", + " if (system.worldSpace) {", + " vec = particle.position;", + " }", + " else {", + " vec = this.vector_;", + " if (particle.parentMatrix) {", + " vec.copy(particle.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " vec.copy(particle.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " }", + " this.offsetBuffer.setXYZ(index, vec.x, vec.y, vec.z);", + " this.colorBuffer.setXYZW(index, particle.color.x, particle.color.y, particle.color.z, particle.color.w);", + " if (system.worldSpace) {", + " this.sizeBuffer.setX(index, particle.size);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.sizeBuffer.setX(index, particle.size);", + " }", + " else {", + " this.sizeBuffer.setX(index, (particle.size * (scale.x + scale.y + scale.z)) / 3);", + " }", + " }", + " this.uvTileBuffer.setX(index, particle.uvTile);", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", + " const speedFactor = system.speedFactor;", + " let vec;", + " if (system.worldSpace) {", + " vec = particle.velocity;", + " }", + " else {", + " vec = this.vector_;", + " if (particle.parentMatrix) {", + " this.rotationMat2_.setFromMatrix4(particle.parentMatrix);", + " vec.copy(particle.velocity).applyMatrix3(this.rotationMat2_);", + " }", + " else {", + " vec.copy(particle.velocity).applyMatrix3(this.rotationMat_);", + " }", + " }", + " this.velocityBuffer.setXYZ(index, vec.x * speedFactor, vec.y * speedFactor, vec.z * speedFactor);", + " }", + " }", + " });", + " this.geometry.instanceCount = index;", + " if (index > 0) {", + " this.offsetBuffer.updateRange.count = index * 3;", + " this.offsetBuffer.needsUpdate = true;", + " this.sizeBuffer.updateRange.count = index;", + " this.sizeBuffer.needsUpdate = true;", + " this.colorBuffer.updateRange.count = index * 4;", + " this.colorBuffer.needsUpdate = true;", + " this.uvTileBuffer.updateRange.count = index;", + " this.uvTileBuffer.needsUpdate = true;", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard && this.velocityBuffer) {", + " this.velocityBuffer.updateRange.count = index * 3;", + " this.velocityBuffer.needsUpdate = true;", + " }", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Mesh) {", + " this.rotationBuffer.updateRange.count = index * 4;", + " this.rotationBuffer.needsUpdate = true;", + " }", + " else if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard ||", + " this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard) {", + " this.rotationBuffer.updateRange.count = index;", + " this.rotationBuffer.needsUpdate = true;", + " }", + " }", + " }", + " dispose() {", + " this.geometry.dispose();", + " }", + "}", + "", + "var trail_frag = /* glsl */ `", + "", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "uniform sampler2D alphaMap;", + "uniform float useAlphaMap;", + "uniform float visibility;", + "uniform float alphaTest;", + "uniform vec2 repeat;", + "", + "varying vec4 vColor;", + "", + "void main() {", + "#include ", + "#include ", + "", + "vec4 c = vColor;", + "", + "#ifdef USE_MAP", + "c *= texture2D( map, vUv * repeat );", + "#endif", + "if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUv * repeat ).a;", + "if( c.a < alphaTest ) discard;", + "gl_FragColor = c;", + "", + "#include ", + "#include ", + "}`;", + "", + "var trail_vert = /* glsl */ `", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "#include ", + "", + "attribute vec3 previous;", + "attribute vec3 next;", + "attribute float side;", + "attribute float width;", + "", + "uniform vec2 resolution;", + "uniform float lineWidth;", + "uniform float sizeAttenuation;", + "", + "vec2 fix(vec4 i, float aspect) {", + "vec2 res = i.xy / i.w;", + "res.x *= aspect;", + "return res;", + "}", + "", + "void main() {", + "", + "#include ", + "", + "float aspect = resolution.x / resolution.y;", + "", + "vColor = color;", + "", + "mat4 m = projectionMatrix * modelViewMatrix;", + "vec4 finalPosition = m * vec4( position, 1.0 );", + "vec4 prevPos = m * vec4( previous, 1.0 );", + "vec4 nextPos = m * vec4( next, 1.0 );", + "", + "vec2 currentP = fix( finalPosition, aspect );", + "vec2 prevP = fix( prevPos, aspect );", + "vec2 nextP = fix( nextPos, aspect );", + "", + "float w = lineWidth * width;", + "", + "vec2 dir;", + "if( nextP == currentP ) dir = normalize( currentP - prevP );", + "else if( prevP == currentP ) dir = normalize( nextP - currentP );", + "else {", + " vec2 dir1 = normalize( currentP - prevP );", + " vec2 dir2 = normalize( nextP - currentP );", + " dir = normalize( dir1 + dir2 );", + "", + " vec2 perp = vec2( -dir1.y, dir1.x );", + " vec2 miter = vec2( -dir.y, dir.x );", + " //w = clamp( w / dot( miter, perp ), 0., 4., * lineWidth * width );", + "", + "}", + "", + "//vec2 normal = ( cross( vec3( dir, 0. ) vec3( 0., 0., 1. ) ) ).xy;", + "vec4 normal = vec4( -dir.y, dir.x, 0., 1. );", + "normal.xy *= .5 * w;", + "normal *= projectionMatrix;", + "if( sizeAttenuation == 0. ) {", + " normal.xy *= finalPosition.w;", + " normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;", + "}", + "", + "finalPosition.xy += normal.xy * side;", + "", + "gl_Position = finalPosition;", + "", + "#include ", + "#include ", + "", + "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", + "", + "#include ", + "}`;", + "", + "new THREE.Vector3(0, 0, 1);", + "class TrailBatch extends VFXBatch {", + " constructor(settings) {", + " super(settings);", + " /*", + " clone() {", + " let system = this.system.clone();", + " return system.emitter as any;", + " }*/", + " this.vector_ = new THREE.Vector3();", + " this.vector2_ = new THREE.Vector3();", + " this.vector3_ = new THREE.Vector3();", + " this.quaternion_ = new THREE.Quaternion();", + " this.maxParticles = 10000;", + " this.setupBuffers();", + " this.rebuildMaterial();", + " // TODO: implement boundingVolume", + " }", + " setupBuffers() {", + " if (this.geometry)", + " this.geometry.dispose();", + " this.geometry = new THREE.BufferGeometry();", + " this.indexBuffer = new THREE.BufferAttribute(new Uint32Array(this.maxParticles * 6), 1);", + " this.indexBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setIndex(this.indexBuffer);", + " this.positionBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.positionBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('position', this.positionBuffer);", + " this.previousBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.previousBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('previous', this.previousBuffer);", + " this.nextBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 6), 3);", + " this.nextBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('next', this.nextBuffer);", + " this.widthBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", + " this.widthBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('width', this.widthBuffer);", + " this.sideBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 2), 1);", + " this.sideBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('side', this.sideBuffer);", + " this.uvBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 4), 2);", + " this.uvBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('uv', this.uvBuffer);", + " this.colorBuffer = new THREE.BufferAttribute(new Float32Array(this.maxParticles * 8), 4);", + " this.colorBuffer.setUsage(THREE.DynamicDrawUsage);", + " this.geometry.setAttribute('color', this.colorBuffer);", + " }", + " expandBuffers(target) {", + " while (target >= this.maxParticles) {", + " this.maxParticles *= 2;", + " }", + " this.setupBuffers();", + " }", + " rebuildMaterial() {", + " this.layers.mask = this.settings.layers.mask;", + " const uniforms = {", + " lineWidth: { value: 1 },", + " map: { value: null },", + " useMap: { value: 0 },", + " alphaMap: { value: null },", + " useAlphaMap: { value: 0 },", + " resolution: { value: new THREE.Vector2(1, 1) },", + " sizeAttenuation: { value: 1 },", + " visibility: { value: 1 },", + " alphaTest: { value: 0 },", + " repeat: { value: new THREE.Vector2(1, 1) },", + " };", + " const defines = {};", + " defines['USE_UV'] = '';", + " defines['USE_COLOR_ALPHA'] = '';", + " if (this.settings.material.map) {", + " defines['USE_MAP'] = '';", + " defines['MAP_UV'] = getMaterialUVChannelName(this.settings.material.map.channel);", + " uniforms['map'] = new THREE.Uniform(this.settings.material.map);", + " uniforms['mapTransform'] = new THREE.Uniform(new THREE.Matrix3().copy(this.settings.material.map.matrix));", + " }", + " if (this.settings.renderMode === gdjs.__particleEmmiter3DExtension.RenderMode.Trail) {", + " this.material = new THREE.ShaderMaterial({", + " uniforms: uniforms,", + " defines: defines,", + " vertexShader: trail_vert,", + " fragmentShader: trail_frag,", + " transparent: this.settings.material.transparent,", + " depthWrite: !this.settings.material.transparent,", + " side: this.settings.material.side,", + " blending: this.settings.material.blending || THREE.AdditiveBlending,", + " });", + " }", + " else {", + " throw new Error('render mode unavailable');", + " }", + " }", + " update() {", + " let index = 0;", + " let triangles = 0;", + " let particleCount = 0;", + " this.systems.forEach((system) => {", + " for (let j = 0; j < system.particleNum; j++) {", + " particleCount += system.particles[j].previous.length * 2;", + " }", + " });", + " if (particleCount > this.maxParticles) {", + " this.expandBuffers(particleCount);", + " }", + " this.systems.forEach((system) => {", + " const rotation = this.quaternion_;", + " const translation = this.vector2_;", + " const scale = this.vector3_;", + " system.emitter.matrixWorld.decompose(translation, rotation, scale);", + " const particles = system.particles;", + " const particleNum = system.particleNum;", + " const uTileCount = this.settings.uTileCount;", + " const vTileCount = this.settings.vTileCount;", + " const tileWidth = 1 / uTileCount;", + " const tileHeight = 1 / vTileCount;", + " for (let j = 0; j < particleNum; j++) {", + " const particle = particles[j];", + " const col = particle.uvTile % vTileCount;", + " const row = Math.floor(particle.uvTile / vTileCount);", + " const iter = particle.previous.values();", + " let curIter = iter.next();", + " let previous = curIter.value;", + " let current = previous;", + " if (!curIter.done)", + " curIter = iter.next();", + " let next;", + " if (curIter.value !== undefined) {", + " next = curIter.value;", + " }", + " else {", + " next = current;", + " }", + " for (let i = 0; i < particle.previous.length; i++, index += 2) {", + " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", + " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", + " if (system.worldSpace) {", + " this.positionBuffer.setXYZ(index, current.position.x, current.position.y, current.position.z);", + " this.positionBuffer.setXYZ(index + 1, current.position.x, current.position.y, current.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(current.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(current.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.positionBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.positionBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " if (system.worldSpace) {", + " this.previousBuffer.setXYZ(index, previous.position.x, previous.position.y, previous.position.z);", + " this.previousBuffer.setXYZ(index + 1, previous.position.x, previous.position.y, previous.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(previous.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(previous.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.previousBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.previousBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " if (system.worldSpace) {", + " this.nextBuffer.setXYZ(index, next.position.x, next.position.y, next.position.z);", + " this.nextBuffer.setXYZ(index + 1, next.position.x, next.position.y, next.position.z);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.vector_.copy(next.position).applyMatrix4(particle.parentMatrix);", + " }", + " else {", + " this.vector_.copy(next.position).applyMatrix4(system.emitter.matrixWorld);", + " }", + " this.nextBuffer.setXYZ(index, this.vector_.x, this.vector_.y, this.vector_.z);", + " this.nextBuffer.setXYZ(index + 1, this.vector_.x, this.vector_.y, this.vector_.z);", + " }", + " this.sideBuffer.setX(index, -1);", + " this.sideBuffer.setX(index + 1, 1);", + " if (system.worldSpace) {", + " this.widthBuffer.setX(index, current.size);", + " this.widthBuffer.setX(index + 1, current.size);", + " }", + " else {", + " if (particle.parentMatrix) {", + " this.widthBuffer.setX(index, current.size);", + " this.widthBuffer.setX(index + 1, current.size);", + " }", + " else {", + " this.widthBuffer.setX(index, (current.size * (scale.x + scale.y + scale.z)) / 3);", + " this.widthBuffer.setX(index + 1, (current.size * (scale.x + scale.y + scale.z)) / 3);", + " }", + " }", + " this.uvBuffer.setXY(index, (i / particle.previous.length + col) * tileWidth, (vTileCount - row - 1) * tileHeight);", + " this.uvBuffer.setXY(index + 1, (i / particle.previous.length + col) * tileWidth, (vTileCount - row) * tileHeight);", + " this.colorBuffer.setXYZW(index, current.color.x, current.color.y, current.color.z, current.color.w);", + " this.colorBuffer.setXYZW(index + 1, current.color.x, current.color.y, current.color.z, current.color.w);", + " if (i + 1 < particle.previous.length) {", + " this.indexBuffer.setX(triangles * 3, index);", + " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", + " this.indexBuffer.setX(triangles * 3 + 2, index + 2);", + " triangles++;", + " this.indexBuffer.setX(triangles * 3, index + 2);", + " this.indexBuffer.setX(triangles * 3 + 1, index + 1);", + " this.indexBuffer.setX(triangles * 3 + 2, index + 3);", + " triangles++;", + " }", + " previous = current;", + " current = next;", + " if (!curIter.done) {", + " curIter = iter.next();", + " if (curIter.value !== undefined) {", + " next = curIter.value;", + " }", + " }", + " }", + " }", + " });", + " this.positionBuffer.updateRange.count = index * 3;", + " this.positionBuffer.needsUpdate = true;", + " this.previousBuffer.updateRange.count = index * 3;", + " this.previousBuffer.needsUpdate = true;", + " this.nextBuffer.updateRange.count = index * 3;", + " this.nextBuffer.needsUpdate = true;", + " this.sideBuffer.updateRange.count = index;", + " this.sideBuffer.needsUpdate = true;", + " this.widthBuffer.updateRange.count = index;", + " this.widthBuffer.needsUpdate = true;", + " this.uvBuffer.updateRange.count = index * 2;", + " this.uvBuffer.needsUpdate = true;", + " this.colorBuffer.updateRange.count = index * 4;", + " this.colorBuffer.needsUpdate = true;", + " this.indexBuffer.updateRange.count = triangles * 3;", + " this.indexBuffer.needsUpdate = true;", + " this.geometry.setDrawRange(0, triangles * 3);", + " }", + " dispose() {", + " this.geometry.dispose();", + " }", + "}", + "", + "class BatchedRenderer extends THREE.Object3D {", + " constructor() {", + " super();", + " this.batches = [];", + " this.systemToBatchIndex = new Map();", + " this.type = \"BatchedRenderer\";", + " }", + " static equals(a, b) {", + " return a.material.side === b.material.side &&", + " a.material.blending === b.material.blending &&", + " a.material.transparent === b.material.transparent &&", + " a.material.map === b.material.map &&", + " a.renderMode === b.renderMode &&", + " a.uTileCount === b.uTileCount &&", + " a.vTileCount === b.vTileCount &&", + " a.instancingGeometry === b.instancingGeometry &&", + " a.renderOrder === b.renderOrder &&", + " a.layers.mask === b.layers.mask;", + " }", + " addSystem(system) {", + " system._renderer = this;", + " const settings = system.getRendererSettings();", + " for (let i = 0; i < this.batches.length; i++) {", + " if (BatchedRenderer.equals(this.batches[i].settings, settings)) {", + " this.batches[i].addSystem(system);", + " this.systemToBatchIndex.set(system, i);", + " return;", + " }", + " }", + " let batch;", + " switch (settings.renderMode) {", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Trail:", + " batch = new TrailBatch(settings);", + " break;", + " case gdjs.__particleEmmiter3DExtension.RenderMode.Mesh:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.BillBoard:", + " case gdjs.__particleEmmiter3DExtension.RenderMode.StretchedBillBoard:", + " batch = new SpriteBatch(settings);", + " break;", + " }", + " batch.addSystem(system);", + " this.batches.push(batch);", + " this.systemToBatchIndex.set(system, this.batches.length - 1);", + " this.add(batch);", + " }", + " deleteSystem(system) {", + " const batchIndex = this.systemToBatchIndex.get(system);", + " if (batchIndex != undefined) {", + " this.batches[batchIndex].removeSystem(system);", + " this.systemToBatchIndex.delete(system);", + " }", + " /*const settings = system.getRendererSettings();", + " for (let i = 0; i < this.batches.length; i++) {", + " if (BatchedParticleRenderer.equals(this.batches[i].settings, settings)) {", + " this.batches[i].removeSystem(system);", + " return;", + " }", + " }*/", + " }", + " updateSystem(system) {", + " this.deleteSystem(system);", + " this.addSystem(system);", + " }", + " update(delta) {", + " this.systemToBatchIndex.forEach((value, ps) => {", + " ps.update(delta);", + " });", + " for (let i = 0; i < this.batches.length; i++) {", + " this.batches[i].update();", + " }", + " }", + "}", + "", + "// deprecated", + "const BatchedParticleRenderer = BatchedRenderer;", + "", + "class TextureSequencer {", + " constructor(scaleX = 0, scaleY = 0, position = new THREE.Vector3()) {", + " this.scaleX = scaleX;", + " this.scaleY = scaleY;", + " this.position = position;", + " this.locations = [];", + " }", + " transform(position, index) {", + " position.x = this.locations[index % this.locations.length].x * this.scaleX + this.position.x;", + " position.y = this.locations[index % this.locations.length].y * this.scaleY + this.position.y;", + " position.z = this.position.z;", + " }", + " static fromJSON(json) {", + " const textureSequencer = new TextureSequencer(json.scaleX, json.scaleY, new THREE.Vector3(json.position[0], json.position[1], json.position[2]));", + " textureSequencer.locations = json.locations.map((loc) => new THREE.Vector2(loc.x, loc.y));", + " return textureSequencer;", + " }", + " clone() {", + " const textureSequencer = new TextureSequencer(this.scaleX, this.scaleY, this.position.clone());", + " textureSequencer.locations = this.locations.map(loc => loc.clone());", + " return textureSequencer;", + " }", + " toJSON() {", + " return {", + " scaleX: this.scaleX,", + " scaleY: this.scaleY,", + " position: this.position,", + " locations: this.locations.map(loc => ({", + " x: loc.x,", + " y: loc.y,", + " }))", + " };", + " }", + " fromImage(img, threshold) {", + " // Create an empty canvas element", + " const canvas = document.createElement(\"canvas\");", + " canvas.width = img.width;", + " canvas.height = img.height;", + " // Copy the image contents to the canvas", + " const ctx = canvas.getContext(\"2d\");", + " if (!ctx) {", + " return;", + " }", + " ctx.drawImage(img, 0, 0);", + " const data = ctx.getImageData(0, 0, canvas.width, canvas.height, { colorSpace: \"srgb\" });", + " canvas.remove();", + " this.locations.length = 0;", + " for (let i = 0; i < data.height; i++) {", + " for (let j = 0; j < data.width; j++) {", + " if (data.data[(i * data.width + j) * 4 + 3] > threshold) {", + " this.locations.push(new THREE.Vector2(j, data.height - i));", + " }", + " }", + " }", + " //return data;", + " // Get the data-URL formatted image", + " // Firefox supports PNG and JPEG. You could check img.src to", + " // guess the original format, but be aware the using \"image/jpg\"", + " // will re-encode the image.", + " //var dataURL = canvas.toDataURL(\"image/png\");", + " //return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");", + " }", + "}", + "", + "function SequencerFromJSON(json) {", + " switch (json.type) {", + " case 'TextureSequencer':", + " return TextureSequencer.fromJSON(json);", + " default:", + " return new TextureSequencer();", + " }", + "}", + "", + "class ApplySequences {", + " constructor(delayBetweenParticles) {", + " this.type = 'ApplySequences';", + " this.sequencers = [];", + " this.time = 0;", + " this.index = 0;", + " this.pCount = 0;", + " this.tempV = new THREE.Vector3();", + " this.delay = delayBetweenParticles;", + " }", + " initialize(particle) {", + " particle.id = this.pCount;", + " particle.dst = new THREE.Vector3();", + " particle.begin = new THREE.Vector3();", + " particle.inMotion = false;", + " this.pCount++;", + " }", + " reset() {", + " this.time = 0;", + " this.index = 0;", + " this.pCount = 0;", + " }", + " update(particle, delta) {", + " const sequencer = this.sequencers[this.index];", + " const delay = particle.id * this.delay;", + " if (this.time >= sequencer[0].a + delay && this.time <= sequencer[0].b + delay) {", + " if (!particle.inMotion) {", + " particle.inMotion = true;", + " particle.begin.copy(particle.position);", + " sequencer[1].transform(particle.dst, particle.id);", + " }", + " particle.position.lerpVectors(particle.begin, particle.dst, ApplySequences.BEZIER.genValue((this.time - sequencer[0].a - delay) / (sequencer[0].b - sequencer[0].a)));", + " }", + " else if (this.time > sequencer[0].b + delay) {", + " particle.inMotion = false;", + " }", + " }", + " frameUpdate(delta) {", + " while (this.index + 1 < this.sequencers.length && this.time >= this.sequencers[this.index + 1][0].a) {", + " this.index++;", + " }", + " this.time += delta;", + " }", + " appendSequencer(range, sequencer) {", + " this.sequencers.push([range, sequencer]);", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " delay: this.delay,", + " sequencers: this.sequencers.map(([range, sequencer]) => ({", + " range: range.toJSON(),", + " sequencer: sequencer.toJSON(),", + " })),", + " };", + " }", + " static fromJSON(json) {", + " const seq = new ApplySequences(json.delay);", + " json.sequencers.forEach((sequencerJson) => {", + " seq.sequencers.push([ValueGeneratorFromJSON(sequencerJson.range), SequencerFromJSON(sequencerJson.sequencer)]);", + " });", + " return seq;", + " }", + " clone() {", + " const applySequences = new ApplySequences(this.delay);", + " applySequences.sequencers = this.sequencers.map(seq => [seq[0].clone(), seq[1].clone()]);", + " return applySequences;", + " }", + "}", + "ApplySequences.BEZIER = new Bezier(0, 0, 1, 1);", + "", + "let physicsResolver;", + "function setPhysicsResolver(resolver) {", + " physicsResolver = resolver;", + "}", + "function getPhysicsResolver() {", + " return physicsResolver;", + "}", + "class ApplyCollision {", + " constructor(resolver, bounce) {", + " this.resolver = resolver;", + " this.bounce = bounce;", + " this.type = 'ApplyCollision';", + " this.tempV = new THREE.Vector3();", + " }", + " initialize(particle) {", + " }", + " update(particle, delta) {", + " if (this.resolver.resolve(particle.position, this.tempV)) {", + " particle.velocity.reflect(this.tempV).multiplyScalar(this.bounce);", + " }", + " }", + " frameUpdate(delta) {", + " }", + " toJSON() {", + " return {", + " type: this.type,", + " bounce: this.bounce,", + " };", + " }", + " static fromJSON(json) {", + " return new ApplyCollision(getPhysicsResolver(), json.bounce);", + " }", + " clone() {", + " return new ApplyCollision(this.resolver, this.bounce);", + " }", + " reset() {", + " }", + "}", + "", + "class QuarksLoader extends THREE.ObjectLoader {", + " /*manager: LoadingManager;", + " crossOrigin: string = \"anonymous\";", + " path?: string;", + " resourcePath: string;", + "*/", + " constructor(manager) {", + " super(manager);", + " //this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;", + " //this.resourcePath = '';", + " }", + " linkReference(object) {", + " const objectsMap = {};", + " object.traverse(function (child) {", + " objectsMap[child.uuid] = child;", + " });", + " object.traverse(function (child) {", + " if (child.type === \"ParticleEmitter\") {", + " const system = child.system;", + " system.emitterShape;", + " /*if (shape instanceof MeshSurfaceEmitter) {", + " shape.geometry = objectsMap[shape.geometry as any] as Mesh;", + " }*/", + " for (let i = 0; i < system.behaviors.length; i++) {", + " if (system.behaviors[i] instanceof EmitSubParticleSystem) {", + " system.behaviors[i].subParticleSystem = objectsMap[system.behaviors[i].subParticleSystem];", + " }", + " }", + " }", + " });", + " }", + " parse(json, onLoad) {", + " const object = super.parse(json, onLoad);", + " this.linkReference(object);", + " return object;", + " }", + " // @ts-ignore", + " parseObject(data, geometries, materials, textures, animations) {", + " let object;", + " function getGeometry(name) {", + " if (geometries[name] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined geometry', name);", + " }", + " return geometries[name];", + " }", + " function getMaterial(name) {", + " if (name === undefined)", + " return undefined;", + " if (Array.isArray(name)) {", + " const array = [];", + " for (let i = 0, l = name.length; i < l; i++) {", + " const uuid = name[i];", + " if (materials[uuid] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined material', uuid);", + " }", + " array.push(materials[uuid]);", + " }", + " return array;", + " }", + " if (materials[name] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined material', name);", + " }", + " return materials[name];", + " }", + " function getTexture(uuid) {", + " if (textures[uuid] === undefined) {", + " console.warn('THREE.ObjectLoader: Undefined texture', uuid);", + " }", + " return textures[uuid];", + " }", + " let geometry, material;", + " const meta = {", + " textures: textures,", + " geometries: geometries,", + " materials: materials,", + " };", + " const dependencies = {};", + " switch (data.type) {", + " case 'ParticleEmitter':", + " object = ParticleSystem.fromJSON(data.ps, meta, dependencies).emitter;", + " break;", + " case 'Scene':", + " object = new THREE.Scene();", + " if (data.background !== undefined) {", + " if (Number.isInteger(data.background)) {", + " object.background = new THREE.Color(data.background);", + " }", + " else {", + " object.background = getTexture(data.background);", + " }", + " }", + " if (data.environment !== undefined) {", + " object.environment = getTexture(data.environment);", + " }", + " if (data.fog !== undefined) {", + " if (data.fog.type === 'Fog') {", + " object.fog = new THREE.Fog(data.fog.color, data.fog.near, data.fog.far);", + " }", + " else if (data.fog.type === 'FogExp2') {", + " object.fog = new THREE.FogExp2(data.fog.color, data.fog.density);", + " }", + " }", + " if (data.backgroundBlurriness !== undefined)", + " object.backgroundBlurriness = data.backgroundBlurriness;", + " break;", + " case 'PerspectiveCamera':", + " object = new THREE.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);", + " if (data.focus !== undefined)", + " object.focus = data.focus;", + " if (data.zoom !== undefined)", + " object.zoom = data.zoom;", + " if (data.filmGauge !== undefined)", + " object.filmGauge = data.filmGauge;", + " if (data.filmOffset !== undefined)", + " object.filmOffset = data.filmOffset;", + " if (data.view !== undefined)", + " object.view = Object.assign({}, data.view);", + " break;", + " case 'OrthographicCamera':", + " object = new THREE.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);", + " if (data.zoom !== undefined)", + " object.zoom = data.zoom;", + " if (data.view !== undefined)", + " object.view = Object.assign({}, data.view);", + " break;", + " case 'AmbientLight':", + " object = new THREE.AmbientLight(data.color, data.intensity);", + " break;", + " case 'DirectionalLight':", + " object = new THREE.DirectionalLight(data.color, data.intensity);", + " break;", + " case 'PointLight':", + " object = new THREE.PointLight(data.color, data.intensity, data.distance, data.decay);", + " break;", + " case 'RectAreaLight':", + " object = new THREE.RectAreaLight(data.color, data.intensity, data.width, data.height);", + " break;", + " case 'SpotLight':", + " object = new THREE.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);", + " break;", + " case 'HemisphereLight':", + " object = new THREE.HemisphereLight(data.color, data.groundColor, data.intensity);", + " break;", + " case 'LightProbe':", + " object = new THREE.LightProbe().fromJSON(data);", + " break;", + " case 'SkinnedMesh':", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " object = new THREE.SkinnedMesh(geometry, material);", + " if (data.bindMode !== undefined)", + " object.bindMode = data.bindMode;", + " if (data.bindMatrix !== undefined)", + " object.bindMatrix.fromArray(data.bindMatrix);", + " if (data.skeleton !== undefined)", + " object.skeleton = data.skeleton;", + " break;", + " case 'Mesh':", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " object = new THREE.Mesh(geometry, material);", + " break;", + " case 'InstancedMesh': {", + " geometry = getGeometry(data.geometry);", + " material = getMaterial(data.material);", + " const count = data.count;", + " const instanceMatrix = data.instanceMatrix;", + " const instanceColor = data.instanceColor;", + " object = new THREE.InstancedMesh(geometry, material, count);", + " object.instanceMatrix = new THREE.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);", + " if (instanceColor !== undefined)", + " object.instanceColor = new THREE.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);", + " break;", + " }", + " case 'LOD':", + " object = new THREE.LOD();", + " break;", + " case 'Line':", + " object = new THREE.Line(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'LineLoop':", + " object = new THREE.LineLoop(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'LineSegments':", + " object = new THREE.LineSegments(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'PointCloud':", + " case 'Points':", + " object = new THREE.Points(getGeometry(data.geometry), getMaterial(data.material));", + " break;", + " case 'Sprite':", + " object = new THREE.Sprite(getMaterial(data.material));", + " break;", + " case 'Group':", + " object = new THREE.Group();", + " break;", + " case 'Bone':", + " object = new THREE.Bone();", + " break;", + " default:", + " object = new THREE.Object3D();", + " }", + " object.uuid = data.uuid;", + " if (data.name !== undefined)", + " object.name = data.name;", + " if (data.matrix !== undefined) {", + " object.matrix.fromArray(data.matrix);", + " if (data.matrixAutoUpdate !== undefined)", + " object.matrixAutoUpdate = data.matrixAutoUpdate;", + " if (object.matrixAutoUpdate)", + " object.matrix.decompose(object.position, object.quaternion, object.scale);", + " }", + " else {", + " if (data.position !== undefined)", + " object.position.fromArray(data.position);", + " if (data.rotation !== undefined)", + " object.rotation.fromArray(data.rotation);", + " if (data.quaternion !== undefined)", + " object.quaternion.fromArray(data.quaternion);", + " if (data.scale !== undefined)", + " object.scale.fromArray(data.scale);", + " }", + " if (data.castShadow !== undefined)", + " object.castShadow = data.castShadow;", + " if (data.receiveShadow !== undefined)", + " object.receiveShadow = data.receiveShadow;", + " if (data.shadow) {", + " if (data.shadow.bias !== undefined)", + " object.shadow.bias = data.shadow.bias;", + " if (data.shadow.normalBias !== undefined)", + " object.normalBias = data.shadow.normalBias;", + " if (data.shadow.radius !== undefined)", + " object.radius = data.shadow.radius;", + " if (data.shadow.mapSize !== undefined)", + " object.mapSize.fromArray(data.shadow.mapSize);", + " if (data.shadow.camera !== undefined) { // @ts-ignore", + " object.camera = this.parseObject(data.shadow.camera);", + " }", + " }", + " if (data.visible !== undefined)", + " object.visible = data.visible;", + " if (data.frustumCulled !== undefined)", + " object.frustumCulled = data.frustumCulled;", + " if (data.renderOrder !== undefined)", + " object.renderOrder = data.renderOrder;", + " if (data.userData !== undefined)", + " object.userData = data.userData;", + " if (data.layers !== undefined)", + " object.layers.mask = data.layers;", + " if (data.children !== undefined) {", + " const children = data.children;", + " for (let i = 0; i < children.length; i++) {", + " object.add(this.parseObject(children[i], geometries, materials, textures, animations));", + " }", + " }", + " if (data.animations !== undefined) {", + " const objectAnimations = data.animations;", + " for (let i = 0; i < objectAnimations.length; i++) {", + " const uuid = objectAnimations[i];", + " object.animations.push(animations[uuid]);", + " }", + " }", + " if (data.type === 'LOD') {", + " if (data.autoUpdate !== undefined)", + " object.autoUpdate = data.autoUpdate;", + " const levels = data.levels;", + " for (let l = 0; l < levels.length; l++) {", + " const level = levels[l];", + " const child = object.getObjectByProperty('uuid', level.object);", + " if (child !== undefined) {", + " // @ts-ignore", + " object.addLevel(child, level.distance);", + " }", + " }", + " }", + " // @ts-ignore", + " return object;", + " }", + "}", + "", + "const Plugins = [];", + "function loadPlugin(plugin) {", + " const existing = Plugins.find(item => item.id === plugin.id);", + " if (!existing) {", + " plugin.initialize();", + " for (const emitterShape of plugin.emitterShapes) {", + " if (!EmitterShapes[emitterShape.type]) {", + " EmitterShapes[emitterShape.type] = emitterShape;", + " }", + " }", + " for (const behavior of plugin.behaviors) {", + " if (!BehaviorTypes[behavior.type]) {", + " BehaviorTypes[behavior.type] = behavior;", + " }", + " }", + " }", + "}", + "function unloadPlugin(pluginId) {", + " const plugin = Plugins.find(item => item.id === pluginId);", + " if (plugin) {", + " for (const emitterShape of plugin.emitterShapes) {", + " if (EmitterShapes[emitterShape.type]) {", + " delete EmitterShapes[emitterShape.type];", + " }", + " }", + " for (const behavior of plugin.behaviors) {", + " if (BehaviorTypes[behavior.type]) {", + " delete BehaviorTypes[behavior.type];", + " }", + " }", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.NodeValueType = void 0;", + "(function (NodeValueType) {", + " NodeValueType[NodeValueType[\"Number\"] = 0] = \"Number\";", + " NodeValueType[NodeValueType[\"Vec2\"] = 1] = \"Vec2\";", + " NodeValueType[NodeValueType[\"Vec3\"] = 2] = \"Vec3\";", + " NodeValueType[NodeValueType[\"Vec4\"] = 3] = \"Vec4\";", + " NodeValueType[NodeValueType[\"Boolean\"] = 4] = \"Boolean\";", + " NodeValueType[NodeValueType[\"AnyType\"] = 5] = \"AnyType\";", + "})(gdjs.__particleEmmiter3DExtension.NodeValueType || (gdjs.__particleEmmiter3DExtension.NodeValueType = {}));", + "const genDefaultForNodeValueType = (type) => {", + " switch (type) {", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Boolean:", + " return false;", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Number:", + " return 0;", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec2:", + " return new THREE.Vector2();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec3:", + " return new THREE.Vector3();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.Vec4:", + " return new THREE.Vector4();", + " case gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType:", + " return 0;", + " }", + "};", + "", + "class Node {", + " constructor(type) {", + " this.inputs = [];", + " this.outputs = [];", + " this.data = {};", + " // display", + " this.position = new THREE.Vector2();", + " // execution", + " this.outputValues = [];", + " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", + " this.type = type;", + " for (let i = 0; i < type.inputTypes.length; i++) {", + " this.inputs.push(undefined);", + " }", + " for (let i = 0; i < type.outputTypes.length; i++) {", + " this.outputs.push(undefined);", + " this.outputValues.push(genDefaultForNodeValueType(type.outputTypes[i]));", + " }", + " }", + "}", + "class Wire {", + " constructor(input, inputIndex, output, outputIndex) {", + " this.input = input;", + " this.inputIndex = inputIndex;", + " this.input.outputs[inputIndex] = this;", + " this.output = output;", + " this.outputIndex = outputIndex;", + " this.output.inputs[outputIndex] = this;", + " }", + "}", + "", + "class Interpreter {", + " constructor() {", + " this.visited = new Set();", + " Interpreter.Instance = this;", + " }", + " traverse(node) {", + " if (this.context_ === undefined) {", + " throw new Error(\"context is undefined\");", + " }", + " if (this.graph_ === undefined) {", + " throw new Error(\"graph is undefined\");", + " }", + " this.visited.add(node.id);", + " const inputValues = [];", + " for (let i = 0; i < node.inputs.length; i++) {", + " if (node.inputs[i] instanceof Wire) {", + " const inputNode = node.inputs[i].input;", + " //if (inputNode) {", + " if (!this.visited.has(inputNode.id)) {", + " this.traverse(inputNode);", + " }", + " inputValues.push(inputNode.outputValues[node.inputs[i].inputIndex]);", + " /*} else {", + " throw new Error(`Node ${node.id} has not inputs`);", + " }*/", + " }", + " else {", + " inputValues.push(node.inputs[i].getValue(this.context_));", + " }", + " }", + " // calculation", + " node.type.func(this.context_, inputValues, node.outputValues);", + " this.graph_.nodesInOrder.push(node);", + " }", + " executeCompiledGraph() {", + " if (this.context_ === undefined) {", + " throw new Error(\"context is undefined\");", + " }", + " if (this.graph_ === undefined) {", + " throw new Error(\"graph is undefined\");", + " }", + " const nodes = this.graph_.nodesInOrder;", + " for (let i = 0; i < nodes.length; i++) {", + " const inputValues = [];", + " const node = nodes[i];", + " for (let j = 0; j < node.inputs.length; j++) {", + " if (node.inputs[j] instanceof Wire) {", + " inputValues.push(node.inputs[j].input.outputValues[node.inputs[j].inputIndex]);", + " }", + " else if (node.inputs[j] !== undefined) {", + " inputValues.push(node.inputs[j].getValue(this.context_));", + " }", + " else {", + " throw new Error(`miss input for node ${node.id}`);", + " }", + " }", + " node.type.func(this.context_, inputValues, node.outputValues);", + " }", + " }", + " run(graph, context) {", + " this.graph_ = graph;", + " this.context_ = context;", + " if (graph.compiled) {", + " this.executeCompiledGraph();", + " }", + " else {", + " graph.nodesInOrder.length = 0;", + " this.visited.clear();", + " for (let i = 0; i < graph.outputNodes.length; i++) {", + " const node = graph.outputNodes[i];", + " this.traverse(node);", + " }", + " graph.compiled = true;", + " }", + " }", + "}", + "", + "class NodeType {", + " constructor(name, func, inputTypes, outputTypes) {", + " this.inputTypes = [];", + " this.outputTypes = [];", + " this.name = name;", + " this.func = func;", + " this.inputTypes = inputTypes;", + " this.outputTypes = outputTypes;", + " }", + "}", + "class GraphNodeType extends NodeType {", + " constructor(nodeGraph) {", + " const inputTypes = [];", + " for (let i = 0; i < nodeGraph.inputNodes.length; i++) {", + " if (nodeGraph.inputNodes[i].type.name === 'input') {", + " inputTypes.push(nodeGraph.inputNodes[i].data.type);", + " }", + " }", + " const outputTypes = [];", + " for (let i = 0; i < nodeGraph.outputNodes.length; i++) {", + " if (nodeGraph.outputNodes[i].type.name === 'output') {", + " outputTypes.push(nodeGraph.outputNodes[i].data.type);", + " }", + " }", + " super(nodeGraph.name, (context, inputs, outputs) => {", + " context.inputs = inputs;", + " context.outputs = outputs;", + " Interpreter.Instance.run(nodeGraph, context);", + " }, inputTypes, outputTypes);", + " this.nodeGraph = nodeGraph;", + " }", + "}", + "", + "const NodeTypes = {", + " \"add\": new NodeType(\"add\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] + inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].addVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"sub\": new NodeType(\"sub\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] - inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].subVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"mul\": new NodeType(\"mul\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] * inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].multiplyVectors(inputs[0], inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"div\": new NodeType(\"div\", (context, inputs, outputs) => {", + " if (typeof inputs[0] === 'number') {", + " outputs[0] = inputs[0] / inputs[1];", + " }", + " else if (inputs[0] instanceof THREE.Vector3 || inputs[0] instanceof THREE.Vector2 || inputs[0] instanceof THREE.Vector4) {", + " outputs[0].copy(inputs[0]).divide(inputs[1]);", + " }", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType, gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"curve\": new NodeType(\"curve\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"vrand\": new NodeType(\"vrand\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"curveSample\": new NodeType(\"curveSample\", (context, inputs, outputs) => {", + " //outputs[0] = inputs[0] + inputs[1];", + " }, [], []),", + " \"random\": new NodeType(\"random\", (context, inputs, outputs) => {", + " outputs[0] = Math.random() * (inputs[1] - inputs[0]) + inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.Number, gdjs.__particleEmmiter3DExtension.NodeValueType.Number], [gdjs.__particleEmmiter3DExtension.NodeValueType.Number]),", + " \"input\": new NodeType(\"input\", (context, inputs, outputs) => {", + " outputs[0] = inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + " \"output\": new NodeType(\"output\", (context, inputs, outputs) => {", + " outputs[0] = inputs[0];", + " }, [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType], [gdjs.__particleEmmiter3DExtension.NodeValueType.AnyType]),", + "};", + "", + "class NodeGraph {", + " constructor(name) {", + " this.inputNodes = [];", + " this.outputNodes = [];", + " this.allNodes = new Map();", + " this.wires = [];", + " this.compiled = false;", + " this.nodesInOrder = [];", + " this.version = \"1.0\";", + " this.id = \"\" + Math.round(Math.random() * 100000); //TODO use real random", + " this.name = name;", + " }", + " addWire(wire) {", + " this.wires.push(wire);", + " }", + " addNode(node) {", + " //this.nodes.push(node);", + " this.allNodes.set(node.id, node);", + " if (node.type === NodeTypes['input']) {", + " this.inputNodes.push(node);", + " }", + " else if (node.type === NodeTypes['output']) {", + " this.outputNodes.push(node);", + " }", + " }", + " getNode(id) {", + " return this.allNodes.get(id);", + " }", + " deleteNode(node) {", + " /*let index = this.nodes.indexOf(node);", + " if (index != -1) {", + " this.nodes[index] = this.nodes[this.nodes.length - 1];", + " this.nodes.pop();", + " }*/", + " this.allNodes.delete(node.id);", + " }", + " deleteWire(wire) {", + " wire.input.outputs[wire.inputIndex] = undefined;", + " wire.output.inputs[wire.outputIndex] = undefined;", + " const index = this.wires.indexOf(wire);", + " if (index != -1) {", + " this.wires[index] = this.wires[this.wires.length - 1];", + " this.wires.pop();", + " }", + " }", + " toJSON() {", + " throw new Error(\"not implemented\");", + " }", + " clone() {", + " throw new Error(\"not implemented\");", + " }", + "}", + "", + "gdjs.__particleEmmiter3DExtension.ApplyCollision = ApplyCollision;", + "gdjs.__particleEmmiter3DExtension.ApplyForce = ApplyForce;", + "gdjs.__particleEmmiter3DExtension.ApplySequences = ApplySequences;", + "gdjs.__particleEmmiter3DExtension.AxisAngleGenerator = AxisAngleGenerator;", + "gdjs.__particleEmmiter3DExtension.BatchedParticleRenderer = BatchedParticleRenderer;", + "gdjs.__particleEmmiter3DExtension.BatchedRenderer = BatchedRenderer;", + "gdjs.__particleEmmiter3DExtension.BehaviorFromJSON = BehaviorFromJSON;", + "gdjs.__particleEmmiter3DExtension.BehaviorTypes = BehaviorTypes;", + "gdjs.__particleEmmiter3DExtension.Bezier = Bezier;", + "gdjs.__particleEmmiter3DExtension.ChangeEmitDirection = ChangeEmitDirection;", + "gdjs.__particleEmmiter3DExtension.ColorGeneratorFromJSON = ColorGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.ColorOverLife = ColorOverLife;", + "gdjs.__particleEmmiter3DExtension.ColorRange = ColorRange;", + "gdjs.__particleEmmiter3DExtension.ConeEmitter = ConeEmitter;", + "gdjs.__particleEmmiter3DExtension.ConstantColor = ConstantColor;", + "gdjs.__particleEmmiter3DExtension.ConstantValue = ConstantValue;", + "gdjs.__particleEmmiter3DExtension.DonutEmitter = DonutEmitter;", + "gdjs.__particleEmmiter3DExtension.EmitSubParticleSystem = EmitSubParticleSystem;", + "gdjs.__particleEmmiter3DExtension.EmitterFromJSON = EmitterFromJSON;", + "gdjs.__particleEmmiter3DExtension.EmitterShapes = EmitterShapes;", + "gdjs.__particleEmmiter3DExtension.EulerGenerator = EulerGenerator;", + "gdjs.__particleEmmiter3DExtension.ForceOverLife = ForceOverLife;", + "gdjs.__particleEmmiter3DExtension.FrameOverLife = FrameOverLife;", + "gdjs.__particleEmmiter3DExtension.GeneratorFromJSON = GeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.Gradient = Gradient;", + "gdjs.__particleEmmiter3DExtension.GraphNodeType = GraphNodeType;", + "gdjs.__particleEmmiter3DExtension.GravityForce = GravityForce;", + "gdjs.__particleEmmiter3DExtension.GridEmitter = GridEmitter;", + "gdjs.__particleEmmiter3DExtension.Interpreter = Interpreter;", + "gdjs.__particleEmmiter3DExtension.IntervalValue = IntervalValue;", + "gdjs.__particleEmmiter3DExtension.MeshSurfaceEmitter = MeshSurfaceEmitter;", + "gdjs.__particleEmmiter3DExtension.Node = Node;", + "gdjs.__particleEmmiter3DExtension.NodeGraph = NodeGraph;", + "gdjs.__particleEmmiter3DExtension.NodeType = NodeType;", + "gdjs.__particleEmmiter3DExtension.NodeTypes = NodeTypes;", + "gdjs.__particleEmmiter3DExtension.Noise = Noise;", + "gdjs.__particleEmmiter3DExtension.OrbitOverLife = OrbitOverLife;", + "gdjs.__particleEmmiter3DExtension.ParticleEmitter = ParticleEmitter;", + "gdjs.__particleEmmiter3DExtension.ParticleSystem = ParticleSystem;", + "gdjs.__particleEmmiter3DExtension.PiecewiseBezier = PiecewiseBezier;", + "gdjs.__particleEmmiter3DExtension.PiecewiseFunction = PiecewiseFunction;", + "gdjs.__particleEmmiter3DExtension.Plugins = Plugins;", + "gdjs.__particleEmmiter3DExtension.PointEmitter = PointEmitter;", + "gdjs.__particleEmmiter3DExtension.QuarksLoader = QuarksLoader;", + "gdjs.__particleEmmiter3DExtension.RandomColor = RandomColor;", + "gdjs.__particleEmmiter3DExtension.RandomColorBetweenGradient = RandomColorBetweenGradient;", + "gdjs.__particleEmmiter3DExtension.RandomQuatGenerator = RandomQuatGenerator;", + "gdjs.__particleEmmiter3DExtension.RecordState = RecordState;", + "gdjs.__particleEmmiter3DExtension.Rotation3DOverLife = Rotation3DOverLife;", + "gdjs.__particleEmmiter3DExtension.RotationGeneratorFromJSON = RotationGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.RotationOverLife = RotationOverLife;", + "gdjs.__particleEmmiter3DExtension.SequencerFromJSON = SequencerFromJSON;", + "gdjs.__particleEmmiter3DExtension.SizeOverLife = SizeOverLife;", + "gdjs.__particleEmmiter3DExtension.SpeedOverLife = SpeedOverLife;", + "gdjs.__particleEmmiter3DExtension.SphereEmitter = SphereEmitter;", + "gdjs.__particleEmmiter3DExtension.SpriteBatch = SpriteBatch;", + "gdjs.__particleEmmiter3DExtension.SpriteParticle = SpriteParticle;", + "gdjs.__particleEmmiter3DExtension.TextureSequencer = TextureSequencer;", + "gdjs.__particleEmmiter3DExtension.TrailBatch = TrailBatch;", + "gdjs.__particleEmmiter3DExtension.TrailParticle = TrailParticle;", + "gdjs.__particleEmmiter3DExtension.TurbulenceField = TurbulenceField;", + "gdjs.__particleEmmiter3DExtension.VFXBatch = VFXBatch;", + "gdjs.__particleEmmiter3DExtension.ValueGeneratorFromJSON = ValueGeneratorFromJSON;", + "gdjs.__particleEmmiter3DExtension.WidthOverLength = WidthOverLength;", + "gdjs.__particleEmmiter3DExtension.Wire = Wire;", + "gdjs.__particleEmmiter3DExtension.genDefaultForNodeValueType = genDefaultForNodeValueType;", + "gdjs.__particleEmmiter3DExtension.getPhysicsResolver = getPhysicsResolver;", + "gdjs.__particleEmmiter3DExtension.loadPlugin = loadPlugin;", + "gdjs.__particleEmmiter3DExtension.setPhysicsResolver = setPhysicsResolver;", + "gdjs.__particleEmmiter3DExtension.unloadPlugin = unloadPlugin;", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "aa8a3300-b3e0-4cd0-8fe1-2cb40a6fad7f", - "width": 48, - "x": 768, - "y": 144, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "fullName": "", + "functionType": "Action", + "name": "onScenePreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "// See doStepPostEvents\r", + "runtimeScene.__particleEmmiter3DExtension = runtimeScene.__particleEmmiter3DExtension || {};\r", + "runtimeScene.__particleEmmiter3DExtension.emittersStepped = 0;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "036dd1fe-7ca4-47a9-a90b-7d4cbfdfcf28", - "width": 48, - "x": 768, - "y": 192, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "defaultName": "ParticleEmitter", + "description": "Display a large number of particles to create visual effects.", + "fullName": "3D particle emitter", + "name": "ParticleEmitter3D", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::DefineHelperClasses" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const BatchedRenderer = gdjs.__particleEmmiter3DExtension.BatchedRenderer;", + "const ParticleSystem = gdjs.__particleEmmiter3DExtension.ParticleSystem;", + "const TextureLoader = gdjs.__particleEmmiter3DExtension.TextureLoader;", + "const IntervalValue = gdjs.__particleEmmiter3DExtension.IntervalValue;", + "const ConstantValue = gdjs.__particleEmmiter3DExtension.ConstantValue;", + "const ConstantColor = gdjs.__particleEmmiter3DExtension.ConstantColor;", + "const ColorOverLife = gdjs.__particleEmmiter3DExtension.ColorOverLife;", + "const SizeOverLife = gdjs.__particleEmmiter3DExtension.SizeOverLife;", + "const ApplyForce = gdjs.__particleEmmiter3DExtension.ApplyForce;", + "const ColorRange = gdjs.__particleEmmiter3DExtension.ColorRange;", + "const PiecewiseBezier = gdjs.__particleEmmiter3DExtension.PiecewiseBezier;", + "const Bezier = gdjs.__particleEmmiter3DExtension.Bezier;", + "const PointEmitter = gdjs.__particleEmmiter3DExtension.PointEmitter;", + "const ConeEmitter = gdjs.__particleEmmiter3DExtension.ConeEmitter;", + "const RenderMode = gdjs.__particleEmmiter3DExtension.RenderMode;", + "", + "const ParticleEmitterAdapter = gdjs.__particleEmmiter3DExtension.ParticleEmitterAdapter;", + "", + "/** @type {gdjs.CustomRuntimeObject} */", + "const object = objects[0];", + "", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "const layer = gameScene.getLayer(object.getLayer());", + "", + "gameScene.__particleEmmiter3DExtension = gameScene.__particleEmmiter3DExtension || {};", + "if (!gameScene.__particleEmmiter3DExtension.batchSystem) {", + " const batchSystem = new BatchedRenderer();", + " layer.getRenderer().getThreeScene().add(batchSystem);", + " gameScene.__particleEmmiter3DExtension.batchSystem = batchSystem;", + "}", + "const batchSystem = gameScene.__particleEmmiter3DExtension.batchSystem;", + "", + "/** @type {SpriteObjectDataType} */", + "const particleSpriteData = object._instanceContainer._objects.get(\"Particle\");", + "const resourceName = particleSpriteData.animations[0].directions[0].sprites[0].image;", + "const texture = object", + " .getInstanceContainer()", + " .getGame()", + " .getImageManager().getThreeTexture(resourceName);", + "", + "// Set the blending here because changes are not applied after the emitter creation.", + "const blendingString = object._getBlending();", + "const blending =", + " blendingString === \"Additive\" ? THREE.AdditiveBlending :", + " blendingString === \"Normal\" ? THREE.NormalBlending :", + " blendingString === \"Subtractive\" ? THREE.SubtractiveBlending :", + " blendingString === \"Multiply\" ? THREE.MultiplyBlending :", + " blendingString === \"None\" ? THREE.NoBlending :", + " THREE.AdditiveBlending;", + "", + "", + "// Build a configuration with the right kind of objects.", + "// These values are not important as they are overrided by the object properties values.", + "const muzzle = {", + " duration: 10,", + " looping: false,", + " startLife: new IntervalValue(1, 2),", + " startSpeed: new IntervalValue(100, 200),", + " startSize: new IntervalValue(20, 50),", + " startColor: new ConstantColor(new THREE.Vector4(1, 1, 1, 1)),", + " worldSpace: true,", + "", + " maxParticle: 5,", + " emissionOverTime: new ConstantValue(50),", + " emissionBursts: [{", + " time: 0,", + " count: 1,", + " cycle: 1,", + " interval: 0.01,", + " probability: 1,", + " }],", + "", + " shape: new PointEmitter(),", + " material: new THREE.MeshBasicMaterial({", + " map: texture,", + " blending: blending,", + " transparent: true,", + " side: THREE.DoubleSide", + " }),", + " startTileIndex: 0,", + " uTileCount: 1,", + " vTileCount: 1,", + " renderOrder: 2,", + " renderMode: RenderMode.BillBoard", + "};", + "const particleSystem = new ParticleSystem(muzzle);", + "object.__particleSystem = particleSystem;", + "", + "const colorOverLife = new ColorOverLife(new ColorRange(", + " new THREE.Vector4(1, 0.3882312, 0.125, 1),", + " new THREE.Vector4(1, 0.826827, 0.3014706, 1)));", + "particleSystem.addBehavior(colorOverLife);", + "const sizeOverLife = new SizeOverLife(new PiecewiseBezier([[new Bezier(1, 2 / 3, 1 / 3, 0), 0]]));", + "particleSystem.addBehavior(sizeOverLife);", + "const applyForce = new ApplyForce(new THREE.Vector3(0, 0, -1), new ConstantValue(0));", + "particleSystem.addBehavior(applyForce);", + "", + "particleSystem.emitter.rotation.order = 'ZYX';", + "particleSystem.emitter.name = object.getName() + object.getNameId();", + "batchSystem.addSystem(particleSystem);", + "", + "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", + "", + "layer.get3DRendererObject().add(particleSystem.emitter);", + "const ParticleEmitter3D = Object.getPrototypeOf(object);", + "if (!ParticleEmitter3D.__isDefined) {", + " ParticleEmitter3D.__isDefined = true;", + " ParticleEmitter3D.get3DRendererObject = () => this.__emitter;", + "}", + "", + "// See doStepPostEvents", + "gameScene.__particleEmmiter3DExtension.emittersCount = gameScene.__particleEmmiter3DExtension.emittersCount || 0;", + "gameScene.__particleEmmiter3DExtension.emittersCount++;", + "", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.CustomRuntimeObject} */", + "const object = objects[0];", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "", + "object.__particleSystem.dispose();", + "", + "// See doStepPostEvents", + "gameScene.__particleEmmiter3DExtension.emittersCount--;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::UpdateFromProperties" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Update from properties.", + "fullName": "Update from properties", + "functionType": "Action", + "name": "UpdateFromProperties", + "private": true, + "sentence": "Update from properties of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetZ" + }, + "parameters": [ + "Object", + "=", + "Object.Z()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyRotationX()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyRotationY()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartColor" + }, + "parameters": [ + "Object", + "=", + "Object.StartColor()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndColor" + }, + "parameters": [ + "Object", + "=", + "Object.EndColor()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.StartOpacity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.EndOpacity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetFlow" + }, + "parameters": [ + "Object", + "=", + "Object.Flow()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMin" + }, + "parameters": [ + "Object", + "=", + "Object.StartSizeMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSizeMax" + }, + "parameters": [ + "Object", + "=", + "Object.StartSizeMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" + }, + "parameters": [ + "Object", + "=", + "Object.StartSpeedMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMax" + }, + "parameters": [ + "Object", + "=", + "Object.StartSpeedMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMin" + }, + "parameters": [ + "Object", + "=", + "Object.LifespanMin()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetLifespanMax" + }, + "parameters": [ + "Object", + "=", + "Object.LifespanMax()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetDuration" + }, + "parameters": [ + "Object", + "=", + "Object.Duration()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetSpayConeAngle" + }, + "parameters": [ + "Object", + "=", + "Object.SpayConeAngle()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravity" + }, + "parameters": [ + "Object", + "=", + "Object.Gravity()", + "" + ] + }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetGravityTop" + }, + "parameters": [ + "Object", + "=", + "Object.GravityTop()", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" + }, + "parameters": [ + "Object", + "no", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetAreParticlesRelative" + }, + "parameters": [ + "Object", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "TODO: Blending can't be changed." + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetBlending" + }, + "parameters": [ + "Object", + "=", + "Object.Blending()", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" + }, + "parameters": [ + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ParticleEmitter3D::ParticleEmitter3D::HasEnded" + }, + "parameters": [ + "Object", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + "const gameScene = object.getRuntimeScene();", + "", + "const emitter = object.__particleSystem.emitter;", + "emitter.position.x = object.getX();", + "emitter.position.y = -object.getY();", + "", + "emitter.rotation.z = -object.getAngle() * Math.PI / 180;", + "", + "// Update batch system after having moved every emitter.", + "// See onScenePreEvents", + "gameScene.__particleEmmiter3DExtension.emittersStepped++;", + "if (gameScene.__particleEmmiter3DExtension.emittersStepped === gameScene.__particleEmmiter3DExtension.emittersCount) {", + " gameScene.__particleEmmiter3DExtension.batchSystem.update(object.getElapsedTime() / 1000);", + "}" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Delete itself", + "fullName": "Delete itself", + "functionType": "Action", + "name": "Delete", + "private": true, + "sentence": "Delete _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.deleteFromScene(object.getParent());", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check that emission has ended and no particle is alive anymore.", + "fullName": "Emission has ended", + "functionType": "Condition", + "name": "HasEnded", + "sentence": "Emission from _PARAM0_ has ended", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "eventsFunctionContext.returnValue =\r", + " object._getShouldAutodestruct()\r", + " && object.__particleSystem.emitEnded\r", + " && object.__particleSystem.particleNum === 0;\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Restart particule emission from the beginning.", + "fullName": "Restart", + "functionType": "Action", + "name": "Restart", + "sentence": "Restart particule emission from _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.CustomRuntimeObject} */\r", + "const object = objects[0];\r", + "\r", + "object.__particleSystem.restart();\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the Z position of the emitter.", + "fullName": "Z (elevation)", + "functionType": "ExpressionAndCondition", + "group": "Position", + "name": "Z", + "sentence": "the Z position", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyZ()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Z", + "name": "SetZ", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyZ" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.__particleSystem.emitter.position.z = eventsFunctionContext.getArgument(\"Value\");" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the rotation on X axis of the emitter.", + "fullName": "Rotation on X axis", + "functionType": "ExpressionAndCondition", + "group": "Angle", + "name": "RotationX", + "sentence": "the rotation on X axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyRotationX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "RotationX", + "name": "SetRotationX", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationX" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "object.__particleSystem.emitter.rotation.x = eventsFunctionContext.getArgument(\"Value\") * Math.PI / 180;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the rotation on Y axis of the emitter.", + "fullName": "Rotation on Y axis", + "functionType": "ExpressionAndCondition", + "group": "Angle", + "name": "RotationY", + "sentence": "the rotation on Y axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyRotationY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "RotationY", + "name": "SetRotationY", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyRotationY" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "\r", + "object.__particleSystem.emitter.rotation.y = (90 + eventsFunctionContext.getArgument(\"Value\")) * Math.PI / 180;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start color of the object.", + "fullName": "Start color", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "StartColor", + "sentence": "the start color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyStartColor()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartColor", + "name": "SetStartColor", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartColor" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startColor = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartColor(startColor);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end color of the object.", + "fullName": "End color", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "EndColor", + "sentence": "the end color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyEndColor()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndColor", + "name": "SetEndColor", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndColor" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endColor = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndColor(endColor);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start opacity of the object.", + "fullName": "Start opacity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "StartOpacity", + "sentence": "the start opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartOpacity", + "name": "SetStartOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartOpacity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startOpacity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartOpacity(startOpacity);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end opacity of the object.", + "fullName": "End opacity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "EndOpacity", + "sentence": "the end opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyEndOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndOpacity", + "name": "SetEndOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndOpacity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endOpacity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndOpacity(endOpacity);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the flow of particles of the object (particles per second).", + "fullName": "Flow of particles", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "Flow", + "sentence": "the flow of particles", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyFlow()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Flow", + "name": "SetFlow", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyFlow" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const flow = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setFlow(flow);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start min size of the object.", + "fullName": "Start min size", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "StartSizeMin", + "sentence": "the start min size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSizeMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSizeMin", + "name": "SetStartSizeMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startMinSize = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartMinSize(startMinSize);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the start max size of the object.", + "fullName": "Start max size", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "StartSizeMax", + "sentence": "the start max size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSizeMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSizeMax", + "name": "SetStartSizeMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSizeMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startMaxSize = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartMaxSize(startMaxSize);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the end scale of the object.", + "fullName": "End scale", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "EndScale", + "sentence": "the end scale", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyEndScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "EndScale", + "name": "SetEndScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyEndScale" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const endScale = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setEndScale(endScale);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the min start speed of the object.", + "fullName": "Min start speed", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "StartSpeedMin", + "sentence": "the min start speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSpeedMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSpeedMin", + "name": "SetStartSpeedMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startSpeedMin = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartSpeedMin(startSpeedMin);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the max start speed of the object.", + "fullName": "Max start speed", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "StartSpeedMax", + "sentence": "the max start speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyStartSpeedMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StartSpeedMax", + "name": "SetStartSpeedMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyStartSpeedMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const startSpeedMax = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setStartSpeedMax(startSpeedMax);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the min lifespan of the object.", + "fullName": "Min lifespan", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "LifespanMin", + "sentence": "the min lifespan", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyLifespanMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LifespanMin", + "name": "SetLifespanMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMin" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const lifespanMin = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setLifespanMin(lifespanMin);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the max lifespan of the object.", + "fullName": "Max lifespan", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "LifespanMax", + "sentence": "the max lifespan", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyLifespanMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LifespanMax", + "name": "SetLifespanMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyLifespanMax" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const lifespanMax = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setLifespanMax(lifespanMax);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the emission duration of the object.", + "fullName": "Emission duration", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "Duration", + "sentence": "the emission duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Duration", + "name": "SetDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyDuration" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const duration = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setDuration(duration);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if particles move with the emitter.", + "fullName": "Particles move with the emitter", + "functionType": "Condition", + "group": "3D particle emitter speed configuration", + "name": "AreParticlesRelative", + "sentence": "_PARAM0_ particles move with the emitter", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyAreParticlesRelative" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Change if particles move with the emitter.", + "fullName": "Particles move with the emitter", + "functionType": "Action", + "group": "3D particle emitter speed configuration", + "name": "SetAreParticlesRelative", + "sentence": "_PARAM0_ particles move with the emitter: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyAreParticlesRelative" + }, + "parameters": [ + "Object", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const areParticlesRelative = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setParticlesRelative(areParticlesRelative);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + }, + { + "defaultValue": "yes", + "description": "AreParticlesRelative", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "the spay cone angle of the object.", + "fullName": "Spay cone angle", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter configuration", + "name": "SpayConeAngle", + "sentence": "the spay cone angle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertySpayConeAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "SpayConeAngle", + "name": "SetSpayConeAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertySpayConeAngle" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const sprayConeAngle = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setSprayConeAngle(sprayConeAngle);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the blending of the object.", + "fullName": "Blending", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter color configuration", + "name": "Blending", + "sentence": "the blending", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyBlending()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"Normal\",\"Additive\",\"Substractive\",\"Multiply\",\"None\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Blending", + "name": "SetBlending", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyBlending" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const blending = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setBlending(blending);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the gravity top of the object.", + "fullName": "Gravity top", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "GravityTop", + "sentence": "the gravity top", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.PropertyGravityTop()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"Y-\",\"Z+\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "GravityTop", + "name": "SetGravityTop", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravityTop" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const gravityTop = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setGravityTop(gravityTop);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the gravity of the object.", + "fullName": "Gravity", + "functionType": "ExpressionAndCondition", + "group": "3D particle emitter speed configuration", + "name": "Gravity", + "sentence": "the gravity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyGravity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Gravity", + "name": "SetGravity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyGravity" + }, + "parameters": [ + "Object", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const gravity = eventsFunctionContext.getArgument(\"Value\");\r", + "\r", + "object.__particleEmitterAdapter.setGravity(gravity);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if delete when emission ends.", + "fullName": "Delete when emission ends", + "functionType": "Condition", + "group": "3D particle emitter configuration", + "name": "ShouldAutodestruct", + "sentence": "_PARAM0_ delete when emission ends", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::PropertyShouldAutodestruct" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Change if delete when emission ends.", + "fullName": "Delete when emission ends", + "functionType": "Action", + "group": "3D particle emitter configuration", + "name": "SetShouldAutodestruct", + "sentence": "_PARAM0_ delete when emission ends: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetPropertyShouldAutodestruct" + }, + "parameters": [ + "Object", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + }, + { + "defaultValue": "yes", + "description": "ShouldAutodestruct", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "255;0;0", + "type": "Color", + "label": "Start color", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "StartColor" + }, + { + "value": "255;255;0", + "type": "Color", + "label": "End color", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "EndColor" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Start opacity", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "StartOpacity" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "End opacity", + "description": "", + "group": "Color", + "extraInformation": [], + "hidden": false, + "name": "EndOpacity" + }, + { + "value": "50", + "type": "Number", + "label": "Flow of particles (particles per second)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Flow" + }, + { + "value": "10", + "type": "Number", + "unit": "Pixel", + "label": "Start min size", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "StartSizeMin" + }, + { + "value": "20", + "type": "Number", + "unit": "Pixel", + "label": "Start max size", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "StartSizeMax" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "End scale", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "EndScale" + }, + { + "value": "100", + "type": "Number", + "unit": "PixelSpeed", + "label": "Start min speed", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "StartSpeedMin" + }, + { + "value": "100", + "type": "Number", + "unit": "PixelSpeed", + "label": "Start max speed", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "StartSpeedMax" + }, + { + "value": "1", + "type": "Number", + "unit": "Second", + "label": "Min lifespan", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "LifespanMin" + }, + { + "value": "2", + "type": "Number", + "unit": "Second", + "label": "Max lifespan", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "LifespanMax" + }, + { + "value": "5", + "type": "Number", + "unit": "Second", + "label": "Emission duration", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Duration" + }, + { + "value": "", + "type": "Boolean", + "label": "Particles move with the emitter", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "AreParticlesRelative" + }, + { + "value": "30", + "type": "Number", + "unit": "DegreeAngle", + "label": "Spay cone angle", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "SpayConeAngle" + }, + { + "value": "Additive", + "type": "Choice", + "label": "Blending", + "description": "", + "group": "Color", + "extraInformation": [ + "Normal", + "Additive", + "Subtractive", + "Multiply", + "None" + ], + "hidden": false, + "name": "Blending" + }, + { + "value": "Y-", + "type": "Choice", + "label": "Gravity top", + "description": "", + "group": "Speed", + "extraInformation": [ + "Y-", + "Z+" + ], + "hidden": false, + "name": "GravityTop" + }, + { + "value": "0", + "type": "Number", + "unit": "PixelAcceleration", + "label": "Gravity", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "Gravity" + }, + { + "value": "true", + "type": "Boolean", + "label": "Delete when emission ends", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ShouldAutodestruct" + }, + { + "value": "Center-center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ParentOrigin" + }, + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Z (elevation)", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "Z" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation on X axis", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "RotationX" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation on Y axis", + "description": "", + "group": "Position", + "extraInformation": [], + "hidden": false, + "name": "RotationY" + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Particle", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Image", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [] + } + ] + } + ] + } + ] + } + ] + }, + { + "author": "Gustavo Marciano", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "YSort", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNvcnQtYXNjZW5kaW5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDE3SDIyTDE4IDIxTDE0IDE3SDE3VjNIMTlNMiAxN0gxMlYxOUgyTTYgNVY3SDJWNU0yIDExSDlWMTNIMlYxMVoiIC8+PC9zdmc+", + "name": "YSort", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sort-ascending.svg", + "shortDescription": "Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a \"Top-Down\" view, RPG...", + "version": "0.1.0", + "description": [ + "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", + "", + "This is useful for:", + "- isometric games ([open the project online](https://editor.gdevelop.io/?project=example://isometric-game))", + "- top-down games ([open the project online](https://editor.gdevelop.io/?project=example://top-down-grid-movement))" + ], + "origin": { + "identifier": "YSort", + "name": "gdevelop-extension-store" + }, + "tags": [ + "z-order", + "y-sort", + "depth", + "fake-depth", + "isometric", + "rpg" + ], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "fd6831c1-3203-4f38-870f-179c62ccfd9a", - "width": 48, - "x": 768, - "y": 288, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", + "fullName": "YSort", + "name": "YSort", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This is done in doStepPostEvents because the sort must happens right before the rendering to avoid a 1 frame delay." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Object", + "=", + "Object.Y() + Object.Behavior::PropertyOffset()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "YSort::YSort", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Y offset", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Offset" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Input", + "extensionNamespace": "", + "fullName": "Behavior Remapper", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", + "name": "BehaviorRemapper", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", + "shortDescription": "Quickly remap Behavior controls to different keys. ", + "version": "1.0.0", + "description": [ + "Make sure to disable default controls unless you want two keys to do the same action.", + "", + "Actions have two versions. `custom` allow the movement keys to be changed to what ever you would like. `presets` provide a common key-bindings that can be selected from a list.", + "", + "### Available Presets:", + "", + "##### `WASD`", + "-\tW: Up", + "-\tA: Left", + "-\tS: Down", + "-\tD: Right", + "-\tSpace: Jump", + "", + "##### `ZQSD`", + "-\tZ: Up", + "-\tQ: Left", + "-\tS: Down", + "-\tD: Right", + "-\tSpace: Jump", + "", + "##### `Numpad` (Num lock must be disabled)", + "-\tNumpad Up: Up", + "-\tNumpad Left: Left", + "-\tNumpad Down: Down", + "-\tNumpad Right: Right", + "-\tNumpad Return/Enter: Jump", + "", + "##### `IJKL`", + "-\tI: Up", + "-\tJ: Left", + "-\tK: Down", + "-\tL: Right", + "-\tReturn/Enter: Jump", + "" + ], + "origin": { + "identifier": "BehaviorRemapper", + "name": "gdevelop-extension-store" + }, + "tags": [ + "remapper", + "key", + "bindings", + "presets", + "platformer", + "top-down" + ], + "authorIds": [ + "AlZ3D1xkH0QDao7T37VZZUeYNpn1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "03cd2d68-3319-44b2-a823-6752abab4275", - "width": 48, - "x": 768, - "y": 480, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Allows for the controls of a Top-Down behavior to be re-mapped via a single action.", + "fullName": "Remap Top-down", + "name": "RemapForTopdown", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyUp()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyLeft()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyRight()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyDown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "Topdown" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Top-Down behavior controls to a custom control scheme.", + "fullName": "Remap Top-Down controls to a custom scheme", + "functionType": "Action", + "name": "SetCustom", + "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"up\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"left\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"right\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"down\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + }, + { + "description": "Up key", + "name": "up", + "type": "key" + }, + { + "description": "Left key", + "name": "left", + "type": "key" + }, + { + "description": "Down key", + "name": "down", + "type": "key" + }, + { + "description": "Right key", + "name": "right", + "type": "key" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Top-Down behavior controls to a preset control scheme.", + "fullName": "Remap Top-Down controls to a preset", + "functionType": "Action", + "name": "SetPreset", + "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"WASD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"w\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"a\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AZERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"ZQSD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"z\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"q\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Numpad bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"Numpad\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadUp\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadLeft\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadDown\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadRight\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY player 2 bindings " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"IJKL\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"i\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"j\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"k\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"l\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", + "type": "behavior" + }, + { + "description": "Preset name", + "name": "options", + "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "w", + "type": "String", + "label": "Up key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Up" + }, + { + "value": "a", + "type": "String", + "label": "Left key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Left" + }, + { + "value": "d", + "type": "String", + "label": "Right key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Right" + }, + { + "value": "s", + "type": "String", + "label": "Down key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Down" + }, + { + "value": "", + "type": "Behavior", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "Topdown" + } + ], + "sharedPropertyDescriptors": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "f933fcc1-3113-4e9a-ba0c-907294d3dad3", - "width": 48, - "x": 768, - "y": 432, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Allows for the controls of a platformer behavior to be re-mapped via a single action.", + "fullName": "Remap Platformer controls", + "name": "RemapForPlatformer", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyUp()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyLeft()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyRight()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyDown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateReleaseLadderKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyFromTextPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyJump()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "Platformer" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Platformer behavior controls to a custom control scheme.", + "fullName": "Remap Platformer controls to a custom scheme", + "functionType": "Action", + "name": "SetCustom", + "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_, Jump: _PARAM6_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"up\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"left\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"right\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"down\")" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"jump\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + }, + { + "description": "Up key", + "name": "up", + "type": "key" + }, + { + "description": "Left key", + "name": "left", + "type": "key" + }, + { + "description": "Down key", + "name": "down", + "type": "key" + }, + { + "description": "Right key", + "name": "right", + "type": "key" + }, + { + "description": "Jump key", + "name": "jump", + "type": "key" + } + ], + "objectGroups": [] + }, + { + "description": "Remaps Platformer behavior controls to a preset control scheme.", + "fullName": "Remap Platformer controls to a preset", + "functionType": "Action", + "name": "SetPreset", + "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"WASD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"w\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"a\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Space\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AZERTY bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"ZQSD\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"z\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"q\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"s\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"d\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Space\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Numpad bindings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"Numpad\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadUp\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadLeft\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadDown\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadRight\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NumpadReturn\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "QWERTY player 2 bindings " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"options\")", + "=", + "\"IJKL\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"i\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"j\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"k\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"l\"" + ] + }, + { + "type": { + "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Return\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", + "type": "behavior" + }, + { + "description": "Preset name", + "name": "options", + "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "String", + "label": "Up key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Up" + }, + { + "value": "", + "type": "String", + "label": "Left key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Left" + }, + { + "value": "", + "type": "String", + "label": "Down key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Down" + }, + { + "value": "", + "type": "String", + "label": "Right key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Right" + }, + { + "value": "", + "type": "String", + "label": "Jump key", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Jump" + }, + { + "value": "", + "type": "Behavior", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "hidden": false, + "name": "Platformer" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Top-down corner sliding", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN1YmRpcmVjdG9yeS1hcnJvdy1yaWdodCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOSwxNUwxMywyMUwxMS41OCwxOS41OEwxNS4xNywxNkg0VjRINlYxNEgxNS4xN0wxMS41OCwxMC40MkwxMyw5TDE5LDE1WiIgLz48L3N2Zz4=", + "name": "TopDownCornerSliding", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f1e89ff4f907ed2245e2d4ad2d5f52f9e1bb6d0127aa370d44cc77462e5be8e3_subdirectory-arrow-right.svg", + "shortDescription": "Slide on corners of rectangular obstacles.", + "version": "0.1.0", + "description": [ + "In top-down games, players may have to go though gaps the same size as their avatar. This is almost impossible to do without any assistance. This extension makes objects slide on obstacles to lead them in the right direction.", + "", + "It can be used for:", + "* Bomberman-like games ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))", + "" + ], + "tags": [ + "top down", + "movement", + "grid", + "align" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "070ef78d-a38c-4933-8c2d-42edeb915e7a", - "width": 48, - "x": 768, - "y": 384, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Define JavaScript classes for top-down.", + "fullName": "Define JavaScript classes for top-down", + "functionType": "Action", + "name": "DefineJavaScriptForTopDown", + "private": true, + "sentence": "Define JavaScript classes for top-down", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GlobalVariableAsBoolean" + }, + "parameters": [ + "__pixelPerfect.TopDownClassesDefined", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetGlobalVariableAsBoolean" + }, + "parameters": [ + "__pixelPerfect.TopDownClassesDefined", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "// TODO Remove this when afterPositionUpdate is added to the hook interface.", + "gdjs.TopDownMovementRuntimeBehavior.prototype.actuallyDoStepPreEvents = gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents;", + "gdjs.TopDownMovementRuntimeBehavior.prototype.doStepPreEvents = function (instanceContainer) {", + " this.actuallyDoStepPreEvents(instanceContainer);", + "", + " for (const topDownMovementHook of this._topDownMovementHooks) {", + " topDownMovementHook.afterPositionUpdateTODO(null);", + " }", + "}", + "", + "const deltasX = [1, 1, 0, -1, -1, -1, 0, 1];", + "const deltasY = [0, 1, 1, 1, 0, -1, -1, -1];", + "const temporaryPointForTransformations = [0, 0];", + "const epsilon = 0.015625;", + "", + "/**", + " * {number} a", + " * {number} b", + " * {return {boolean}}", + " */", + "const almostEquals = function (a, b) {", + " return b - epsilon < a && a < b + epsilon;", + "}", + "", + "const CornerSlider = /** @class */ (function () {", + "", + " /**", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @param {gdjs.RuntimeBehavior} behavior", + " * @param {gdjs.TopDownMovementRuntimeBehavior} topDownBehavior", + " */", + " function CornerSlider(instanceContainer, behavior, topDownBehavior) {", + " this.instanceContainer = instanceContainer;", + " this.behavior = behavior;", + " this.topDownBehavior = topDownBehavior;", + "", + " topDownBehavior.registerHook(this);", + "", + " /**", + " * Obstacles near the object, updated with _updatePotentialCollidingObjects.", + " * @type {Obstacle[]}", + " */", + " this.potentialCollidingObjects = [];", + " /** @type {gdjs.RuntimeObject[]} */", + " this.collidingObjects = [];", + " this.obstacleManager = ObstacleManager.getManager(instanceContainer);", + "", + " // Remember the decision to bypass an obstacle...", + " this.lastAnyObstacle = false;", + " this.needToCheckBypassWay = true;", + "", + " // ...and the context of that decision", + " this.lastAssistanceDirection = -1;", + " this.lastDirection = -1;", + "", + " /** @type {FloatPoint} */", + " this.transformedPosition = [0, 0];", + " /** @type {gdjs.AABB} */", + " this.relativeHitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " /** @type {gdjs.AABB} */", + " this.absoluteHitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " this.hitBoxesAABBUpToDate = false;", + " this.oldWidth = 0;", + " this.oldHeight = 0;", + " this.previousX = 0;", + " this.previousY = 0;", + "", + " /** @type {AssistanceResult} */", + " this.result = new AssistanceResult();", + " }", + "", + " /**", + " * Return the direction to use instead of the direction given in", + " * parameter.", + " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", + " * @return {number}", + " */", + " CornerSlider.prototype.overrideDirection = function (context) {", + " let direction = context.getDirection();", + " if (!this.behavior.activated()) {", + " return direction;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " // Check if the object has moved", + " // To avoid to loop on the transform and its inverse", + " // because of float approximation.", + " const position = temporaryPointForTransformations;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toScreen(", + " // this.transformedPosition,", + " // position", + " // );", + " // } else {", + " position[0] = this.transformedPosition[0];", + " position[1] = this.transformedPosition[1];", + " // }", + " if (object.getX() !== position[0] || object.getY() !== position[1]) {", + " position[0] = object.getX();", + " position[1] = object.getY();", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(", + " // position,", + " // this.transformedPosition", + " // );", + " // } else {", + " this.transformedPosition[0] = position[0];", + " this.transformedPosition[1] = position[1];", + " // }", + " }", + "", + " const stickIsUsed =", + " this.topDownBehavior._stickForce !== 0 && direction === -1;", + " let inputDirection = 0;", + " if (stickIsUsed) {", + " inputDirection = this.getStickDirection();", + " } else {", + " inputDirection = direction;", + " }", + " const assistanceDirection = this.suggestDirection(", + " inputDirection", + " );", + " if (assistanceDirection !== -1) {", + " if (stickIsUsed) {", + " this.topDownBehavior._stickAngle = assistanceDirection * 45;", + " }", + " return assistanceDirection;", + " }", + " return direction;", + " }", + "", + " /**", + " * Called before the acceleration and new direction is applied to the", + " * velocity.", + " * @param {gdjs.TopDownMovementRuntimeBehavior.TopDownMovementHookContext} context", + " */", + " CornerSlider.prototype.beforeSpeedUpdate = function (context) { }", + "", + " /**", + " * Called before the velocity is applied to the object position and", + " * angle.", + " */", + " CornerSlider.prototype.beforePositionUpdate = function () {", + " if (!this.behavior.activated()) {", + " return;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " this.previousX = object.getX();", + " this.previousY = object.getY();", + " }", + "", + " // TODO Rename this methode to the new hook interface method.", + " CornerSlider.prototype.afterPositionUpdateTODO = function () {", + " if (!this.behavior.activated()) {", + " return;", + " }", + "", + " const object = this.topDownBehavior.owner;", + " const point = temporaryPointForTransformations;", + " point[0] = object.getX() - this.previousX;", + " point[1] = object.getY() - this.previousY;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(point, point);", + " // }", + " this.shift(point[0], point[1]);", + "", + " this.applyCollision();", + "", + " const position = temporaryPointForTransformations;", + "", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toScreen(", + " // this.transformedPosition,", + " // position", + " // );", + " // } else {", + " position[0] = this.transformedPosition[0];", + " position[1] = this.transformedPosition[1];", + " // }", + " object.setX(position[0]);", + " object.setY(position[1]);", + " }", + "", + " CornerSlider.prototype.getStickDirection = function () {", + " let direction =", + " (this.topDownBehavior._stickAngle +", + " this.topDownBehavior._movementAngleOffset) /", + " 45;", + " direction = direction - Math.floor(direction / 8) * 8;", + " for (let strait = 0; strait < 8; strait += 2) {", + " if (strait - 0.125 < direction && direction < strait + 0.125) {", + " direction = strait;", + " }", + " if (strait + 0.125 <= direction && direction <= strait + 2 - 0.125) {", + " direction = strait + 1;", + " }", + " }", + " if (8 - 0.125 < direction) {", + " direction = 0;", + " }", + " return direction;", + " }", + "", + " /** Analyze the real intent of the player instead of applying the input blindly.", + " * @param {integer} direction", + " * @returns {integer} a direction that matches the player intents.", + " */", + " CornerSlider.prototype.suggestDirection = function (direction) {", + " this.needToCheckBypassWay =", + " this.needToCheckBypassWay || direction !== this.lastDirection;", + "", + " if (direction === -1) {", + " return this.noAssistance();", + " }", + "", + " const object = this.topDownBehavior.owner;", + " if (", + " object.getWidth() !== this.oldWidth ||", + " object.getHeight() !== this.oldHeight", + " ) {", + " this.hitBoxesAABBUpToDate = false;", + " this.oldWidth = object.getWidth();", + " this.oldHeight = object.getHeight();", + " }", + "", + " // Compute the list of the objects that will be used", + " const timeDelta = object.getElapsedTime(this.instanceContainer) / 1000;", + " this.updatePotentialCollidingObjects(", + " 1 + this.topDownBehavior.getMaxSpeed() * timeDelta", + " );", + "", + " const downKey = 1 <= direction && direction <= 3;", + " const leftKey = 3 <= direction && direction <= 5;", + " const upKey = 5 <= direction && direction <= 7;", + " const rightKey = direction <= 1 || 7 <= direction;", + "", + " // Used to align the player when the assistance make him bypass an obstacle", + " let stopMinX = Number.MAX_VALUE;", + " let stopMinY = Number.MAX_VALUE;", + " let stopMaxX = -Number.MAX_VALUE;", + " let stopMaxY = -Number.MAX_VALUE;", + " let isBypassX = false;", + " let isBypassY = false;", + "", + " // Incites of how the player should be assisted", + " let assistanceLeft = 0;", + " let assistanceRight = 0;", + " let assistanceUp = 0;", + " let assistanceDown = 0;", + "", + " // the actual decision", + " let assistanceDirection = -1;", + "", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + " const width = maxX - minX;", + " const height = maxY - minY;", + "", + " // This affectation has no meaning, it will be override.", + " /** @type {gdjs.AABB | null} */", + " let bypassedObstacleAABB = null;", + "", + " this.collidingObjects.length = 0;", + " this.collidingObjects.push(object);", + "", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " const corner = obstacleBehavior.behavior._getSlidingCornerSize();", + " const obstacle = obstacleBehavior.owner;", + " if (obstacle === object) {", + " continue;", + " }", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const deltaX = deltasX[direction];", + " const deltaY = deltasY[direction];", + " // Extends the box in the player direction", + " if (", + " Math.max(maxX, Math.floor(maxX + deltaX)) > obstacleMinX &&", + " Math.min(minX, Math.ceil(minX + deltaX)) < obstacleMaxX &&", + " Math.max(maxY, Math.floor(maxY + deltaY)) > obstacleMinY &&", + " Math.min(minY, Math.ceil(minY + deltaY)) < obstacleMaxY", + " ) {", + " this.collidingObjects.push(obstacle);", + "", + " // The player is corner to corner to the obstacle.", + " // The assistance will depend on other obstacles.", + " // Both direction are set and the actual to take", + " // is decided at the end.", + " if (", + " almostEquals(maxX, obstacleMinX) &&", + " almostEquals(maxY, obstacleMinY)", + " ) {", + " assistanceRight++;", + " assistanceDown++;", + " } else if (", + " almostEquals(maxX, obstacleMinX) &&", + " almostEquals(minY, obstacleMaxY)", + " ) {", + " assistanceRight++;", + " assistanceUp++;", + " } else if (", + " almostEquals(minX, obstacleMaxX) &&", + " almostEquals(minY, obstacleMaxY)", + " ) {", + " assistanceLeft++;", + " assistanceUp++;", + " } else if (", + " almostEquals(minX, obstacleMaxX) &&", + " almostEquals(maxY, obstacleMinY)", + " ) {", + " assistanceLeft++;", + " assistanceDown++;", + " } else if (", + " (upKey && almostEquals(minY, obstacleMaxY)) ||", + " (downKey && almostEquals(maxY, obstacleMinY))", + " ) {", + " // The player is not on the corner of the obstacle.", + " // Set the assistance both ways to fall back in", + " // the same case as 2 obstacles side by side", + " // being collide with the player.", + " if (", + " (rightKey || maxX > obstacleMinX + corner) &&", + " minX < obstacleMaxX &&", + " (leftKey || minX < obstacleMaxX - corner) &&", + " maxX > obstacleMinX", + " ) {", + " assistanceLeft++;", + " assistanceRight++;", + " }", + " // The player is on the corner of the obstacle.", + " // (not the exact corner, see corner affectation)", + " else if (", + " !rightKey &&", + " obstacleMinX < maxX &&", + " maxX <= obstacleMinX + corner &&", + " // In case the cornerSize is bigger than the obstacle size,", + " // go the on the shortest side.", + " (leftKey || minX + maxX <= obstacleMinX + obstacleMaxX)", + " ) {", + " assistanceLeft++;", + " isBypassX = true;", + " if (obstacleMinX - width < stopMinX) {", + " stopMinX = obstacleMinX - width;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " } else if (", + " !leftKey &&", + " obstacleMaxX - corner <= minX &&", + " minX < obstacleMaxX &&", + " (rightKey || minX + maxX > obstacleMinX + obstacleMaxX)", + " ) {", + " assistanceRight++;", + " isBypassX = true;", + " if (obstacleMaxX > stopMaxX) {", + " stopMaxX = obstacleMaxX;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " }", + " } else if (", + " (leftKey && almostEquals(minX, obstacleMaxX)) ||", + " (rightKey && almostEquals(maxX, obstacleMinX))", + " ) {", + " // The player is not on the corner of the obstacle.", + " // Set the assistance both ways to fall back in", + " // the same case as 2 obstacles side by side", + " // being collide with the player.", + " if (", + " (downKey || maxY > obstacleMinY + corner) &&", + " minY < obstacleMaxY &&", + " (upKey || minY < obstacleMaxY - corner) &&", + " maxY > obstacleMinY", + " ) {", + " assistanceUp++;", + " assistanceDown++;", + " }", + " // The player is on the corner of the obstacle.", + " // (not the exact corner, see corner affectation)", + " else if (", + " !downKey &&", + " obstacleMinY < maxY &&", + " maxY <= obstacleMinY + corner &&", + " (upKey || minY + maxY <= obstacleMinY + obstacleMaxY)", + " ) {", + " assistanceUp++;", + " isBypassY = true;", + " if (obstacleMinY - height < stopMinY) {", + " stopMinY = obstacleMinY - height;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " } else if (", + " !upKey &&", + " obstacleMaxY - corner <= minY &&", + " minY < obstacleMaxY &&", + " (downKey || minY + maxY > obstacleMinY + obstacleMaxY)", + " ) {", + " assistanceDown++;", + " isBypassY = true;", + " if (obstacleMaxY > stopMaxY) {", + " stopMaxY = obstacleMaxY;", + " bypassedObstacleAABB = obstacleAABB;", + " }", + " }", + " }", + " }", + " }", + "", + " // This may happen when the player is in the corner of 2 perpendicular walls.", + " // No assistance is needed.", + " if (", + " assistanceLeft &&", + " assistanceRight &&", + " assistanceUp &&", + " assistanceDown", + " ) {", + " return this.noAssistance();", + " }", + " // This may happen when the player goes in diagonal against a wall.", + " // Make him follow the wall. This allows player to keep full speed.", + " //", + " // When he collided a square from the wall corner to corner,", + " // a 3rd assistance may be true but it fall back in the same case.", + " else if (assistanceLeft && assistanceRight) {", + " isBypassX = false;", + " if (leftKey && !rightKey) {", + " assistanceDirection = 4;", + " } else if (rightKey && !leftKey) {", + " assistanceDirection = 0;", + " } else {", + " // Contradictory decisions are dismissed.", + " //", + " // This can happen, for instance, with a wall composed of squares.", + " // Taken separately from one to another, a square could be bypass one the right", + " // and the next one on the left even though they are side by side", + " // and the player can't actually go between them.", + " return this.noAssistance();", + " }", + " } else if (assistanceUp && assistanceDown) {", + " isBypassY = false;", + " if (upKey && !downKey) {", + " assistanceDirection = 6;", + " } else if (downKey && !upKey) {", + " assistanceDirection = 2;", + " } else {", + " // see previous comment", + " return this.noAssistance();", + " }", + " }", + " // The player goes in diagonal and is corner to corner with the obstacle.", + " // (but not against a wall, this time)", + " // The velocity is used to decide.", + " // This may only happen after an alignment.", + " // (see \"Alignment:\" comment)", + " else if (assistanceRight && assistanceDown) {", + " if (", + " (downKey && !rightKey) ||", + " (downKey === rightKey && assistanceDown > assistanceRight) ||", + " (assistanceDown === assistanceRight &&", + " this.topDownBehavior._yVelocity > 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 2;", + " } else {", + " assistanceDirection = 0;", + " }", + " } else if (assistanceLeft && assistanceDown) {", + " if (", + " (downKey && !leftKey) ||", + " (downKey === leftKey && assistanceDown > assistanceLeft) ||", + " (assistanceDown === assistanceLeft &&", + " this.topDownBehavior._yVelocity > 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 2;", + " } else {", + " assistanceDirection = 4;", + " }", + " } else if (assistanceLeft && assistanceUp) {", + " if (", + " (upKey && !leftKey) ||", + " (upKey === leftKey && assistanceUp > assistanceLeft) ||", + " (assistanceUp === assistanceLeft &&", + " this.topDownBehavior._yVelocity < 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 6;", + " } else {", + " assistanceDirection = 4;", + " }", + " } else if (assistanceRight && assistanceUp) {", + " if (", + " (upKey && !rightKey) ||", + " (upKey === rightKey && assistanceUp > assistanceRight) ||", + " (assistanceUp === assistanceRight &&", + " this.topDownBehavior._yVelocity < 0 &&", + " Math.abs(this.topDownBehavior._xVelocity) <", + " Math.abs(this.topDownBehavior._yVelocity))", + " ) {", + " assistanceDirection = 6;", + " } else {", + " assistanceDirection = 0;", + " }", + " } else {", + " // Slide on the corner of an obstacle to bypass it.", + " // Every tricky cases are already handled .", + " if (assistanceLeft) {", + " assistanceDirection = 4;", + " } else if (assistanceRight) {", + " assistanceDirection = 0;", + " } else if (assistanceUp) {", + " assistanceDirection = 6;", + " } else if (assistanceDown) {", + " assistanceDirection = 2;", + " } else {", + " return this.noAssistance();", + " }", + " }", + "", + " // Check if there is any obstacle in the way.", + " //", + " // There must be no obstacle to go at least", + " // as far in the direction the player chose", + " // as the assistance must take to align the player.", + " //", + " // Because, if the assistance moves the player by 32 pixels", + " // before been able to go in the right direction", + " // and can only move by 4 pixels afterward", + " // that it'll sound silly.", + " this.needToCheckBypassWay =", + " this.needToCheckBypassWay ||", + " assistanceDirection !== this.lastAssistanceDirection;", + " if ((isBypassX || isBypassY) && !this.needToCheckBypassWay) {", + " // Don't check again if the player intent stays the same.", + " //", + " // Do it, for instance, if an obstacle has moved out of the way", + " // and the player releases and presses agin the key.", + " // Because, doing it automatically would seems weird.", + " if (this.lastAnyObstacle) {", + " return this.noAssistance();", + " }", + " } else if (isBypassX || isBypassY) {", + " this.lastAssistanceDirection = assistanceDirection;", + " this.lastDirection = direction;", + "", + " let anyObstacle = false;", + " // reflection symmetry: y = x", + " // 0 to 6, 2 to 4, 4 to 2, 6 to 0", + " if (direction + assistanceDirection === 6) {", + " // Because the obstacle may not be a square.", + " let cornerX = 0;", + " let cornerY = 0;", + " if (assistanceDirection === 4 || assistanceDirection === 6) {", + " cornerX = bypassedObstacleAABB.min[0];", + " cornerY = bypassedObstacleAABB.min[1];", + " } else {", + " cornerX = bypassedObstacleAABB.max[0];", + " cornerY = bypassedObstacleAABB.max[1];", + " }", + " // / cornerX \\ / 0 1 \\ / x - cornerX \\", + " // \\ cornerY / + \\ 1 0 / * \\ y - cornerY /", + " //", + " // min and max are preserved by the symmetry.", + " // The symmetry image is extended to check there is no obstacle before going into the passage.", + " const searchMinX =", + " cornerX +", + " minY -", + " cornerY +", + " epsilon +", + " (assistanceDirection === 6 ? cornerY - maxY : 0);", + " const searchMaxX =", + " cornerX +", + " maxY -", + " cornerY -", + " epsilon +", + " (assistanceDirection === 2 ? cornerY - minY : 0);", + " const searchMinY =", + " cornerY +", + " minX -", + " cornerX +", + " epsilon +", + " (assistanceDirection === 4 ? cornerX - maxX : 0);", + " const searchMaxY =", + " cornerY +", + " maxX -", + " cornerX -", + " epsilon +", + " (assistanceDirection === 0 ? cornerX - minX : 0);", + "", + " anyObstacle = this.obstacleManager.anyObstacle(", + " searchMinX,", + " searchMaxX,", + " searchMinY,", + " searchMaxY,", + " this.collidingObjects", + " );", + " }", + " // reflection symmetry: y = -x", + " // 0 to 2, 2 to 0, 4 to 6, 6 to 4", + " else if ((direction + assistanceDirection) % 8 === 2) {", + " // Because the obstacle may not be a square.", + " let cornerX = 0;", + " let cornerY = 0;", + " if (assistanceDirection === 2 || assistanceDirection === 4) {", + " cornerX = bypassedObstacleAABB.min[0];", + " cornerY = bypassedObstacleAABB.max[1];", + " } else {", + " cornerX = bypassedObstacleAABB.max[0];", + " cornerY = bypassedObstacleAABB.min[1];", + " }", + " // / cornerX \\ / 0 -1 \\ / x - cornerX \\", + " // \\ cornerY / + \\ -1 0 / * \\ y - cornerY /", + " //", + " // min and max are switched by the symmetry.", + " // The symmetry image is extended to check there is no obstacle before going into the passage.", + " const searchMinX =", + " cornerX -", + " (maxY - cornerY) +", + " epsilon +", + " (assistanceDirection === 2 ? minY - cornerY : 0);", + " const searchMaxX =", + " cornerX -", + " (minY - cornerY) -", + " epsilon +", + " (assistanceDirection === 6 ? maxY - cornerY : 0);", + " const searchMinY =", + " cornerY -", + " (maxX - cornerX) +", + " epsilon +", + " (assistanceDirection === 0 ? minX - cornerX : 0);", + " const searchMaxY =", + " cornerY -", + " (minX - cornerX) -", + " epsilon +", + " (assistanceDirection === 4 ? maxX - cornerX : 0);", + "", + " anyObstacle = this.obstacleManager.anyObstacle(", + " searchMinX,", + " searchMaxX,", + " searchMinY,", + " searchMaxY,", + " this.collidingObjects", + " );", + " }", + " this.lastAnyObstacle = anyObstacle;", + " this.needToCheckBypassWay = false;", + "", + " if (anyObstacle) {", + " return this.noAssistance();", + " }", + " }", + "", + " this.result.inputDirection = direction;", + " this.result.assistanceLeft = assistanceLeft > 0;", + " this.result.assistanceRight = assistanceRight > 0;", + " this.result.assistanceUp = assistanceUp > 0;", + " this.result.assistanceDown = assistanceDown > 0;", + " this.result.isBypassX = isBypassX;", + " this.result.isBypassY = isBypassY;", + " this.result.stopMinX = stopMinX;", + " this.result.stopMinY = stopMinY;", + " this.result.stopMaxX = stopMaxX;", + " this.result.stopMaxY = stopMaxY;", + "", + " return assistanceDirection;", + " }", + "", + " /**", + " * @return {integer}", + " */", + " CornerSlider.prototype.noAssistance = function() {", + " this.result.isBypassX = false;", + " this.result.isBypassY = false;", + "", + " return -1;", + " }", + "", + " CornerSlider.prototype.applyCollision = function() {", + " this.checkCornerStop();", + " this.separateFromObstacles();", + " // check again because the object can be pushed on the stop limit,", + " // it won't be detected on the next frame and the alignment won't be applied.", + " this.checkCornerStop();", + " }", + "", + " /**", + " * Check if the object must take a corner.", + " *", + " * When the object reach the limit of an obstacle", + " * and it should take the corner according to the player intent,", + " * it is aligned right on this limit and the velocity is set in the right direction.", + " *", + " * This avoid issues with the inertia. For instance,", + " * when the object could go between 2 obstacles,", + " * with it will just fly over the hole because of its inertia.", + " */", + " CornerSlider.prototype.checkCornerStop = function() {", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const object = this.topDownBehavior.owner;", + "", + " const direction = this.result.inputDirection;", + " const leftKey = 3 <= direction && direction <= 5;", + " const upKey = 5 <= direction && direction <= 7;", + "", + " // Alignment: avoid to go too far and kind of drift or oscillate in front of a hole.", + " if (", + " this.result.isBypassX &&", + " ((this.result.assistanceLeft && minX <= this.result.stopMinX) ||", + " (this.result.assistanceRight && minX >= this.result.stopMaxX))", + " ) {", + " this.shift(", + " -minX +", + " (this.result.assistanceLeft", + " ? this.result.stopMinX", + " : this.result.stopMaxX),", + " 0", + " );", + " this.topDownBehavior._yVelocity =", + " (upKey ? -1 : 1) *", + " Math.sqrt(", + " this.topDownBehavior._xVelocity *", + " this.topDownBehavior._xVelocity +", + " this.topDownBehavior._yVelocity *", + " this.topDownBehavior._yVelocity", + " );", + " this.topDownBehavior._xVelocity = 0;", + " }", + " if (", + " this.result.isBypassY &&", + " ((this.result.assistanceUp && minY <= this.result.stopMinY) ||", + " (this.result.assistanceDown && minY >= this.result.stopMaxY))", + " ) {", + " this.shift(", + " 0,", + " -minY +", + " (this.result.assistanceUp", + " ? this.result.stopMinY", + " : this.result.stopMaxY)", + " );", + " this.topDownBehavior._xVelocity =", + " (leftKey ? -1 : 1) *", + " Math.sqrt(", + " this.topDownBehavior._xVelocity *", + " this.topDownBehavior._xVelocity +", + " this.topDownBehavior._yVelocity *", + " this.topDownBehavior._yVelocity", + " );", + " this.topDownBehavior._yVelocity = 0;", + " }", + " }", + "", + " /**", + " * Separate from TopDownObstacleRuntimeBehavior instances.", + " */", + " CornerSlider.prototype.separateFromObstacles = function() {", + " const object = this.topDownBehavior.owner;", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + "", + " // Search the obstacle with the biggest intersection", + " // to separate from this one first.", + " // Because smaller collisions may shift the player", + " // in the wrong direction.", + " let maxSurface = 0;", + " /** @type {gdjs.RuntimeBehavior | null} */", + " let bestObstacleBehavior = null;", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " if (obstacleBehavior.behavior.owner === object) {", + " continue;", + " }", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const interMinX = Math.max(minX, obstacleMinX);", + " const interMinY = Math.max(minY, obstacleMinY);", + " const interMaxX = Math.min(maxX, obstacleMaxX);", + " const interMaxY = Math.min(maxY, obstacleMaxY);", + "", + " if (interMinX < interMaxX && interMinY < interMaxY) {", + " const surface = (interMaxX - interMinX) * (interMaxY - interMinY);", + " if (surface > maxSurface) {", + " maxSurface = surface;", + " bestObstacleBehavior = obstacleBehavior;", + " }", + " }", + " }", + " if (bestObstacleBehavior !== null) {", + " this.separateFrom(bestObstacleBehavior);", + " }", + " for (var i = 0; i < this.potentialCollidingObjects.length; ++i) {", + " const obstacleBehavior = this.potentialCollidingObjects[i];", + " const obstacle = obstacleBehavior.behavior.owner;", + " if (obstacle === object) {", + " continue;", + " }", + " this.separateFrom(obstacleBehavior);", + " }", + " }", + "", + " /**", + " * Separate object and obstacle, only object move.", + " * @param {Obstacle} obstacleBehavior", + " */", + " CornerSlider.prototype.separateFrom = function(obstacleBehavior) {", + " const objectAABB = this.getHitBoxesAABB();", + " const minX = objectAABB.min[0];", + " const minY = objectAABB.min[1];", + " const maxX = objectAABB.max[0];", + " const maxY = objectAABB.max[1];", + "", + " const obstacleAABB = obstacleBehavior.getHitBoxesAABB();", + " const obstacleMinX = obstacleAABB.min[0];", + " const obstacleMinY = obstacleAABB.min[1];", + " const obstacleMaxX = obstacleAABB.max[0];", + " const obstacleMaxY = obstacleAABB.max[1];", + "", + " const leftDistance = maxX - obstacleMinX;", + " const upDistance = maxY - obstacleMinY;", + " const rightDistance = obstacleMaxX - minX;", + " const downDistance = obstacleMaxY - minY;", + " const minDistance = Math.min(", + " leftDistance,", + " upDistance,", + " rightDistance,", + " downDistance", + " );", + "", + " if (minDistance > 0) {", + " if (leftDistance === minDistance) {", + " this.shift(-maxX + obstacleMinX, 0);", + " } else if (rightDistance === minDistance) {", + " this.shift(-minX + obstacleMaxX, 0);", + " } else if (upDistance === minDistance) {", + " this.shift(0, -maxY + obstacleMinY);", + " } else if (downDistance === minDistance) {", + " this.shift(0, -minY + obstacleMaxY);", + " }", + " }", + " }", + "", + "/**", + " * @param {float} deltaX", + " * @param {float} deltaY", + " */", + " CornerSlider.prototype.shift = function (deltaX, deltaY) {", + " this.transformedPosition[0] += deltaX;", + " this.transformedPosition[1] += deltaY;", + " }", + "", + " /**", + " * @return {gdjs.AABB}", + " */", + " CornerSlider.prototype.getHitBoxesAABB = function() {", + " if (!this.hitBoxesAABBUpToDate) {", + " const hitBoxes = this.topDownBehavior.owner.getHitBoxes();", + "", + " let minX = Number.MAX_VALUE;", + " let minY = Number.MAX_VALUE;", + " let maxX = -Number.MAX_VALUE;", + " let maxY = -Number.MAX_VALUE;", + " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", + " let hitBox = hitBoxes[h];", + " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", + " const point = this.topDownBehavior", + " ._temporaryPointForTransformations;", + " // TODO Handle isometry", + " // if (this.topDownBehavior._basisTransformation) {", + " // this.topDownBehavior._basisTransformation.toWorld(", + " // hitBox.vertices[p],", + " // point", + " // );", + " // } else {", + " point[0] = hitBox.vertices[p][0];", + " point[1] = hitBox.vertices[p][1];", + " // }", + " minX = Math.min(minX, point[0]);", + " maxX = Math.max(maxX, point[0]);", + " minY = Math.min(minY, point[1]);", + " maxY = Math.max(maxY, point[1]);", + " }", + " }", + " this.relativeHitBoxesAABB.min[0] = minX - this.transformedPosition[0];", + " this.relativeHitBoxesAABB.min[1] = minY - this.transformedPosition[1];", + " this.relativeHitBoxesAABB.max[0] = maxX - this.transformedPosition[0];", + " this.relativeHitBoxesAABB.max[1] = maxY - this.transformedPosition[1];", + "", + " this.hitBoxesAABBUpToDate = true;", + " }", + " this.absoluteHitBoxesAABB.min[0] =", + " this.relativeHitBoxesAABB.min[0] + this.transformedPosition[0];", + " this.absoluteHitBoxesAABB.min[1] =", + " this.relativeHitBoxesAABB.min[1] + this.transformedPosition[1];", + " this.absoluteHitBoxesAABB.max[0] =", + " this.relativeHitBoxesAABB.max[0] + this.transformedPosition[0];", + " this.absoluteHitBoxesAABB.max[1] =", + " this.relativeHitBoxesAABB.max[1] + this.transformedPosition[1];", + " return this.absoluteHitBoxesAABB;", + " }", + "", + " /**", + " * Update _potentialCollidingObjects member with platforms near the object.", + " * @param {float} maxMovementLength", + " */", + " CornerSlider.prototype.updatePotentialCollidingObjects = function(maxMovementLength) {", + " this.obstacleManager.getAllObstaclesAround(", + " this.getHitBoxesAABB(),", + " maxMovementLength,", + " this.potentialCollidingObjects", + " );", + " }", + "", + " return CornerSlider;", + "}());", + "", + "", + "/**", + " * TopDownMovementRuntimeBehavior represents a behavior allowing objects to", + " * follow a path computed to avoid obstacles.", + " */", + "const AssistanceResult = /** @class */ (function () {", + " function AssistanceResult() {", + " this.inputDirection = -1;", + " this.assistanceLeft = false;", + " this.assistanceRight = false;", + " this.assistanceUp = false;", + " this.assistanceDown = false;", + " this.isBypassX = false;", + " this.isBypassY = false;", + " this.stopMinX = 0;", + " this.stopMinY = 0;", + " this.stopMaxX = 0;", + " this.stopMaxY = 0;", + " }", + "", + " return AssistanceResult;", + "}());", + "", + " /**", + " * Allow to store a behavior in a RBush (spatial data structure).", + " * Because this duplicates the AABB, this ensures the RBush AABB", + " * stays the same even if the underlying object is moved", + " * (in which case the behavior is responsible for removing/adding", + " * back/updating this BehaviorRBushAABB).", + " */", + " const ObstacleRBushAABB = /** @class */ (function () {", + " /**", + " * @param {Obstacle} obstacle", + " */", + " function ObstacleRBushAABB(obstacle) {", + " this.obstacle = obstacle;", + " this.minX = 0;", + " this.minY = 0;", + " this.maxX = 0;", + " this.maxY = 0;", + " this.updateAABBFromOwner();", + " }", + "", + " ObstacleRBushAABB.prototype.updateAABBFromOwner = function () {", + " const aabb = this.obstacle.getHitBoxesAABB();", + " this.minX = aabb.min[0];", + " this.minY = aabb.min[1];", + " this.maxX = aabb.max[0];", + " this.maxY = aabb.max[1];", + " }", + "", + " return ObstacleRBushAABB;", + "}());", + "", + "/**", + " * An obstacle manager for fast spacial search.", + " */", + "const ObstacleManager = /** @class */ (function () {", + " /**", + " * Create a manager.", + " */", + " function ObstacleManager() {", + " this.obstacleRBush = new rbush();", + " }", + "", + " /**", + " * Get the obstacle manager of an instance container.", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @return {ObstacleManager}", + " */", + " ObstacleManager.getManager = function (instanceContainer) {", + " if (!instanceContainer.__topDownCornerSlidingExtension) {", + " instanceContainer.__topDownCornerSlidingExtension = {};", + " }", + " if (!instanceContainer.__topDownCornerSlidingExtension.manager) {", + " // Create the shared manager if necessary.", + " instanceContainer.__topDownCornerSlidingExtension.manager = new ObstacleManager();", + " }", + " return instanceContainer.__topDownCornerSlidingExtension.manager;", + " };", + "", + " /**", + " * Register an obstacle.", + " * @param {Obstacle} obstacle", + " */", + " ObstacleManager.prototype.addObstacle = function (obstacle) {", + " obstacle.currentRBushAABB.updateAABBFromOwner();", + " this.obstacleRBush.insert(obstacle.currentRBushAABB);", + " }", + "", + " /**", + " * Unregister an obstacle.", + " * @param {Obstacle} obstacle", + " */", + " ObstacleManager.prototype.removeObstacle = function (obstacle) {", + " this.obstacleRBush.remove(obstacle.currentRBushAABB);", + " }", + "", + " /**", + " * Returns all the boids around the specified boid.", + " * @param {gdjs.AABB} aabb", + " * @param {number} maxMovementLength", + " * @param {Obstacle[]} result the returned array.", + " * @return {Obstacle[]} An array with all obstacles near the object.", + " */", + " ObstacleManager.prototype.getAllObstaclesAround = function (aabb, maxMovementLength, result) {", + " const searchArea = gdjs.staticObject(", + " ObstacleManager.prototype.getAllObstaclesAround", + " );", + " searchArea.minX = aabb.min[0] - maxMovementLength;", + " searchArea.minY = aabb.min[1] - maxMovementLength;", + " searchArea.maxX = aabb.max[0] + maxMovementLength;", + " searchArea.maxY = aabb.max[1] + maxMovementLength;", + " /** @type {ObstacleRBushAABB[]} */", + " const nearbyObstacles = this.obstacleRBush.search(searchArea);", + "", + " result.length = 0;", + " for (let i = 0; i < nearbyObstacles.length; i++) {", + " const obstacle = nearbyObstacles[i].obstacle;", + " result.push(obstacle);", + " }", + "", + " return result;", + " }", + "", + " /**", + " * Returns true if there is any obstacle intersecting the area.", + " * @param {number} minX", + " * @param {number} maxX", + " * @param {number} minY", + " * @param {number} maxY", + " * @param {gdjs.RuntimeObject[]} excluded", + " * @return {boolean}", + " */", + " ObstacleManager.prototype.anyObstacle = function (", + " minX,", + " maxX,", + " minY,", + " maxY,", + " excluded", + " ) {", + " const searchArea = gdjs.staticObject(", + " ObstacleManager.prototype.anyObstacle", + " );", + " // @ts-ignore", + " searchArea.minX = minX;", + " // @ts-ignore", + " searchArea.minY = minY;", + " // @ts-ignore", + " searchArea.maxX = maxX;", + " // @ts-ignore", + " searchArea.maxY = maxY;", + " /** @type {ObstacleRBushAABB[]} */", + " const nearbyObstacles = this.obstacleRBush.search(searchArea);", + "", + " for (let i = 0; i < nearbyObstacles.length; i++) {", + " if (!excluded.includes(nearbyObstacles[i].obstacle.behavior.owner)) {", + " return true;", + " }", + " }", + " return false;", + " }", + "", + " return ObstacleManager;", + "}());", + "", + "/**", + " * NavMeshPathfindingObstacleRuntimeBehavior represents a behavior allowing objects to be", + " * considered as a obstacle by objects having Pathfinding Behavior.", + " */", + "const Obstacle = /** @class */ (function () {", + " /**", + " * ", + " * @param {gdjs.RuntimeInstanceContainer} instanceContainer", + " * @param {gdjs.RuntimeBehavior} behavior", + " */", + " function Obstacle(instanceContainer, behavior) {", + " this.oldX = 0;", + " this.oldY = 0;", + " this.oldWidth = 0;", + " this.oldHeight = 0;", + " this.registeredInManager = false;", + " this.behavior = behavior;", + " this.manager = ObstacleManager.getManager(instanceContainer);", + " // Note that we can't use getX(), getWidth()... of owner here:", + " // The owner is not yet fully constructed.", + " /** @type {gdjs.AABB} */", + " this.hitBoxesAABB = { min: [0, 0], max: [0, 0] };", + " this.hitBoxesAABBUpToDate = false;", + " ", + " /** @type {FloatPoint} */", + " this.point = [0, 0];", + " this.currentRBushAABB = new ObstacleRBushAABB(this);", + " }", + " Obstacle.prototype.onCreated = function () {", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " };", + " Obstacle.prototype.onDestroy = function () {", + " if (this.manager && this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " }", + " };", + " Obstacle.prototype.doStepPreEvents = function (instanceContainer) {", + " var owner = this.behavior.owner;", + " // Make sure the obstacle is or is not in the obstacles manager.", + " if (!this.behavior.activated() && this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " this.registeredInManager = false;", + " }", + " else {", + " if (this.behavior.activated() && !this.registeredInManager) {", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " }", + " }", + " // Track changes in size or position", + " if (this.oldX !== owner.getX() ||", + " this.oldY !== owner.getY() ||", + " this.oldWidth !== owner.getWidth() ||", + " this.oldHeight !== owner.getHeight()) {", + " this.hitBoxesAABBUpToDate = false;", + " if (this.registeredInManager) {", + " this.manager.removeObstacle(this);", + " this.manager.addObstacle(this);", + " }", + " this.oldX = owner.getX();", + " this.oldY = owner.getY();", + " this.oldWidth = owner.getWidth();", + " this.oldHeight = owner.getHeight();", + " }", + " };", + " Obstacle.prototype.doStepPostEvents = function (instanceContainer) { };", + " Obstacle.prototype.onActivate = function () {", + " if (this.registeredInManager) {", + " return;", + " }", + " this.manager.addObstacle(this);", + " this.registeredInManager = true;", + " };", + " Obstacle.prototype.onDeActivate = function () {", + " if (!this.registeredInManager) {", + " return;", + " }", + " this.manager.removeObstacle(this);", + " this.registeredInManager = false;", + " };", + "", + " /**", + " * @return {gdjs.AABB}", + " */", + " Obstacle.prototype.getHitBoxesAABB = function() {", + " if (!this.hitBoxesAABBUpToDate) {", + " const hitBoxes = this.behavior.owner.getHitBoxes();", + "", + " let minX = Number.MAX_VALUE;", + " let minY = Number.MAX_VALUE;", + " let maxX = -Number.MAX_VALUE;", + " let maxY = -Number.MAX_VALUE;", + " for (let h = 0, lenh = hitBoxes.length; h < lenh; ++h) {", + " let hitBox = hitBoxes[h];", + " for (let p = 0, lenp = hitBox.vertices.length; p < lenp; ++p) {", + " const point = this.point;", + " // TODO Handle Isometry", + " //this._basisTransformation.toWorld(hitBox.vertices[p], point);", + " point[0] = hitBox.vertices[p][0];", + " point[1] = hitBox.vertices[p][1];", + "", + " minX = Math.min(minX, point[0]);", + " maxX = Math.max(maxX, point[0]);", + " minY = Math.min(minY, point[1]);", + " maxY = Math.max(maxY, point[1]);", + " }", + " }", + " this.hitBoxesAABB.min[0] = minX;", + " this.hitBoxesAABB.min[1] = minY;", + " this.hitBoxesAABB.max[0] = maxX;", + " this.hitBoxesAABB.max[1] = maxY;", + "", + " this.hitBoxesAABBUpToDate = true;", + " }", + " return this.hitBoxesAABB;", + " }", + "", + " return Obstacle;", + "}());", + "", + "gdjs.__topDownCornerSlidingExtension = gdjs.__topDownCornerSlidingExtension || {};", + "gdjs.__topDownCornerSlidingExtension.CornerSlider = CornerSlider;", + "gdjs.__topDownCornerSlidingExtension.Obstacle = Obstacle;", + "", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2fda99b5-d891-4e9f-8995-af572b49c34f", - "width": 48, - "x": 768, - "y": 336, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Slide on corners of rectangular obstacles.", + "fullName": "Top-down corner slider", + "name": "TopDownCornerSlider", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "/** @type {gdjs.TopDownMovementRuntimeBehavior} */\r", + "const topDownBehavior = object.getBehavior(behavior._getTopDownMovement());\r", + "\r", + "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", + "behavior.__topDownCornerSlidingExtension.cornerSlider = new gdjs.__topDownCornerSlidingExtension.CornerSlider(runtimeScene, behavior, topDownBehavior);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSlider", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + } + ], + "sharedPropertyDescriptors": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "3e09fcf3-17da-4001-b407-832de403e5b1", - "width": 48, - "x": 768, - "y": 240, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Flag objects as obstacles for top-down characters.", + "fullName": "Top-down corner slider obstacle", + "name": "TopDownCornerSliderObstacle", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate and attach properties as objects variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownCornerSliding::DefineJavaScriptForTopDown" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "behavior.__topDownCornerSlidingExtension = behavior.__topDownCornerSlidingExtension || {};\r", + "behavior.__topDownCornerSlidingExtension.obstacle =\r", + " new gdjs.__topDownCornerSlidingExtension.Obstacle(runtimeScene, behavior);\r", + "behavior.__topDownCornerSlidingExtension.obstacle.onCreated(runtimeScene, behavior);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "\r", + "behavior.__topDownCornerSlidingExtension.obstacle.doStepPreEvents(runtimeScene);\r", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onActivate(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onDeActivate(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.__topDownCornerSlidingExtension.obstacle.onDestroy(runtimeScene);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Sliding corner size", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "SlidingCornerSize" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Bouh", + "category": "Input", + "extensionNamespace": "", + "fullName": "Gamepads (controllers)", + "helpPath": "/all-features/gamepad", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", + "name": "Gamepads", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg", + "shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...", + "version": "0.5.0", + "description": [ + "Add support for gamepads (or other controllers).", + "", + "It gives access to:", + "- button presses", + "- axis positions and force", + "- trigger pressure", + "- configurable deadzone", + "- vibration", + "- automatic mappers for platformer characters and top-down movement", + "", + "The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))." + ], + "origin": { + "identifier": "Gamepads", + "name": "gdevelop-extension-store" + }, + "tags": [ + "controllers", + "gamepads", + "joysticks", + "axis", + "xbox", + "ps4" + ], + "authorIds": [ + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "taRwmWxwAFYFL9yyBwB3cwBw0BO2", + "mnImQKdn8nQxwzkS5D6a1JB27V23" + ], + "dependencies": [], + "eventsFunctions": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "393c71c8-a668-48a8-8fcd-8aa351e7273d", - "width": 48, - "x": 768, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Get the value of the pressure on a gamepad trigger.", + "fullName": "Pressure on a gamepad trigger", + "functionType": "Expression", + "name": "TriggerPressure", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const trigger = eventsFunctionContext.getArgument(\"trigger\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Pressure on a gamepad trigger\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (trigger != \"LT\" && trigger != \"RT\" && trigger != \"L2\" && trigger != \"R2\") {\r", + " console.error('Parameter trigger is not valid in expression: \"Pressure on a gamepad trigger\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (trigger) {\r", + " case 'LT':\r", + " case 'L2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[6].value;\r", + " break;\r", + "\r", + " case 'RT':\r", + " case 'R2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[7].value;\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Trigger button", + "name": "trigger", + "supplementaryInformation": "[\"LT\",\"RT\",\"L2\",\"R2\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "488346ac-4e78-45cc-818e-cd010be4d655", - "width": 48, - "x": 768, - "y": 528, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Get the force value of a gamepad stick.\n0 is stick on default position, 1 is at the maximum.", + "fullName": "Value of a stick force", + "functionType": "Expression", + "name": "StickForce", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId)), 0, 1);\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId)), 0, 1);\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "91008c80-6d94-4009-84b6-c573a5c5a2f2", - "width": 48, - "x": 48, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Get the rotation value of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", + "fullName": "Value of a stick rotation", + "functionType": "Expression", + "name": "StickRotationValue", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId));\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId));\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "a356057f-6acf-42ca-883d-c278cf219ffd", - "width": 48, - "x": 96, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Get the value of axis of a gamepad stick.", + "fullName": "Value of a gamepad axis", + "functionType": "Expression", + "name": "AxisValue", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"HORIZONTAL\" && direction != \"VERTICAL\") {\r", + " console.error('Parameter direction is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let parameterError = false;\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Horizontal\",\"Vertical\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "d3f014e9-e0dc-405e-a916-481dbaa561e5", - "width": 48, - "x": 144, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Test if a button is released on a gamepad. Buttons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button released", + "functionType": "Condition", + "name": "C_Button_released", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button released\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button released\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button released\" is not valid.');\r", + " break;\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//Define default value on pressed button or use previous value\r", + "gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "//Get state of button at previous frame\r", + "const previousStateButton = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "//When previousStateButton is true and actual button state is not pressed\r", + "//Player have release the button\r", + "if (previousStateButton === true && gamepad.buttons[buttonId].pressed === false) {\r", + " // Save the last button used for the player \r", + " gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + " eventsFunctionContext.returnValue = true;\r", + "\r", + "} else {\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + " eventsFunctionContext.returnValue = false;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "ce021a22-532a-4fde-8513-5290e7fd60b4", - "width": 48, - "x": 192, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the index of the last pressed button of a gamepad.", + "fullName": "Last pressed button (id)", + "functionType": "Expression", + "name": "LastButtonID", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "//Player id is not valid\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Last pressed button (id)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "//Return the last button used by the player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].lastButtonUsed;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "ebfb46a5-013f-41d1-95db-ec91d629490c", - "width": 48, - "x": 240, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if any button is pressed on a gamepad.", + "fullName": "Any gamepad button pressed", + "functionType": "Condition", + "name": "C_Any_Button_pressed", + "sentence": "Any button of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Any gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "for (let i = 0; i < gamepad.buttons.length; i++) { //For each buttons\r", + " if (gamepad.buttons[i].pressed) { //One of them is pressed\r", + " buttonId = i; //Save the button pressed\r", + " break;\r", + " }\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " // No buttons are pressed.\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Any gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2ca363dc-304c-4c00-9372-7a9962791bae", - "width": 48, - "x": 288, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the last button pressed. \nButtons for Xbox and PS4 can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Both: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Last pressed button (string)", + "functionType": "StringExpression", + "name": "LastButtonString", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in string expression: \"Last pressed button (LastButtonString)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (controllerType === \"\") {\r", + " console.error('Parameter controller type is not valid in string expression: \"Last pressed button (LastButtonString)\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "if (gamepad !== null) { //Gamepad exist\r", + " //Get last btn id\r", + " const lastButtonUsedID = gdjs._extensionController.players[playerId].lastButtonUsed;\r", + "\r", + " //Return last button as string \r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getInputString(controllerType, lastButtonUsedID);\r", + "\r", + "} else { //Gamepad dosen't exist\r", + " console.error('Your controller is not supported or the gamepad wasn\\'t detected in string expression: \"Last pressed button (LastButtonString)\"');\r", + " eventsFunctionContext.returnValue = \"Gamepad not connected\";\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Controller type", + "name": "controller_type", + "supplementaryInformation": "[\"Xbox\",\"PS4\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "e18d600a-663c-4426-bcae-35f6f14036f6", - "width": 48, - "x": 336, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the number of gamepads.", + "fullName": "Gamepad count", + "functionType": "Expression", + "name": "GamepadCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get the last activated controller\r", + "const controllerId = gdjs._extensionController.lastActiveController;\r", + "\r", + "// Check if controller is active\r", + "const gamepad = gamepads[controllerId];\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = 0;\r", + "} else {\r", + " // Return active controller id\r", + " eventsFunctionContext.returnValue = controllerId + 1;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "6d9de165-b6dd-448f-ac03-c3e5f5efb66d", - "width": 48, - "x": 384, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if a button is pressed on a gamepad. \nButtons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button pressed", + "functionType": "Condition", + "name": "C_Button_pressed", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button pressed\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "3d41d234-7e25-4de1-8f7c-5d1b2d49b9b2", - "width": 48, - "x": 432, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the value of the deadzone applied to a gamepad sticks, between 0 and 1.", + "fullName": "Gamepad deadzone for sticks", + "functionType": "Expression", + "name": "Deadzone", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Gamepad deadzone for sticks\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "///Return the deadzone value for a given player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].deadzone;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "c623f11d-dcfd-4f48-9f5e-9fa7c5d014e7", - "width": 48, - "x": 480, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2.", + "fullName": "Set gamepad deadzone for sticks", + "functionType": "Action", + "name": "A_Set_deadzone", + "sentence": "Set deadzone for sticks on gamepad: _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const newDeadzone = eventsFunctionContext.getArgument(\"deadzone\");\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in action: \"Set gamepad deadzone for sticks\", is not valid, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "// clamp the newDeadzone in range [0, 1].\r", + "// https://github.com/4ian/GDevelop-extensions/pull/33#issuecomment-618224857\r", + "gdjs._extensionController.players[playerId].deadzone = gdjs.evtTools.common.clamp(newDeadzone, 0, 1);\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Deadzone for sticks, 0.2 by default (0 to 1)", + "name": "deadzone", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "b6e79308-d24e-4948-9f23-2d3d75984173", - "width": 48, - "x": 528, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if a stick of a gamepad is pushed in a given direction.", + "fullName": "Gamepad stick pushed (axis)", + "functionType": "Condition", + "name": "C_Axis_pushed", + "sentence": "_PARAM2_ stick of gamepad _PARAM1_ is pushed in direction _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad stick pushed (axis)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick in condition: \"Gamepad stick pushed (axis)\", is not valid, must be LEFT or RIGHT');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"ANY\") {\r", + " console.error('Parameter deadzone in condition: \"Gamepad stick pushed (axis)\", is not valid, must be UP, DOWN, LEFT or RIGHT');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "\r", + "//Define in onFirstSceneLoaded function\r", + "const getNormalizedAxisValue = gdjs._extensionController.getNormalizedAxisValue;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[0], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[0], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Left on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[2], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[2], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Right on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Stick on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "eventsFunctionContext.returnValue = false;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Any\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "eec3aa37-b3bf-4b58-a928-32a03905ee72", - "width": 48, - "x": 576, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the number of connected gamepads.", + "fullName": "Connected gamepads number", + "functionType": "Expression", + "name": "ConnectedGamepadsCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "// Gamepads can be disconnected and become null, so we have to filter them.\r", + "eventsFunctionContext.returnValue = Object.keys(gamepads).filter(key => !!gamepads[key]).length;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "97f3c876-b5ff-466e-8c7c-b1d0da299bfd", - "width": 48, - "x": 624, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return a string containing informations about the specified gamepad.", + "fullName": "Gamepad type", + "functionType": "StringExpression", + "name": "GamepadType", + "sentence": "Player _PARAM1_ use _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in string expression: \"Gamepad type\", is not valid number, must be between 0 and 4');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "eventsFunctionContext.returnValue = (gamepad && gamepad.id) ? gamepad.id : \"No information for player \" + (playerId + 1)", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "d657d4ca-6069-40b5-aa45-838b4d75bd88", - "width": 48, - "x": 672, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller.", + "fullName": "Gamepad type", + "functionType": "Condition", + "name": "C_Controller_type", + "sentence": "Gamepad _PARAM1_ is a _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad type\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (controllerType === \"\") {", + " console.error('Parameter type in condition: \"Gamepad type\", is not a string.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "", + "if (controllerType == \"XBOX\") {", + " eventsFunctionContext.returnValue = gdjs._extensionController.isXbox(gamepad);", + "} else {", + " eventsFunctionContext.returnValue = gamepad ? gamepad.id.toUpperCase().indexOf(controllerType) !== -1 : false;", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Type: \"Xbox\", \"PS4\", \"Steam\" or \"PS3\" (among other)", + "name": "controller_type", + "type": "string" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "9b391f55-3e1e-41d2-be3f-3df677aa8819", - "width": 48, - "x": 720, - "y": 576, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if a gamepad is connected.", + "fullName": "Gamepad connected", + "functionType": "Condition", + "name": "C_Controller_X_is_connected", + "sentence": "Gamepad _PARAM1_ is plugged and connected", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "// If gamepad was disconnected it will be null (so this will return false)", + "// If gamepad was never connected it will be undefined (so this will return false)", + "eventsFunctionContext.returnValue = !!gamepads[playerId];" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "ce7f2137-f339-4b1e-a725-f0fb403fa439", - "width": 48, - "x": 576, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser.", + "fullName": "Gamepad vibration", + "functionType": "Action", + "name": "A_Vibrate_controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: 1.0,", + " strongMagnitude: 1.0", + " });", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "43af4bc0-f9fd-4d24-94d4-79826a640c39", - "width": 48, - "x": 528, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Generate an advanced vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Advanced gamepad vibration", + "functionType": "Action", + "name": "A_Advanced_Vibration_Controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds with the vibration magnitude of _PARAM3_ and _PARAM4_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.duration = duration;", + "gdjs._extensionController.players[playerId].rumble.elapsedTime = 0;", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "7a31e3e7-4afc-4b3b-bc0d-c110ac3fb7fc", - "width": 48, - "x": 480, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Change a vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Change gamepad active vibration", + "functionType": "Action", + "name": "A_Change_Vibration_Magnitude", + "sentence": "Change the vibration magnitude of _PARAM2_ & _PARAM3_ on gamepad _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const elapsedTime = gdjs._extensionController.players[playerId].rumble.elapsedTime || 0;", + "const originalDuration = gdjs._extensionController.players[playerId].rumble.duration || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (originalDuration - elapsedTime <= 0) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: 1000 * (originalDuration - elapsedTime),", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "98781e57-327c-4a05-a34a-704d71fa381e", - "width": 48, - "x": 432, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Define an new private object javascript for the gamepad extension\r", + "gdjs._extensionController = {\r", + " players: {\r", + " 0: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 1: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 2: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 3: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " },\r", + " lastActiveController: -1, // Last active controller\r", + " controllerButtonNames: { //Map associating controller button ids to button names\r", + " \"XBOX\": {\r", + " 0: \"A\",\r", + " 1: \"B\",\r", + " 2: \"X\",\r", + " 3: \"Y\",\r", + " 4: \"LB\",\r", + " 5: \"RB\",\r", + " 6: \"LT\",\r", + " 7: \"RT\",\r", + " 8: \"BACK\",\r", + " 9: \"START\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"NONE\",\r", + " 17: \"NONE\"\r", + " },\r", + " \"PS4\": {\r", + " 0: \"CROSS\",\r", + " 1: \"CIRCLE\",\r", + " 2: \"SQUARE\",\r", + " 3: \"TRIANGLE\",\r", + " 4: \"L1\",\r", + " 5: \"R1\",\r", + " 6: \"L2\",\r", + " 7: \"R2\",\r", + " 8: \"SHARE\",\r", + " 9: \"OPTIONS\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"PS_BUTTON\",\r", + " 17: \"CLICK_TOUCHPAD\"\r", + " }\r", + " }\r", + "};\r", + "\r", + "gdjs._extensionController.getInputString = function (type, buttonId) {\r", + " const controllerButtonNames = gdjs._extensionController.controllerButtonNames;\r", + " if (controllerButtonNames[type] !== undefined) {\r", + " return controllerButtonNames[type][buttonId];\r", + " }\r", + "\r", + " return \"UNKNOWN_BUTTON\";\r", + "}\r", + "\r", + "gdjs._extensionController.axisToAngle = function (deltaX, deltaY) {\r", + " const rad = Math.atan2(deltaY, deltaX);\r", + " const deg = rad * (180 / Math.PI);\r", + " return deg;\r", + "}\r", + "\r", + "gdjs._extensionController.isXbox = function (gamepad) {\r", + " return (gamepad ? (\r", + " gamepad.id.toUpperCase().indexOf(\"XBOX\") !== -1\r", + " // \"XINPUT\" cannot be used to check if it is a xbox controller is just a generic\r", + " // name reported in Firefox corresponding to the driver being used by the controller\r", + " // https://gamefaqs.gamespot.com/boards/916373-pc/73341312?page=1\r", + " ) : false);\r", + "}\r", + "\r", + "//Returns the new value taking into account the dead zone for the player_ID given\r", + "gdjs._extensionController.getNormalizedAxisValue = function (v, player_ID) {\r", + " // gdjs._extensionController = gdjs._extensionController || { deadzone: 0.2 };\r", + "\r", + " // Anything smaller than this is assumed to be 0,0\r", + " const DEADZONE = gdjs._extensionController.players[player_ID].deadzone;\r", + "\r", + " if (Math.abs(v) < DEADZONE) {\r", + " // In the dead zone, set to 0\r", + " v = 0;\r", + "\r", + " if (v == null) {\r", + " return 0;\r", + " } else {\r", + " return v;\r", + " }\r", + "\r", + " } else {\r", + " // We're outside the dead zone, but we'd like to smooth\r", + " // this value out so it still runs nicely between 0..1.\r", + " // That is, we don't want it to jump suddenly from 0 to\r", + " // DEADZONE.\r", + "\r", + " // Remap v from\r", + " // DEADZONE..1 to 0..(1-DEADZONE)\r", + " // or from\r", + " // -1..-DEADZONE to -(1-DEADZONE)..0\r", + "\r", + " v = v - Math.sign(v) * DEADZONE;\r", + "\r", + " // Remap v from\r", + " // 0..(1-DEADZONE) to 0..1\r", + " // or from\r", + " // -(1-DEADZONE)..0 to -1..0\r", + "\r", + " return v / (1 - DEADZONE);\r", + " }\r", + "};" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "a59eaecd-db24-4858-9939-83a8ab6cbf01", - "width": 48, - "x": 384, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "fullName": "", + "functionType": "Action", + "name": "onScenePostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Each time a player press a button i save the last button pressed for the next frame", + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "let countPlayers = Object.keys(gdjs._extensionController.players).length;", + "", + "//Repeat for each players", + "for (let i = 0; i < countPlayers; i++) {", + " let gamepad = gamepads[i]; // Get the gamepad of the player", + "", + " //We have to keep this condition because if the user hasn't plugged in his controller yet, we can't get the controller in the gamepad variable.", + " if (gamepad == null) {", + " continue;", + " }", + "", + " for (let b = 0; b < Object.keys(gamepad.buttons).length; b++) { //For each buttons", + " if (gamepad.buttons[b].pressed) { //One of them is pressed", + " gdjs._extensionController.players[i].lastButtonUsed = b; //Save the button pressed", + "", + " //Save the state of the button for the next frame.", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: true };", + "", + " // Update Last Active Controller", + " gdjs._extensionController.lastActiveController = i;", + " } else {", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: false };", + " }", + " }", + "", + "", + " gdjs._extensionController.players[i].rumble.elapsedTime += runtimeScene.getElapsedTime(runtimeScene) / 1000;", + " if (", + " gdjs._extensionController.players[i].rumble.duration - gdjs._extensionController.players[i].rumble.elapsedTime <= 0 &&", + " (gdjs._extensionController.players[i].rumble.weakMagnitude || gdjs._extensionController.players[i].rumble.strongMagnitude)", + " ) {", + " gdjs._extensionController.players[i].rumble.weakMagnitude = 0;", + " gdjs._extensionController.players[i].rumble.strongMagnitude = 0;", + " }", + "", + "", + "}", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "3671fd18-58d2-4e9f-a45b-9048fd0d3939", - "width": 48, - "x": 336, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Check if any button is released on a gamepad.", + "fullName": "Any gamepad button released", + "functionType": "Condition", + "name": "C_any_button_released", + "sentence": "Any button of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + "\tconsole.error('Parameter gamepad identifier in condition: \"Any gamepad button released\", is not valid number, must be between 0 and 4.');\r", + "\treturn;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "for (let buttonId = 0; buttonId < gamepad.buttons.length; buttonId++) { //For each buttons on current frame.\r", + "\r", + "\tif (buttonId === undefined) {\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t\treturn;\r", + "\t}\r", + "\r", + "\t//Get previous value or define value by default for the current button\r", + "\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "\t//Get state of the button at previous frame\r", + "\tconst previousStateButtonIsPressed = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "\t//Get the state of the button on the current frame.\r", + "\tconst currentFrameStateButtonIsPressed = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\t//When previousStateButtonIsPressed is true and actual button state is not pressed\r", + "\t//Player have release the button\r", + "\tif (previousStateButtonIsPressed === true && currentFrameStateButtonIsPressed === false) {\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + "\t\teventsFunctionContext.returnValue = true;\r", + "\t\t//break;\r", + "\t\treturn;\r", + "\t} else {\r", + "\t\t//The player didn't released the button yet, the previous frame state is still true\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t}\r", + "\r", + "\tif (currentFrameStateButtonIsPressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "62ff0dfa-e202-463d-a663-c7279383a4ba", - "width": 48, - "x": 288, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the strength of the weak vibration motor on the gamepad of a player.", + "fullName": "Weak rumble magnitude", + "functionType": "Expression", + "name": "WeakVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.weakMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "0199004b-75d8-4253-a327-78b0e2b9e3c0", - "width": 48, - "x": 240, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Return the strength of the strong vibration motor on the gamepad of a player.", + "fullName": "Strong rumble magnitude", + "functionType": "Expression", + "name": "StrongVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.strongMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Control a platformer character with a gamepad.", + "fullName": "Platformer gamepad mapper", + "name": "PlatformerGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"A or Cross\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"A\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"B or Circle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"B\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"X or Square\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"X\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Y or Triangle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Y\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LB or L1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RB or R1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LT or L2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RT or R2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::PlatformerGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Platformer character behavior", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "hidden": false, + "name": "PlatformerCharacter" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseRightStick" + }, + { + "value": "A or Cross", + "type": "Choice", + "label": "Jump button", + "description": "", + "group": "Controls", + "extraInformation": [ + "A or Cross", + "B or Circle", + "X or Square", + "Y or Triangle", + "LB or L1", + "RB or R1", + "LT or L2", + "RT or R2" + ], + "hidden": false, + "name": "JumpButton" + } + ], + "sharedPropertyDescriptors": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "2b953705-61bb-4165-8404-f107d843c937", - "width": 48, - "x": 192, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Control a top-down character with a gamepad.", + "fullName": "Top-down gamepad mapper", + "name": "TopDownGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::TopDownGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "UseRightStick" + }, + { + "value": "Analog", + "type": "Choice", + "label": "Stick mode", + "description": "", + "group": "Controls", + "extraInformation": [ + "Analog", + "360°", + "8 Directions" + ], + "hidden": false, + "name": "StickMode" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Top-down movement animator", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40bDQtNC4xYzAuNC0wLjQsMS0wLjQsMS40LDBzMC40LDEsMCwxLjRMMy40LDE2bDMuMywzLjMNCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDNi42LDIxLDYuMywyMS4xLDYsMjEuMXoiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0yNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNjLTAuNC0wLjQtMC40LTEsMC0xLjRsMy4zLTMuM2wtMy4zLTMuM2MtMC40LTAuNC0wLjQtMSwwLTEuNHMxLTAuNCwxLjQsMGw0LjEsNC4xDQoJCWMwLjIsMC4yLDAuMywwLjQsMC4zLDAuN3MtMC4xLDAuNS0wLjMsMC43bC00LjEsNC4xQzI2LjYsMjEsMjYuMywyMS4xLDI2LDIxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMTYsMzEuMUwxNiwzMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40czEtMC40LDEuNCwwbDMuMywzLjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwDQoJCXMwLjQsMSwwLDEuNGwtNC4xLDQuMUMxNi42LDMwLjksMTYuMywzMS4xLDE2LDMxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjAuMSw3Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNMMTYsMy40bC0zLjMsMy4zYy0wLjQsMC40LTEsMC40LTEuNCwwcy0wLjQtMSwwLTEuNGw0LTQuMWMwLjQtMC40LDEtMC40LDEuNCwwbDQuMSw0LjENCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDMjAuNiw2LjksMjAuNCw3LDIwLjEsN3oiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0xNiwzMGMtMC42LDAtMS0wLjQtMS0xVjNjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXYyNkMxNywyOS42LDE2LjYsMzAsMTYsMzB6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjksMTdIMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMWgyN2MwLjYsMCwxLDAuNCwxLDFTMjkuNiwxNywyOSwxN3oiLz4NCjwvZz4NCjwvc3ZnPg0K", + "name": "TopDownMovementAnimator", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Arrows/a6026156355ae5f03613b03971e4ddb50d0c95b8901e7a21edc57f33f0032e42_Arrows_thin_arrows_all_directions_cross.svg", + "shortDescription": "Change the animation according to the movement direction.", + "version": "0.1.0", + "description": "Change the animation according to the movement direction.", + "tags": [ + "animation", + "direction" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "de955cc4-b5ff-412f-ba72-f02f8d2f5134", - "width": 48, - "x": 144, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Change the animation according to the movement direction.", + "fullName": "Top-down movement animator", + "name": "TopDownMovementAnimator", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "8" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "4" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Direction()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::Speed" + }, + "parameters": [ + "Object", + "TopDownMovement", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PauseAnimation" + }, + "parameters": [ + "Object" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::Speed" + }, + "parameters": [ + "Object", + "TopDownMovement", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlayAnimation" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyNewAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Direction()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use a small margin is used to avoid to flicker between 2 directions." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Object.Behavior:: DirectionDifference(Object.Behavior::SharedPropertyNewAnimationDirection(), Object.Behavior::PropertyAnimationDirection()))", + ">", + "0.5 + 0.03125" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::SharedPropertyNewAnimationDirection()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name of the object.", + "fullName": "Animation name", + "functionType": "ExpressionAndCondition", + "name": "AnimationName", + "sentence": "the animation name", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AnimationName", + "name": "SetAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "GetArgumentAsString(\"Value\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + }, + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the animation is scaled according to speed.", + "fullName": "Scale animation according to speed", + "functionType": "Condition", + "name": "IsScalingAnimation", + "sentence": "_PARAM0_ animation is scaled according to speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change whether the animation is scaled according to speed or not.", + "fullName": "Scale animation according to speed", + "functionType": "Action", + "name": "SetIsScalingAnimation", + "sentence": "Scale the animation of _PARAM0_ according to speed: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "ChangeAnimationSpeedScale" + }, + "parameters": [ + "Object", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "IsScalingAnimation", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation speed scale according to the object speed.", + "fullName": "Animation speed scale", + "functionType": "Action", + "name": "SetAnimationSpeedScale", + "private": true, + "sentence": "Change the animation speed scale according to _PARAM0_ speed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeAnimationSpeedScale" + }, + "parameters": [ + "Object", + "=", + "Object.TopDownMovement::Speed() / Object.TopDownMovement::MaxSpeed()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the object movement direction.", + "fullName": "Direction", + "functionType": "Expression", + "name": "Direction", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "(Object.TopDownMovement::Angle() + Object.Behavior::PropertyAngleOffset()) * Object.Behavior::PropertyDirectionCount() / 360" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the difference between 2 directions.", + "fullName": "Direction dirrerence", + "functionType": "Expression", + "name": "DirectionDifference", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "mod(mod(GetArgumentAsNumber(\"Direction\") - GetArgumentAsNumber(\"OtherDirection\"), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount() / 2, Object.Behavior::PropertyDirectionCount()) - Object.Behavior::PropertyDirectionCount() / 2" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "description": "Direction", + "name": "Direction", + "type": "expression" + }, + { + "description": "Other direction", + "name": "OtherDirection", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation direction of the object.", + "fullName": "Animation direction", + "functionType": "Action", + "name": "SetAnimationDirection", + "private": true, + "sentence": "Change the animation direction of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change the animation but keep the current frame number." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "mod(mod(round(GetArgumentAsNumber(\"Value\")), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount(), Object.Behavior::PropertyDirectionCount())" + ] + }, + { + "type": { + "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyAnimationFrame" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Sprite()" + ] + }, + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" + ] + }, + { + "type": { + "value": "ChangeSprite" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::SharedPropertyAnimationFrame()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + }, + { + "value": "true", + "type": "Boolean", + "label": "Scale animation according to speed", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "IsScalingAnimation" + }, + { + "value": "Walk", + "type": "String", + "label": "Animation name", + "description": "Animations must be called \"Walk0\", \"Walk1\"... for left, down...", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "AnimationName" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Number of directions", + "description": "Leave to 0 to automatically use 8 when diagonals are allowed and 4 otherwise.", + "group": "Direction", + "extraInformation": [], + "hidden": false, + "name": "DirectionCount" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Angle offset", + "description": "Setted to 90°, \"Walk0\" becomes the animation for down.", + "group": "Direction", + "extraInformation": [], + "hidden": false, + "name": "AngleOffset" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AnimationDirection" + } + ], + "sharedPropertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NewAnimationDirection" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AnimationFrame" + } + ] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "Respawn", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [ + "" + ], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "09ccfcba-881b-45dd-a4ed-1db070db31ea", - "width": 48, - "x": 96, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Make the object come back to its initial location", + "fullName": "Respawn", + "name": "Respawn", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginY", + "=", + "Object.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginX", + "=", + "Object.X()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Respawn to its initial location", + "fullName": "Respawn", + "functionType": "Action", + "name": "respawn", + "sentence": "_PARAM0_ respawns to its initial location", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(OriginX)", + "=", + "Object.Variable(OriginY)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "1" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "UnPauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is invincible.", + "fullName": "Is the object invincible?", + "functionType": "Condition", + "name": "isInvincible", + "sentence": "_PARAM0_ is invincible", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"", + "Object.Behavior::PropertyInvincibilityTime()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Invincible", + "=", + "0" + ] + }, + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Invincible\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginY", + "=", + "Object.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "OriginX", + "=", + "Object.X()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Respawn::Respawn", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "5", + "type": "Number", + "label": "The invincibility time after been respawn (in seconds).", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "InvincibilityTime" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "BombExplosion", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "757b7ddc-61d2-4dd4-9157-1340e9dab603", - "width": 48, - "x": 48, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Explode a bombe into 4 lines of Explosion objects.", + "fullName": "Explode a bombe", + "functionType": "Action", + "name": "Explode", + "sentence": "_PARAM1_ explode into _PARAM2_ and is stopped by _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creation of the central explosion square" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Explosion", + "Bomb.X()", + "Bomb.Y()", + "\"\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 12" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creation of the explosion squares on the 4 directions" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "0", + "1", + "0", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "180", + "-1", + "0", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "90", + "0", + "1", + "" + ] + }, + { + "type": { + "value": "BombExplosion::CreateExplosionArm" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Obstacle", + "-90", + "0", + "-1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + }, + { + "description": "Explosion", + "name": "Explosion", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "Obstacle", + "name": "Obstacle", + "type": "objectList" + } + ], + "objectGroups": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "1c37d1da-f5d4-49d7-bcf6-4c8e64d39399", - "width": 48, - "x": 720, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, + "description": "Create one line of Explosion object in a given direction.", + "fullName": "Create an explosion arm", + "functionType": "Action", + "name": "CreateExplosionArm", + "private": true, + "sentence": "Creat an explosion arm with _PARAM2_ from _PARAM1_ to _PARAM3_ in the direction _PARAM4_° (_PARAM5_ ; _PARAM6_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "1" + ] + } + ], + "events": [ + { + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "<=", + "Bomb.Variable(Range)" + ] + } + ], + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Explosion", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 48 * Variable(iteration)", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 48 * Variable(iteration)", + "\"\"" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Explosion", + "=", + "GetArgumentAsNumber(\"ExplosionDirection\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The arm squares (+11) are over the finger squares (+10) and the center squares are over the other 2 (+12). It makes a better continuity on the explosions sprites." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "<", + "Bomb.Variable(Range)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Explosion", + "\"ExplosionArm\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 11" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "iteration", + "=", + "Bomb.Variable(Range)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Explosion", + "\"ExplosionFinger\"" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Explosion", + "=", + "Explosion.Y() + 10" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "When an obstacle is reached, the loop is broken (by setting a big value in the iteration variable)." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Obstacle", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "666" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + }, + { + "description": "Explosion", + "name": "Explosion", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "Obstacle", + "name": "Obstacle", + "type": "objectList" + }, + { + "description": "Explosion direction angle", + "name": "ExplosionDirection", + "type": "expression" + }, + { + "description": "Explosion direction X", + "name": "ExplosionDirectionX", + "type": "expression" + }, + { + "description": "Explosion direction Y", + "name": "ExplosionDirectionY", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "59d663e3-45ac-4b87-882c-0d520876eebb", - "width": 48, - "x": 672, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "Play the explosion animation and destroy itself.", + "fullName": "Explosion animator", + "name": "ExplosionAnimator", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The animation frame rate can only be constant. So, the animation is split to make the last frame last." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationEnded" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenter\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenterEnding\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArm\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArmEnding\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFinger\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFingerEnding\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationEnded" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionCenterEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionArmEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Object", + "\"ExplosionFingerEnding\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BombExplosion::ExplosionAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] }, { - "angle": 0, - "customSize": false, - "height": 48, - "layer": "", - "name": "Wall", - "persistentUuid": "9595a78b-065c-4fde-9018-a365baff3d55", - "width": 48, - "x": 624, - "y": 0, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "description": "", + "fullName": "", + "name": "Bomb", + "objectType": "Scene3D::Model3DObject", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "20" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BombExplosion::Bomb", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "Player", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Create a bonus at specified position.", + "fullName": "Create bonus", + "functionType": "Action", + "name": "CreateBonus", + "sentence": "Create _PARAM1_ of type _PARAM4_ at position _PARAM2_ ; _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bonus", + "GetArgumentAsNumber(\"PositionX\")", + "GetArgumentAsNumber(\"PositionY\")", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Bonus", + "=", + "Bonus.Y() + 10" + ] + }, + { + "type": { + "value": "ChangeHeight" + }, + "parameters": [ + "Bonus", + "=", + "48" + ] + }, + { + "type": { + "value": "ChangeWidth" + }, + "parameters": [ + "Bonus", + "=", + "48" + ] + }, + { + "type": { + "value": "ChangeAnimation" + }, + "parameters": [ + "Bonus", + "=", + "GetArgumentAsNumber(\"Type\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "X position", + "name": "PositionX", + "type": "expression" + }, + { + "description": "Y position", + "name": "PositionY", + "type": "expression" + }, + { + "description": "Bonus type", + "name": "Type", + "supplementaryInformation": "[]", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "A player that picks up bonuses to become more powerful.", + "fullName": "Player", + "name": "Player", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::Player::ResetPowers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Pick up a bonus and gain powers.", + "fullName": "Pick up bonus", + "functionType": "Action", + "name": "PickUpBonus", + "sentence": "_PARAM0_ pick up _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Bonus", + "\"BombBonus\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombCapacity", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Bonus", + "\"FlameBonus\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Range", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The structure Bonus of the Player allow to keep up the bonuses caught by the player and their location so they can be set back when he dies." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "newIndex", + "=", + "Object.VariableChildCount(Bonus)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"Number\"]", + "=", + "Bonus.Animation()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"X\"]", + "=", + "Bonus.X()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Bonus[VariableString(newIndex)][\"Y\"]", + "=", + "Bonus.Y()" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bonus", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "The bonus accumulated by the dead player come back to their initial locations.", + "fullName": "Give back all bonuses", + "functionType": "Action", + "name": "GiveBackBonuses", + "sentence": "_PARAM0_ give back all _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::Player::ResetPowers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.VariableChildCount(Bonus)", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"X\"])", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"Y\"])", + "Object.Variable(Bonus[ToString(Variable(iteration))][\"Number\"])", + "" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ObjectVariableClearChildren" + }, + "parameters": [ + "Object", + "Bonus" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bonus", + "name": "Bonus", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "fullName": "Reset powers", + "functionType": "Action", + "name": "ResetPowers", + "private": true, + "sentence": "Reset powers of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Range", + "=", + "GlobalVariable(Flame)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombCapacity", + "=", + "GlobalVariable(Bomb)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] } ], - "editionSettings": { - "grid": true, - "gridType": "rectangular", - "gridWidth": 24, - "gridHeight": 24, - "gridOffsetX": 0, - "gridOffsetY": 0, - "gridColor": 10401023, - "gridAlpha": 0.8, - "snap": true, - "zoomFactor": 0.808, - "windowMask": false - } - }, + "eventsBasedObjects": [] + } + ], + "externalLayouts": [ { "associatedLayout": "Game", - "name": "TestLevel", + "name": "EmptyLevel", "instances": [ { "angle": 0, @@ -25056,7 +23483,7 @@ "height": 68, "layer": "", "name": "Player1", - "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", + "persistentUuid": "ec337b4f-25b3-464d-8aa2-e53d451b9e82", "width": 82, "x": 1039, "y": 606, @@ -25072,7 +23499,7 @@ "height": 68, "layer": "", "name": "Player2", - "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", + "persistentUuid": "0168e5a1-c6c6-4470-a8a9-31a2b47790e9", "width": 82, "x": 182, "y": -9, @@ -25088,7 +23515,7 @@ "height": 68, "layer": "", "name": "Player3", - "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", + "persistentUuid": "dca8110e-8871-49a7-9d12-e00eaf0e8b53", "width": 82, "x": 182, "y": 598, @@ -25104,7 +23531,7 @@ "height": 68, "layer": "", "name": "Player4", - "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", + "persistentUuid": "c39be22f-ce00-44f2-b33f-b70a864832df", "width": 82, "x": 1020, "y": -9, @@ -25119,7 +23546,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "ec6ea1c7-7bc7-40f5-abb1-2ef4339c9512", + "persistentUuid": "f9511d79-0d5c-4bd1-823d-c67e20e5db99", "width": 83, "x": 970, "y": 60, @@ -25134,7 +23561,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "8527c9a6-57cf-4037-9a62-8db74a07f298", + "persistentUuid": "8447b809-5714-4fd0-b129-d80317fb21aa", "width": 83, "x": 850, "y": 180, @@ -25149,7 +23576,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "29694b69-4a12-4a3f-bf97-4bb674964a96", + "persistentUuid": "45258940-e06d-4e37-840c-9d08f88a7abc", "width": 83, "x": 970, "y": 180, @@ -25164,7 +23591,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "92c92b77-f26d-43d1-8071-66a05afab425", + "persistentUuid": "7a6e25fc-db35-4c22-a9eb-97a79eabf03d", "width": 83, "x": 970, "y": 300, @@ -25179,7 +23606,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "47b11f9d-cf11-44a9-b137-bb9036143101", + "persistentUuid": "b3d20ca8-9c8c-4417-8043-31da42008db8", "width": 83, "x": 970, "y": 420, @@ -25194,7 +23621,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "f28c8615-da64-443a-bd3d-73d50ff63bdf", + "persistentUuid": "f170e10a-a297-4227-a30e-4f931e599260", "width": 83, "x": 970, "y": 540, @@ -25209,7 +23636,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "16d0bbf7-9358-497d-816d-69e2884e6ed1", + "persistentUuid": "a71e5d83-58d2-4feb-bb02-90c2813972b9", "width": 83, "x": 850, "y": 540, @@ -25224,7 +23651,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "1c6221ae-1a24-4a81-ad97-6c422fc3e651", + "persistentUuid": "a507f518-07f8-4aaf-905d-cab8e389755b", "width": 83, "x": 730, "y": 540, @@ -25239,7 +23666,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "6da8ca22-7023-46c3-998c-21ca394141ac", + "persistentUuid": "cd461ccf-107b-4405-a2e6-144fc47d1f34", "width": 83, "x": 610, "y": 540, @@ -25254,7 +23681,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "b9d2ab87-68a1-4339-9a7f-e546945d22a8", + "persistentUuid": "51ac8fcb-e797-422e-8d4e-9a8e67810413", "width": 83, "x": 490, "y": 540, @@ -25269,7 +23696,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "0447b351-ac2b-4e07-a14f-b1fa4a6adca6", + "persistentUuid": "44306b15-43c9-4b35-8c19-f9e974c8d29b", "width": 83, "x": 370, "y": 540, @@ -25284,7 +23711,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "25dcdacf-7619-49f6-bc78-47ecf8d5180c", + "persistentUuid": "550042d3-c2bb-4a8a-ba63-d5175ef7ad26", "width": 83, "x": 250, "y": 540, @@ -25299,7 +23726,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "0b3ac2e6-c842-44d8-bb6e-c80a585eef15", + "persistentUuid": "f56aac1e-bac7-44a6-92e8-9866e05f8edf", "width": 83, "x": 250, "y": 420, @@ -25314,7 +23741,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "e81aa626-ae76-428f-8303-9084dd6ff372", + "persistentUuid": "63148283-d51d-4299-9e6a-5f15a5b6f77e", "width": 83, "x": 370, "y": 420, @@ -25329,7 +23756,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "e387be87-f1a7-42a1-9781-21548978c0a5", + "persistentUuid": "a329bbd6-ce1e-478d-ac66-c8f8abf85296", "width": 83, "x": 490, "y": 420, @@ -25344,7 +23771,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "4d28e77c-5ea9-4f02-bd5f-1507117dcbac", + "persistentUuid": "e7203995-374a-4007-bde7-1e30fba64e77", "width": 83, "x": 610, "y": 420, @@ -25359,7 +23786,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "750416fa-4272-4ffb-9ac2-d70a3358a9a8", + "persistentUuid": "e45bea6b-0ec7-4bc3-adb8-c5afabbece3d", "width": 83, "x": 730, "y": 420, @@ -25374,7 +23801,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "b8c9ce11-eedd-4721-b487-702180df1e5c", + "persistentUuid": "78be8892-dba5-426a-85ca-61a7ae97e02e", "width": 83, "x": 850, "y": 420, @@ -25389,7 +23816,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "e2c3f0d7-10c0-4aa3-97a3-481e9f3af529", + "persistentUuid": "08cef9a2-99f8-4a6b-9636-5b42bc5683c0", "width": 83, "x": 850, "y": 300, @@ -25404,7 +23831,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "36cbbe6e-c83f-4267-bc97-354f1fea1522", + "persistentUuid": "bb66644a-6965-4fd6-a756-125ad5387046", "width": 83, "x": 730, "y": 300, @@ -25419,7 +23846,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "b6da8784-9a51-4cb9-8446-e99a5abe71de", + "persistentUuid": "d63a029c-78e3-4d6b-80ad-248e574f3146", "width": 83, "x": 610, "y": 300, @@ -25434,7 +23861,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "c39a6498-aded-4cdb-8bf2-f8a49934173d", + "persistentUuid": "9fdc834e-2e18-401f-b777-bdfb9b16601a", "width": 83, "x": 490, "y": 300, @@ -25449,7 +23876,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "b204afc7-95e8-45f6-bba8-9d68a2375ae5", + "persistentUuid": "a87bb6e0-81ef-43fb-9390-95bc91794784", "width": 83, "x": 370, "y": 300, @@ -25464,7 +23891,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "8f7352ef-6ffa-4fc8-8f42-b7f395694b6b", + "persistentUuid": "8a2983a3-cf56-4002-9274-1d0b46625e91", "width": 83, "x": 250, "y": 300, @@ -25479,7 +23906,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "32baf7c1-1734-488a-82c0-1167e692b9d9", + "persistentUuid": "81ca95c8-539f-4e21-b401-b2c311a51cd2", "width": 83, "x": 250, "y": 180, @@ -25494,7 +23921,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "51fbcefa-9511-4a70-bf7d-a49096f8c176", + "persistentUuid": "70349155-be0a-474f-b891-d9611c239d67", "width": 83, "x": 370, "y": 180, @@ -25509,7 +23936,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "4c111a27-5b43-4aa2-bf65-ea3695b02d2a", + "persistentUuid": "65d4cbe0-3788-4f35-be90-57ec5ff7872d", "width": 83, "x": 490, "y": 180, @@ -25524,7 +23951,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "0336456c-bbef-4a65-8607-7644c34f0e30", + "persistentUuid": "c5575629-c2bc-49ae-8341-66158e877d21", "width": 83, "x": 610, "y": 180, @@ -25539,7 +23966,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "dda16088-5b3b-4a9e-a1f8-45c7956f5065", + "persistentUuid": "da7b4f5b-b51e-447d-8d3d-1378e16934ac", "width": 83, "x": 730, "y": 180, @@ -25554,7 +23981,7 @@ "height": 91, "layer": "", "name": "Rock", - "persistentUuid": "c26e63b1-18a0-4629-95ff-015abf0e3674", + "persistentUuid": "8133a8ee-dc9b-46d8-a976-b1bb25b179cf", "width": 83, "x": 730, "y": 60, @@ -25563,253 +23990,62 @@ "stringProperties": [], "initialVariables": [] }, - { - "angle": 270, - "customSize": false, - "height": 91, - "layer": "", - "name": "Rock", - "persistentUuid": "1e0c6d91-0d9a-4066-a2f2-d08ba58ae59a", - "width": 83, - "x": 850, - "y": 60, - "zOrder": 11, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 90, - "customSize": false, - "height": 91, - "layer": "", - "name": "Rock", - "persistentUuid": "ba846a27-c199-44c0-b8a6-f28f803f4bd5", - "width": 83, - "x": 610, - "y": 60, - "zOrder": 11, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 270, - "customSize": false, - "height": 91, - "layer": "", - "name": "Rock", - "persistentUuid": "7a61f05e-50ab-4249-8410-a0a7b9f89a41", - "width": 83, - "x": 490, - "y": 60, - "zOrder": 11, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 180, - "customSize": false, - "height": 91, - "layer": "", - "name": "Rock", - "persistentUuid": "f90e0c6a-814a-4bff-a22f-210d0f8d5a07", - "width": 83, - "x": 370, - "y": 60, - "zOrder": 11, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 91, - "layer": "", - "name": "Rock", - "persistentUuid": "693c5065-ffee-47f9-a848-6973a73fb275", - "width": 83, - "x": 250, - "y": 60, - "zOrder": 11, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "d1bd6fd2-2b8a-4061-82b6-02ad29a9f452", - "rotationX": 20, - "width": 0, - "x": 370, - "y": 480, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "db5f17a8-f631-403b-8b72-34e6816b0d7f", - "rotationX": 20, - "width": 0, - "x": 190, - "y": 420, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "70f11907-30b4-42f4-999c-008c2de43a3b", - "rotationX": 20, - "width": 0, - "x": 430, - "y": 420, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "22b0fecc-0d27-4565-9d33-25be22bc1783", - "rotationX": 20, - "width": 0, - "x": 430, - "y": 360, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "27b0cb7b-615b-452f-9c0f-f0eeaebf1259", - "rotationX": 20, - "width": 0, - "x": 550, - "y": 360, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "995de96b-fbe5-4cfb-9e26-c2b5e0497d1c", - "rotationX": 20, - "width": 0, - "x": 250, - "y": 360, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "0a2dbdeb-7bd4-45de-8afb-ecb61ff39573", - "rotationX": 20, - "width": 0, - "x": 190, - "y": 360, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Cabbage", - "persistentUuid": "530701f3-adae-4daf-8fde-f7cee4810f27", - "rotationX": 20, - "width": 0, - "x": 610, - "y": 600, - "zOrder": 12, + { + "angle": 270, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "4c224d4e-7aa8-4da2-ac12-523944b32512", + "width": 83, + "x": 850, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "953b6b23-1d3e-4695-994e-e3075fbcbf02", - "rotationX": 20, - "width": 0, - "x": 730, - "y": 480, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "a880dcea-8e74-4a5b-a8f5-4230ff1c3e1e", + "width": 83, + "x": 610, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "f6c657ff-b79c-4ba6-9eba-edd78466230e", - "rotationX": 20, - "width": 0, - "x": 790, - "y": 360, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "8750120e-f080-435e-bd41-3cceb9ca2fa4", + "width": 83, + "x": 490, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "3092dab0-6353-4f4a-bb90-4d6cd96bd0e2", - "rotationX": 20, - "width": 0, - "x": 790, - "y": 300, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "1dd9c236-33c4-429d-a5bd-79bb068f4288", + "width": 83, + "x": 370, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -25817,79 +24053,78 @@ { "angle": 0, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "cb5ca316-2958-486c-ac3b-1d13942311bb", - "rotationX": 20, - "width": 0, - "x": 790, - "y": 240, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "4a003673-754e-43ac-bc93-dbc3e8624efc", + "width": 83, + "x": 250, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Cabbage", - "persistentUuid": "574874ce-2e5b-44ce-b407-f64e94044bed", - "rotationX": 20, - "width": 0, - "x": 850, - "y": 240, - "zOrder": 12, + "name": "BlockRoundedLong", + "persistentUuid": "4710e1bb-9df1-4985-8b50-588142d6fa7c", + "width": 60, + "x": 160, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 0, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Cabbage", - "persistentUuid": "3356e0ee-0d3e-49ba-bc3d-4587eaa01555", - "rotationX": 20, - "width": 0, - "x": 610, - "y": 240, - "zOrder": 12, + "name": "BlockRoundedLong", + "persistentUuid": "b755b54f-ceaa-49c1-a27e-552b63c122f9", + "width": 60, + "x": 640, + "y": -30, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 0, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Cabbage", - "persistentUuid": "9ec29ae1-4d24-4a40-b703-03c2c8dc8327", - "rotationX": 20, - "width": 0, - "x": 550, - "y": 240, - "zOrder": 12, + "name": "BlockRoundedLong", + "persistentUuid": "8ce4c949-925c-4223-b314-94f193182244", + "width": 60, + "x": 640, + "y": 690, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Cabbage", - "persistentUuid": "8d985ba0-7d41-4e4b-9dbc-512128e487d4", - "rotationX": 20, - "width": 0, - "x": 490, - "y": 240, - "zOrder": 12, + "name": "BlockRoundedLong", + "persistentUuid": "20734c0d-890c-4170-9d06-41df3e64828e", + "width": 60, + "x": 1120, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -25899,93 +24134,109 @@ "customSize": false, "height": 0, "layer": "", - "name": "Cabbage", - "persistentUuid": "66dc94e1-debe-4a9c-84cb-7eaa0d8d42c8", - "rotationX": 20, + "name": "New3DModel", + "persistentUuid": "0e59664b-d4d7-45df-a225-576dd3049dd1", "width": 0, - "x": 430, - "y": 240, - "zOrder": 12, + "x": 1054, + "y": 606, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] - }, + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 60, + "gridHeight": 60, + "gridOffsetX": 10, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.5610192035792332, + "windowMask": false + } + }, + { + "associatedLayout": "Game", + "name": "TestLevel", + "instances": [ { "angle": 0, "customSize": false, - "height": 0, + "height": 68, "layer": "", - "name": "Cabbage", - "persistentUuid": "8fe1562f-52a3-48ee-8920-463a7f5f0498", - "rotationX": 20, - "width": 0, - "x": 310, - "y": 180, - "zOrder": 12, + "name": "Player1", + "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", + "width": 82, + "x": 1039, + "y": 606, + "zOrder": 4, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Cabbage", - "persistentUuid": "93250834-bef3-47c9-9f5f-3303855cb82f", - "rotationX": 20, - "width": 0, - "x": 550, - "y": 180, - "zOrder": 12, + "name": "Player2", + "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", + "width": 82, + "x": 182, + "y": -9, + "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Cabbage", - "persistentUuid": "2a261577-96a4-4ea7-aac6-dc173da624d3", - "rotationX": 20, - "width": 0, - "x": 490, - "y": 120, - "zOrder": 12, + "name": "Player3", + "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", + "width": 82, + "x": 182, + "y": 598, + "zOrder": 9, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Cabbage", - "persistentUuid": "90dcfe7f-335c-4e02-ac01-3e047bf97fcc", - "rotationX": 20, - "width": 0, - "x": 670, - "y": 180, - "zOrder": 12, + "name": "Player4", + "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", + "width": 82, + "x": 1020, + "y": -9, + "zOrder": 10, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "db1e25d8-88bd-40f8-9845-12409b695513", - "rotationX": 20, - "width": 0, - "x": 670, - "y": 120, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "ec6ea1c7-7bc7-40f5-abb1-2ef4339c9512", + "width": 83, + "x": 970, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -25993,158 +24244,149 @@ { "angle": 0, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "b0d6b919-7f70-4562-9a92-9ee8865a47fc", - "rotationX": 20, - "width": 0, - "x": 610, - "y": 0, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "8527c9a6-57cf-4037-9a62-8db74a07f298", + "width": 83, + "x": 850, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "ebf64cad-6a61-4024-95a7-d7fe36417325", - "rotationX": 20, - "width": 0, - "x": 790, - "y": 60, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "29694b69-4a12-4a3f-bf97-4bb674964a96", + "width": 83, + "x": 970, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "7c1e2a8e-3e17-40aa-9e2c-06b0ab6c33ce", - "rotationX": 20, - "width": 0, - "x": 910, - "y": 0, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "92c92b77-f26d-43d1-8071-66a05afab425", + "width": 83, + "x": 970, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "7b5c6d22-073f-4bd4-82c6-1be2a9cb821e", - "rotationX": 20, - "width": 0, - "x": 910, - "y": 180, - "zOrder": 12, + "name": "Rock", + "persistentUuid": "47b11f9d-cf11-44a9-b137-bb9036143101", + "width": 83, + "x": 970, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Cabbage", - "persistentUuid": "566a8069-f8cf-4163-918c-96ff12a677fd", - "rotationX": 20, - "width": 0, + "name": "Rock", + "persistentUuid": "f28c8615-da64-443a-bd3d-73d50ff63bdf", + "width": 83, "x": 970, - "y": 120, - "zOrder": 12, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": true, - "depth": 40, - "height": 780, + "angle": 270, + "customSize": false, + "height": 91, "layer": "", - "name": "BlockRoundedLong", - "persistentUuid": "88aad7da-eae1-40ee-863b-aced495eb3b7", - "width": 60, - "x": 160, - "y": 330, - "zOrder": 13, + "name": "Rock", + "persistentUuid": "16d0bbf7-9358-497d-816d-69e2884e6ed1", + "width": 83, + "x": 850, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, - "customSize": true, - "depth": 40, - "height": 1020, + "customSize": false, + "height": 91, "layer": "", - "name": "BlockRoundedLong", - "persistentUuid": "4bccbfb2-ac13-4f51-834b-b86d8c3954a3", - "width": 60, - "x": 640, - "y": -30, - "zOrder": 13, + "name": "Rock", + "persistentUuid": "1c6221ae-1a24-4a81-ad97-6c422fc3e651", + "width": 83, + "x": 730, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 90, - "customSize": true, - "depth": 40, - "height": 1020, + "angle": 180, + "customSize": false, + "height": 91, "layer": "", - "name": "BlockRoundedLong", - "persistentUuid": "58137fde-cba2-40c6-9abe-e2d44db1fc2d", - "width": 60, - "x": 640, - "y": 690, - "zOrder": 13, + "name": "Rock", + "persistentUuid": "6da8ca22-7023-46c3-998c-21ca394141ac", + "width": 83, + "x": 610, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": true, - "depth": 40, - "height": 780, + "customSize": false, + "height": 91, "layer": "", - "name": "BlockRoundedLong", - "persistentUuid": "743c15b4-fefb-4898-9c98-03c002b64331", - "width": 60, - "x": 1120, - "y": 330, - "zOrder": 13, + "name": "Rock", + "persistentUuid": "b9d2ab87-68a1-4339-9a7f-e546945d22a8", + "width": 83, + "x": 490, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "New3DModel", - "persistentUuid": "d215408a-951f-495f-aef7-94849aa89639", - "width": 0, - "x": 929, - "y": 486, - "zOrder": 14, + "name": "Rock", + "persistentUuid": "0447b351-ac2b-4e07-a14f-b1fa4a6adca6", + "width": 83, + "x": 370, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26152,15 +24394,14 @@ { "angle": 0, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Bomb2", - "persistentUuid": "2d2a3717-dd56-4be0-97fc-9fb39f8628d3", - "rotationX": 20, - "width": 0, - "x": 280, - "y": 507, - "zOrder": 15, + "name": "Rock", + "persistentUuid": "25dcdacf-7619-49f6-bc78-47ecf8d5180c", + "width": 83, + "x": 250, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26168,110 +24409,104 @@ { "angle": 0, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Bomb2", - "persistentUuid": "79278144-82e0-466b-a04a-1a223590aae0", - "rotationX": 20, - "width": 0, - "x": 815, - "y": 505, - "zOrder": 15, + "name": "Rock", + "persistentUuid": "0b3ac2e6-c842-44d8-bb6e-c80a585eef15", + "width": 83, + "x": 250, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 0, + "height": 91, "layer": "", - "name": "Bomb2", - "persistentUuid": "2a34d1e5-5f9e-4611-af4b-291ce312ba45", - "rotationX": 20, - "width": 0, - "x": 760, - "y": 28, - "zOrder": 15, + "name": "Rock", + "persistentUuid": "e81aa626-ae76-428f-8303-9084dd6ff372", + "width": 83, + "x": 370, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] - } - ], - "editionSettings": { - "grid": true, - "gridType": "rectangular", - "gridWidth": 60, - "gridHeight": 60, - "gridOffsetX": 10, - "gridOffsetY": 0, - "gridColor": 10401023, - "gridAlpha": 0.8, - "snap": true, - "zoomFactor": 0.6885261796051886, - "windowMask": false - } - }, - { - "associatedLayout": "Game", - "name": "ClassicLevel", - "instances": [ + }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "7d1c7157-fd69-4749-b573-4e4539880c28", - "width": 48, - "x": 384, - "y": 480, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "e387be87-f1a7-42a1-9781-21548978c0a5", + "width": 83, + "x": 490, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Player1", - "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", - "width": 48, - "x": 720, - "y": 528, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "4d28e77c-5ea9-4f02-bd5f-1507117dcbac", + "width": 83, + "x": 610, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "58cfe16e-a34a-4efc-8507-21ea4e90d963", - "width": 48, - "x": 288, - "y": 480, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "750416fa-4272-4ffb-9ac2-d70a3358a9a8", + "width": 83, + "x": 730, + "y": 420, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "b8c9ce11-eedd-4721-b487-702180df1e5c", + "width": 83, + "x": 850, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "6b9a3b3f-0ae4-4e6c-a125-4ad687bdd090", - "width": 48, - "x": 384, - "y": 384, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "e2c3f0d7-10c0-4aa3-97a3-481e9f3af529", + "width": 83, + "x": 850, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26279,14 +24514,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "14d2f3bc-ff05-46db-9685-486509a64632", - "width": 48, - "x": 288, - "y": 384, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "36cbbe6e-c83f-4267-bc97-354f1fea1522", + "width": 83, + "x": 730, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26294,14 +24529,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "b66eb171-4f48-40da-982f-067c5fb0dc3f", - "width": 48, - "x": 480, - "y": 384, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "b6da8784-9a51-4cb9-8446-e99a5abe71de", + "width": 83, + "x": 610, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26309,14 +24544,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "30bae1c1-27ee-4603-9376-3b70ce1dd0b1", - "width": 48, - "x": 480, - "y": 480, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "c39a6498-aded-4cdb-8bf2-f8a49934173d", + "width": 83, + "x": 490, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26324,104 +24559,104 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "2ea8f2fd-3c88-4a63-9186-3e784d9c898d", - "width": 48, - "x": 480, - "y": 288, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "b204afc7-95e8-45f6-bba8-9d68a2375ae5", + "width": 83, + "x": 370, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "4db75a83-cf1f-4935-9282-327e260b6826", - "width": 48, - "x": 384, - "y": 288, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "8f7352ef-6ffa-4fc8-8f42-b7f395694b6b", + "width": 83, + "x": 250, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "6fc77e65-7e68-4fec-9d84-845619700d04", - "width": 48, - "x": 288, - "y": 288, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "32baf7c1-1734-488a-82c0-1167e692b9d9", + "width": 83, + "x": 250, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "66ab9bba-67fa-45c8-92dc-b14b30f5e16c", - "width": 48, - "x": 96, - "y": 480, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "51fbcefa-9511-4a70-bf7d-a49096f8c176", + "width": 83, + "x": 370, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "752172d6-a7a4-4ac6-88ea-c09f9df89d69", - "width": 48, - "x": 96, - "y": 384, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "4c111a27-5b43-4aa2-bf65-ea3695b02d2a", + "width": 83, + "x": 490, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "3172b443-37df-413a-bc38-e76c98098d76", - "width": 48, - "x": 192, - "y": 384, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "0336456c-bbef-4a65-8607-7644c34f0e30", + "width": 83, + "x": 610, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "a46f2e21-7713-4b6c-a19e-74758ae95dee", - "width": 48, - "x": 192, - "y": 480, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "dda16088-5b3b-4a9e-a1f8-45c7956f5065", + "width": 83, + "x": 730, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26429,74 +24664,74 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "d4870add-5d34-458a-b71b-3547405a5a9e", - "width": 48, - "x": 192, - "y": 288, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "c26e63b1-18a0-4629-95ff-015abf0e3674", + "width": 83, + "x": 730, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "2d693e24-af10-4a7d-a061-8aa00cc02933", - "width": 48, - "x": 96, - "y": 288, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "1e0c6d91-0d9a-4066-a2f2-d08ba58ae59a", + "width": 83, + "x": 850, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "28f18d97-1264-46ba-a773-213e00174ed0", - "width": 48, - "x": 384, - "y": 192, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "ba846a27-c199-44c0-b8a6-f28f803f4bd5", + "width": 83, + "x": 610, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "e87c969b-2139-4962-95a7-1ce0d6b15703", - "width": 48, - "x": 288, - "y": 192, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "7a61f05e-50ab-4249-8410-a0a7b9f89a41", + "width": 83, + "x": 490, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "5c55b57c-f739-44ee-a958-b4ae3ad3333f", - "width": 48, - "x": 384, - "y": 96, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "f90e0c6a-814a-4bff-a22f-210d0f8d5a07", + "width": 83, + "x": 370, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26504,14 +24739,14 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Wall", - "persistentUuid": "b214a93a-8993-4b74-86f4-b9bcc5f1a90a", - "width": 48, - "x": 288, - "y": 96, - "zOrder": 0, + "name": "Rock", + "persistentUuid": "693c5065-ffee-47f9-a848-6973a73fb275", + "width": 83, + "x": 250, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26519,14 +24754,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "0df3165f-cb8e-4739-a6ae-d8a4d913222e", - "width": 48, - "x": 480, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "d1bd6fd2-2b8a-4061-82b6-02ad29a9f452", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26534,14 +24770,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "a737afc5-512f-4cd5-9eba-ece0b60515da", - "width": 48, - "x": 480, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "db5f17a8-f631-403b-8b72-34e6816b0d7f", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26549,14 +24786,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "262f1617-ed16-4812-9df0-5c7f22d20ae1", - "width": 48, - "x": 96, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "70f11907-30b4-42f4-999c-008c2de43a3b", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26564,14 +24802,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "89b0437a-01b7-4b1c-9aab-09bd14e73f60", - "width": 48, - "x": 96, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "22b0fecc-0d27-4565-9d33-25be22bc1783", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26579,14 +24818,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "85a155af-c258-4c72-8644-d15de504164d", - "width": 48, - "x": 192, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "27b0cb7b-615b-452f-9c0f-f0eeaebf1259", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26594,14 +24834,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "4d9b98b6-ccea-485c-8582-6d18ec85aeb1", - "width": 48, - "x": 192, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "995de96b-fbe5-4cfb-9e26-c2b5e0497d1c", + "rotationX": 20, + "width": 0, + "x": 250, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26609,14 +24850,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "3a2cb06e-cb43-49ad-9318-a6c2977723de", - "width": 48, - "x": 672, - "y": 480, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "0a2dbdeb-7bd4-45de-8afb-ecb61ff39573", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26624,14 +24866,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e45a735b-c0ff-4aec-80ed-3827a69b1876", - "width": 48, - "x": 576, - "y": 480, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "530701f3-adae-4daf-8fde-f7cee4810f27", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26639,14 +24882,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "874b3cd9-2aa6-456e-b24a-6af8015ddfc8", - "width": 48, - "x": 672, - "y": 384, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "953b6b23-1d3e-4695-994e-e3075fbcbf02", + "rotationX": 20, + "width": 0, + "x": 730, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26654,14 +24898,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e9fc51dd-fa8f-4983-89f6-fea6bdad9f54", - "width": 48, - "x": 576, - "y": 384, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f6c657ff-b79c-4ba6-9eba-edd78466230e", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26669,14 +24914,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "a39da3f5-8812-43de-8aad-8a31f18d44c9", - "width": 48, - "x": 672, - "y": 288, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "3092dab0-6353-4f4a-bb90-4d6cd96bd0e2", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26684,14 +24930,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "f7205604-c930-4ae7-b0be-ca6cd35ef247", - "width": 48, - "x": 576, - "y": 288, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "cb5ca316-2958-486c-ac3b-1d13942311bb", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26699,14 +24946,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "29295d67-390d-4cb5-b85f-b13309c22ea1", - "width": 48, - "x": 672, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "574874ce-2e5b-44ce-b407-f64e94044bed", + "rotationX": 20, + "width": 0, + "x": 850, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26714,14 +24962,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "4a368537-4fa7-450b-9f6d-1b8141e32b05", - "width": 48, - "x": 576, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "3356e0ee-0d3e-49ba-bc3d-4587eaa01555", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26729,14 +24978,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "eb3c8657-38ad-4ff9-b5d3-5734e345b268", - "width": 48, - "x": 672, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "9ec29ae1-4d24-4a40-b703-03c2c8dc8327", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26744,14 +24994,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "f71a4afd-1e64-4fc1-9796-64746ecc44ee", - "width": 48, - "x": 576, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "8d985ba0-7d41-4e4b-9dbc-512128e487d4", + "rotationX": 20, + "width": 0, + "x": 490, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26759,14 +25010,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "5742a2c4-dc24-4e53-b04f-9b56a33daa2e", - "width": 48, - "x": 288, + "persistentUuid": "66dc94e1-debe-4a9c-84cb-7eaa0d8d42c8", + "rotationX": 20, + "width": 0, + "x": 430, "y": 240, - "zOrder": 4, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26774,14 +25026,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "215a986a-7ed1-424c-84d6-286d397a924e", - "width": 48, - "x": 240, - "y": 240, - "zOrder": 4, + "persistentUuid": "8fe1562f-52a3-48ee-8920-463a7f5f0498", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26789,14 +25042,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "ceed3c23-a533-4dd9-ac2f-60a7741800be", - "width": 48, - "x": 336, - "y": 240, - "zOrder": 4, + "persistentUuid": "93250834-bef3-47c9-9f5f-3303855cb82f", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26804,14 +25058,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "e8c6c8da-90e6-48cd-9b3f-6a6c3e0ff507", - "width": 48, - "x": 336, - "y": 192, - "zOrder": 4, + "persistentUuid": "2a261577-96a4-4ea7-aac6-dc173da624d3", + "rotationX": 20, + "width": 0, + "x": 490, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26819,14 +25074,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "a1454a50-ee90-4011-b67c-1db66e79235e", - "width": 48, - "x": 336, - "y": 336, - "zOrder": 4, + "persistentUuid": "90dcfe7f-335c-4e02-ac01-3e047bf97fcc", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26834,14 +25090,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "393c9ea2-37d2-44bd-ac35-7c034d175d56", - "width": 48, - "x": 240, - "y": 336, - "zOrder": 4, + "persistentUuid": "db1e25d8-88bd-40f8-9845-12409b695513", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26849,14 +25106,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Player2", - "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", - "width": 48, - "x": 48, - "y": 48, - "zOrder": 5, + "name": "Crate", + "persistentUuid": "b0d6b919-7f70-4562-9a92-9ee8865a47fc", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26864,14 +25122,15 @@ { "angle": 0, "customSize": false, - "height": 52, - "layer": "", - "name": "Crate", - "persistentUuid": "47a02ec2-e086-47d4-a3b3-802be9644429", - "width": 48, - "x": 432, - "y": 192, - "zOrder": 4, + "height": 0, + "layer": "", + "name": "Crate", + "persistentUuid": "ebf64cad-6a61-4024-95a7-d7fe36417325", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 60, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26879,14 +25138,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "39bb8996-7cfe-4d09-b17c-bc2c34d2b9e6", - "width": 48, - "x": 528, - "y": 240, - "zOrder": 4, + "persistentUuid": "7c1e2a8e-3e17-40aa-9e2c-06b0ab6c33ce", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26894,14 +25154,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "731cb7bd-41a7-4cd2-9f75-a1af1d30fa21", - "width": 48, - "x": 432, - "y": 144, - "zOrder": 4, + "persistentUuid": "7b5c6d22-073f-4bd4-82c6-1be2a9cb821e", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26909,74 +25170,79 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "9bd694d4-5599-4099-9fb6-0a93813b40b8", - "width": 48, - "x": 384, - "y": 240, - "zOrder": 4, + "persistentUuid": "566a8069-f8cf-4163-918c-96ff12a677fd", + "rotationX": 20, + "width": 0, + "x": 970, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Crate", - "persistentUuid": "eac3ac8b-ad42-4b97-9a85-a4cdc3a3beb7", - "width": 48, - "x": 144, - "y": 480, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "88aad7da-eae1-40ee-863b-aced495eb3b7", + "width": 60, + "x": 160, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 52, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Crate", - "persistentUuid": "f632205b-64d2-4b92-a68a-8bac9e59172b", - "width": 48, - "x": 288, - "y": 336, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "4bccbfb2-ac13-4f51-834b-b86d8c3954a3", + "width": 60, + "x": 640, + "y": -30, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 52, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Crate", - "persistentUuid": "876d0a83-5e38-4fde-87f3-a67b6cc982da", - "width": 48, - "x": 528, - "y": 96, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "58137fde-cba2-40c6-9abe-e2d44db1fc2d", + "width": 60, + "x": 640, + "y": 690, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Crate", - "persistentUuid": "c8e68842-888d-4286-8fb3-01cc44c74195", - "width": 48, - "x": 624, - "y": 48, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "743c15b4-fefb-4898-9c98-03c002b64331", + "width": 60, + "x": 1120, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -26984,28 +25250,47 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", - "name": "Crate", - "persistentUuid": "d9485aa5-4db0-4391-bc54-c3ffd7ea631d", - "width": 48, - "x": 672, - "y": 144, - "zOrder": 4, + "name": "New3DModel", + "persistentUuid": "d215408a-951f-495f-aef7-94849aa89639", + "width": 0, + "x": 1054, + "y": 606, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] - }, + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 60, + "gridHeight": 60, + "gridOffsetX": 10, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.4327904327813177, + "windowMask": false + } + }, + { + "associatedLayout": "Game", + "name": "ClassicLevel", + "instances": [ { "angle": 0, "customSize": false, - "height": 52, + "height": 68, "layer": "", - "name": "Crate", - "persistentUuid": "328d169b-caed-4d65-8b7a-5790beab4af6", - "width": 48, - "x": 624, - "y": 192, + "name": "Player1", + "persistentUuid": "6d8912b5-6de2-4cf4-926c-2952e708a590", + "width": 82, + "x": 1039, + "y": 606, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -27013,60 +25298,63 @@ }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Crate", - "persistentUuid": "a78c19d7-3cad-494f-9b4f-222c37b8a037", - "width": 48, - "x": 528, - "y": 336, - "zOrder": 4, + "name": "Player2", + "persistentUuid": "2b89c85e-e86a-48d5-ac4d-a90dcda0f833", + "width": 82, + "x": 182, + "y": -9, + "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Crate", - "persistentUuid": "6aaf7dec-e1b2-494f-92f1-a30aee41232f", - "width": 48, - "x": 528, - "y": 288, - "zOrder": 4, + "name": "Player3", + "persistentUuid": "513d236d-ffbc-4367-917a-dd9eaa59ce66", + "width": 82, + "x": 182, + "y": 598, + "zOrder": 9, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 0, + "height": 68, "layer": "", - "name": "Crate", - "persistentUuid": "602fac88-64bf-4f12-aca6-fa74eba5cef3", - "width": 48, - "x": 576, - "y": 240, - "zOrder": 4, + "name": "Player4", + "persistentUuid": "7e397593-ecf8-4d95-b0c6-ea43b45731f2", + "width": 82, + "x": 1020, + "y": -9, + "zOrder": 10, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "09450615-8339-4be9-86d3-14d7365bb1f2", - "width": 48, - "x": 384, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "1479ec1f-6788-4270-a80b-a539ae87d4bf", + "width": 83, + "x": 970, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27074,119 +25362,119 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "3da626a1-cd2f-430f-8764-51443c6d5f3a", - "width": 48, - "x": 192, - "y": 432, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "0d19c4d2-3a1e-4b5e-b3a4-6bf9c0623a4b", + "width": 83, + "x": 850, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "58b7fb13-68e4-405c-acfa-45a253c04f9b", - "width": 48, - "x": 48, - "y": 336, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "9dffcbb9-6373-442a-9400-45906019d0ec", + "width": 83, + "x": 970, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "0e12cdfd-6a96-433a-896a-6075506cee89", - "width": 48, - "x": 48, - "y": 384, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "4db92229-60ce-4e99-8bf8-a57c742c8835", + "width": 83, + "x": 970, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "b2760faf-6c54-4c81-b63e-71054b454778", - "width": 48, - "x": 96, - "y": 336, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "1723070a-0d1d-4d56-a682-88190aa03563", + "width": 83, + "x": 970, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "a6c2755d-b206-4d7b-9380-e05ac55c029f", - "width": 48, - "x": 432, - "y": 528, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "c564b69a-e20d-4c6c-a6c6-52a7b3ab33ad", + "width": 83, + "x": 970, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "c456d29f-6f51-46b6-a502-6819d8583a05", - "width": 48, - "x": 384, - "y": 432, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "f337d51c-3b06-4bdb-a706-2432af9ee882", + "width": 83, + "x": 850, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 52, - "layer": "", - "name": "Crate", - "persistentUuid": "8c338f69-c07f-43c7-980d-a9d7b4367e26", - "width": 48, - "x": 144, - "y": 192, - "zOrder": 4, + "height": 91, + "layer": "", + "name": "Rock", + "persistentUuid": "07f03b85-3189-4763-87c3-d61cbcfa83e3", + "width": 83, + "x": 730, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "87afc863-46d0-4b3e-b073-cec7c09f9345", - "width": 48, - "x": 720, - "y": 384, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "e7dd62ed-9e23-4f13-acd9-44bae16eb8df", + "width": 83, + "x": 610, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27194,29 +25482,29 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Player3", - "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", - "width": 48, - "x": 48, - "y": 528, - "zOrder": 9, + "name": "Rock", + "persistentUuid": "50234579-c76d-4c30-9c22-fa6bd3804139", + "width": 83, + "x": 490, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 48, + "height": 91, "layer": "", - "name": "Player4", - "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", - "width": 48, - "x": 720, - "y": 48, - "zOrder": 10, + "name": "Rock", + "persistentUuid": "21862bc4-c5e5-4b37-8e1a-c3a1780ba58c", + "width": 83, + "x": 370, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27224,14 +25512,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "4d573d7b-69dc-48cb-838e-dbe10606d7ca", - "width": 48, - "x": 96, - "y": 432, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "8ec9f9e8-db69-45f5-b9f9-243d510f8c5f", + "width": 83, + "x": 250, + "y": 540, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27239,74 +25527,74 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "f57e554e-c7ba-4bd7-8162-56d99bc687b4", - "width": 48, - "x": 144, - "y": 432, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "d625ba7c-b6e8-4c0e-ad0d-1caf9b745d52", + "width": 83, + "x": 250, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "e0982e25-849a-44f5-af8a-282e196a3892", - "width": 48, - "x": 48, - "y": 432, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "76fef138-ca6e-4c6b-9f66-2813b256933b", + "width": 83, + "x": 370, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "8dc249b7-5dcb-47c5-8cdb-883e6eb6bb1e", - "width": 48, - "x": 144, - "y": 528, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "236b64c0-c371-473d-843c-4746400d410b", + "width": 83, + "x": 490, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "05a95900-7401-4193-a2fd-96edce302e06", - "width": 48, - "x": 144, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "37c39a3d-9c52-4131-91ba-703066183532", + "width": 83, + "x": 610, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "3e06ff98-e233-4e08-a578-c72b2fb9ccec", - "width": 48, - "x": 96, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "37990ea9-9fa5-4767-8d74-05b6a69b8e08", + "width": 83, + "x": 730, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27314,29 +25602,29 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "f806074c-c713-42e1-b1b5-a88dc88389fd", - "width": 48, - "x": 48, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "76439fb7-7bb7-48ea-9666-1a5b49bd2bd5", + "width": 83, + "x": 850, + "y": 420, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "aed7e6a0-bea3-414a-b6f7-b4fef111721a", - "width": 48, - "x": 144, - "y": 96, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "46da50ea-cb57-45be-aa88-721cf9983a92", + "width": 83, + "x": 850, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27344,14 +25632,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "38f08bd4-69bc-4dcd-834f-4df4eeeca33c", - "width": 48, - "x": 624, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "e4dc9361-e606-4372-a8c8-d5b0f90c81b5", + "width": 83, + "x": 730, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27359,14 +25647,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "a36d719a-a244-40a5-9ff9-683980e6f551", - "width": 48, - "x": 720, - "y": 144, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "eff5f4d8-16d8-4f86-8a22-a22d04eedab1", + "width": 83, + "x": 610, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27374,14 +25662,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "6b227c72-82ac-4702-9330-244fd32c37dd", - "width": 48, - "x": 576, - "y": 48, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "616318ca-e38b-46f2-a0bd-b2c814c5ad80", + "width": 83, + "x": 490, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27389,104 +25677,104 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "75affd5f-5c4e-4967-9169-ae377aa34213", - "width": 48, - "x": 192, - "y": 48, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "1d151d32-cdc6-4b2f-9b9a-9410ca087f60", + "width": 83, + "x": 370, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "4ae58c21-c13d-423f-8c59-b0e1bfc0ac1d", - "width": 48, - "x": 48, - "y": 240, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "b3d797fd-c541-435f-ab15-3ea74195e056", + "width": 83, + "x": 250, + "y": 300, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "8b8ca46e-3191-448f-8a87-6f00819873d4", - "width": 48, - "x": 96, - "y": 240, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "48f0b405-5553-4cd3-b38a-690e81060902", + "width": 83, + "x": 250, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "8ff42804-7dea-44c1-9a69-d44f373e3390", - "width": 48, - "x": 48, - "y": 192, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "7fc9ec03-9401-4ab5-9d38-d732c436df18", + "width": 83, + "x": 370, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "25e3e053-87ff-4295-be43-a54d37176cea", - "width": 48, - "x": 720, - "y": 192, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "abdad73f-9496-4cec-8a15-66d4bae88fbb", + "width": 83, + "x": 490, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "2653de06-4167-4f79-b3af-705c8699dd86", - "width": 48, - "x": 624, - "y": 288, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "27d7fa1a-b6dc-4858-b634-9114e34818ce", + "width": 83, + "x": 610, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "a2ab3fa5-6321-4180-886c-905f3f82cfe2", - "width": 48, - "x": 672, - "y": 240, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "446b1fa4-d79c-4e00-b414-e465ffa7de53", + "width": 83, + "x": 730, + "y": 180, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27494,74 +25782,74 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "9bcc7dd2-006c-44e6-91d0-12c147a0f300", - "width": 48, - "x": 624, - "y": 240, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "3f28fda6-e818-42dc-a7d0-e56701cc2e1b", + "width": 83, + "x": 730, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "4a4d1848-c9f9-4089-8eff-258e7778a957", - "width": 48, - "x": 624, - "y": 384, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "9efc7a89-6014-491c-a3b0-32ee51fc7c5b", + "width": 83, + "x": 850, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "6e073403-b82a-4b09-aa79-b37085c5750c", - "width": 48, - "x": 624, - "y": 336, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "c0975cba-1f3b-4b95-bcf3-3e820b31b128", + "width": 83, + "x": 610, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 270, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "aea0b909-8c61-4cf4-a468-0855027a2ac3", - "width": 48, - "x": 576, - "y": 336, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "44004448-dc47-4982-b39c-270c24bd3619", + "width": 83, + "x": 490, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "a9bca292-d8eb-4405-b2b6-43cac626caa9", - "width": 48, - "x": 672, - "y": 336, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "fcf82fc9-06fd-423c-b7c8-9396bd6d9f85", + "width": 83, + "x": 370, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27569,14 +25857,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 91, "layer": "", - "name": "Crate", - "persistentUuid": "f6781832-4fd7-4116-98de-e2729e3a46ba", - "width": 48, - "x": 624, - "y": 480, - "zOrder": 4, + "name": "Rock", + "persistentUuid": "abc27306-06e8-4742-ae7c-9d2de7c7577a", + "width": 83, + "x": 250, + "y": 60, + "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27584,14 +25872,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "e2f02250-f14b-4fb9-801a-5d164399b47e", - "width": 48, - "x": 672, - "y": 432, - "zOrder": 4, + "persistentUuid": "c1c631c4-4958-4b29-848b-c82369971715", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27599,14 +25888,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "727dbecc-980b-4d90-8ca2-8884bec06624", - "width": 48, - "x": 624, - "y": 432, - "zOrder": 4, + "persistentUuid": "f6b2a15f-2d44-4bde-be85-e072e3b7ccf1", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27614,14 +25904,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "7ae618be-1ea8-499b-b5f3-0d38cde3b5c5", - "width": 48, - "x": 624, - "y": 528, - "zOrder": 4, + "persistentUuid": "2534c710-521f-43c5-9bfb-a8f50f17a796", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27629,14 +25920,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "b040863a-7b37-4d87-a35d-39179d8ecb4e", - "width": 48, - "x": 720, - "y": 432, - "zOrder": 4, + "persistentUuid": "ac32b782-2839-428e-b2d3-bdfc1b43f276", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27644,14 +25936,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "6d58b448-946a-40e0-860c-7f923b498b23", - "width": 48, - "x": 720, - "y": 240, - "zOrder": 4, + "persistentUuid": "6a468f9a-53d8-48f7-b561-7f0a10eaf226", + "rotationX": 20, + "width": 0, + "x": 250, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27659,14 +25952,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "56dbf23d-8eba-4c4c-a8c9-7f1425c9f1d1", - "width": 48, - "x": 720, - "y": 336, - "zOrder": 4, + "persistentUuid": "19bfac8e-4202-4a8e-b37a-62c745a8cafc", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27674,14 +25968,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "36bbad07-cf48-4309-8779-a58893bc7ae4", - "width": 48, - "x": 144, - "y": 336, - "zOrder": 4, + "persistentUuid": "fea69ae5-d6a3-49d8-b2a7-90e123ffbef9", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27689,14 +25984,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "fe9320be-0832-4ef1-9c23-37c44ea208ab", - "width": 48, - "x": 576, - "y": 528, - "zOrder": 4, + "persistentUuid": "ad2e9ec4-fdc6-4958-b902-4f2ca1f4a1b0", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27704,14 +26000,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "0e2628b1-d14e-4c1c-82d7-878b7ac968d3", - "width": 48, - "x": 336, - "y": 528, - "zOrder": 4, + "persistentUuid": "af6087ef-987e-4242-80df-330ca7ec050b", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27719,14 +26016,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "829d6f60-f9d8-4d6b-ac17-5e5a1e90a5d1", - "width": 48, - "x": 192, - "y": 528, - "zOrder": 4, + "persistentUuid": "8ed56622-20b4-4cf8-9870-395e08d10b1d", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27734,14 +26032,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "3a86c945-39ba-4a26-a3d0-dc40761dcd0b", - "width": 48, - "x": 144, - "y": 384, - "zOrder": 4, + "persistentUuid": "37460546-16a1-4421-a180-0907a2ee5042", + "rotationX": 20, + "width": 0, + "x": 850, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27749,14 +26048,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "4e8589b4-5006-40e0-a6f1-dd85255e05cd", - "width": 48, - "x": 144, - "y": 288, - "zOrder": 4, + "persistentUuid": "4e1272e3-0172-44be-b8e1-8117e5a093f7", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27764,14 +26064,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "94213668-b342-4771-9a3f-0704dc99ec72", - "width": 48, - "x": 144, - "y": 240, - "zOrder": 4, + "persistentUuid": "9443bb2e-179d-4f56-913a-b449fbec3069", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27779,14 +26080,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "b6ceb590-65b0-4ee0-b2ed-669ff54e4935", - "width": 48, - "x": 192, + "persistentUuid": "31dbd522-38d6-44b4-bb77-9b667b5f6e84", + "rotationX": 20, + "width": 0, + "x": 490, "y": 240, - "zOrder": 4, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27794,14 +26096,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "ce198127-a399-4f16-b3cd-169361150bcf", - "width": 48, - "x": 384, - "y": 336, - "zOrder": 4, + "persistentUuid": "b252abb8-7d06-4cb3-badc-d0fb68417b8e", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27809,14 +26112,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "7babe138-e3b7-4fef-8dff-3e9e119e66a4", - "width": 48, - "x": 192, - "y": 144, - "zOrder": 4, + "persistentUuid": "eee0de66-b1dd-4f73-bfcd-184c0261c78d", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27824,14 +26128,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "335609c8-c145-4c51-b14c-c7aaf34b7e8c", - "width": 48, - "x": 240, - "y": 96, - "zOrder": 4, + "persistentUuid": "307d06ce-c89e-4697-9139-4f32509adda6", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27839,14 +26144,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "a3417783-64b0-4e60-aded-015a351af296", - "width": 48, - "x": 336, - "y": 288, - "zOrder": 4, + "persistentUuid": "b579160d-34f6-4f42-8932-44f4cf235259", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27854,14 +26160,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "1d3df002-4a09-40db-819f-aeb0c96ca177", - "width": 48, - "x": 528, - "y": 480, - "zOrder": 4, + "persistentUuid": "a617f531-6d8f-4a0c-a57e-0170d49a5f95", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27869,14 +26176,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "ee95a3ae-f9b4-4396-87bf-2507c0ed1afa", - "width": 48, - "x": 432, - "y": 384, - "zOrder": 4, + "persistentUuid": "90f3b608-d7c3-4a4c-8959-e738b442d8ff", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27884,14 +26192,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "976fecaa-72e9-4786-b6d0-0efbb6972711", - "width": 48, - "x": 576, - "y": 432, - "zOrder": 4, + "persistentUuid": "d4a409ef-613f-405d-b061-2b46e48be3e6", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27899,14 +26208,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "a2a35008-7e26-4273-9443-7e483e1f7eb7", - "width": 48, - "x": 480, - "y": 336, - "zOrder": 4, + "persistentUuid": "b7281363-424c-4871-85d3-adfdb265a948", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 60, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27914,14 +26224,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "fc768c1d-fd56-4d2a-887f-7eaabb28dad0", - "width": 48, - "x": 480, - "y": 240, - "zOrder": 4, + "persistentUuid": "3fff4a2a-6d7b-4fff-b081-ee04e0ebbb9f", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27929,14 +26240,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "5f73fe13-5455-4395-8af9-1baa5b58130d", - "width": 48, - "x": 432, - "y": 288, - "zOrder": 4, + "persistentUuid": "0d9edfe7-ac99-4996-805d-d53a7f86e585", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -27944,74 +26256,79 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "87fa0bf0-0a82-4113-a954-1c345b7df34a", - "width": 48, - "x": 576, - "y": 144, - "zOrder": 4, + "persistentUuid": "f8926e55-3667-4191-b1f9-2a14f6e5e491", + "rotationX": 20, + "width": 0, + "x": 970, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Crate", - "persistentUuid": "29cff2af-a8fe-47e7-ac57-4a4be88e3be7", - "width": 48, - "x": 432, - "y": 48, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "511cc5b4-3809-46dc-8e84-9c1d9511ad24", + "width": 60, + "x": 160, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 52, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Crate", - "persistentUuid": "579e7c9e-86a3-4881-ae3a-65a6a8cd4d79", - "width": 48, - "x": 336, - "y": 48, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "e43e066c-478a-49f3-ae5d-eee9d0ee539c", + "width": 60, + "x": 640, + "y": -30, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, - "customSize": false, - "height": 52, + "angle": 90, + "customSize": true, + "depth": 40, + "height": 1020, "layer": "", - "name": "Crate", - "persistentUuid": "6f4a606c-f04b-4772-b103-f17d45b4d904", - "width": 48, - "x": 144, - "y": 48, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "9c137a7a-47c8-432e-80e3-292ba7da24dc", + "width": 60, + "x": 640, + "y": 690, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 52, + "customSize": true, + "depth": 40, + "height": 780, "layer": "", - "name": "Crate", - "persistentUuid": "58348924-6c2a-4f1a-a28e-cdde5dd14827", - "width": 48, - "x": 240, - "y": 288, - "zOrder": 4, + "name": "BlockRoundedLong", + "persistentUuid": "af27a554-7f6f-439b-9d5c-1bd4af771284", + "width": 60, + "x": 1120, + "y": 330, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28019,14 +26336,14 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", - "name": "Crate", - "persistentUuid": "6bd07ea6-edbd-43fa-8b56-33c6fa505291", - "width": 48, - "x": 432, - "y": 240, - "zOrder": 4, + "name": "New3DModel", + "persistentUuid": "3cc5034c-7d2b-4e8b-937f-32ee4bcd07e1", + "width": 0, + "x": 1054, + "y": 606, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28034,14 +26351,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "25da9e7a-4c03-47cd-b31c-41adbf911bd4", - "width": 48, - "x": 336, - "y": 144, - "zOrder": 4, + "persistentUuid": "2bcbca40-081b-4340-b679-7f9d9feec415", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28049,14 +26367,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "03811e1c-8491-43a0-9fa1-e3a9c45ce2fc", - "width": 48, - "x": 336, - "y": 432, - "zOrder": 4, + "persistentUuid": "c445a8b1-0f9b-44d3-9182-e37f3187ea05", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28064,14 +26383,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "e8f99472-4219-4635-a5cd-e941ed9b888d", - "width": 48, - "x": 432, - "y": 432, - "zOrder": 4, + "persistentUuid": "28f722ae-3022-4075-a688-f66361b3e4ef", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28079,14 +26399,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "83caeea5-54a4-4657-a1fd-71c420ba09f7", - "width": 48, - "x": 432, - "y": 336, - "zOrder": 4, + "persistentUuid": "006a2fd6-7e85-4462-a934-4d59439fe52b", + "rotationX": 20, + "width": 0, + "x": 190, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28094,14 +26415,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "792828ac-5757-41a5-83e6-46e76ef71167", - "width": 48, - "x": 240, - "y": 480, - "zOrder": 4, + "persistentUuid": "f616b47c-c9ba-4a62-a5b3-f37cc7311fb9", + "rotationX": 20, + "width": 0, + "x": 250, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28109,14 +26431,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "7daca537-6c25-4ba1-ae20-b6ec313ac613", - "width": 48, - "x": 336, - "y": 384, - "zOrder": 4, + "persistentUuid": "dcde3008-572a-48d1-8fdf-a038598d9072", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28124,14 +26447,15 @@ { "angle": 0, "customSize": false, - "height": 52, + "height": 0, "layer": "", "name": "Crate", - "persistentUuid": "e99d248c-c397-4a41-a5c7-27e2f95b0ee4", - "width": 48, - "x": 192, - "y": 336, - "zOrder": 4, + "persistentUuid": "0fbb0454-3e45-4652-9f71-2521d2f317f6", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28139,14 +26463,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "593ffab4-6e36-42be-8f13-3f852811d08f", - "width": 48, - "x": 0, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "580bea76-8906-43cd-9356-67f43845bbd8", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 60, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28154,14 +26479,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "196d500e-5299-412a-8360-4ab254735345", - "width": 48, - "x": 0, - "y": 48, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "01a7c20d-0950-4ca0-8230-f8585c96dec4", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 60, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28169,14 +26495,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "fc050892-13ca-48ec-94ee-338bfcc51766", - "width": 48, - "x": 0, - "y": 528, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "b7da0120-8712-4f31-bca3-1554c490b6fc", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28184,14 +26511,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "08d399ac-b451-4881-800a-118b9740aec2", - "width": 48, - "x": 0, - "y": 480, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "61cf3590-7433-4517-b16d-15d2d2ed3355", + "rotationX": 20, + "width": 0, + "x": 250, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28199,14 +26527,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "0b467fad-42b4-44c8-b2f5-28e6e5ed5ee5", - "width": 48, - "x": 0, - "y": 432, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "a58b21d0-d146-4544-b751-7366faa50b16", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28214,14 +26543,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "51041f39-0964-405b-9f0a-a9ccfdc64bd3", - "width": 48, - "x": 0, - "y": 384, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "e0d3cb0a-5d30-4c91-86ab-ff5701f8bf85", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28229,14 +26559,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e3272347-a7ed-408b-ab4d-e200c87f1b06", - "width": 48, - "x": 0, - "y": 336, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "416dc9e1-0fc5-4032-897c-5a3fb5510427", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28244,14 +26575,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "c241b0a3-2f6b-4bb5-b72e-e6daf998e9f8", - "width": 48, - "x": 0, - "y": 288, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "8a101d83-4289-4b19-aad5-619006a32bd1", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28259,14 +26591,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "892b6d82-e03d-47a5-95c6-ccc92c71dafd", - "width": 48, - "x": 0, + "name": "Crate", + "persistentUuid": "d4bd8491-995d-47bf-87f8-dd00908d3d6b", + "rotationX": 20, + "width": 0, + "x": 670, "y": 240, - "zOrder": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28274,14 +26607,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "7e6badea-319a-4c75-ad04-d03c577d9175", - "width": 48, - "x": 0, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "015d63f8-df7e-4831-ba06-46b2f5dc526b", + "rotationX": 20, + "width": 0, + "x": 730, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28289,14 +26623,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "148e1aa5-a9ad-4322-b734-cfa690359916", - "width": 48, - "x": 0, - "y": 144, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f27fecb2-ea40-4a75-a7b1-bb2592da03e7", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28304,14 +26639,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "cff5846c-3cbd-4f75-8d93-4b0e40946b1e", - "width": 48, - "x": 0, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f6a15154-50f2-4e58-a741-4e85d44449d5", + "rotationX": 20, + "width": 0, + "x": 970, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28319,14 +26655,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "a594a941-c5da-4014-b657-c2e35ed3da5b", - "width": 48, - "x": 0, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f58309d9-fe3c-4e25-85e1-52e9690ab10d", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 240, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28334,14 +26671,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "79602d5d-9703-49b5-b027-867485ca14ed", - "width": 48, - "x": 768, - "y": 48, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "dc6b5ea1-78d2-4204-8d34-aaee0cb95d9d", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28349,14 +26687,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "384213e8-0995-47ff-9f96-c0df3668847d", - "width": 48, - "x": 768, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "75cbcdf8-b44a-4fea-b53d-2bcf854f4e40", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28364,14 +26703,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e940b598-9a40-4a80-9432-d6df0b3f87d5", - "width": 48, - "x": 768, - "y": 96, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "a6e9b351-9896-41da-99b3-883455412122", + "rotationX": 20, + "width": 0, + "x": 490, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28379,14 +26719,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "eb56a2ce-6a52-4ee8-b0ca-13f635495be4", - "width": 48, - "x": 768, - "y": 144, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "5ef9a6aa-e0f7-425d-9b9b-1fcaf2525fef", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28394,14 +26735,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "79c35a4b-f96b-4e3f-9cc1-50a4fec78108", - "width": 48, - "x": 768, - "y": 192, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "122d5281-487f-4fbd-8f40-0ab92bbe90f0", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28409,14 +26751,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e681b51b-8642-4c94-96a4-0d13c51ca692", - "width": 48, - "x": 768, - "y": 288, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "938f5d11-7ed0-46dc-9a99-950363680027", + "rotationX": 20, + "width": 0, + "x": 730, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28424,14 +26767,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "9cf0cb78-171d-4e6a-8913-da9e117bee1d", - "width": 48, - "x": 768, - "y": 480, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "c6013de8-f842-4d93-9664-b0bf3849de49", + "rotationX": 20, + "width": 0, + "x": 850, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28439,14 +26783,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "5d9cecf4-10d0-4563-b73a-a4ceda8a18ab", - "width": 48, - "x": 768, - "y": 432, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "7ebca086-b64e-4c0c-a755-f10e8b9b3208", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28454,14 +26799,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "2bdd5359-287c-4aff-9e8e-865a56aecb97", - "width": 48, - "x": 768, - "y": 384, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "428a25c3-eec3-4c32-98dd-5f5aab3d4643", + "rotationX": 20, + "width": 0, + "x": 970, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28469,14 +26815,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "86a9aea1-e559-415b-892b-86e2c298bc2a", - "width": 48, - "x": 768, - "y": 336, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "6656a362-beeb-4f57-874b-b9f3222960fe", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 360, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28484,14 +26831,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "dfaf0ac7-64f5-4348-a25a-b1bbb299ae65", - "width": 48, - "x": 768, - "y": 240, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "1c736108-d57e-440b-b20c-4d3d9e877aed", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28499,14 +26847,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "384457ce-e88d-4ae3-971a-b18ffa9f23a9", - "width": 48, - "x": 768, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "3747bb3f-ea7a-4518-8d91-53aa57c5478a", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28514,14 +26863,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "334a937e-41b4-4bda-b9de-b66bae663f20", - "width": 48, - "x": 768, - "y": 528, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f08bc80c-9290-4500-9e29-73f564fb0bac", + "rotationX": 20, + "width": 0, + "x": 970, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28529,14 +26879,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "78beb672-c5aa-4786-8620-24a7b6b2bab3", - "width": 48, - "x": 48, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "68d35a6a-bce7-4008-b3ee-a62ddae2b7c4", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28544,14 +26895,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "c6f0bfd5-e35b-45b3-a9ca-c29ec49eee40", - "width": 48, - "x": 96, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "badfe60e-794f-4c06-9a41-7dfcfab0d96b", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28559,14 +26911,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "428a7839-6825-46a6-8757-093d022b18e0", - "width": 48, - "x": 144, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "fb02717a-d3fd-44e4-84fb-bb8287d907db", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 180, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28574,14 +26927,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "6cc98909-7659-441c-af63-d198a534d060", - "width": 48, - "x": 192, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "30eceaad-0cf2-424b-a153-17642e2ba6e9", + "rotationX": 20, + "width": 0, + "x": 1030, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28589,14 +26943,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "30d73c66-6a15-4f95-8a82-aadb67ea4da8", - "width": 48, - "x": 240, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f9c9141d-50f4-43fc-b085-2906b20ae3ec", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28604,14 +26959,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "5b2ef542-81fd-44f9-a756-6d80e78be8ae", - "width": 48, - "x": 288, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "12565ce0-8dc5-4d1e-ba5a-fa945743a013", + "rotationX": 20, + "width": 0, + "x": 850, + "y": 0, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28619,14 +26975,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "a694b7cd-a171-4ddd-8b13-2f53709dd580", - "width": 48, - "x": 336, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "748b2f3e-4136-49bf-8967-c566ac112824", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 60, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28634,14 +26991,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "ec212001-7546-4a55-ba1c-61ae4697cd37", - "width": 48, - "x": 384, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "2de8459a-bcac-4a76-afce-bf8ca16d893c", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28649,14 +27007,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "cb0474e5-461a-4457-8c66-96f91f5825ab", - "width": 48, - "x": 432, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "d54e027e-12cf-4ad2-8597-cd283af6281b", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28664,14 +27023,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "b3517830-603b-4d73-a14f-d106801d3e46", - "width": 48, - "x": 480, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "7d75b0c8-fbf9-499b-bb42-f30f1cdda91a", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28679,14 +27039,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "ebd8fe2f-8a46-45f0-b912-8cdbf2288a78", - "width": 48, - "x": 528, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "edf6cdc8-1df8-461b-aded-a93c2a292bbe", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28694,14 +27055,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "71efa3a8-5bca-4957-8dd3-b5357a6b5bef", - "width": 48, - "x": 576, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "5c6550e6-f096-47b6-856e-7b89b4860e4a", + "rotationX": 20, + "width": 0, + "x": 550, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28709,14 +27071,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "ab655757-4e5a-4bb4-8cda-b32107d23380", - "width": 48, - "x": 624, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "805fd263-441a-4037-9da5-dd558af783bf", + "rotationX": 20, + "width": 0, + "x": 610, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28724,14 +27087,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "9bafcf1a-ff2d-4548-9926-ff1a6fadc3ff", - "width": 48, - "x": 672, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "221377f6-d8b7-4399-9d44-a2d3d70f80cd", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28739,14 +27103,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "76689756-3817-4193-9066-271e3723c1c4", - "width": 48, - "x": 720, - "y": 576, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "afdfe2d5-4876-4e81-b417-647eefe3fcb0", + "rotationX": 20, + "width": 0, + "x": 670, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28754,14 +27119,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e539194f-8808-47e0-a2a4-07f3bcf24e37", - "width": 48, - "x": 576, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "62aa0ff3-c78a-43c7-8718-e12f6a689be0", + "rotationX": 20, + "width": 0, + "x": 790, + "y": 540, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28769,14 +27135,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "4d4017df-7a69-431f-b055-ed201bdc2269", - "width": 48, - "x": 528, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "de80d2ff-1af1-4f2e-999c-cfa09e93b1de", + "rotationX": 20, + "width": 0, + "x": 850, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28784,14 +27151,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "c8ab0d99-760b-4b5f-8004-490b156ee22d", - "width": 48, - "x": 480, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "38fe563f-f78e-4b49-aaaa-9e5cced7a3bb", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28799,14 +27167,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "d224347c-0d8c-4c79-87d9-f712489184f8", - "width": 48, - "x": 432, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "ce83b2d6-a1a6-40ad-8802-59b41303ad7a", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 540, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28814,14 +27183,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "d4063a67-deb4-4043-b3cf-41d03dae4fd4", - "width": 48, - "x": 384, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "cd6618eb-a3b9-441a-910a-1f5a923dbf9a", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 540, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28829,14 +27199,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "69c1c56a-9852-4863-b6b0-fd25ee920e87", - "width": 48, - "x": 336, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "15d6fa2a-1a02-4ac2-847a-5ea4c125289e", + "rotationX": 20, + "width": 0, + "x": 370, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28844,14 +27215,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "67b97388-75ca-453a-b1e7-c561044f3784", - "width": 48, - "x": 288, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "1aee7747-bb02-431c-afed-9f58f14f3f60", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 600, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28859,14 +27231,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e0eb6860-3c6c-4055-aada-a97101853e14", - "width": 48, - "x": 240, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "f8f398b3-5549-40c8-bc17-8e213a24642f", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 540, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28874,14 +27247,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "41039db1-843c-48f2-8c87-bc9cb525e30b", - "width": 48, - "x": 192, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "2ae3aec4-6415-4dd9-b3e1-a226053b41ee", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28889,14 +27263,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "e771bf35-e9ea-4d3e-b030-50d691893f8c", - "width": 48, - "x": 144, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "554bfc7b-5e2a-411c-b926-2828179528a4", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 420, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28904,14 +27279,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "56de7b9d-2e5f-43a2-b212-766dd1e90d05", - "width": 48, - "x": 96, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "56f845ea-ba61-4415-95ca-732f76bdac29", + "rotationX": 20, + "width": 0, + "x": 250, + "y": 480, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28919,14 +27295,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "3b06a206-5264-4667-b8b8-cd2ab993fdf2", - "width": 48, - "x": 48, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "e455858b-1882-44fb-a3c3-7afc4a4a8373", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 120, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28934,14 +27311,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "31bf35de-135c-4f9b-9bdc-9eaaa49900cb", - "width": 48, - "x": 720, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "5a9c4b4d-87b5-4740-8732-fd18ec997af0", + "rotationX": 20, + "width": 0, + "x": 310, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28949,14 +27327,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "354e3dfa-3cf1-4288-9347-9fa270fdf6f0", - "width": 48, - "x": 672, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "7844f2a9-b41f-469a-beeb-9487f22158ef", + "rotationX": 20, + "width": 0, + "x": 910, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28964,14 +27343,15 @@ { "angle": 0, "customSize": false, - "height": 48, + "height": 0, "layer": "", - "name": "Wall", - "persistentUuid": "5cb8a795-4b14-47f8-a4dd-e8e84b244639", - "width": 48, - "x": 624, - "y": 0, - "zOrder": 0, + "name": "Crate", + "persistentUuid": "23e69387-dcec-42dd-9766-13a7c1bd5c97", + "rotationX": 20, + "width": 0, + "x": 430, + "y": 300, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -28980,14 +27360,14 @@ "editionSettings": { "grid": true, "gridType": "rectangular", - "gridWidth": 24, - "gridHeight": 24, - "gridOffsetX": 0, + "gridWidth": 60, + "gridHeight": 60, + "gridOffsetX": 10, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.88, + "zoomFactor": 0.3363519905085255, "windowMask": false } } diff --git a/examples/3d-bomberman/assets/Bomb.glb b/examples/3d-bomberman/assets/Bomb.glb index 01ad10cad1df00be6f4168628bc7a7430e36783d..0eea011248bb09ddf4575e04cf33bb7c7b1757d8 100644 GIT binary patch literal 12264 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 literal 12264 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 M_2oF0<6FVM0bz?N{r~^~ From 360e9eec3e59b9a6862e099b37b04739a8a80ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 6 Aug 2023 21:59:29 +0200 Subject: [PATCH 04/53] Add models for players. --- examples/3d-bomberman/3d-bomberman.json | 1571 +++++++++--------- examples/3d-bomberman/assets/Orange.png | Bin 0 -> 205 bytes examples/3d-bomberman/assets/OrangeBunny.glb | Bin 0 -> 1108536 bytes examples/3d-bomberman/assets/Pink.png | Bin 0 -> 205 bytes examples/3d-bomberman/assets/PinkBunny.glb | Bin 0 -> 1108536 bytes examples/3d-bomberman/assets/Purple.png | Bin 0 -> 202 bytes examples/3d-bomberman/assets/PurpleBunny.glb | Bin 0 -> 1108536 bytes 7 files changed, 789 insertions(+), 782 deletions(-) create mode 100644 examples/3d-bomberman/assets/Orange.png create mode 100644 examples/3d-bomberman/assets/OrangeBunny.glb create mode 100644 examples/3d-bomberman/assets/Pink.png create mode 100644 examples/3d-bomberman/assets/PinkBunny.glb create mode 100644 examples/3d-bomberman/assets/Purple.png create mode 100644 examples/3d-bomberman/assets/PurpleBunny.glb diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index a2ac46a1f..7f91d8edf 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -540,6 +540,54 @@ "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Platformer Pack/e3840854ed7be06c0f09cab214bee0eb8271d4a7f39b5a90fbc0740b0780deaa_Bomb.glb", "name": "Bomb.glb" } + }, + { + "file": "assets/PurpleBunny.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\PurpleBunny.glb", + "userAdded": false + }, + { + "file": "assets/OrangeBunny.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\OrangeBunny.glb", + "userAdded": false + }, + { + "file": "assets/PinkBunny.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\PinkBunny.glb", + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Purple.png", + "kind": "image", + "metadata": "{\"localFilePath\":\"assets/Purple.png\",\"extension\":\".png\"}", + "name": "assets\\Purple.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Orange.png", + "kind": "image", + "metadata": "{\"localFilePath\":\"assets/Orange.png\",\"extension\":\".png\"}", + "name": "assets\\Orange.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Pink.png", + "kind": "image", + "metadata": "{\"localFilePath\":\"assets/Pink.png\",\"extension\":\".png\"}", + "name": "assets\\Pink.png", + "smoothed": true, + "userAdded": false } ], "resourceFolders": [] @@ -934,19 +982,6 @@ "allowDiagonals": true, "angleOffset": 0, "ignoreDefaultControls": true - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement", - "AnimationName": "Walk", - "DirectionCount": 4, - "IsScalingAnimation": false - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 } ], "animations": [ @@ -981,6 +1016,120 @@ } ] }, + { + "assetStoreId": "", + "name": "BlueBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\BlueBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -1085,126 +1234,21 @@ "ignoreDefaultControls": true, "maxSpeed": 200, "rotateObject": false - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 } ], "animations": [ { - "name": "Walk0", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieGriseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk1", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieGriseBas.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 8 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk2", + "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, + "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, - "image": "OieGriseGauche.png", + "image": "assets\\Purple.png", "points": [], "originPoint": { "name": "origine", @@ -1241,57 +1285,123 @@ ] } ] - }, - { - "name": "Walk3", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieGriseHaut.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 27 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] - } - ] - } - ] } ] }, + { + "assetStoreId": "", + "name": "PurpleBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\PurpleBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -1396,126 +1506,21 @@ "angularMaxSpeed": 180, "ignoreDefaultControls": true, "rotateObject": false - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 } ], "animations": [ { - "name": "Walk0", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk1", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseBas.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 8 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk2", + "name": "assets\\Orange", "useMultipleDirections": false, "directions": [ { "looping": false, + "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, - "image": "OieRoseGauche.png", + "image": "assets\\Orange.png", "points": [], "originPoint": { "name": "origine", @@ -1552,57 +1557,123 @@ ] } ] - }, - { - "name": "Walk3", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieRoseHaut.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 27 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] - } - ] - } - ] } ] }, + { + "assetStoreId": "", + "name": "OrangeBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\OrangeBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -1707,126 +1778,21 @@ "angularMaxSpeed": 180, "ignoreDefaultControls": true, "rotateObject": false - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator", - "TopDownMovement": "TopDownMovement" - }, - { - "name": "YSort", - "type": "YSort::YSort", - "Offset": 34 } ], "animations": [ { - "name": "Walk0", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 9, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk1", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronBas.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 8 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 8 - }, - { - "x": 48, - "y": 8 - }, - { - "x": 48, - "y": 56 - }, - { - "x": 0, - "y": 56 - } - ] - ] - } - ] - } - ] - }, - { - "name": "Walk2", + "name": "assets\\Pink", "useMultipleDirections": false, "directions": [ { "looping": false, + "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, - "image": "OieMarronGauche.png", + "image": "assets\\Pink.png", "points": [], "originPoint": { "name": "origine", @@ -1863,57 +1829,123 @@ ] } ] - }, - { - "name": "Walk3", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "OieMarronHaut.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 27 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 0, - "y": 27 - }, - { - "x": 48, - "y": 27 - }, - { - "x": 48, - "y": 75 - }, - { - "x": 0, - "y": 75 - } - ] - ] - } - ] - } - ] } ] }, + { + "assetStoreId": "", + "name": "PinkBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ModelOrigin", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "assets\\PinkBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -2938,254 +2970,30 @@ "directions": [ { "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieMarronDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, - { - "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", - "name": "Rock", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ObjectCenter", - "depth": 40, - "height": 60, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Rock Moss 3.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 0, - "width": 60, - "animations": [] - } - }, - { - "assetStoreId": "9c628d2e17c64382fccfe686ec2106319f395e38b8d77b764a8ba9838b65734d", - "name": "Crate", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ObjectCenter", - "depth": 60, - "height": 60, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Cabbage.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 0, - "width": 60, - "animations": [] - } - }, - { - "assetStoreId": "ca4c977991d157fdc33034d1882a0f0973d7332a8df743aa0f38c7c436022ceb", - "name": "BlockRoundedLong", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "TopDownCornerSliderObstacle", - "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", - "SlidingCornerSize": 40 - } - ], - "content": { - "centerLocation": "ModelOrigin", - "depth": 40, - "height": 120, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "blockRoundedLong.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": -90, - "width": 60, - "animations": [] - } - }, - { - "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", - "name": "Fence", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 60, - "height": 110, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "fence.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": -90, - "width": 30, - "animations": [] - } - }, - { - "assetStoreId": "", - "name": "New3DModel", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ModelOrigin", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "assets\\BlueBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "OieMarronDroite.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] }, { "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", @@ -3214,6 +3022,116 @@ "width": 60, "animations": [] } + }, + { + "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", + "name": "Rock", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 + } + ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 40, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Rock Moss 3.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "9c628d2e17c64382fccfe686ec2106319f395e38b8d77b764a8ba9838b65734d", + "name": "Crate", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 + } + ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Cabbage.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "ca4c977991d157fdc33034d1882a0f0973d7332a8df743aa0f38c7c436022ceb", + "name": "BlockRoundedLong", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownCornerSliderObstacle", + "type": "TopDownCornerSliding::TopDownCornerSliderObstacle", + "SlidingCornerSize": 40 + } + ], + "content": { + "centerLocation": "ModelOrigin", + "depth": 40, + "height": 120, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "blockRoundedLong.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 60, + "animations": [] + } + }, + { + "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", + "name": "Fence", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 60, + "height": 110, + "keepAspectRatio": true, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "fence.glb", + "originLocation": "TopLeft", + "rotationX": 90, + "rotationY": 0, + "rotationZ": -90, + "width": 30, + "animations": [] + } } ], "events": [ @@ -3397,7 +3315,7 @@ "value": "Scene3D::Model3DObject::SetAnimationName" }, "parameters": [ - "New3DModel", + "BlueBunny", "=", "\"Run\"" ] @@ -4303,7 +4221,7 @@ "value": "SetCenter" }, "parameters": [ - "New3DModel", + "BlueBunny", "=", "Player1.CenterX()", "=", @@ -4315,10 +4233,10 @@ "value": "ModVarObjet" }, "parameters": [ - "New3DModel", + "BlueBunny", "Angle", "+", - "sign(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), New3DModel.Variable(Angle))), 720 * TimeDelta())" + "sign(AngleDifference(Player1.TopDownMovement::Angle(), BlueBunny.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), BlueBunny.Variable(Angle))), 720 * TimeDelta())" ] }, { @@ -4326,9 +4244,9 @@ "value": "SetAngle" }, "parameters": [ - "New3DModel", + "BlueBunny", "=", - "New3DModel.Variable(Angle)" + "BlueBunny.Variable(Angle)" ] }, { @@ -4336,7 +4254,7 @@ "value": "Scene3D::Model3DObject::SetRotationY" }, "parameters": [ - "New3DModel", + "BlueBunny", "=", "0" ] @@ -4346,7 +4264,7 @@ "value": "Scene3D::Model3DObject::SetRotationX" }, "parameters": [ - "New3DModel", + "BlueBunny", "=", "0" ] @@ -4356,7 +4274,7 @@ "value": "Scene3D::Model3DObject::TurnAroundX" }, "parameters": [ - "New3DModel", + "BlueBunny", "45" ] } @@ -4449,14 +4367,6 @@ { "name": "TopDownMovement", "type": "TopDownMovementBehavior::TopDownMovementBehavior" - }, - { - "name": "TopDownMovementAnimator", - "type": "TopDownMovementAnimator::TopDownMovementAnimator" - }, - { - "name": "YSort", - "type": "YSort::YSort" } ] }, @@ -23494,15 +23404,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player2", "persistentUuid": "0168e5a1-c6c6-4470-a8a9-31a2b47790e9", "width": 82, - "x": 182, - "y": -9, + "x": 199, + "y": 6, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -23510,15 +23419,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player3", "persistentUuid": "dca8110e-8871-49a7-9d12-e00eaf0e8b53", "width": 82, - "x": 182, - "y": 598, + "x": 199, + "y": 606, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -23526,15 +23434,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player4", "persistentUuid": "c39be22f-ce00-44f2-b33f-b70a864832df", "width": 82, - "x": 1020, - "y": -9, + "x": 1039, + "y": 6, "zOrder": 10, "numberProperties": [], "stringProperties": [], @@ -24134,7 +24041,7 @@ "customSize": false, "height": 0, "layer": "", - "name": "New3DModel", + "name": "BlueBunny", "persistentUuid": "0e59664b-d4d7-45df-a225-576dd3049dd1", "width": 0, "x": 1054, @@ -24143,6 +24050,51 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PurpleBunny", + "persistentUuid": "a0917fc0-983f-44f6-8fe3-ae14f0398f39", + "width": 0, + "x": 224, + "y": 54, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "OrangeBunny", + "persistentUuid": "ff41b690-4336-4ff1-b2be-1247be2900f1", + "width": 0, + "x": 214, + "y": 606, + "zOrder": 16, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PinkBunny", + "persistentUuid": "4b6723f8-7101-429b-88c4-62783fdd6a69", + "width": 0, + "x": 1064, + "y": 54, + "zOrder": 17, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -24180,15 +24132,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player2", "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", "width": 82, - "x": 182, - "y": -9, + "x": 199, + "y": 6, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -24196,15 +24147,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player3", "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", "width": 82, - "x": 182, - "y": 598, + "x": 199, + "y": 606, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -24212,15 +24162,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player4", "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", "width": 82, - "x": 1020, - "y": -9, + "x": 1039, + "y": 6, "zOrder": 10, "numberProperties": [], "stringProperties": [], @@ -25252,7 +25201,7 @@ "customSize": false, "height": 0, "layer": "", - "name": "New3DModel", + "name": "BlueBunny", "persistentUuid": "d215408a-951f-495f-aef7-94849aa89639", "width": 0, "x": 1054, @@ -25261,6 +25210,51 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PinkBunny", + "persistentUuid": "bec5a1c6-d7cc-498d-b458-c32de613db3e", + "width": 0, + "x": 1064, + "y": 54, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "OrangeBunny", + "persistentUuid": "dbe90f46-ae68-4863-bde9-44f85ca2b2bd", + "width": 0, + "x": 214, + "y": 606, + "zOrder": 16, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PurpleBunny", + "persistentUuid": "6aa5c9ea-48f7-4813-9359-7bddcf707535", + "width": 0, + "x": 214, + "y": 54, + "zOrder": 17, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -25314,15 +25308,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player3", "persistentUuid": "513d236d-ffbc-4367-917a-dd9eaa59ce66", "width": 82, - "x": 182, - "y": 598, + "x": 190, + "y": 600, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -25330,15 +25323,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player4", "persistentUuid": "7e397593-ecf8-4d95-b0c6-ea43b45731f2", "width": 82, - "x": 1020, - "y": -9, + "x": 1030, + "y": 6, "zOrder": 10, "numberProperties": [], "stringProperties": [], @@ -26338,7 +26330,7 @@ "customSize": false, "height": 0, "layer": "", - "name": "New3DModel", + "name": "BlueBunny", "persistentUuid": "3cc5034c-7d2b-4e8b-937f-32ee4bcd07e1", "width": 0, "x": 1054, @@ -27355,6 +27347,21 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PinkBunny", + "persistentUuid": "049d618c-239e-4c7b-b1bc-d9b9927bb44c", + "width": 0, + "x": 1064, + "y": 54, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -27367,7 +27374,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.3363519905085255, + "zoomFactor": 0.5351022885121243, "windowMask": false } } diff --git a/examples/3d-bomberman/assets/Orange.png b/examples/3d-bomberman/assets/Orange.png new file mode 100644 index 0000000000000000000000000000000000000000..121fe788a98b962af833a11d4c7d8219d3711aaf GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8jKx9jP7LeL$-D$|+C5zyLo%G- zUSSkGpdi3vcu&#p)y8XG3^F;*%z4K4?>F!Ny4c)KX8qa%n-4(|4{tDe9B+!d9|&bx zMR_R8Ml-yO2nd(TT$0SKAj|#AOS!ishjB@=V{GPgP|1O_j;W13HPp)78&qol`;+0LxxUr2qf` literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OrangeBunny.glb b/examples/3d-bomberman/assets/OrangeBunny.glb new file mode 100644 index 0000000000000000000000000000000000000000..7adbf7c292eb326b0a29bdd06556099d5ec996f7 GIT binary patch literal 1108536 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

qkDXuRcp~jCj7TEw;^7>oNA6U!roI+tJck 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Pink.png b/examples/3d-bomberman/assets/Pink.png new file mode 100644 index 0000000000000000000000000000000000000000..9c292ed6c9796a43fd385b91cc1ded469cc7e59d GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8jKx9jP7LeL$-D$|+C5zyLo%G- zUSSkGpdi3v7$&(F`vm0>Y&-mn3s5$a25(QtmCuVO)~z7@N6dVxMk9iOve`UXx23Sts wX0?ss(#8erOfGpG7jv)@yE4^nm)|dj^5s)vZ*LYA20Dqs)78&qol`;+07ec-`Tzg` literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/PinkBunny.glb b/examples/3d-bomberman/assets/PinkBunny.glb new file mode 100644 index 0000000000000000000000000000000000000000..826d1b82f0a5bfda69dc3eeee2e34dc3604ca279 GIT binary patch literal 1108536 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 z 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

$y9t-jN+^>)Ju$}v12m5SF^u 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

^#Oa{hWAP91^XrJ z&<0G;=bsCI^bFX*CuCsq2^pB@?p7+9ta5r6ZEkBUyML*WopH&+p45%czod!E`^~gB zx7e6&4G^1bdnLFsyfm(h&?CfVg#E3L zvBKJhx8sX3+%-oQfgdyYzC3@o)S&80^?qqdnbME9?7Kcz-d?7K(l)~ai{+Ot7MJy7 zWO3s_rQW;@)=@n?Egz4MlHGzQDW=h`*3(^`EXyj7l!FgVQ~G3-tgF9ew>+3JLVmM- zs#46^+nW1gPD^d$2-%(48=3t@&HmhoaZ1h6?Em4fRnBtb-bmGdUFLtK=70RtE=v7n z$1M-;_*%;C9j%V1DH~6uHlAJOYbzC;>RGxrA8d*4I94vt#_!I?e>L6r@z1;Hri4$Q zm$XrsWa(UaoXT(J-xo2&g_zUtG|2Qj4f_zS2Y#Jl-C$kNx-mpuzqp_C0mZ{5%IdqfiS%}RFIlO5LV4fSXkF>qSZejGr+h${tjxP= zwH92^P&)FUn>;QkMXBESxOLa3y3&aQo#edHpOg*ruUgxjl%>|6{N!D0Gu!g_e{7w% z%|}`w{~~8znZwp3*K4bHT`%dYUkiC+y*#$^vp-tjw5J41)VH6_{W(JJ=x>A{Fv?e&){eC{A!XPGye2d zjX%xvwb9P=v%$XxzxtVGPkd~?KhMubJD!)q*@Lf5d~xc}%Xt3Z^T+$A@l${M_r)5a z{f71w#20a<_(KmJ;!PNBgrTQ(K{mMC>mj2b`QkCz>3wC%;ne_ zSLJO-bLC_gmCM~CrMFNtG(f;PTW4Cd`?h77M4YFa`VBJ`ix_4u!f*}W>gEgW&zT$< zu6^sZ5L?b-D$nr3-MfTr{syr+!`B~7G}k&cU(Cj^LC7V}8BoKFd>`J0I|$=0)idI` zQ`T<~Y(F} zpuhiltUPvNePySvr+&tczWR#JW7&T{cTwbJ$MwQpUp>ylu~kPY9TFW4*&kNYZ+9If z#~+`pe5xTBK0nN-AN^s39Kz1y-WerB-gFN7`|La(6*N`p>|N6kJ~5X*A!&r1GA>jJ zO|D{a%u-nYq1i}z4D@ofyUWz~NbVdVHU#u;h;nbJb4gKcB8iEbZRrE(+*y4f>`5`^o)0%}I7tb9Z zp2$_C-<5l^gsbud8Vgl1gT+b}LtMSGJj{C#fmCY{;&ojYK&JIP*{Frh6^8E34&i0b$)i|bX3y(9DU*1@8>ESOIynR9GlVz7-&X`7unblF57=KsU-{_zr zZE}4@n9)V{W9MPN59bUqskM~>>^z)RGQG{*=e8lK7~{)lZzoF|v)WFle`Y8*+gs`K zrj`6;MowEB;~PV{9W|7M9nIy@A$e>sUVk(sKl4W_5oR)ICP~ zV9I<{`v9I`w*WW4IV-3(=M)t6wbwPLPNA{3`(TBIO$M8*k$v?klVGln%_rC0wNh)uDdLEYHE_;y5 z^UqhPV!UTeW)rym`x>VcUOkI>_q@330Q5mn3fZe#)5i*d{K)jifIuccbHCVLCmyr%EaSM*w|#O#!9XNo)7>NzCq z>-w%!N>`O_WyUz!T4(>N-|7{q_(n^%7RQ`yzSnXax?hh}lG;kP3mFR9jvOoU(|iN8 zCMe#BD`ATL&usX8iR{rAdaMuZU+9muM1Bavp4Jd_q=%0Dk`1jp$neQOi_Z-({c2GW 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
  • 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%0DE(FqQor?%()%o*<$8Oqg)(ekKXqL- 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/PurpleBunny.glb b/examples/3d-bomberman/assets/PurpleBunny.glb new file mode 100644 index 0000000000000000000000000000000000000000..90c08936470d4b87f8d25d18ad4c2976c6d57c00 GIT binary patch literal 1108536 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]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

    C}NH{wrzWM_WgUw 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 Yxv{LVZ1rHfE$a+uoJyJaq+ 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 u6!Qn1+1aY=R8#V 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≫G*#ekS|&H-}(Q4E+PCJdOff-pTQFf%G#Wv%=Wb=3_W3;_;9x2;C*Vp%GYX+_-*O=ai4zj*Xd;BO6t$i!{D;!xMkIs z>Ez5zU+dANOhemA3#^^*PA7Z&`&t`psAg>0^tQEI(sZ)W=xcrXp|kNu@8Y)m^!xw5 zrF^X;-b5RZt@g9^CN!SUK2~qfWyYf48roVEqcvL}`dDk%T5FuHZev?a^GT%NPajUd zpFUasemeSVD*8vt_U^L15A{Ec`adrF$N10a_}As}S$wVJ_|DS!(`o!6a{R+-exGQ5 zMdbX7()@SR{5#6|`_lPIrt>pdo*&HL5XJnBqVrpe&TmCJzt`#fy3zUnMdv?8p8xPX zzfWuW`-RZo@1gwr<^6rJ-taz!7Vj?jdnc?tVCdOi!1P$F_?tq;M+=V957s#T=8D-e zKagR|)<4F;0~vhyz~2CXgBE(`13dig6qA9$!C3Ime8LAX_`qnv0UsC-_>kGSOwayK z4Eq*1(8C9~tdDWw6LBIQ7Bh>N#Q+(9D+zn(;1lg>`t5amBmTkRE9%^-Cz9}e_Fe_c zaF;tDk-pVF^My*imwpQ#oSV@SXQ>q+(LS=5y*KiY*>% zlSAHLJplflE(N)RQ74k1ANsSSsds224*ECqh`L*7IEQc0e`Bt6oXgU*yQyG zLQUYuR}s`teX0uhHhqC}chubON7A^3Utg$O`brHA^!cNVD(~H=q;Jy)x4o>&_HmN< z^PBLd>z&Oe#J1+Bck9 zu{2j--=0vHz2dGxE+quJS~<^G=y%

    `&JnlE3SY@4Vl!rt6484&Ropdw%lIcj%3~ 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 literal 0 HcmV?d00001 From 5bbfcb42dca5f7075b10671668099571498dd20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 7 Aug 2023 01:10:20 +0200 Subject: [PATCH 05/53] Add particles. --- examples/3d-bomberman/3d-bomberman.json | 1603 +++++------------ .../assets/ExplosionCentre-Anim5.png | Bin 0 -> 1465 bytes examples/3d-bomberman/assets/Image.png | Bin 0 -> 466 bytes 3 files changed, 438 insertions(+), 1165 deletions(-) create mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim5.png create mode 100644 examples/3d-bomberman/assets/Image.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 7f91d8edf..58610783c 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -588,6 +588,24 @@ "name": "assets\\Pink.png", "smoothed": true, "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ExplosionCentre-Anim5.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "ExplosionCentre-Anim4", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Image.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "Image", + "smoothed": true, + "userAdded": false } ], "resourceFolders": [] @@ -1957,22 +1975,23 @@ "effects": [], "behaviors": [ { - "name": "ExplosionAnimator", - "type": "BombExplosion::ExplosionAnimator" + "name": "Explosion", + "type": "BombExplosion::Explosion" } ], "animations": [ { - "name": "ExplosionCenter", + "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, + "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.034, "sprites": [ { "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim1.png", + "image": "ExplosionCentre-Anim4", "points": [], "originPoint": { "name": "origine", @@ -1988,69 +2007,58 @@ "customCollisionMask": [ [ { - "x": 12, - "y": 12 + "x": 15, + "y": 15 }, { - "x": 36, - "y": 12 + "x": 45, + "y": 15 }, { - "x": 36, - "y": 36 + "x": 45, + "y": 45 }, { - "x": 12, - "y": 36 + "x": 15, + "y": 45 } ] ] - }, + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bonus", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "BombBonus", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ { "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim2.png", + "image": "BombeBonus-1.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim3.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, "centerPoint": { "automatic": true, "name": "centre", @@ -2060,32 +2068,44 @@ "customCollisionMask": [ [ { - "x": 12, - "y": 12 + "x": 16, + "y": 16 }, { - "x": 36, - "y": 12 + "x": 32, + "y": 16 }, { - "x": 36, - "y": 36 + "x": 32, + "y": 32 }, { - "x": 12, - "y": 36 + "x": 16, + "y": 32 } ] ] - }, + } + ] + } + ] + }, + { + "name": "FlameBonus", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ { "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", + "image": "assets\\FlammeBonus.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 6 + "y": 0 }, "centerPoint": { "automatic": true, @@ -2096,20 +2116,20 @@ "customCollisionMask": [ [ { - "x": 12, - "y": 12 + "x": 16, + "y": 16 }, { - "x": 36, - "y": 12 + "x": 32, + "y": 16 }, { - "x": 36, - "y": 36 + "x": 32, + "y": 32 }, { - "x": 12, - "y": 36 + "x": 16, + "y": 32 } ] ] @@ -2117,23 +2137,64 @@ ] } ] - }, + } + ] + }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Score", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "" + } + ], + "effects": [], + "behaviors": [], + "string": "Score", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon1", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ { - "name": "ExplosionArm", + "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, - "timeBetweenFrames": 0.034, + "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim1.png", + "hasCustomCollisionMask": false, + "image": "OieBlancheDroite.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 6 + "y": 0 }, "centerPoint": { "automatic": true, @@ -2141,35 +2202,41 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon2", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim2.png", + "hasCustomCollisionMask": false, + "image": "OieGriseDroite.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 6 + "y": 0 }, "centerPoint": { "automatic": true, @@ -2177,767 +2244,47 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ScoreIcon3", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "name": "PlayerNum", + "type": "string", + "value": "3" + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim3.png", + "hasCustomCollisionMask": false, + "image": "OieRoseDroite.png", "points": [], "originPoint": { "name": "origine", "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - } - ] - } - ] - }, - { - "name": "ExplosionFinger", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.034, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim2.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim3.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - } - ] - } - ] - }, - { - "name": "ExplosionCenterEnding", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionCentre-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - } - ] - } - ] - }, - { - "name": "ExplosionArmEnding", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionBras-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - } - ] - } - ] - }, - { - "name": "ExplosionFingerEnding", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - }, - { - "hasCustomCollisionMask": true, - "image": "ExplosionDoigt-Anim4.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 6 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 12, - "y": 12 - }, - { - "x": 36, - "y": 12 - }, - { - "x": 36, - "y": 36 - }, - { - "x": 12, - "y": 36 - } - ] - ] - } - ] - } - ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Bonus", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "BombBonus", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "BombeBonus-1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } - ] - } - ] - }, - { - "name": "FlameBonus", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "assets\\FlammeBonus.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } - ] - } - ] - } - ] - }, - { - "assetStoreId": "", - "bold": false, - "italic": false, - "name": "Score", - "smoothed": true, - "tags": "", - "type": "TextObject::Text", - "underlined": false, - "variables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "" - } - ], - "effects": [], - "behaviors": [], - "string": "Score", - "font": "", - "textAlignment": "", - "characterSize": 20, - "color": { - "b": 0, - "g": 0, - "r": 0 - } - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon1", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieBlancheDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon2", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieGriseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "ScoreIcon3", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "name": "PlayerNum", - "type": "string", - "value": "3" - } - ], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieRoseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 + "y": 0 }, "centerPoint": { "automatic": true, @@ -3132,6 +2479,86 @@ "width": 30, "animations": [] } + }, + { + "assetStoreId": "", + "name": "ParticleEmitter", + "tags": "", + "type": "ParticleEmitter3D::ParticleEmitter3D", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "Z": 30, + "Duration": 1, + "GravityTop": "Z+", + "StartSpeedMax": 100, + "SpayConeAngle": 360, + "StartSizeMin": 40, + "StartSizeMax": 80, + "EndScale": 0.25, + "StartSpeedMin": 100, + "LifespanMax": 0.75, + "LifespanMin": 0.5, + "Flow": 100 + }, + "childrenContent": { + "Particle": { + "adaptCollisionMaskAutomatically": true, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Image", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Image", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 64, + "y": 0 + }, + { + "x": 64, + "y": 64 + }, + { + "x": 0, + "y": 64 + } + ] + ] + } + ] + } + ] + } + ] + } + } } ], "events": [ @@ -3498,16 +2925,6 @@ "" ] }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Bomb", - "=", - "Bomb.Y() + 10" - ] - }, { "type": { "value": "ResetObjectTimer" @@ -3832,6 +3249,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "" ] } @@ -3885,6 +3303,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "" ] } @@ -4337,8 +3756,8 @@ "type": "BombExplosion::Bomb" }, { - "name": "ExplosionAnimator", - "type": "BombExplosion::ExplosionAnimator" + "name": "Explosion", + "type": "BombExplosion::Explosion" }, { "name": "Player", @@ -6433,7 +5852,7 @@ " */", " setEndScale(endScale) {", " /** @type Bezier */", - " const bezier = this.sizeOverLife.functions[0];", + " const bezier = this.sizeOverLife.size.functions[0][0];", " bezier.p[0] = 1;", " bezier.p[1] = gdjs.evtTools.common.lerp(1, endScale, 1 / 3);", " bezier.p[2] = gdjs.evtTools.common.lerp(1, endScale, 2 / 3);", @@ -11836,6 +11255,17 @@ "" ] }, + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::SetEndScale" + }, + "parameters": [ + "Object", + "=", + "Object.EndScale()", + "" + ] + }, { "type": { "value": "ParticleEmitter3D::ParticleEmitter3D::SetStartSpeedMin" @@ -22205,7 +21635,7 @@ "fullName": "Explode a bombe", "functionType": "Action", "name": "Explode", - "sentence": "_PARAM1_ explode into _PARAM2_ and is stopped by _PARAM3_", + "sentence": "_PARAM1_ explode into _PARAM2_ and _PARAM4_ and is stopped by _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Comment", @@ -22255,6 +21685,26 @@ "=", "Bomb.Variable(PlayerNum)" ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "ParticleEmitter", + "Explosion.CenterX()", + "Explosion.CenterY()", + "\"\"" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Explosion" + ] } ] }, @@ -22283,6 +21733,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "0", "1", "0", @@ -22298,6 +21749,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "180", "-1", "0", @@ -22313,6 +21765,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "90", "0", "1", @@ -22328,6 +21781,7 @@ "Bomb", "Explosion", "Obstacle", + "ParticleEmitter", "-90", "0", "-1", @@ -22368,6 +21822,12 @@ "description": "Obstacle", "name": "Obstacle", "type": "objectList" + }, + { + "description": "Particle Emitter", + "name": "ParticleEmitter", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "objectList" } ], "objectGroups": [] @@ -22378,7 +21838,7 @@ "functionType": "Action", "name": "CreateExplosionArm", "private": true, - "sentence": "Creat an explosion arm with _PARAM2_ from _PARAM1_ to _PARAM3_ in the direction _PARAM4_° (_PARAM5_ ; _PARAM6_)", + "sentence": "Creat an explosion arm with _PARAM2_ and _PARAM4_ from _PARAM1_ to _PARAM3_ in the direction _PARAM5_° (_PARAM6_ ; _PARAM7_)", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -22420,118 +21880,56 @@ "parameters": [ "", "Explosion", - "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 48 * Variable(iteration)", - "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 48 * Variable(iteration)", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)", "\"\"" ] }, { "type": { - "value": "SetAngle" + "value": "Create" }, "parameters": [ - "Explosion", - "=", - "GetArgumentAsNumber(\"ExplosionDirection\")" + "", + "ParticleEmitter", + "Explosion.CenterX()", + "Explosion.CenterY()", + "\"\"" ] }, { "type": { - "value": "ModVarObjet" + "value": "Create" }, "parameters": [ - "Explosion", - "PlayerNum", - "=", - "Bomb.Variable(PlayerNum)" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The arm squares (+11) are over the finger squares (+10) and the center squares are over the other 2 (+12). It makes a better continuity on the explosions sprites." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "iteration", - "<", - "Bomb.Variable(Range)" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Explosion", - "\"ExplosionArm\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Explosion", - "=", - "Explosion.Y() + 11" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "iteration", - "=", - "Bomb.Variable(Range)" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Explosion", - "\"ExplosionFinger\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Explosion", - "=", - "Explosion.Y() + 10" - ] - } + "", + "ParticleEmitter", + "Explosion.CenterX() - GetArgumentAsNumber(\"ExplosionDirectionX\") * 30", + "Explosion.CenterY() - GetArgumentAsNumber(\"ExplosionDirectionY\") * 30", + "\"\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" ] }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Explosion" + ] + } + ], + "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], @@ -22611,6 +22009,12 @@ "name": "Obstacle", "type": "objectList" }, + { + "description": "Praticle emitter", + "name": "ParticleEmitter", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "objectList" + }, { "description": "Explosion direction angle", "name": "ExplosionDirection", @@ -22632,207 +22036,29 @@ ], "eventsBasedBehaviors": [ { - "description": "Play the explosion animation and destroy itself.", - "fullName": "Explosion animator", - "name": "ExplosionAnimator", - "objectType": "Sprite", + "description": "", + "fullName": "", + "name": "Bomb", + "objectType": "Scene3D::Model3DObject", "eventsFunctions": [ { "fullName": "", "functionType": "Action", - "name": "doStepPreEvents", + "name": "onCreated", "sentence": "", "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The animation frame rate can only be constant. So, the animation is split to make the last frame last." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationEnded" - }, - "parameters": [ - "Object" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenter\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenterEnding\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArm\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArmEnding\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFinger\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFingerEnding\"" - ] - } - ] - } - ] - }, { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "AnimationEnded" + "value": "Scene3D::Model3DObject::SetRotationX" }, "parameters": [ - "Object" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionCenterEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionArmEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AnimationName" - }, - "parameters": [ - "Object", - "\"ExplosionFingerEnding\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Object", - "" - ] - } + "Object", + "=", + "20" ] } ] @@ -22842,13 +22068,13 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", + "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::ExplosionAnimator", + "supplementaryInformation": "BombExplosion::Bomb", "type": "behavior" } ], @@ -22861,8 +22087,8 @@ { "description": "", "fullName": "", - "name": "Bomb", - "objectType": "Scene3D::Model3DObject", + "name": "Explosion", + "objectType": "", "eventsFunctions": [ { "fullName": "", @@ -22876,12 +22102,11 @@ "actions": [ { "type": { - "value": "Scene3D::Model3DObject::SetRotationX" + "value": "ResetObjectTimer" }, "parameters": [ "Object", - "=", - "20" + "\"LifeTime\"" ] } ] @@ -22891,13 +22116,61 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::Bomb", + "supplementaryInformation": "BombExplosion::Explosion", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"LifeTime\"", + ">", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BombExplosion::Explosion", "type": "behavior" } ], diff --git a/examples/3d-bomberman/assets/ExplosionCentre-Anim5.png b/examples/3d-bomberman/assets/ExplosionCentre-Anim5.png new file mode 100644 index 0000000000000000000000000000000000000000..5c71b660a0e0e2922aa77127850103cdd99d54f0 GIT binary patch literal 1465 zcmV;q1xEUbP)Px)b4f%&RA@u(n^$t%Fc5~9PA^WJ-cA)=DM!dtu8=$@_sAjAd+%oElkqzcxBw{1 zkz~`D@rWh?5I?prmQ8zS(%MYp-)85|R(Nnc{9Z7#Gqb(j{}_I&N55Q`C*eV|vQGCe z;m*78`_s(cm*3kI0Urs2FNI%#Tn*R93KO$I>Nf=U%LqVj{4X<8KW)q#Gy8K0cxDG2 z3OhRlD~qCH?-B+3vVM*jDXV(@pe`(|2F1nN1tK@?o!hOo8)i*GU^dO{R5A;I1wMY1 zV`s$SeCT*O{C+jFkKuaTS!D`JT>vU}*1d0L_Q{z8T-zHv51MT&Q#j}@yJ%*TXU&OR zr<=gM*POoGzns}1C_{T?W+~|30a$vUje47aLw31WQFLX%P?nYg{HQmCt4j-KA5yq`&Dz}ShzsMGn_Ls{$^%1Gbl^*IHd$0%0OjWye65P56)oN7tlEj zvNl_=^ymOToU~J3j~#Grq8tmT>p2-1^&5>@uJB0sElA`zk7LQzWOzZOW#e(~+*9|1%i6 zfNNBd3wojHf@SQY)Q#VtGgE+unjWPq>+cU3ia|}q!#T5svYJ;>^6fs4tt)O&7IJejVENbPw|W@WxmT0~xP$mq=Nvou;4&6X-8Z*gpb zG;*K*HGtl8KudGi`~|s|*lUN)yMQr2L^m}#1SkM;I%<7~fK10|@cp3KzS{L zefv^hY>uBDhl7RjOjFkGk-6}Kg;jwV@?ItC6K#G7ci=$(~`;PQJphQ?2-8xl%|!k8Xe%+Jdxr-p-H)=Cx#M*WgWE;2`L+i zQrh#Q7J(PgT%vxSnvR;ASvpMXbBOQdBi-XtG#gsFmgZT<<5I~mo)_^z5)ds2nS zyR-sv?Tq&cfJb5amp%bdMVzV#YM%h)J{uJ*osKHl9 TJM$?z00000NkvXXu0mjfv7@Y` literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Image.png b/examples/3d-bomberman/assets/Image.png new file mode 100644 index 0000000000000000000000000000000000000000..9c73c253b985f002258d5c94d6c7b6f20af77919 GIT binary patch literal 466 zcmV;@0WJQCP)Px$j7da6RCr$Po7)n@AP7Y3|9`Zdwv&vpUH~yc*}m49WRD9flJL6e7h{Z^M}-gq zXS{Umw1;p7_XNxWq6$D;bPb9o3>5%(3D1FOfEWVslyFTDVgOdeA26hD5CO0zegpyw zfK}lmAwdSPig>OYNB~w7&wvKyACZ%k1}DP;|g<;#&~@0PHHh z1_1!l9I*TBmt1ghfNKC=#OE$J9RL8#qGhj!XZ`=9e(-gGx7km_007_s?;+qd{?9xB z0M3@bzXB>800;1{t*!6yxbGJb0tf+w0IPL{8)MeTBL}!of;bI&KMleGaKLY&@|FxQ zMNt5N1AK)++Ea+T!F;d2dos*BO3@!sI<4*Mf>J+mwM%R_2(@Nvw8^y!7Q48h)k=?6 zSxU)jRVPqBqUbu{0JIteiujK-6*K`MS2 zz|$Z`gb#m)-otfn35%Qmf&2&8~54(AO)p^Q~&?~07*qo IM6N<$f}YjBt^fc4 literal 0 HcmV?d00001 From 32ed410940a17571a6313a729e1c963d4b33eb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 7 Aug 2023 21:06:39 +0200 Subject: [PATCH 06/53] All player movement. --- examples/3d-bomberman/3d-bomberman.json | 563 +++++++++++++++++------- 1 file changed, 404 insertions(+), 159 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 58610783c..2666120ff 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -722,6 +722,23 @@ "name": "BlockRoundedLong" } ] + }, + { + "name": "PlayerModel", + "objects": [ + { + "name": "BlueBunny" + }, + { + "name": "PurpleBunny" + }, + { + "name": "OrangeBunny" + }, + { + "name": "PinkBunny" + } + ] } ], "variables": [], @@ -1041,7 +1058,12 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "PlayerModel", + "type": "Player::PlayerModel" + } + ], "content": { "centerLocation": "ModelOrigin", "depth": 120, @@ -1265,7 +1287,7 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, + "hasCustomCollisionMask": false, "image": "assets\\Purple.png", "points": [], "originPoint": { @@ -1279,26 +1301,7 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] + "customCollisionMask": [] } ] } @@ -1313,7 +1316,12 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "PlayerModel", + "type": "Player::PlayerModel" + } + ], "content": { "centerLocation": "ModelOrigin", "depth": 120, @@ -1537,7 +1545,7 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, + "hasCustomCollisionMask": false, "image": "assets\\Orange.png", "points": [], "originPoint": { @@ -1551,26 +1559,7 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] + "customCollisionMask": [] } ] } @@ -1585,7 +1574,12 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "PlayerModel", + "type": "Player::PlayerModel" + } + ], "content": { "centerLocation": "ModelOrigin", "depth": 120, @@ -1809,7 +1803,7 @@ "timeBetweenFrames": 0.08, "sprites": [ { - "hasCustomCollisionMask": true, + "hasCustomCollisionMask": false, "image": "assets\\Pink.png", "points": [], "originPoint": { @@ -1823,26 +1817,7 @@ "x": 0, "y": 0 }, - "customCollisionMask": [ - [ - { - "x": 9, - "y": 6 - }, - { - "x": 57, - "y": 6 - }, - { - "x": 57, - "y": 54 - }, - { - "x": 9, - "y": 54 - } - ] - ] + "customCollisionMask": [] } ] } @@ -1857,7 +1832,12 @@ "type": "Scene3D::Model3DObject", "variables": [], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "PlayerModel", + "type": "Player::PlayerModel" + } + ], "content": { "centerLocation": "ModelOrigin", "depth": 120, @@ -2724,31 +2704,6 @@ } ] }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::SetAnimationName" - }, - "parameters": [ - "BlueBunny", - "=", - "\"Run\"" - ] - } - ] - }, { "colorB": 228, "colorG": 176, @@ -3632,77 +3587,169 @@ "parameters": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetCenter" - }, - "parameters": [ - "BlueBunny", - "=", - "Player1.CenterX()", - "=", - "Player1.CenterY() + 16" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "BlueBunny", - "Angle", - "+", - "sign(AngleDifference(Player1.TopDownMovement::Angle(), BlueBunny.Variable(Angle))) * min(abs(AngleDifference(Player1.TopDownMovement::Angle(), BlueBunny.Variable(Angle))), 720 * TimeDelta())" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "BlueBunny", - "=", - "BlueBunny.Variable(Angle)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationY" - }, - "parameters": [ - "BlueBunny", - "=", - "0" - ] - }, + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Players skin", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "Scene3D::Model3DObject::SetRotationX" - }, - "parameters": [ - "BlueBunny", - "=", - "0" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Player1", + "BlueBunny" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Player2", + "PurpleBunny" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Player3", + "OrangeBunny" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Player4", + "PinkBunny" + ] + } ] }, { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundX" - }, - "parameters": [ - "BlueBunny", - "45" + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "PlayerModel", + "Player", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "PlayerModel", + "=", + "Player.CenterX()", + "=", + "Player.CenterY() + 16" + ] + }, + { + "type": { + "value": "Player::PlayerModel::SetMovementAngle" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "=", + "Player.TopDownMovement::Angle()", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "PlayerModel", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "PlayerModel", + "=", + "\"Run\"" + ] + } + ] + } ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] + ], + "parameters": [] } ], "layers": [ @@ -3763,6 +3810,11 @@ "name": "Player", "type": "Player::Player" }, + { + "name": "PlayerModel", + "type": "Player::PlayerModel", + "MovementAngle": 90 + }, { "name": "RemapForTopdown", "type": "BehaviorRemapper::RemapForTopdown" @@ -5516,7 +5568,16 @@ ] } ], - "actions": [], + "actions": [ + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + } + ], "events": [ { "type": "BuiltinCommonInstructions::Comment", @@ -5701,7 +5762,7 @@ "name": "ParticleEmitter3D", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", "shortDescription": "Display a large number of particles to create visual effects.", - "version": "0.0.1", + "version": "0.0.2", "description": [ "Particle emitters can be used to display:", "- Fire", @@ -22650,6 +22711,190 @@ ], "propertyDescriptors": [], "sharedPropertyDescriptors": [] + }, + { + "description": "", + "fullName": "", + "name": "PlayerModel", + "objectType": "Scene3D::Model3DObject", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Angle", + "+", + "sign(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))) * min(abs(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))), 720 * TimeDelta())" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(Angle)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "Object", + "45" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the movementAngle of the object.", + "fullName": "MovementAngle", + "functionType": "ExpressionAndCondition", + "group": "PlayerModel configuration", + "name": "MovementAngle", + "sentence": "the movementAngle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMovementAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MovementAngle", + "name": "SetMovementAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "90", + "type": "Number", + "unit": "DegreeAngle", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MovementAngle" + } + ], + "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] From 4618369a1c451b0ff0a09617b47e1e1bc66274d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 8 Aug 2023 01:48:25 +0200 Subject: [PATCH 07/53] Add a stretch action. --- examples/3d-bomberman/3d-bomberman.json | 135 ++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 2666120ff..dd0fd615a 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -22898,6 +22898,141 @@ } ], "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "Squash and stretch 3D", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+", + "name": "SquashAndStretch3D", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchZ", + "name": "SetStretchZ", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Volume", + "=", + "Object.ScaleX() * Object.ScaleY() * Object.ScaleZ()" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleZ" + }, + "parameters": [ + "Object", + "=", + "sqrt(Variable(Volume) * GetArgumentAsNumber(\"Value\"))" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "SurfaceRatio", + "=", + "sqrt(Variable(Volume) / GetArgumentAsNumber(\"Value\")) / (Object.ScaleX() * Object.ScaleY())" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleX" + }, + "parameters": [ + "Object", + "*", + "Variable(SurfaceRatio)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleY" + }, + "parameters": [ + "Object", + "*", + "Variable(SurfaceRatio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ExpressionAndCondition", + "name": "StretchZ", + "sentence": "Change the stretch on Z axis of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ScaleZ() / (Object.ScaleX() * Object.ScaleY())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] } ], "externalLayouts": [ From 44d987445eb139a9557abb7a2ea9dbedcaac69e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 14 Aug 2023 09:42:07 +0200 Subject: [PATCH 08/53] Update the extension. --- examples/3d-bomberman/3d-bomberman.json | 3023 +++++++++++++++++++++-- 1 file changed, 2861 insertions(+), 162 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index dd0fd615a..7d60b3ff3 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2332,7 +2332,12 @@ "behaviors": [ { "name": "Bomb", - "type": "BombExplosion::Bomb" + "type": "BombExplosion::Bomb", + "Tween3D": "Tween3D" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -3784,7 +3789,7 @@ "name": "Effect", "doubleParameters": { "elevation": 90, - "intensity": 1.5, + "intensity": 1, "rotation": 0 }, "stringParameters": { @@ -3838,6 +3843,10 @@ { "name": "TopDownMovement", "type": "TopDownMovementBehavior::TopDownMovementBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ] }, @@ -5724,34 +5733,2770 @@ "object": "Player", "conditions": [ { - "type": { - "value": "VarObjet" - }, + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "3D tween (experimental)", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+", + "name": "Tween3D", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", + "shortDescription": "Smoothly animate scale and rotation of 3d models.", + "version": "0.0.1", + "description": "Change models proportions and orientation over time to make smooth animations.", + "tags": [ + "tween", + "smooth", + "interpolation" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ExpressionAndCondition", + "name": "StretchZ", + "sentence": "the stretch on Z axis of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ScaleZ() / sqrt(Object.ScaleX() * Object.ScaleY())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchZ", + "name": "SetStretchZ", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Tween3D::ScaleVolume(Object)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleZ" + }, + "parameters": [ + "Object", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.ScaleZ()) / (Object.ScaleX() * Object.ScaleY()))" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleX" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleY" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", + "fullName": "Stretch on Y axis", + "functionType": "ExpressionAndCondition", + "name": "StretchY", + "sentence": "the stretch on Y axis of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ScaleY() / sqrt(Object.ScaleX() * Object.ScaleZ())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchY", + "name": "SetStretchY", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Tween3D::ScaleVolume(Object)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleY" + }, + "parameters": [ + "Object", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.ScaleZ()) / (Object.ScaleX() * Object.ScaleY()))" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleX" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleZ" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the scale volume.", + "fullName": "Scale volume", + "functionType": "ExpressionAndCondition", + "name": "ScaleVolume", + "sentence": "the scale volume of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ScaleX() * Object.ScaleY() * Object.ScaleZ()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "ScaleVolume", + "name": "SetScaleVolume", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Ratio", + "=", + "pow(GetArgumentAsNumber(\"Value\") / Tween3D::ScaleVolume(Object), 1 / 3)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleZ" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleX" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleY" + }, + "parameters": [ + "Object", + "*", + "Variable(_Tween3D.Ratio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "objectList" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Smoothly animate scale and rotation of 3d models.", + "fullName": "3D tween (experimental)", + "name": "Tween3D", + "objectType": "Scene3D::Model3DObject", + "eventsFunctions": [ + { + "description": "Tweens an object stretch Z from its current value to a new one. The stretch can never be 0 or less.", + "fullName": "Tween stretch Z", + "functionType": "Action", + "group": "Size", + "name": "TweenStretchZ", + "sentence": "Tween the stretch Z of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"StretchZ\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch on Z axis", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens an object stretch Y from its current value to a new one. The stretch can never be 0 or less.", + "fullName": "Tween stretch Y", + "functionType": "Action", + "group": "Size", + "name": "TweenStretchY", + "sentence": "Tween the stretch Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"StretchY\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch on Y axis", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens an object scale volume from its current value to a new one. The scale volume can never be 0 or less.", + "fullName": "Tween scale volume", + "functionType": "Action", + "group": "Size", + "name": "TweenScaleVolume", + "sentence": "Tween the scale volume of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"ScaleVolume\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens an object rotation X from its current value to a new one.", + "fullName": "Tween rotation X", + "functionType": "Action", + "group": "Size", + "name": "TweenRotationX", + "sentence": "Tween the rotation X of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"RotationX\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Rotation X in degree", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens an object rotation Y from its current value to a new one.", + "fullName": "Tween rotation Y", + "functionType": "Action", + "group": "Size", + "name": "TweenRotationY", + "sentence": "Tween the rotation Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"RotationY\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Rotation Y in degree", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Index", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.VariableChildCount(_Tween3D.Tweens)", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "_Tween3D.Identifier", + "=", + "Object.Behavior::TweenIdentifier(Variable(_Tween3D.Index))" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::IsPlaying" + }, + "parameters": [ + "Object", + "Behavior", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::Time(VariableString(_Tween3D.Identifier)) + TimeDelta() * LayerTimeScale(Object.Layer()), Object.Behavior::Duration(VariableString(_Tween3D.Identifier)))", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"StretchZ\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::SetStretchZ" + }, + "parameters": [ + "", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"StretchY\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::SetStretchY" + }, + "parameters": [ + "", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"ScaleVolume\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::SetScaleVolume" + }, + "parameters": [ + "", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RotationX\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RotationY\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Index", + "+", + "1" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the tweened value", + "fullName": "Tweened value", + "functionType": "ExpressionAndCondition", + "name": "TweenedValue", + "private": true, + "sentence": "the value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Tween::Ease(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the exponent-tweened value", + "fullName": "Tweened value (exponent)", + "functionType": "ExpressionAndCondition", + "name": "ExponentTweenedValue", + "private": true, + "sentence": "the exponent-tweened value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "exp(Tween::Ease(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), log(Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier))), log(Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier))), Object.Behavior::Progress(VariableString(_Tween3D.Identifier))))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "Start tween", + "functionType": "Action", + "name": "StartTween", + "private": true, + "sentence": "Tween the _PARAM6_ of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::InvalidateTweenIdentifiers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Type\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Easing\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetTargetedValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsString" + }, + "parameters": [ + "\"Type\"", + "=", + "\"StretchZ\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween3D::StretchZ(Object)", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsString" + }, + "parameters": [ + "\"Type\"", + "=", + "\"StretchY\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween3D::StretchY(Object)", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsString" + }, + "parameters": [ + "\"Type\"", + "=", + "\"ScaleVolume\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween3D::ScaleVolume(Object)", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsString" + }, + "parameters": [ + "\"Type\"", + "=", + "\"RotationX\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.RotationX()", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsString" + }, + "parameters": [ + "\"Type\"", + "=", + "\"RotationY\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.RotationY()", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + }, + { + "description": "Type", + "name": "Type", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "the tween type", + "fullName": "Type", + "functionType": "ExpressionAndCondition", + "name": "Type", + "private": true, + "sentence": "the type of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.VariableString(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Type)" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Type", + "name": "SetType", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjetTxt" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Type", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the elapsed time", + "fullName": "Time", + "functionType": "ExpressionAndCondition", + "name": "Time", + "private": true, + "sentence": "the elapsed time of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Variable(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Time)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Time", + "name": "SetTime", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Time", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the tween duration", + "fullName": "Duration", + "functionType": "ExpressionAndCondition", + "name": "Duration", + "private": true, + "sentence": "the duration of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Variable(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Duration)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Duration", + "name": "SetDuration", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Duration", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the tween easing", + "fullName": "Easing", + "functionType": "ExpressionAndCondition", + "name": "Easing", + "private": true, + "sentence": "the easing of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.VariableString(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Easing)" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Easing", + "name": "SetEasing", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjetTxt" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].Easing", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the tween initial value", + "fullName": "Initial value", + "functionType": "ExpressionAndCondition", + "name": "InitialValue", + "private": true, + "sentence": "the initial value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Variable(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].InitialValue)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "InitialValue", + "name": "SetInitialValue", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].InitialValue", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the tween targeted value", + "fullName": "Targeted value", + "functionType": "ExpressionAndCondition", + "name": "TargetedValue", + "private": true, + "sentence": "the targeted value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Variable(_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].TargetedValue)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the tween is paused", + "fullName": "Paused", + "functionType": "Condition", + "name": "IsPaused", + "private": true, + "sentence": "The tween _PARAM2_ of _PARAM0_ is paused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].IsPaused", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Change if the tween is paused", + "fullName": "Paused", + "functionType": "Action", + "name": "SetPaused", + "private": true, + "sentence": "The tween _PARAM2_ of _PARAM0_ is paused: _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"IsPaused\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].IsPaused", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"IsPaused\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].IsPaused", + "False" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Paused", + "name": "IsPaused", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "TargetedValue", + "name": "SetTargetedValue", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens[GetArgumentAsString(\"TweenIdentifier\")].TargetedValue", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Stop the running tween animation.", + "fullName": "Stop a tween", + "functionType": "Action", + "name": "StopTween", + "sentence": "Stop the tween _PARAM2_ on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Duration(GetArgumentAsString(\"TweenIdentifier\"))", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"JumpToEnd\"" + ] + } + ], + "actions": [] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Jump to end", + "name": "JumpToEnd", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Pause the running tween animation.", + "fullName": "Pause a tween", + "functionType": "Action", + "name": "PauseTween", + "sentence": "Pause the tween _PARAM2_ on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetPaused" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "yes", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Resume the tween animation.", + "fullName": "Resume a tween", + "functionType": "Action", + "name": "ResumeTween", + "sentence": "Resume the tween _PARAM2_ on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetPaused" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "no", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Remove the tween animation from the object.", + "fullName": "Remove a tween", + "functionType": "Action", + "name": "RemoveTween", + "sentence": "Remove the tween _PARAM2_ from _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ObjectVariableRemoveChild" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens", + "GetArgumentAsString(\"TweenIdentifier\")" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::InvalidateTweenIdentifiers" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the tween animation exists.", + "fullName": "Tween exists", + "functionType": "Condition", + "name": "Exists", + "sentence": "Tween _PARAM2_ on _PARAM0_ exists", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableChildExists" + }, + "parameters": [ + "Object", + "_Tween3D.Tweens", + "GetArgumentAsString(\"TweenIdentifier\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the tween animation is currently playing.", + "fullName": "Tween is playing", + "functionType": "Condition", + "name": "IsPlaying", + "sentence": "Tween _PARAM2_ on _PARAM0_ is playing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "Tween3D::Tween3D::HasFinished" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "Tween3D::Tween3D::IsPaused" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the tween animation has finished playing.", + "fullName": "Tween finished playing", + "functionType": "Condition", + "name": "HasFinished", + "sentence": "Tween _PARAM2_ on _PARAM0_ has finished playing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Progress" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "1", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "the progress of a tween (between 0.0 and 1.0).", + "fullName": "Progress of a tween", + "functionType": "ExpressionAndCondition", + "name": "Progress", + "sentence": "the progress of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Exists" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::Time(GetArgumentAsString(\"TweenIdentifier\")) / Object.Behavior::Duration(GetArgumentAsString(\"TweenIdentifier\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + } + ], + "objectGroups": [] + }, + { + "description": "Return the tween identifier for a given index.", + "fullName": "Tween identifier", + "functionType": "StringExpression", + "name": "TweenIdentifier", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "const childIndex = eventsFunctionContext.getArgument(\"ChildIndex\");", + "", + "object.__Tween3D = object.__Tween3D || {};", + "object.__Tween3D.variableIdentifiers =", + " object.__Tween3D.variableIdentifiers", + " || Object.keys(object.getVariables().get(\"_Tween3D\").getChild(\"Tweens\").getAllChildren());", + "", + "eventsFunctionContext.returnValue = object.__Tween3D.variableIdentifiers[childIndex];", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Child index", + "name": "ChildIndex", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Invalidate tween identifiers.", + "fullName": "Invalidate tween identifiers", + "functionType": "Action", + "name": "InvalidateTweenIdentifiers", + "private": true, + "sentence": "Invalidate tween identifiers of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.__Tween3D = object.__Tween3D || {};", + "object.__Tween3D.variableIdentifiers = null;", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] } ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] - } - ] + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "", "category": "Visual effect", @@ -11081,6 +13826,8 @@ "", "particleSystem.emitter.rotation.order = 'ZYX';", "particleSystem.emitter.name = object.getName() + object.getNameId();", + "particleSystem.emitter.position.x = object.getX();", + "particleSystem.emitter.position.y = -object.getY();", "batchSystem.addSystem(particleSystem);", "", "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", @@ -22123,6 +24870,80 @@ ] } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::TweenStretchZ" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Squatch\"", + "0.25", + "0.5", + "\"linear\"", + "" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "0.5" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenStretchZ" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Unsquatch\"", + "1", + "4", + "\"elastic\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::SetScaleVolume" + }, + "parameters": [ + "", + "=", + "0.125", + "Object", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenScaleVolume" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Grow\"", + "1", + "2", + "\"linear\"", + "" + ] + } + ] } ], "parameters": [ @@ -22142,7 +24963,20 @@ "objectGroups": [] } ], - "propertyDescriptors": [], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "3D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween3D::Tween3D" + ], + "hidden": false, + "name": "Tween3D" + } + ], "sharedPropertyDescriptors": [] }, { @@ -22898,141 +25732,6 @@ } ], "eventsBasedObjects": [] - }, - { - "author": "", - "category": "", - "extensionNamespace": "", - "fullName": "Squash and stretch 3D", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+", - "name": "SquashAndStretch3D", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", - "shortDescription": "", - "version": "", - "description": "", - "tags": [], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [ - { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "StretchZ", - "name": "SetStretchZ", - "sentence": "Change the stretch on Z axis of ", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "Volume", - "=", - "Object.ScaleX() * Object.ScaleY() * Object.ScaleZ()" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleZ" - }, - "parameters": [ - "Object", - "=", - "sqrt(Variable(Volume) * GetArgumentAsNumber(\"Value\"))" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "SurfaceRatio", - "=", - "sqrt(Variable(Volume) / GetArgumentAsNumber(\"Value\")) / (Object.ScaleX() * Object.ScaleY())" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleX" - }, - "parameters": [ - "Object", - "*", - "Variable(SurfaceRatio)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleY" - }, - "parameters": [ - "Object", - "*", - "Variable(SurfaceRatio)" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", - "type": "objectList" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ExpressionAndCondition", - "name": "StretchZ", - "sentence": "Change the stretch on Z axis of _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.ScaleZ() / (Object.ScaleX() * Object.ScaleY())" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", - "type": "objectList" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [], - "eventsBasedObjects": [] } ], "externalLayouts": [ From 230e42de4ef46345114ba0377b5673fd2596a55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 14 Aug 2023 21:33:33 +0200 Subject: [PATCH 09/53] Animate bombs when they are dropped. --- examples/3d-bomberman/3d-bomberman.json | 1074 +++++++++++++++++++---- examples/3d-bomberman/assets/Bomb.png | Bin 0 -> 200 bytes 2 files changed, 883 insertions(+), 191 deletions(-) create mode 100644 examples/3d-bomberman/assets/Bomb.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 7d60b3ff3..ee274aa08 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -606,6 +606,15 @@ "name": "Image", "smoothed": true, "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Bomb.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "Bomb", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -1944,6 +1953,112 @@ ] } }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Bomb", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Bomb", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 64, + "y": 0 + }, + { + "x": 64, + "y": 64 + }, + { + "x": 0, + "y": 64 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", + "name": "BombModel", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "BombAnimator", + "type": "BombExplosion::BombAnimator", + "Tween3D": "Tween3D", + "Tween": "Tween" + }, + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": true, + "IsDestroyedWithParent": true + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" + } + ], + "content": { + "centerLocation": "ObjectCenter", + "depth": 82.77, + "height": 60, + "keepAspectRatio": false, + "materialType": "StandardWithoutMetalness", + "modelResourceName": "Bomb.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 0, + "width": 60, + "animations": [] + } + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -2322,39 +2437,6 @@ } ] }, - { - "assetStoreId": "b1eeab64f8aaf7a51a61e308980d490144c452c25901fd4075cc46f9e05a2395", - "name": "Bomb", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [ - { - "name": "Bomb", - "type": "BombExplosion::Bomb", - "Tween3D": "Tween3D" - }, - { - "name": "Tween3D", - "type": "Tween3D::Tween3D" - } - ], - "content": { - "centerLocation": "ObjectCenter", - "depth": 82.77, - "height": 60, - "keepAspectRatio": false, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "Bomb.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 0, - "width": 60, - "animations": [] - } - }, { "assetStoreId": "cc824d9e1c33714ecde03e236bc3edc83ea437cb2de23060abd030fbe3d83eea", "name": "Rock", @@ -2594,16 +2676,6 @@ "", "" ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationX" - }, - "parameters": [ - "Bomb", - "=", - "20" - ] } ], "events": [ @@ -2958,6 +3030,49 @@ "IsNew", "True" ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "BombModel", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "BombModel", + "=", + "Bomb.CenterX()", + "=", + "Bomb.CenterY()" + ] + }, + { + "type": { + "value": "Sticker::Sticker::Stick" + }, + "parameters": [ + "BombModel", + "Sticker", + "Bomb", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Bomb" + ] } ] } @@ -3804,8 +3919,8 @@ ], "behaviorsSharedData": [ { - "name": "Bomb", - "type": "BombExplosion::Bomb" + "name": "BombAnimator", + "type": "BombExplosion::BombAnimator" }, { "name": "Explosion", @@ -3828,6 +3943,10 @@ "name": "Respawn", "type": "Respawn::Respawn" }, + { + "name": "Sticker", + "type": "Sticker::Sticker" + }, { "name": "TopDownCornerSlider", "type": "TopDownCornerSliding::TopDownCornerSlider" @@ -3844,6 +3963,10 @@ "name": "TopDownMovement", "type": "TopDownMovementBehavior::TopDownMovementBehavior" }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + }, { "name": "Tween3D", "type": "Tween3D::Tween3D" @@ -5601,166 +5724,692 @@ "comment": "Random bonus creation" }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "RandomInRange(1,4)", + "<=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "D8H", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Stick objects to others", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN0aWNrZXItb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik01LjUgMkMzLjYgMiAyIDMuNiAyIDUuNVYxOC41QzIgMjAuNCAzLjYgMjIgNS41IDIySDE2TDIyIDE2VjUuNUMyMiAzLjYgMjAuNCAyIDE4LjUgMkg1LjVNNS44IDRIMTguM0MxOS4zIDQgMjAuMSA0LjggMjAuMSA1LjhWMTVIMTguNkMxNi43IDE1IDE1LjEgMTYuNiAxNS4xIDE4LjVWMjBINS44QzQuOCAyMCA0IDE5LjIgNCAxOC4yVjUuOEM0IDQuOCA0LjggNCA1LjggNCIgLz48L3N2Zz4=", + "name": "Sticker", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sticker-outline.svg", + "shortDescription": "Make objects follow the position and rotation of the object they are stuck to.", + "version": "0.4.0", + "description": [ + "This extension can be useful to:", + "* Stick accessories to moving objects", + "* Animate a skeleton", + "* Delete an object with another one", + "", + "An example allows to check it out ([open the project online](https://editor.gdevelop.io/?project=example://stick-objects))." + ], + "origin": { + "identifier": "Sticker", + "name": "gdevelop-extension-store" + }, + "tags": [ + "sticker", + "stick", + "follow", + "skeleton", + "joint", + "pin", + "bind", + "glue", + "tie", + "attach", + "hold", + "paste", + "wear" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Check if the object is stuck to another object.", + "fullName": "Is stuck to another object", + "functionType": "Condition", + "name": "IsStuck", + "sentence": "_PARAM1_ is stuck to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const stickerBehaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "/** @type {Hashtable} */", + "const stickerObjectsLists = eventsFunctionContext.getObjectsLists(\"Object\");", + "/** @type {Hashtable} */", + "const basisObjectsLists = eventsFunctionContext.getObjectsLists(\"BasisObject\");", + "", + "eventsFunctionContext.returnValue = gdjs.evtTools.object.twoListsTest(", + " (stickerObject, basisObject, stickerBehaviorName) => {", + " const behavior = stickerObject.getBehavior(stickerBehaviorName);", + " return behavior.basisObject === basisObject;", + " },", + " stickerObjectsLists,", + " basisObjectsLists,", + " false,", + " stickerBehaviorName", + ");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Sticker", + "name": "Object", + "type": "objectList" + }, + { + "description": "Sticker behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + }, + { + "description": "Basis", + "name": "BasisObject", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Stick the object to another. Use the action to stick the object, or unstick it later.", + "fullName": "Sticker", + "name": "Sticker", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "// Set up the scene sticker objects list - if not done already.", + "runtimeScene.__allStickers = runtimeScene.__allStickers || new Set();", + "", + "// Set up the behavior extra methods - if not done already.", + "const prototype = Object.getPrototypeOf(behavior);", + "if (!prototype.updateRelativeCoordinates) {", + " // Unstick from deleted objects.", + " gdjs.registerObjectDeletedFromSceneCallback(function (runtimeScene, deletedObject) {", + " const allStickers = runtimeScene.__allStickers;", + " if (!allStickers) return;", + "", + " for (const sticker of allStickers) {", + " if (sticker.basisObject === deletedObject) {", + " if (sticker._getIsDestroyedWithParent()) {", + " sticker.owner.deleteFromScene(runtimeScene);", + " }", + " sticker.basisObject = null;", + " }", + " }", + " });", + "", + " /**", + " * Update the coordinates in the basisObject basis.", + " * ", + " * It uses the basisObject coordinates from the previous frame.", + " * This way, the sticker can move relatively to it and still", + " * follow basisObject.", + " * ", + " * @param {gdjs.RuntimeObject} basisObject", + " */", + " prototype.updateRelativeCoordinates = function (basisObject) {", + " const object = this.owner;", + "", + " // Update relative coordinates", + " this.relativeX = object.getX() - this.basisOldX;", + " this.relativeY = object.getY() - this.basisOldY;", + " if (!this._getOnlyFollowPosition()) {", + " this.relativeAngle = object.getAngle() - this.basisOldAngle;", + " this.relativeWidth = object.getWidth() / this.basisOldWidth;", + " this.relativeHeight = object.getHeight() / this.basisOldHeight;", + " const deltaX = object.getCenterXInScene() - this.basisOldCenterXInScene;", + " const deltaY = object.getCenterYInScene() - this.basisOldCenterYInScene;", + " const angle = this.basisOldAngle * Math.PI / 180;", + " this.relativeRotatedX = (deltaX * Math.cos(angle) + deltaY * Math.sin(angle)) / this.basisOldWidth;", + " this.relativeRotatedY = (-deltaX * Math.sin(angle) + deltaY * Math.cos(angle)) / this.basisOldHeight;", + "", + " // Save initial values to avoid calculus and rounding errors", + " this.basisOriginalWidth = basisObject.getWidth();", + " this.basisOriginalHeight = basisObject.getHeight();", + " this.basisOriginalAngle = basisObject.getAngle();", + " }", + " }", + "", + " /**", + " * Copy the coordinates to use it the next frame.", + " * @param basisObject {gdjs.RuntimeObject}", + " */", + " prototype.updateOldCoordinates = function (basisObject) {", + " const object = this.owner;", + "", + " this.ownerOldX = object.getX();", + " this.ownerOldY = object.getY();", + "", + " this.basisOldX = basisObject.getX();", + " this.basisOldY = basisObject.getY();", + "", + " if (!this._getOnlyFollowPosition()) {", + " this.ownerOldAngle = object.getAngle();", + " this.ownerOldWidth = object.getWidth();", + " this.ownerOldHeight = object.getHeight();", + "", + " this.basisOldAngle = basisObject.getAngle();", + " this.basisOldWidth = basisObject.getWidth();", + " this.basisOldHeight = basisObject.getHeight();", + " this.basisOldCenterXInScene = basisObject.getCenterXInScene();", + " this.basisOldCenterYInScene = basisObject.getCenterYInScene();", + " }", + " }", + " /**", + " * Follow the basisObject (called in doStepPostEvents).", + " * ", + " * This method is also called by children to ensure", + " * parents are updated first.", + " */", + " prototype.followBasisObject = function () {", + " if (this.followingDoneThisFrame) {", + " return;", + " }", + " this.followingDoneThisFrame = true;", + " /** @type {gdjs.RuntimeObject} */", + " const basisObject = this.basisObject;", + " if (basisObject) {", + " // If the behavior on the basis object has a different name,", + " // the objects will still follow their basis objects", + " // but frame delays could happen.", + " if (basisObject.hasBehavior(behaviorName)) {", + " const basisBehavior = basisObject.getBehavior(behaviorName);", + " if (basisBehavior.type === this.type) {", + " // Follow parents 1st to avoid frame delays", + " basisBehavior.followBasisObject();", + " }", + " }", + "", + " const object = this.owner;", + "", + " if (this._getOnlyFollowPosition()) {", + " if (object.getX() !== this.ownerOldX", + " || object.getY() !== this.ownerOldY) {", + " this.updateRelativeCoordinates(basisObject);", + " }", + "", + " if (this.basisOldX !== basisObject.getX() ||", + " this.basisOldY !== basisObject.getY()) {", + " object.setPosition(", + " basisObject.getX() + this.relativeX,", + " basisObject.getY() + this.relativeY);", + " }", + " } else {", + " if (object.getX() !== this.ownerOldX", + " || object.getY() !== this.ownerOldY", + " || object.getAngle() !== this.ownerOldAngle", + " || object.getWidth() !== this.ownerOldWidth", + " || object.getHeight() !== this.ownerOldHeight) {", + " this.updateRelativeCoordinates(basisObject);", + " }", + "", + " // Follow basisObject", + " if (basisObject.getAngle() === this.basisOriginalAngle && this.basisOriginalAngle === 0) {", + " if (basisObject.getWidth() === this.basisOriginalWidth ||", + " basisObject.getHeight() === this.basisOriginalHeight) {", + " if (this.basisOldX !== basisObject.getX() ||", + " this.basisOldY !== basisObject.getY()) {", + " object.setPosition(", + " basisObject.getX() + this.relativeX,", + " basisObject.getY() + this.relativeY);", + " }", + " } else {", + " object.setPosition(", + " basisObject.getX() + this.relativeRotatedX * basisObject.getWidth(),", + " basisObject.getY() + this.relativeRotatedY * basisObject.getHeight());", + " }", + " } else {", + " object.setAngle(basisObject.getAngle() + this.relativeAngle);", + "", + " const deltaX = this.relativeRotatedX * basisObject.getWidth();", + " const deltaY = this.relativeRotatedY * basisObject.getHeight();", + " const angle = -basisObject.getAngle() * Math.PI / 180;", + " object.setX(basisObject.getCenterXInScene() + object.getX() - object.getCenterXInScene() + deltaX * Math.cos(angle) + deltaY * Math.sin(angle));", + " object.setY(basisObject.getCenterYInScene() + object.getY() - object.getCenterYInScene() - deltaX * Math.sin(angle) + deltaY * Math.cos(angle));", + " }", + " // Unproportional dimensions changes won't work as expected", + " // if the object angle is not null but nothing more can be done", + " // because there is no full affine transformation on objects.", + " if (basisObject.getWidth() !== this.basisOriginalWidth) {", + " object.setWidth(this.relativeWidth * basisObject.getWidth());", + " }", + " if (basisObject.getHeight() !== this.basisOriginalHeight) {", + " object.setHeight(this.relativeHeight * basisObject.getHeight());", + " }", + " }", + "", + " this.updateOldCoordinates(basisObject);", + " }", + " }", + "}", + "", + "// Register this object as a sticker.", + "runtimeScene.__allStickers.add(behavior);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.followingDoneThisFrame = false;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.followBasisObject();" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stick on another object.", + "fullName": "Stick", + "functionType": "Action", + "name": "Stick", + "sentence": "Stick _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const basisObjects = eventsFunctionContext.getObjects(\"BasisObject\");", + "", + "if (basisObjects.length === 0) return;", + "const basisObject = basisObjects[0];", + "", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.basisObject = basisObject;", + "behavior.updateOldCoordinates(basisObject);", + "behavior.updateRelativeCoordinates(basisObject);", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + }, + { + "description": "Object to stick to", + "name": "BasisObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Unstick from the object it was stuck to.", + "fullName": "Unstick", + "functionType": "Action", + "name": "Unstick", + "sentence": "Unstick _PARAM0_", + "events": [ { - "type": { - "value": "Egal" - }, - "parameters": [ - "RandomInRange(1,4)", - "<=", - "1" - ] + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.basisObject = null;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true } ], - "actions": [ + "parameters": [ { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Crate.X()", - "Crate.Y()", - "RandomInRange(1,2)", - "" - ] + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The crate is removed after because its location is used to create the bonus." + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "if (runtimeScene.__allStickers)", + " runtimeScene.__allStickers.delete(behavior);", "" - ] + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" }, { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] + ], + "objectGroups": [] } ], - "actions": [ + "propertyDescriptors": [ { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ + "value": "", + "type": "Boolean", + "label": "Only follow the position", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "OnlyFollowPosition" + }, { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] + "value": "", + "type": "Boolean", + "label": "Destroy when the object it's stuck on is destroyed", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IsDestroyedWithParent" } ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] - } - ] + "sharedPropertyDescriptors": [] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "", "category": "Visual effect", @@ -24846,7 +25495,7 @@ { "description": "", "fullName": "", - "name": "Bomb", + "name": "BombAnimator", "objectType": "Scene3D::Model3DObject", "eventsFunctions": [ { @@ -24883,7 +25532,7 @@ "Object", "Tween3D", "\"Squatch\"", - "0.25", + "0.5", "0.5", "\"linear\"", "" @@ -24906,7 +25555,7 @@ "Tween3D", "\"Unsquatch\"", "1", - "4", + "3", "\"elastic\"", "" ] @@ -24938,8 +25587,39 @@ "Tween3D", "\"Grow\"", "1", - "2", + "1", + "\"linear\"", + "" + ] + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetZ" + }, + "parameters": [ + "Object", + "=", + "Object.Depth() / 2" + ] + }, + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"Fell\"", + "0", "\"linear\"", + "1000", "" ] } @@ -24956,7 +25636,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::Bomb", + "supplementaryInformation": "BombExplosion::BombAnimator", "type": "behavior" } ], @@ -24975,6 +25655,18 @@ ], "hidden": false, "name": "Tween3D" + }, + { + "value": "", + "type": "Behavior", + "label": "2D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" } ], "sharedPropertyDescriptors": [] diff --git a/examples/3d-bomberman/assets/Bomb.png b/examples/3d-bomberman/assets/Bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..ed8ed1c152b23c71eeee9180da78c577af89d655 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|nmk<`Ln`9l zUS||!FyLS|3}~vKI(x!-l`n3^cXw9{*J(4@AK-k^P{7_Nw1k0G!-0{jMfiXMn_-6| zPn)1Yn*oqc5@?p-QEz}UloNPC0!M&qB>Whl47USPAOVnKgE{zUIFkSX literal 0 HcmV?d00001 From d08c42e1eb73b26f12e3537c17e474b5d8383d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 15 Aug 2023 00:20:33 +0200 Subject: [PATCH 10/53] Try a better bomb animation. --- examples/3d-bomberman/3d-bomberman.json | 133 +++++++++++++++++++++++- 1 file changed, 128 insertions(+), 5 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index ee274aa08..b4be7b280 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -25521,6 +25521,7 @@ ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ @@ -25533,7 +25534,7 @@ "Tween3D", "\"Squatch\"", "0.5", - "0.5", + "0.25", "\"linear\"", "" ] @@ -25543,7 +25544,7 @@ "value": "Wait" }, "parameters": [ - "0.5" + "0.25" ] }, { @@ -25559,6 +25560,50 @@ "\"elastic\"", "" ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "0.75" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::StopTween" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Unsquatch\"", + "", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Wobble\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Wobble\"" + ] } ] }, @@ -25573,7 +25618,7 @@ "parameters": [ "", "=", - "0.125", + "0.065", "Object", "" ] @@ -25587,8 +25632,8 @@ "Tween3D", "\"Grow\"", "1", - "1", - "\"linear\"", + "0.5", + "\"easeOutQuad\"", "" ] } @@ -25641,6 +25686,84 @@ } ], "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Wobble\"", + ">=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::SetScaleVolume" + }, + "parameters": [ + "", + "=", + "exp(log(0.75) + (log(1) - log(0.75)) * sin(Object.ObjectTimerElapsedTime(\"Wobble\") * 2 * Pi()))", + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::SetStretchZ" + }, + "parameters": [ + "", + "=", + "exp(log(1) + (log(1.25) - log(1)) * sin(Object.ObjectTimerElapsedTime(\"Wobble\") * 2 * Pi() - Pi() / 2))", + "Object", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BombExplosion::BombAnimator", + "type": "behavior" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [ From 83123db1db38a3d406c08a8b5525df9dac019b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 15 Aug 2023 00:45:28 +0200 Subject: [PATCH 11/53] Better explosion animation. --- examples/3d-bomberman/3d-bomberman.json | 39 +++++++++++------- .../3d-bomberman/assets/SmoothParticle.png | Bin 0 -> 1673 bytes 2 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 examples/3d-bomberman/assets/SmoothParticle.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index b4be7b280..5f68467e6 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -615,6 +615,15 @@ "name": "Bomb", "smoothed": true, "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/SmoothParticle.png", + "kind": "image", + "metadata": "", + "name": "assets\\SmoothParticle.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -2561,13 +2570,15 @@ "GravityTop": "Z+", "StartSpeedMax": 100, "SpayConeAngle": 360, - "StartSizeMin": 40, - "StartSizeMax": 80, + "StartSizeMin": 125, + "StartSizeMax": 256, "EndScale": 0.25, "StartSpeedMin": 100, - "LifespanMax": 0.75, - "LifespanMin": 0.5, - "Flow": 100 + "LifespanMax": 0.5, + "LifespanMin": 0.25, + "Flow": 120, + "EndColor": "255;255;0", + "EndOpacity": 0 }, "childrenContent": { "Particle": { @@ -2585,7 +2596,7 @@ "sprites": [ { "hasCustomCollisionMask": true, - "image": "Image", + "image": "assets\\SmoothParticle.png", "points": [], "originPoint": { "name": "origine", @@ -2601,20 +2612,20 @@ "customCollisionMask": [ [ { - "x": 0, - "y": 0 + "x": 20, + "y": 21 }, { - "x": 64, - "y": 0 + "x": 44, + "y": 21 }, { - "x": 64, - "y": 64 + "x": 44, + "y": 46 }, { - "x": 0, - "y": 64 + "x": 20, + "y": 46 } ] ] diff --git a/examples/3d-bomberman/assets/SmoothParticle.png b/examples/3d-bomberman/assets/SmoothParticle.png new file mode 100644 index 0000000000000000000000000000000000000000..871c194ccc645f90c7a7acc1224477b5dbda9738 GIT binary patch literal 1673 zcmV;426p+0P)vG#T3`PNovE8QK+4q0VP3_o{$o)fhPy{#XVmC7!If`ogJH(BkRD>t~lu{58OM6ZK z*3Lis2aguK`3oKl2LD#!&jNx^6y5t-h<>AV^}117Z~f+)+G# zZGngez9NXXp#1SV0s&Ww*Jc|7=d91Qgq9$fE(o|$ye8Hfk`)zW=Dp#$hzS8ViucA4 zgaD54tegV_N(e$)Svz=Q2jiUP3Var+Xe8&F@WH4a!&xA8&b}v}9_g?kNdBMewV43O zfQ?+nIf4Cf5xNLSgS+j9Me?0vK?EksK+A zft{1$0tmiMAuQyG?E7#CD1azZLq-JPD#9FCbh(94q}7E=7U2GVCJ?^WaUoFN z2!J;G_d2MBNHxMp#19MvITKXgxbhtA3&}paeu~Wol+QoJMveem|3xx3I>D*7SrG z6Q}|xO6iDB?>#GmvrylE)^V-xJChi2t%2{e{yq^f3oC!k4)75c5NTcWJ{}i-1At#7 z*Dov!`~rZFdc4(4FfpsJEMpafw9=d`;fo%Z3c&qO**Xx=Ud{iKx>&0Aw=6XI7X&1WM{GA&avcqh*ZDf};n3r__ar zpM?z+&Ggmi{{;YZ11bHXvWHI>F0-=LWv%6laJ^JlWX1obvGPibsI2L=`XVc0z15;x37XsEh83WY z5did?6es}Nzh8`ohE-u^V+|0^|M70m&bP=&eM4*4MiQop&H?{7Z9ckkXyx^Wj_N*7gJV?*ju-gk4(iHn|djpq+zVT_E5JQP=3XN6>@NbF*Y< z_Ct-vzG~8+JfB=s0$Y&NMCIGzRX6Yb=h>L6i0PxD& Date: Tue, 15 Aug 2023 01:45:14 +0200 Subject: [PATCH 12/53] Add a soil texture. --- examples/3d-bomberman/3d-bomberman.json | 670 +++++++++++++++++++- examples/3d-bomberman/assets/New image2.png | Bin 0 -> 789 bytes examples/3d-bomberman/assets/Soil.png | Bin 0 -> 17273 bytes 3 files changed, 658 insertions(+), 12 deletions(-) create mode 100644 examples/3d-bomberman/assets/New image2.png create mode 100644 examples/3d-bomberman/assets/Soil.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 5f68467e6..939199470 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -624,6 +624,24 @@ "name": "assets\\SmoothParticle.png", "smoothed": true, "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/New image2.png", + "kind": "image", + "metadata": "{\"extension\":\".png\",\"pskl\":{},\"localFilePath\":\"assets/New image2.png\"}", + "name": "New image2", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Soil.png", + "kind": "image", + "metadata": "", + "name": "assets\\Soil.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -2637,6 +2655,42 @@ ] } } + }, + { + "assetStoreId": "", + "name": "Soil", + "tags": "", + "type": "Scene3D::Cube3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "width": 110, + "height": 110, + "depth": 0.01, + "enableTextureTransparency": false, + "facesOrientation": "Y", + "frontFaceResourceName": "assets\\Soil.png", + "backFaceResourceName": "", + "backFaceUpThroughWhichAxisRotation": "X", + "leftFaceResourceName": "", + "rightFaceResourceName": "", + "topFaceResourceName": "", + "bottomFaceResourceName": "", + "frontFaceVisible": true, + "backFaceVisible": false, + "leftFaceVisible": false, + "rightFaceVisible": false, + "topFaceVisible": false, + "bottomFaceVisible": false, + "frontFaceResourceRepeat": false, + "backFaceResourceRepeat": false, + "leftFaceResourceRepeat": false, + "rightFaceResourceRepeat": false, + "topFaceResourceRepeat": false, + "bottomFaceResourceRepeat": false, + "materialType": "Basic" + } } ], "events": [ @@ -2653,17 +2707,6 @@ } ], "actions": [ - { - "type": { - "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" - }, - "parameters": [ - "", - "GlobalVariableString(Level)", - "0", - "0" - ] - }, { "type": { "value": "Scene3D::SetCameraRotationX" @@ -2690,6 +2733,49 @@ } ], "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + }, + "parameters": [ + "", + "GlobalVariableString(Level)", + "0", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Soil", + "=", + "90 * Random(3)" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Soil", + "+", + "RandomFloatInRange(-22.5, 22.5)" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Comment", "color": { @@ -28433,6 +28519,566 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "295cabd8-088a-4ac5-a29b-a0e2a160c1e5", + "width": 0, + "x": 822, + "y": 519, + "z": -0.1, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "d00ce4f4-0115-4f86-a0b6-5c0d2b50cbcb", + "width": 0, + "x": 944, + "y": 517, + "z": -0.1, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "973c2356-0d4d-4b19-aa58-cc1f06c937a3", + "width": 0, + "x": 825, + "y": 395, + "z": -0.1, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "0b176553-c48f-4994-8449-a597ff1ef62b", + "width": 0, + "x": 946, + "y": 400, + "z": -0.1, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "964fc9a7-bae6-4d3f-96a9-88dce1f129d0", + "width": 0, + "x": 707, + "y": 519, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "bd9628e3-4495-4d37-8191-aaa41dd28fd5", + "width": 0, + "x": 582, + "y": 517, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "44939bf1-586b-45f8-a9d8-943ba2fc1170", + "width": 0, + "x": 462, + "y": 516, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "5d97e60f-defa-4174-b11b-4d017ecc7a58", + "width": 0, + "x": 346, + "y": 518, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "4e318989-a33f-40eb-a20e-527130248e01", + "width": 0, + "x": 465, + "y": 401, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "4f1f6652-860f-44d0-85f3-6076ce279d36", + "width": 0, + "x": 580, + "y": 397, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "857946ad-7627-46e4-91b9-df9feaded68f", + "width": 0, + "x": 701, + "y": 400, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "67507486-45c3-4c90-9ef3-57a79cd15171", + "width": 0, + "x": 825, + "y": 279, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "8f8d8183-1b0e-4297-93f2-6d701defdd12", + "width": 0, + "x": 940, + "y": 279, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "d3eb81f7-c53b-48cd-992c-7289dad72da6", + "width": 0, + "x": 700, + "y": 275, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "ccd0a896-533a-4537-a776-ca7e0db38dda", + "width": 0, + "x": 584, + "y": 278, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "0b2f9c18-ecc3-415d-a560-079ef399f603", + "width": 0, + "x": 465, + "y": 276, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "78d31956-d923-41b0-94c3-d6db4b44abd9", + "width": 0, + "x": 464, + "y": 156, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "79c97f4d-a7c2-4a02-854a-9059c13ffc27", + "width": 0, + "x": 585, + "y": 160, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "953abe5e-44ea-485b-95ae-8fd4cc2f36e3", + "width": 0, + "x": 702, + "y": 157, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "33fe2113-db3c-4058-a3ba-dd8fda221741", + "width": 0, + "x": 823, + "y": 156, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "e054ac98-b503-4245-ab7d-926f21c3d4b1", + "width": 0, + "x": 947, + "y": 158, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "a85e97e9-41f9-414a-8873-a00bc60d077c", + "width": 0, + "x": 347, + "y": 156, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "4871bcea-4563-4d9b-8661-8c4d94ea98f0", + "width": 0, + "x": 345, + "y": 278, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "26880657-c76e-4678-bcdc-6d817dadcf35", + "width": 0, + "x": 225, + "y": 278, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "649182db-af0f-4f24-b421-124f63d5c6cc", + "width": 0, + "x": 226, + "y": 398, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "f40a9466-5273-4415-940f-ae1cba1940d3", + "width": 0, + "x": 341, + "y": 398, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "02b0c743-4a52-45e5-b89e-43439a3e4a16", + "width": 0, + "x": 222, + "y": 518, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "b6f1e5a9-8061-427b-8944-ffb9517b471a", + "width": 0, + "x": 221, + "y": 35, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "654eddf2-4273-4a90-9ca9-9fc0b303092c", + "width": 0, + "x": 219, + "y": 155, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "b3892bff-fbb0-428d-afa3-e38a6f81094e", + "width": 0, + "x": 345, + "y": 36, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "3149dc42-8859-4862-9441-e5e9ac194051", + "width": 0, + "x": 465, + "y": 38, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "cc01805c-4d7c-446c-b65c-5dec655666e7", + "width": 0, + "x": 583, + "y": 38, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "7daa7b27-a74f-4c29-a840-0b2f25096704", + "width": 0, + "x": 702, + "y": 36, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "7e775f6b-16fc-486c-93a8-2200919c0b64", + "width": 0, + "x": 823, + "y": 36, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Soil", + "persistentUuid": "93f05950-f8ab-45e2-96f2-7eee90224e63", + "width": 0, + "x": 945, + "y": 38, + "z": -0.1, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -28445,7 +29091,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.4327904327813177, + "zoomFactor": 0.8127102663037655, "windowMask": false } }, diff --git a/examples/3d-bomberman/assets/New image2.png b/examples/3d-bomberman/assets/New image2.png new file mode 100644 index 0000000000000000000000000000000000000000..1c932fc4b247a06e4b61f8c7cae55f748f322f7f GIT binary patch literal 789 zcmV+w1M2*VP)Px%&q+imSbR?e5G@Zt#5@22L@fca`LKroB9?&Ibm$O3#1asj4jlqWe*#a> zFLz(^`SE_YW=6qjI>dr-D_|8MS&(eNkx#b*iVVmMfWOdYqey_LU~E9kgD7Dv52A(v zh~an|*_^AMnX!CL+d~w)V-Ip9%y5t+LCiRX4Fx$m#x+n^*9-$W6Gms}3;{ViMrG%; zgRF#cfypdqtspC6WKqgMRt~@NxC}_uE%J|XB1=~qgwD7v>P1O`fN{UQ0J)#h(28Lo zbcfA#2nZN9jL6sd?mYwyI|d-WtlF!+%hfg^SBKCYK0`o!d9_yq(jKw>1rZFEEPKB0 zNqZnuqr@?MQwW#Ahw)_R(Vm_Lz;P7LAJT`^@&dq z5MN&H)qu1|?0W$qzP#G20cnre_kwm1Hg-UK35ZqGAz~ogbUY}oiy_NZOdF6`Zf#Gs zfpANYn^{p@OBNtPAYjBXJR7^IL%_&k0FuwIe1y_HgbvC30FuwJbOb<3cB{YtlBAE7$qR9 zp>$%Dfvj};Iuyv+yQLeWyhG03DTf6)Bg_blwhpo0wT^OZ9)&R-Wa*1o)j#=oiDz zkfUQqaFifU(IJu3nIgjV|8bfQiFTISbAX7600M|u0%FslLjVy=Kx{g6h#1I!<|L&M TaS{3100000NkvXXu0mjfq)c5n literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Soil.png b/examples/3d-bomberman/assets/Soil.png new file mode 100644 index 0000000000000000000000000000000000000000..818a5c05ce1085aa1d951cf4a2a107f2d908515f GIT binary patch literal 17273 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 Date: Tue, 15 Aug 2023 13:49:08 +0200 Subject: [PATCH 13/53] Better soil texture. --- examples/3d-bomberman/3d-bomberman.json | 633 ++------------------ examples/3d-bomberman/assets/FlashyRock.glb | Bin 0 -> 5492 bytes examples/3d-bomberman/assets/GreyBlock.glb | Bin 0 -> 19156 bytes examples/3d-bomberman/assets/Soil2.png | Bin 0 -> 20328 bytes 4 files changed, 63 insertions(+), 570 deletions(-) create mode 100644 examples/3d-bomberman/assets/FlashyRock.glb create mode 100644 examples/3d-bomberman/assets/GreyBlock.glb create mode 100644 examples/3d-bomberman/assets/Soil2.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 939199470..e0d79a480 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -642,6 +642,29 @@ "name": "assets\\Soil.png", "smoothed": true, "userAdded": true + }, + { + "file": "assets/FlashyRock.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\FlashyRock.glb", + "userAdded": true + }, + { + "file": "assets/GreyBlock.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\GreyBlock.glb", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Soil2.png", + "kind": "image", + "metadata": "", + "name": "assets\\Soil2.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -677,15 +700,15 @@ ], "layouts": [ { - "b": 48, + "b": 58, "disableInputWhenNotFocused": true, "mangledName": "Game", "name": "Game", - "r": 80, + "r": 102, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", - "v": 64, + "v": 80, "uiSettings": { "grid": true, "gridType": "rectangular", @@ -2484,9 +2507,9 @@ "height": 60, "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", - "modelResourceName": "Rock Moss 3.glb", + "modelResourceName": "assets\\FlashyRock.glb", "originLocation": "TopLeft", - "rotationX": 90, + "rotationX": 0, "rotationY": 0, "rotationZ": 0, "width": 60, @@ -2542,7 +2565,7 @@ "height": 120, "keepAspectRatio": false, "materialType": "StandardWithoutMetalness", - "modelResourceName": "blockRoundedLong.glb", + "modelResourceName": "assets\\GreyBlock.glb", "originLocation": "ModelOrigin", "rotationX": 90, "rotationY": 0, @@ -2668,9 +2691,9 @@ "width": 110, "height": 110, "depth": 0.01, - "enableTextureTransparency": false, + "enableTextureTransparency": true, "facesOrientation": "Y", - "frontFaceResourceName": "assets\\Soil.png", + "frontFaceResourceName": "assets\\Soil2.png", "backFaceResourceName": "", "backFaceUpThroughWhichAxisRotation": "X", "leftFaceResourceName": "", @@ -2751,9 +2774,34 @@ ] }, { - "type": "BuiltinCommonInstructions::Standard", + "type": "BuiltinCommonInstructions::ForEach", + "object": "Rock", "conditions": [], "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Soil", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Soil", + "=", + "Rock.CenterX()", + "=", + "Rock.CenterY()" + ] + }, { "type": { "value": "SetAngle" @@ -2771,11 +2819,16 @@ "parameters": [ "Soil", "+", - "RandomFloatInRange(-22.5, 22.5)" + "RandomFloatInRange(-15, 15)" ] } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, { "type": "BuiltinCommonInstructions::Comment", "color": { @@ -28519,566 +28572,6 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "295cabd8-088a-4ac5-a29b-a0e2a160c1e5", - "width": 0, - "x": 822, - "y": 519, - "z": -0.1, - "zOrder": 18, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "d00ce4f4-0115-4f86-a0b6-5c0d2b50cbcb", - "width": 0, - "x": 944, - "y": 517, - "z": -0.1, - "zOrder": 18, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "973c2356-0d4d-4b19-aa58-cc1f06c937a3", - "width": 0, - "x": 825, - "y": 395, - "z": -0.1, - "zOrder": 18, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "0b176553-c48f-4994-8449-a597ff1ef62b", - "width": 0, - "x": 946, - "y": 400, - "z": -0.1, - "zOrder": 18, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "964fc9a7-bae6-4d3f-96a9-88dce1f129d0", - "width": 0, - "x": 707, - "y": 519, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "bd9628e3-4495-4d37-8191-aaa41dd28fd5", - "width": 0, - "x": 582, - "y": 517, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "44939bf1-586b-45f8-a9d8-943ba2fc1170", - "width": 0, - "x": 462, - "y": 516, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "5d97e60f-defa-4174-b11b-4d017ecc7a58", - "width": 0, - "x": 346, - "y": 518, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "4e318989-a33f-40eb-a20e-527130248e01", - "width": 0, - "x": 465, - "y": 401, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "4f1f6652-860f-44d0-85f3-6076ce279d36", - "width": 0, - "x": 580, - "y": 397, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "857946ad-7627-46e4-91b9-df9feaded68f", - "width": 0, - "x": 701, - "y": 400, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "67507486-45c3-4c90-9ef3-57a79cd15171", - "width": 0, - "x": 825, - "y": 279, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "8f8d8183-1b0e-4297-93f2-6d701defdd12", - "width": 0, - "x": 940, - "y": 279, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "d3eb81f7-c53b-48cd-992c-7289dad72da6", - "width": 0, - "x": 700, - "y": 275, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "ccd0a896-533a-4537-a776-ca7e0db38dda", - "width": 0, - "x": 584, - "y": 278, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "0b2f9c18-ecc3-415d-a560-079ef399f603", - "width": 0, - "x": 465, - "y": 276, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "78d31956-d923-41b0-94c3-d6db4b44abd9", - "width": 0, - "x": 464, - "y": 156, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "79c97f4d-a7c2-4a02-854a-9059c13ffc27", - "width": 0, - "x": 585, - "y": 160, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "953abe5e-44ea-485b-95ae-8fd4cc2f36e3", - "width": 0, - "x": 702, - "y": 157, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "33fe2113-db3c-4058-a3ba-dd8fda221741", - "width": 0, - "x": 823, - "y": 156, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "e054ac98-b503-4245-ab7d-926f21c3d4b1", - "width": 0, - "x": 947, - "y": 158, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "a85e97e9-41f9-414a-8873-a00bc60d077c", - "width": 0, - "x": 347, - "y": 156, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "4871bcea-4563-4d9b-8661-8c4d94ea98f0", - "width": 0, - "x": 345, - "y": 278, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "26880657-c76e-4678-bcdc-6d817dadcf35", - "width": 0, - "x": 225, - "y": 278, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "649182db-af0f-4f24-b421-124f63d5c6cc", - "width": 0, - "x": 226, - "y": 398, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "f40a9466-5273-4415-940f-ae1cba1940d3", - "width": 0, - "x": 341, - "y": 398, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "02b0c743-4a52-45e5-b89e-43439a3e4a16", - "width": 0, - "x": 222, - "y": 518, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "b6f1e5a9-8061-427b-8944-ffb9517b471a", - "width": 0, - "x": 221, - "y": 35, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "654eddf2-4273-4a90-9ca9-9fc0b303092c", - "width": 0, - "x": 219, - "y": 155, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "b3892bff-fbb0-428d-afa3-e38a6f81094e", - "width": 0, - "x": 345, - "y": 36, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "3149dc42-8859-4862-9441-e5e9ac194051", - "width": 0, - "x": 465, - "y": 38, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "cc01805c-4d7c-446c-b65c-5dec655666e7", - "width": 0, - "x": 583, - "y": 38, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "7daa7b27-a74f-4c29-a840-0b2f25096704", - "width": 0, - "x": 702, - "y": 36, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "7e775f6b-16fc-486c-93a8-2200919c0b64", - "width": 0, - "x": 823, - "y": 36, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "Soil", - "persistentUuid": "93f05950-f8ab-45e2-96f2-7eee90224e63", - "width": 0, - "x": 945, - "y": 38, - "z": -0.1, - "zOrder": 19, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] } ], "editionSettings": { diff --git a/examples/3d-bomberman/assets/FlashyRock.glb b/examples/3d-bomberman/assets/FlashyRock.glb new file mode 100644 index 0000000000000000000000000000000000000000..09d937b9a5a8ab1afcb4e721a11df932eeeac030 GIT binary patch literal 5492 zcmb7HYiv~45gs1K1TfFw04Axqgh0v0-1ozH&jlMuY_JzUcqGQadVR4Myu0>3AYhi* z0z^s+{BT4_3l$Z(f}$2RNQDG^x1lK^QCb>QL>1aXODUj|mLyV1qY`z_+G`&}uUW7d zfA{RnoSARFbN9Huv1-9U0EmtUn2-rjQt2sc;k=QE73K0Gn9JuDHiSdL zP$ah=LvjlntzexM&Mlth$z3nyDR~mlxw!RKIN}cl(OJynxwwmq_%H#N&v&B;mtWn& z1-$`W<0_M%xwv4c&Y~aiHSwC>rxq??MH-T!-ToCJ-?~+$p-5zv#8JAcEIn!!shTvJrZFmzs)6iE|gT#*G$*A-q>cum)ERdETltnN)x z>9F^3YQLVfJS84?wQ$ZwzZkZx;A2)T2&$nPx-QAGV2BE@V2v8DOPV4pk|FDcCabh; zSrK_blr=-*6;ais$16M8Vx%ECvYuHM#cHiQUZfgm3i|{8sDFL8gEtxt`)gxS`q;uP z_EZ*E6?@8(b1m~!l+Inmz@CerrRr4qqtH6bf3wXw}9h6s97Gs*Cf5VnI9tf?&{euTp*HiJGSJ zykO{tE(@|MAeka60D06URpj|DStyFEDk`#!V&OHB^5w@PQT+l^ukxCr8=@@hvZ#oL zSJU1FI>Y^r7r3#9wDXO9%XGo@` zQmOVsrDRB=hWZupT=IBSDQhTfK~!{ElO#ixcsd_mQ;}T5FhpIDc~yP{i}L?tfl&j( z{zydW^+%$J=^x+_>*<{$tInh{Yd1!%MOLsriZ4Pz7Ik#S70;SA$=5TTh&NnM-_(+9 zsA8`q(g^NKmu|eI;%4mLqOMRbnC+$hwl`2-Y`BC{?;GB4^$&&1JaWPA-e0)<0B_jL z1Jp_M`=o0Q-7{c_msDBDw@7a8oRI*9#bvPX)<5j;OpBA>4jghi9lUqQ5A4YYE6Any zKPTy6ntMlgeimC1H}PgnAj8)kBI)4wUir{oqJC`CI-T&(^bY$kCwAKd7Th7};JVw@ znhF0+J4hX`I|X z=`sJ@o@sW)J)Ea)@O<)BrO!O~$4lhGy>`;kS#Boc_sON3o6L`2JKuR?gh0$?Ey?)y zqlH*cZyjvSY<{QO?!~U1**j%R;_{)p?xW*=cjo=Vc%qCtiL^ z>r)%+gSfTpxwl4IuM;P1zyE$SZf;zDr1N6vYNu14uH4kNCY*X<>tu7X{j%%q>{33F z%VQm9%5v-dl`rwu>Fm>+KDbTV^UIU^_(R(`lk$7j6E|&#_Ivc*)vHmKD>jxrckC>j z&I@~fS1=ArHz6}L1 z3|63B0kyCMsvw9q2oem11yGMR2j-xigHL%7hB0Wzz+iXw_Yg3#*_SZ8f|I^TC4EXjelaWWgd>3Hh)N%3u^!z%sPUkmPJw3p%_6HBf@K1pL?` z2MSsRLip)WtRx%%uZ1R<0MDU)4%S0CjD!G8f$^ZB)j)<)SPCjy6%1Gd0?bA`8@#~& zEx_Klo$k-<9oXr9%id$zdlY*|V(&jJcKS|dzpq(*!&`2i&+P2H;T>bLxb(}BB;(Ln z;`;rjKI=|CtUrs#KRwZWV@F2f$hjQz)bXvI=K^wK)}Q1)nDt?CI{pK2#)D8BgHSmc csF_T(nW)F1sPR!~N8u?LhSSVKn}s_5ACINSrvLx| literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/GreyBlock.glb b/examples/3d-bomberman/assets/GreyBlock.glb new file mode 100644 index 0000000000000000000000000000000000000000..cc5fa3a7602033705d3f673ad68ddf92d43145f9 GIT binary patch literal 19156 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/Soil2.png b/examples/3d-bomberman/assets/Soil2.png new file mode 100644 index 0000000000000000000000000000000000000000..27e4976bb88a9ca72872859a5147ecb107153de4 GIT binary patch literal 20328 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 Date: Tue, 15 Aug 2023 14:45:39 +0200 Subject: [PATCH 14/53] Better bunny colors. --- examples/3d-bomberman/3d-bomberman.json | 218 ++++++++++++++++++- examples/3d-bomberman/assets/New image.png | Bin 0 -> 100 bytes examples/3d-bomberman/assets/OrangeBunny.glb | Bin 1108536 -> 1108668 bytes examples/3d-bomberman/assets/PinkBunny.glb | Bin 1108536 -> 1108668 bytes examples/3d-bomberman/assets/PurpleBunny.glb | Bin 1108536 -> 1108672 bytes 5 files changed, 210 insertions(+), 8 deletions(-) create mode 100644 examples/3d-bomberman/assets/New image.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index e0d79a480..77ca1fc2f 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -665,6 +665,15 @@ "name": "assets\\Soil2.png", "smoothed": true, "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/New image.png", + "kind": "image", + "metadata": "{\"extension\":\".png\",\"pskl\":{},\"localFilePath\":\"assets/New image.png\"}", + "name": "New image", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -2714,6 +2723,42 @@ "bottomFaceResourceRepeat": false, "materialType": "Basic" } + }, + { + "assetStoreId": "", + "name": "New3DBox", + "tags": "", + "type": "Scene3D::Cube3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "width": 100, + "height": 100, + "depth": 0.01, + "enableTextureTransparency": false, + "facesOrientation": "Y", + "frontFaceResourceName": "New image", + "backFaceResourceName": "", + "backFaceUpThroughWhichAxisRotation": "X", + "leftFaceResourceName": "", + "rightFaceResourceName": "", + "topFaceResourceName": "", + "bottomFaceResourceName": "", + "frontFaceVisible": true, + "backFaceVisible": false, + "leftFaceVisible": false, + "rightFaceVisible": false, + "topFaceVisible": false, + "bottomFaceVisible": false, + "frontFaceResourceRepeat": false, + "backFaceResourceRepeat": false, + "leftFaceResourceRepeat": false, + "rightFaceResourceRepeat": false, + "topFaceResourceRepeat": false, + "bottomFaceResourceRepeat": false, + "materialType": "Basic" + } } ], "events": [ @@ -2821,14 +2866,19 @@ "+", "RandomFloatInRange(-15, 15)" ] + }, + { + "type": { + "value": "Scene3D::Cube3DObject::SetZ" + }, + "parameters": [ + "Soil", + "+", + "-10" + ] } ] }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, { "type": "BuiltinCommonInstructions::Comment", "color": { @@ -26178,6 +26228,14 @@ "Behavior", "" ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Object" + ] } ] } @@ -27412,6 +27470,54 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "28f30776-ae1d-4c25-a42f-58deaafcb161", + "width": 300, + "x": -170, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 180, + "layer": "", + "name": "New3DBox", + "persistentUuid": "643e030b-9c7c-4cb0-8cff-3d1f32b54acc", + "width": 1140, + "x": 70, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "e7ef46d0-9be6-447f-bd25-8dd562dc8d3a", + "width": 300, + "x": 1150, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -27424,7 +27530,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.5610192035792332, + "zoomFactor": 0.43028208721630734, "windowMask": false } }, @@ -28572,6 +28678,54 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "16caa0f7-1c87-4ecb-9015-d5dc1a2b8d4a", + "width": 300, + "x": -170, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "26f5a6c7-785d-4dee-b46a-83b1a990e38c", + "width": 300, + "x": 1150, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 180, + "layer": "", + "name": "New3DBox", + "persistentUuid": "7e1d81dc-ceb0-4627-88c4-4f23d7eb35f3", + "width": 1140, + "x": 70, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -28584,7 +28738,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.8127102663037655, + "zoomFactor": 0.4780648625316274, "windowMask": false } }, @@ -30679,6 +30833,54 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "a3e4f555-26a6-4473-87c4-a1d93a081265", + "width": 300, + "x": -170, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 180, + "layer": "", + "name": "New3DBox", + "persistentUuid": "79f10613-cdba-497d-aec7-8b82f8db49c9", + "width": 1140, + "x": 70, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 1020, + "layer": "", + "name": "New3DBox", + "persistentUuid": "5d935e32-e7d2-4524-8513-870b0239dc64", + "width": 300, + "x": 1150, + "y": -240, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -30691,7 +30893,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.5351022885121243, + "zoomFactor": 0.24141454161229675, "windowMask": false } } diff --git a/examples/3d-bomberman/assets/New image.png b/examples/3d-bomberman/assets/New image.png new file mode 100644 index 0000000000000000000000000000000000000000..fd17c69a46a9294dd0de83d31799492b9a002088 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|oZrZFz#@y`aE63IPaEUm4IIo2GiIs^CTVW$0jgy1boFyt=akR{0CrFshX4Qo literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/OrangeBunny.glb b/examples/3d-bomberman/assets/OrangeBunny.glb index 7adbf7c292eb326b0a29bdd06556099d5ec996f7..823aacb0fdd64d899fbb615b253b3b804a4751eb 100644 GIT binary patch literal 1108668 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

    vF9;ozEt6t(?X4x8a%}8V0oI+I_KXPiwB-7p0FS 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%0AFzKV9zkep`_< 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

    P+GiOvPQeol&-f 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 hZ$$m=ttKyjAj##r{ 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 z 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

    9!pV?? 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 z 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

    $y9t-jN+^>)Ju$}v12m5SF^u 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

    ^#Oa{hWAP91^XrJ z&<0G;=bsCI^bFX*CuCsq2^pB@?p7+9ta5r6ZEkBUyML*WopH&+p45%czod!E`^~gB zx7e6&4G^1bdnLFsyfm(h&?CfVg#E3L zvBKJhx8sX3+%-oQfgdyYzC3@o)S&80^?qqdnbME9?7Kcz-d?7K(l)~ai{+Ot7MJy7 zWO3s_rQW;@)=@n?Egz4MlHGzQDW=h`*3(^`EXyj7l!FgVQ~G3-tgF9ew>+3JLVmM- zs#46^+nW1gPD^d$2-%(48=3t@&HmhoaZ1h6?Em4fRnBtb-bmGdUFLtK=70RtE=v7n z$1M-;_*%;C9j%V1DH~6uHlAJOYbzC;>RGxrA8d*4I94vt#_!I?e>L6r@z1;Hri4$Q zm$XrsWa(UaoXT(J-xo2&g_zUtG|2Qj4f_zS2Y#Jl-C$kNx-mpuzqp_C0mZ{5%IdqfiS%}RFIlO5LV4fSXkF>qSZejGr+h${tjxP= zwH92^P&)FUn>;QkMXBESxOLa3y3&aQo#edHpOg*ruUgxjl%>|6{N!D0Gu!g_e{7w% z%|}`w{~~8znZwp3*K4bHT`%dYUkiC+y*#$^vp-tjw5J41)VH6_{W(JJ=x>A{Fv?e&){eC{A!XPGye2d zjX%xvwb9P=v%$XxzxtVGPkd~?KhMubJD!)q*@Lf5d~xc}%Xt3Z^T+$A@l${M_r)5a z{f71w#20a<_(KmJ;!PNBgrTQ(K{mMC>mj2b`QkCz>3wC%;ne_ zSLJO-bLC_gmCM~CrMFNtG(f;PTW4Cd`?h77M4YFa`VBJ`ix_4u!f*}W>gEgW&zT$< zu6^sZ5L?b-D$nr3-MfTr{syr+!`B~7G}k&cU(Cj^LC7V}8BoKFd>`J0I|$=0)idI` zQ`T<~Y(F} zpuhiltUPvNePySvr+&tczWR#JW7&T{cTwbJ$MwQpUp>ylu~kPY9TFW4*&kNYZ+9If z#~+`pe5xTBK0nN-AN^s39Kz1y-WerB-gFN7`|La(6*N`p>|N6kJ~5X*A!&r1GA>jJ zO|D{a%u-nYq1i}z4D@ofyUWz~NbVdVHU#u;h;nbJb4gKcB8iEbZRrE(+*y4f>`5`^o)0%}I7tb9Z zp2$_C-<5l^gsbud8Vgl1gT+b}LtMSGJj{C#fmCY{;&ojYK&JIP*{Frh6^8E34&i0b$)i|bX3y(9DU*1@8>ESOIynR9GlVz7-&X`7unblF57=KsU-{_zr zZE}4@n9)V{W9MPN59bUqskM~>>^z)RGQG{*=e8lK7~{)lZzoF|v)WFle`Y8*+gs`K zrj`6;MowEB;~PV{9W|7M9nIy@A$e>sUVk(sKl4W_5oR)ICP~ zV9I<{`v9I`w*WW4IV-3(=M)t6wbwPLPNA{3`(TBIO$M8*k$v?klVGln%_rC0wNh)uDdLEYHE_;y5 z^UqhPV!UTeW)rym`x>VcUOkI>_q@330Q5mn3fZe#)5i*d{K)jifIuccbHCVLCmyr%EaSM*w|#O#!9XNo)7>NzCq z>-w%!N>`O_WyUz!T4(>N-|7{q_(n^%7RQ`yzSnXax?hh}lG;kP3mFR9jvOoU(|iN8 zCMe#BD`ATL&usX8iR{rAdaMuZU+9muM1Bavp4Jd_q=%0Dk`1jp$neQOi_Z-({c2GW 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
  • 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%0DE(FqQor?%()%o*<$8Oqg)(ekKXqL- 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 z%0D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

    -vjjBLRZbyGXeL23%Ox+SgV4-WXr|SgL{c^L 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%0DM8v~JozM4m8q7jJZ;e?M#8 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 literal 1108536 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]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

    C}NH{wrzWM_WgUw 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 Yxv{LVZ1rHfE$a+uoJyJaq+ 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 u6!Qn1+1aY=R8#V z)HQfMt~`dX1t0ds_lDZ)dr@l`X6i9!>M^1>;`{TNdW@NRjG20jnR<->U3!e`d|Z`} z!>9$B*TeTb8Q8+_hk!NG@3)gkxlZ)N|t@If2o{pXj zy+pj9+KHzRe>c2Yveu%J=v$_Ne#yok25250_Zz7H zpQ^{$YR1m0>%Y4NZ?)Q%D5+chX}7Z*c~F zNCW3xoK2yhh_eU$88pE2Og+X-J;t@)`w8GnrXJ(Z&r0wt@H*k2Vf-1!>xzH&tj2#9 z&;7P~j4P|}kap%!h_^Vv?-f%X;u-zwo*h8isW2PSCzse;wuhjVO^iSKh)VXS`uK#y%rXFLa9wYB{ z=#~G|ai$()rXC|W%-^qpaTZX2$C;lE&?nJD5rgqZSRI4+fBqU#pA*zEw!N3vw2k3@ z)Z`d@Kpelq|L>y5=ryJxn>_Nq(0SBa;pS#9mSb2Q_IiAjuzqfa(By4N_AanGGh{og znNr(ZJI1{{{VsvTLJzd@jk{G>JHBg0%Y6OjrTpIasB4)=e#-NEevVn{XpxWl@hR0b ze*J4{QNLW9#>`ev@jq+Z>MQxMr@_epHBSLKlFdoOb7b~*-J0aF>?D2*-Oag z`iPInUaXpbY0c;J&#du0|AtNeW3tutpV;L8XKh=3#lLH-p9gvx{vCJS+TUQ`{1be` z>PL@N$8-Om<*Mudcj2<?kG$Bjn^H8y-#yjK~0wlb@g3drdEDQc;D0c ze!I3tZNs{rb0alVN)=Cle`ab$jc;-bAK^ zTkYnkQbNU^Kj&*!c&kl5T1mh>@}KX0qa9Merhxnes=vI(8|}D#Z3WaHP3teE^+#FP z*LalHt(*Ev+p+U*jrkb;&7wse-EY@kX~o#(nkNRTpDX7NW z?{i;kHQg&}W)1zhpPaOx?W+CMqW$c$?kAb{^OE*6&bpr@+RsYb&nWADY@dhvJsKG2 z0)94t%|EZe6x203kp&G|s@mOMb;U<>WsO&i}vn~Ta#bRlo)_ap{(NV)xWwt3w0VBO#n zk!++?MVxu$ryk>)36ZS9qHAKAuq~z_v85y#AB&9UjFhiHNxT?8s1^PXU>lID?%B<9l3TkQoO6!N+eV%f_H%hm4 zW=-?typgPIF8g5VW?S9-JNeAZ#zr!~em%u(#jc6PA4i)$Uy5XTKFi`DUC+SvIi@9- zdlAW+*z9L;)hgneHcidVx;yJOO`-qaG^|6)=UTJPKQ;vE4BqrRQCZzh-p8ZOku#d; z?$Q0)J`eB_1N_64e>Wcdz~2Pn1BM@c85rOF;eK$O`w_#x*Tm}}j>lpRx82_itCMp*H3dXRNt&<;E$5C2-TZ+(ZIjjvy!Ok^ujT0!@UwZ71lr6J9!Qh~BB)T0Qnt zeAhZd>e}Beb$WFgT1Blbd8OVt)6%$ufnkU8RqOjSl3gVGdGx_R`QT6c64@`R(NcuO5Gp{`V2 zA5YjjdkxLjK4W~B5?hZ%67<-w4CsQecO}nA`Ol;THQordWv!;C!vC2a7S6uES^vUXy zfOT^=s493?e7AiAVb=zQ1vl3_depfz;J2hMjk0K>2@lZMGN|um&4EtlLX*6bS05jr zd}&Q2YtwC^`N&MWYBMC)plmS>!SJmiW;W<{l(zcOCp#t&w8`|Trcyi1)qbn9*tm) zzjZK|ZF$n{<=s#;wTNJ!E=lG$Lmrv^S9K9{=8IrE=C?67&T`JY+q9cy41Y)KTj(MwNRe?JA^U+dnzV3ke$t?;wmABVi-qnS^%}P9zNd#uUN^!m|kL z3GcD`x2rH}%H*FzF^Pl|2+t?HhwxTwF4jWLMdase@t9rY#~!fmPQus&;<4^@!U=@; zT4UfxjPPN z`aB-CdLH#!s^(#1{;%TI`C5t(rTCTB{r}N^)%9(k2e<)Ff&;*OfJ+$Q61V~ku3+94 z^BU?ph(#`9;pcgeLi6*MYvT`E^R%R zuYQFIcReyk6Q0AQg@0_lM}p%iFAe;5(b4)sb25Cr2={O}CR{h?)fOW>DrkXWK#IM# zDB+>ub%mQRE*h||m~q~a)~T*GH{mjaCupk2PBNAyJa1HS!#uY!TEtA)5aO%8molWE zxar1!)K}a&^G8Z)(`Z(N=2y}DE~}0B4P=ieyA;irv)YQvM!nTm8~TjUYdmL@zr$w! zymcP+Vkv%ubsp<&Bpds|dayA+*=iTF+MBHTe7zf18}VyY^)SDd?0Kqr?022D9^%!{ z1N{#CK>x%QT)^Oc4nD-d2h4fLdnM;B=D;s-N}bCw{K$dLYajMn4#How{=!t(%a(Y%H7m5u`;X8Y$p7eC zkT%b~vzGV?EwdVzKAmRVL;hY*Ukj%+yM!ddeY@TEoz?HKu$6F^)gz2O2Lu_hhe7Yw zX+BQ-AjA`{vuv#~&Fz6@pPSCe2KBwXIPzZ3IsTHl)2RIMyZ?&zE57B599 za(f%LtZjBBdHNHx+aRqpwR#J-wtYS&u-<#~kUkZqT`e22^EW+|PTzkwC-(7{ioK}A zre-OoL>|j3FNiN9<@sKNxxXr|1Uos%A;UbSQp2k={Xj2erMI2zzo@v>?e|(tyE>2Z zI@??G0N=_|*rdj+RhO(v`>uD)$LxZot)oKNOWI!!+FyI?{xIK_=8szEk^hSF`&#o2 zRDUhi*I4UgeUa90OY3{n`c72~DJO4!Ghfn_mb#Rw$BvA5P})|wZ(g3GniLw?n%O=N z{P)KIe{cntz)SFha~OVbiO0gPo&!ccVt_gC)HVL9CeP!!+{P7af~V?#o5IIyBLuNBz!(eF@{-!t3CC(%b6C8K$QdqdxW%MDaM!ppN=ppr`1(wxRB6 zp}Nxb_;3c>iR@=qI|tcWZESm$4gJMzHa7B~tMb+L5O1fNhmG~s>t+87J1524u8;T( z)&3oA^40stdbaglRPnaY1Mk(muX0X|;0wQU3?B0Ld|XjS%{M;B`HCyg zMSYI>8kkoP#PAw?Kk6LB@)%rEN3F+r{rpU0A$spVm6#}ux;(+)O?a7Cig0e%3c-_b z{X(-et=-=UWeC3>7G)?=f46|M#EE?iG{&1#1e{O$KbdYQR3$)*bHxEaJMG+x%`7#u zrPkG6Yy43tLjE|VOVYelS3^m{?lFCY-fcrIXOgYAcN!w{e>R~0u61FC+Ac-)c?hq2 zU0PfEO-oCRw`)D^@BJnlaX!g^thQiWrV}a=USHstUVSequ9IZfYu>t|TeFBh-A6On zPGrB1|7B+*JFjX!2iY%G^N263ns*`F%W9jb9_#{SSGLyAPPVIc-c0kk$_u)>qg2rrM7q%|BGx*xxf7yM(Gf?*F}NUj014J8%H}P;(IP+29GT zJO(^bWAK*eVvci=*Wu?2?#CJ&^K$}x{B;B$>TvGzI=FI-c?_(JTJUoYbBvm5J;vWI zhiJFc`}nEI`}$*N_h@z!{*v}q|3=qV!1LHYKpK8HpT83&p!(`)b@^`NJSwF#4OpCKevbRaU_}&A< z0m7p_uWEiDzsQK1)zZ%xdh{qN=m~E>f6K6Vt)fAEq1lewb47|t0s3D z)`D&NlwYazD4P`cGCbODG>!=95+*6yyRy5-ZTh zOLL0MyFGTCVr}bCS`UPqIg)KalLoZ#VVN?C(618iw_crT4KAcrq zd+m-cM{1bRfM1+|ImR4nVQ?R6a3A+`Tdl|F)Z1CQ>YPWayKStPjqpjr8p1iO{+fiL*?5%v zZiMX#UniW6aBjjWgj*3topi!g3A++LNH~-*YMv+Dg0Lgu6NKXlI}koYxC&v^JV5x# z*0ExC!j}mLk>8Fm*3}ZuO85xj@`POo-z8jP}TFNc~KRQ{AQ|oaSg=N*s9W)qJ%#Gnq(K`j416YB9?Trm*O zG3I$J=P|E?D~|_v`QG4DW3?WmG`-ktq6~;8*ErGZLqcp;gSc| zYwY6&Xb@9&*%p#U@)ix#E`Tet`2HF`~_$P@?4ejJEmO8z^rfIGf zu4!ydey3wD!o}S`{kg(t_?lDqmWz*a@T|bbHYug#Ut3;oIBdVXe|%~7GD|6C zw&QHM!T5u6T#6^ddW~qkE7tW!ekr0vwZ0?AG`%nPS@B*9=v+YAw8>u4Rkl~`OYN49 zTy{~$F3qEK5!{q=Vf~~zgYA{eU-By*hI=WRqq!y9=fOF_ISBsn{t1j;$oa=P1?~Xz zT*TYg&# zUhxuo#BVNQZyb2mJJKR;Cc8!{=}7y7 z(!wzZWaVfpR`@|-N%!fz6#6n&-mt9=^KAT8H*MctDLOe)o;IRA>pE_quG^7ElH1Vk z^2hugnM3J$y10+Gqyufn%MWgJWT(EC*EQLHM4ESNgFLZ&M;6vYD;9aYUW(D*kZ*an zW7C{gnQl($C*6AFq>R4boW&0eHaC6mEDb4GNIA2+A+voRoR|Du!MV)+;4bGRILi5s zEANMh#ej_~;&B!MpVe`&`D=i4o%dC6ony@LdZ=mZM}5SgHm}3?02}wB)?<9PXOgkt zk*m_>-bsem^ZYD&FKdLk^T0O35&6$~0TJ1zWejw}+24VkWoK1_!@iwu)`U9rUH z=-%5fJt~*ci~M{077>mW*k|w{tchG`XkF=TBJkAxQ}pG&ZnkLPhy^sloJkE0?&L2Y z8>&&?%bA7sb*G$iu?Ec@%n!m^v!|r@k`(2_Nbkj5zIYopmGoe`I6E+>;4J3zqz7}F z^kN=%e@T7%y(usA$60ln4mW^m-J``EnY0` ziaBmNcO{HHAiWxG`^l1&^`NP0_0enw>Dk0q94D12w9j<@%V-ur`Yx5cCrKlF9WaHE zzKcZqFSAa~m%8bWnu?PCi&Y;+a{7MWl-FxGd$H?bP}PwA((__>P0){VzBEmIKl+xm zW8@1{Sij!PNcuA@>XS4*{j;eC>CcoSeVTHm9oaBXJM%Hpr->u|8mT}|ws?lUc}Hpp zvwa@m1m^{~0RC`}aK3UspW`;a@;Gpk`*=;vfq%HdhZx&B@bP%$^BBA);72}u;4EzL z6>;3=ahT(E)Ow6fS~<(3-sG12w}y+&2#+A_N*MmZgv%0cMYsoHZ^8`-hY>DBxH;jD zgxeFYM>vwOBjLJ)TM+JSjTuL{4B;_A`?3iTH4_1>r%2D_P_F z5q?g7?4cK77xFhIJe+WSYwi%j9SLu!dd##k*!V{Y7qXB6~I2 z=V@M|^DyS)ZRXYSs2}$S^K_oJ=sU*IJl5y+5x-t#$6IY44;$-o+d%eOmA!@RRVo|t z8&x*;4_ke|i^x{5uYMlj1m_^{gScYA&oOuc9`blT2S3llJkR5Nzhva9O9q3ZEz-*Ja3CU-iA%>J@4ShsxuM7iQnSevy8EQjjgoJ4Y9B zrx=TyotqWPmxH~UHqum8SCZLn%F2uf+?m7j^71967;C@zzEu5HQ8utsoSbyRja{nz zNILh-gKc^LLB93%cj-y?_mWdab~f}=c4bw;=TbrE|va%OByr7mFYixlqX+w zV5$9%O3};m{|Eg>@ByD)aDMRK2OB)X6+Gb>Hje?1fH`ORXCUC2nuEZcbDYbtfjR$q zP1NV{m{-U1b2og5M-5&FSLE`0QEM2Q)>p7-Ck{U3VZ5O?S+o;7=DQ-asC(6-i`Z>y zMT03m$l}la%1zs5+IP#D`PeZ>?S;n+l5l=5+B(%Rwuhbe5aD*qYG`)7y{I`xc+BB~ z+I?|xi8urQ?z>2+pYYM5$0!Em(64?x&7!ZkY)YzrsLvfgXg1E-T2LET*Hw%7^fRHt z$}?#e-Nh}BPYD;I>@4SJO^lQA_wr^v>aQs2{g---0hL2^n|iy;`8#;B{j2J++w=TQ zy6kgxKDm!cw`cWd;o4!rlQ))?9?pLyP0ihz)%m_oyi&5J)VxMPc092@OFlY7?Doz{ z>b$ZdD{(c5=_XGQpRH@F3!kZ_zgcS8#3F~pYEQH2Qb+r-r~Xyh_Sso=wdW^_?JD`O zejS3@^J$O7S~FctsR313?ua1f-{GiutBYXXw!)A3Jqu*#i@y@Ht=M2rSfgbd^J!Vx zZ)J54Vt<(PhE!#}2m7!|*#_&_l`8Vk;v!3GQkF#=SfzVXrK9|$8Dllf#aO7HqI)Ao z$X&+OU{h*&ur~WI=v?Z|l*37Ha*0R&ztm&o+~HT=6TuUX!5i?Ka|v@i-j-WDmd7KO z56qz^e=Wd|IDU43t>!qdg|+yAj}N{EJ{Li*TElRDhvNdyw1WqX6F!BW6>yGSsq8j< z>zU68jl>}fCK|(rXK0|uINxohaH^QWfS3%sYQ{QIXAIC|tkcd_TW;-i4dVA+*rFZa&aZ|E#T_lWi+4|z5#oweu$=9^_G^pM^dT^Q^8wPGuVDG2%Rn^KMzvV+Mg`)dU?`g4Eq=L7&$l5BRQYo<9!bpeG>EF4ezC#mz-aitG;`4_=q=8Ma!F5xC#QYEnOs+7j?U!UG7`v|{)r!ad2~ zi?B$zFX8^yc=$Q)Zq2PhF?|U4p%~x+g!>YP_9Jpp6aL{UjCjPL{!qevtwC15j{Ln< zF<6W5nfvSfI3*R0%PyM6ZZn<8*PrRLJFz{LKLqD&eA@J|TPXYdxH+4iy?)BXu%hPp zwQelxM!eL(=TmULC8?$z;xJY@EJA*i$i#eC4y7!5Gn(xxUQ9Xo;egoLaZ9l8(E6<8 z?xsr0gFE6JQ+ZRH^99(%{dJVP9oLC=AC8+Ab}Grfp7d9it(Yt}kNapEb&Em=G4Vi!gtd9`o1(?co}EZ+mrv;8)j%yxv)MP;a+)CHNNHSjJXMq zl%8s)6gaOz?zv&NgjMwxSTw=b3;UBQo((o+C;!p7^TN5^vjs=Oktx+?p8HRPLX!xCQ8`B!i^qe;gSt-VER-C5o!lp*l&+|+pM8rB8v4^LN zJoUmi52GF7ZPG-+r$iMa>fdXA-B*1tTbLaS%>FTWNws<6Z_hijw4FDky$PwoE$=N9 zh1b2={n1;iKK$X9vf#~fvDUjtb~M(H?Q;qi<&LApcXg_=#dDjo8_Tw$N{1INr0D-P|%VqQl{ z>06ryH@zP%ULHG=wHaDVx{%CAwp`;PZk#tuEZjMS***{O;t37j^WG4K4;%qMFb8~@2LFG( z9}ot2aW()y-_bzK9U7d=&#gZ6O!QI2aQwnLhx*VH<7=lA=I0H>AnzUx)J6HH2ppM*mz%crIbY#8@$U_zEi?VU3wh zG3eE(Gm9|#E#l!HVvXm1zAkc?TjSBgQF9)}qlfdg)EMjX{a`KBQQynOTmDM%n1?~R zCMJjn-L)*$;HGSi*%Lf;S)4e`u?1V?e^;K^;Yx6sJ<(#jtG(F$+c}hX6RReFn7c;& z`lAh-81PA+nOec*x4XWW_f{7+KW>uwb?nBJ^>vqt;|52v_dhC28}Cg``6z4eKr}$=K|sLSwgycz{&#InsGG9L3^!q*8+DWnI#2Kej%H4k;7K&OJBDuFJlq zI7Dj28;=LE@e9f*lcg||z2CavX&q{^Zs|>xU9NphaZw@S^lb&$M~}M7wW!7^n+tCc zS)P*2_IZFS;4peAID_8E`zrY6K?7It2t5<=j&#j!^@B%wtQh>``i;mzzePNHCa?3F zFz?lTUBsY1Vt~=}bJ}3k!)u7Ig}tIbBmO-NtP9L*E~^`D>6uGR!;KHS1ZvTrMc-PQ zXvm?aAvtCHKpR#2Lo z%fvTL>2WXGbc6b1O8vFE3m+N>HF*|e@~;@l4(gxo2@>6d_r6+gLVxc6Emg`@a%)O8 z=Ow1r=LfK9=>j{RS2E3a9BC?HNnf0mo6$C#em=IXqvjqs$!nq?^PY^g(0BhTS6v6a8w2s`eZq%2nR<+wdW`=nm(;vcls=+ZrFQ%aSFFL|6(536W@Bx-KC*p71`x7YRQloP}+T&%r`M z^3!XiIN=I}{Rvkm+>mex;jV=H6CP=K9fgEUC3_a(DDo{K97A|5``@Ys`Tytpdh6iN z4(>dw?cU?xQ-|{3?f&`u7~ab=@vqPC@I3yjp2^07Ia!YHPvnr`{^l)&>+X9jugg8h zyq$1C`p&NO@U&S^xN5I!@`NZ)c@N=^5y#|*zlX>&;UhJTva)%Kyq|DJaRFj|@NZRJz0ffn3yX|!CZX?^ns@@prW{`;4CDEk-aYw`2vTyK(N;Omb4SmO!jxuOir^I?3ifqoM+CRDKtb{TzMX+ug%_D&ORQ0^?r=gujhscYW5H#LM9U zt^D5xcpi>qJyujU*SkF_priBGfCr5uSVYV-^NF5I0vcV)8tBtv3~Nc>$(}XJ7_e)h zW8lr{eOa%vm*gj%uLrCxnJsX}l*a7HXAh-H;_m@w@q2)M#fofhM@d=VGDl$PiZ24f zhUaG4vbR>wI^+)QYxf}F_rTw!+X0=G^+WRnelL4BzH5a5O6rz8f$jD@3HZ|4 ziJ9t!Dl4z&4%{^FOF)B!lI;1GI?Cd@IRlf5+68WO3t(H{2}-V2j)5a1?E|MisLsYW zE2kW)VIR1XWeeQbp&|S2B>jKBZGHr_8sZoz_ixF@pU$hy$n`1Ud1-sw2TBK9pz;>P4oCDwGGy10i!7H2sUv}=!l006@pBg?4n77C&uvf!gBz$yV{$hVO zphARGV6pmrShL9M@{9DF0hjtZ1#X(!mworWByYQSJzz_Fr@+S*`?0{#^YZ+Y*8*(+ z`|@)U&OpF8oAcN6pJANgc?|OSzY)~&>N6ET^YgWEuHtKPtd7ClAMJD`09vkjGUr{q)4T5%Toe-w^c@#j9dl_OUC zq+KrM65)~*e|(Lb^1+JR4l1E|&gdRog8cV`swm|MBj)f#t>S&HlLg;7Cn(9Mn^|yL zvY%3~b~Q`nPrt5&x>33zt>Pq`F5?ArRL7# zg_Ivh+FSgMYPl=w=ltclmVJNnF*$tnx8#Lh{_MZo&XPgj6>9x7`PsS`$xCVdoMbyJ z+Mis#_~GPOvI~xVSE8E7{&;=gsw~TK>?d)l63Vz>9}_ z)4ZPUg^lLOPTwfS<;75IakBC9;U~4?q z?P0A042@&#O&x<=#Pd3c=WD4oi}8H0Pt<{*ucf{h{+yv#oa%B^^Yq>?ed7OadqJV2 znkwgit$#1?QH{feU-q3%X&R6BzwGaa(=_@szx0)xoKMsIcI%hj?QEJR-??A$SC*w| z>VEw-Uur{|rtG(0^PlNEqJvd-?|o^SY^wYld($*!RO{P5pXPhgG#`%ts{hog$ISJc zJ+Gu`vS0tTp4XZ*jgM-*M#*WKAJ2Z}cRHP>F<$!>FDq%9gd4x+Ti#C7j6L6e*H`Zs{RU?i=qvwMV7#93cfhOGzJ|5b`pq08PK~i2^au=&)iKCWD*Jz?TuSkIQ^S32eG}YEzu=sBUL}+?6%4gA#9@H#e6SGHK`60!G zKl3yUeeZ6me{EDN-{=Ops-RBXiZc4M^}VV7lP->+t}~{&zY# z8C)xNv*=YglI-X0vFK9IDYaB%-|}8%Xjd;AHDA-GaYu{3wWda6 z&9K@FD`TJC8cx$}l22N4)1PHaQa|VVSE6-U3>jMcFO3DUK_vVC!j9dMq21}(#Ik-v z+K=6|3~gAkpEmYWVr_=@k=rl3<*E$r+Je9A==B-e>Lq{KYm+my2P^!tC#=rUmdg6e zZoVr+yTI$09c|3ewl49@-b?wHEB&(XZ_3d6`2VtPpVxue8QP(*em%cUwBP)Nf5z9N z{Vz()&_)Qq@>|k+RaLgzg$!+F(zxZ%e<#I%x8~#iS0rU%wk^r6XIrC;F78o8<1$B}dNBcD{olprl0m>ibnFlTZmYqu#Cjhy7n2)~Slc->0|V_8#F0^(bb?bHk3Ecj7Jk zv5!jgtG0G_Wz-RtyiKe%;NA8B!WVj^`uXoou;`-S{j@Zx^WE*0plx0-CQ$QD+a{qZ zVaL;J{A%tG@j=Z42Nl2SK5Z-GUX~Qq`>LO_59ygVCOz{JRy}i{`xQ-f@-8>u%GXqP z?R5kj{Hda;fN8$D?xY&J0i-XU)1#8DI*o6DWcr zm~)ooOwY&≫G*#ekS|&H-}(Q4E+PCJdOff-pTQFf%G#Wv%=Wb=3_W3;_;9x2;C*Vp%GYX+_-*O=ai4zj*Xd;BO6t$i!{D;!xMkIs z>Ez5zU+dANOhemA3#^^*PA7Z&`&t`psAg>0^tQEI(sZ)W=xcrXp|kNu@8Y)m^!xw5 zrF^X;-b5RZt@g9^CN!SUK2~qfWyYf48roVEqcvL}`dDk%T5FuHZev?a^GT%NPajUd zpFUasemeSVD*8vt_U^L15A{Ec`adrF$N10a_}As}S$wVJ_|DS!(`o!6a{R+-exGQ5 zMdbX7()@SR{5#6|`_lPIrt>pdo*&HL5XJnBqVrpe&TmCJzt`#fy3zUnMdv?8p8xPX zzfWuW`-RZo@1gwr<^6rJ-taz!7Vj?jdnc?tVCdOi!1P$F_?tq;M+=V957s#T=8D-e zKagR|)<4F;0~vhyz~2CXgBE(`13dig6qA9$!C3Ime8LAX_`qnv0UsC-_>kGSOwayK z4Eq*1(8C9~tdDWw6LBIQ7Bh>N#Q+(9D+zn(;1lg>`t5amBmTkRE9%^-Cz9}e_Fe_c zaF;tDk-pVF^My*imwpQ#oSV@SXQ>q+(LS=5y*KiY*>% zlSAHLJplflE(N)RQ74k1ANsSSsds224*ECqh`L*7IEQc0e`Bt6oXgU*yQyG zLQUYuR}s`teX0uhHhqC}chubON7A^3Utg$O`brHA^!cNVD(~H=q;Jy)x4o>&_HmN< z^PBLd>z&Oe#J1+Bck9 zu{2j--=0vHz2dGxE+quJS~<^G=y%

    `&JnlE3SY@4Vl!rt6484&Ropdw%lIcj%3~ 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 From 992091865d9bb09c5732ee53a941692ece4ce6bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 15 Aug 2023 21:06:20 +0200 Subject: [PATCH 15/53] Try a death animation. --- examples/3d-bomberman/3d-bomberman.json | 582 +++++++++++++++++++++++- 1 file changed, 576 insertions(+), 6 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 77ca1fc2f..01779e349 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1129,7 +1129,12 @@ "behaviors": [ { "name": "PlayerModel", - "type": "Player::PlayerModel" + "type": "Player::PlayerModel", + "Tween": "Tween" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" } ], "content": { @@ -1387,7 +1392,12 @@ "behaviors": [ { "name": "PlayerModel", - "type": "Player::PlayerModel" + "type": "Player::PlayerModel", + "Tween": "Tween" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" } ], "content": { @@ -1645,7 +1655,12 @@ "behaviors": [ { "name": "PlayerModel", - "type": "Player::PlayerModel" + "type": "Player::PlayerModel", + "Tween": "Tween" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" } ], "content": { @@ -1903,7 +1918,12 @@ "behaviors": [ { "name": "PlayerModel", - "type": "Player::PlayerModel" + "type": "Player::PlayerModel", + "Tween": "Tween" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" } ], "content": { @@ -3702,6 +3722,36 @@ } ], "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "PlayerModel", + "Player", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "Explosion.Variable(DirectionX)", + "Explosion.Variable(DirectionY)", + "" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ @@ -3792,6 +3842,16 @@ "Death", "True" ] + }, + { + "type": { + "value": "Player::PlayerModel::CanRespawn" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "" + ] } ], "actions": [ @@ -3974,6 +4034,16 @@ "type": "BuiltinCommonInstructions::ForEach", "object": "Player", "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "False" + ] + }, { "type": { "value": "LinkedObjects::PickObjectsLinkedTo" @@ -4010,6 +4080,16 @@ "Player.TopDownMovement::Angle()", "" ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetZ" + }, + "parameters": [ + "PlayerModel", + "=", + "0" + ] } ], "events": [ @@ -25577,6 +25657,28 @@ "Bomb.Variable(PlayerNum)" ] }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionY\")" + ] + }, { "type": { "value": "Cache" @@ -26228,7 +26330,13 @@ "Behavior", "" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { "value": "Cache" @@ -26583,7 +26691,88 @@ "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "Player::PlayerModel::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"CanRespawn\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Alive\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Player::PlayerModel::IsPlayingDeathAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Player::PlayerModel::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"DeathAnimation\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"CanRespawn\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Player::PlayerModel::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Alive\"" + ] + } + ], "actions": [ { "type": { @@ -26636,6 +26825,42 @@ ] } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Player::PlayerModel::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"DeathAnimation\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundY" + }, + "parameters": [ + "Object", + "Object.Variable(ExplosionDirectionX) * 4 * 360 * TimeDelta()" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "Object", + "Object.Variable(ExplosionDirectionY) * 4 * 360 * TimeDelta()" + ] + } + ] } ], "parameters": [ @@ -26736,6 +26961,325 @@ } ], "objectGroups": [] + }, + { + "fullName": "Play death animation", + "functionType": "Action", + "name": "PlayDeathAnimation", + "sentence": "Play death animation of _PARAM0_ toward _PARAM2_ ; _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"ExplosionDirectionY\"", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectPositionXTween" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayX\"", + "Object.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 1000", + "\"easeOutQuad\"", + "2000", + "" + ] + }, + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayZ\"", + "400", + "\"easeOutQuad\"", + "1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"ExplosionDirectionX\"", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectPositionYTween" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayY\"", + "Object.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 400", + "\"easeOutQuad\"", + "1000", + "" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundY" + }, + "parameters": [ + "Object", + "45" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"ExplosionDirectionY\"", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayZ\"", + "400", + "\"easeOutQuad\"", + "1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"ExplosionDirectionY\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayZ\"", + "600", + "\"easeOutQuad\"", + "1000", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "ExplosionDirectionX", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "ExplosionDirectionY", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionY\")" + ] + }, + { + "type": { + "value": "Player::PlayerModel::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"DeathAnimation\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + }, + { + "description": "Explosion direction X", + "name": "ExplosionDirectionX", + "type": "expression" + }, + { + "description": "Explosion direction Y", + "name": "ExplosionDirectionY", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "Death animation playing", + "functionType": "Condition", + "name": "IsPlayingDeathAnimation", + "private": true, + "sentence": "Death animation of _PARAM0_ is playing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween::IsPlaying" + }, + "parameters": [ + "Object", + "Tween", + "\"FlyAwayZ\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Can respawn", + "functionType": "Condition", + "name": "CanRespawn", + "sentence": "_PARAM0_ can respawn", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Player::PlayerModel::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"CanRespawn\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [ @@ -26749,6 +27293,32 @@ "extraInformation": [], "hidden": true, "name": "MovementAngle" + }, + { + "value": "", + "type": "Behavior", + "label": "2D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" + }, + { + "value": "Alive", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Alive", + "DeathAnimation", + "CanRespawn" + ], + "hidden": true, + "name": "State" } ], "sharedPropertyDescriptors": [] From ec573ce93ef808fff13be962d1f0d641be3683e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 19 Aug 2023 17:42:50 +0200 Subject: [PATCH 16/53] Better death animation. --- examples/3d-bomberman/3d-bomberman.json | 138 ++++++++++++++++++------ 1 file changed, 105 insertions(+), 33 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 01779e349..4db660213 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -4028,6 +4028,24 @@ "PinkBunny" ] } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeTimeScale" + }, + "parameters": [ + "", + "0.1" + ] + } + ] + } ] }, { @@ -26841,23 +26859,60 @@ ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundY" - }, - "parameters": [ - "Object", - "Object.Variable(ExplosionDirectionX) * 4 * 360 * TimeDelta()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "ExplosionDirectionX", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "Object", + "-Object.Variable(ExplosionDirectionY) * 90 * TimeDelta() / 0.75" + ] + } ] }, { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundX" - }, - "parameters": [ - "Object", - "Object.Variable(ExplosionDirectionY) * 4 * 360 * TimeDelta()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "ExplosionDirectionY", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundY" + }, + "parameters": [ + "Object", + "Object.Variable(ExplosionDirectionX) * 90 * TimeDelta() / 0.75" + ] + } ] } ] @@ -26968,6 +27023,32 @@ "name": "PlayDeathAnimation", "sentence": "Play death animation of _PARAM0_ toward _PARAM2_ ; _PARAM3_", "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "0" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ @@ -26990,10 +27071,10 @@ "parameters": [ "Object", "Tween", - "\"FlyAwayX\"", + "\"FlyAway\"", "Object.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 1000", - "\"easeOutQuad\"", - "2000", + "\"easeInQuad\"", + "750", "" ] }, @@ -27007,7 +27088,7 @@ "\"FlyAwayZ\"", "400", "\"easeOutQuad\"", - "1000", + "750", "" ] } @@ -27035,21 +27116,12 @@ "parameters": [ "Object", "Tween", - "\"FlyAwayY\"", - "Object.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 400", - "\"easeOutQuad\"", - "1000", + "\"FlyAway\"", + "Object.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 600", + "\"easeInQuad\"", + "750", "" ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundY" - }, - "parameters": [ - "Object", - "45" - ] } ], "events": [ @@ -27078,7 +27150,7 @@ "\"FlyAwayZ\"", "400", "\"easeOutQuad\"", - "1000", + "750", "" ] } @@ -27109,7 +27181,7 @@ "\"FlyAwayZ\"", "600", "\"easeOutQuad\"", - "1000", + "750", "" ] } @@ -27200,7 +27272,7 @@ "parameters": [ "Object", "Tween", - "\"FlyAwayZ\"" + "\"FlyAway\"" ] } ], From d14077ab9dc1743c4c0e47ea7f6eaa3a4f8b6a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 19 Aug 2023 18:23:17 +0200 Subject: [PATCH 17/53] Fix initial player direction. --- examples/3d-bomberman/3d-bomberman.json | 407 ++++++++++++++++-------- 1 file changed, 273 insertions(+), 134 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 4db660213..fc820a9be 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -4052,16 +4052,6 @@ "type": "BuiltinCommonInstructions::ForEach", "object": "Player", "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Player", - "Death", - "False" - ] - }, { "type": { "value": "LinkedObjects::PickObjectsLinkedTo" @@ -4077,92 +4067,15 @@ "actions": [ { "type": { - "value": "SetCenter" - }, - "parameters": [ - "PlayerModel", - "=", - "Player.CenterX()", - "=", - "Player.CenterY() + 16" - ] - }, - { - "type": { - "value": "Player::PlayerModel::SetMovementAngle" + "value": "Player::PlayerModel::UpdatePosition" }, "parameters": [ "PlayerModel", "PlayerModel", - "=", - "Player.TopDownMovement::Angle()", + "Player", + "TopDownMovement", "" ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetZ" - }, - "parameters": [ - "PlayerModel", - "=", - "0" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "TopDownMovementBehavior::IsMoving" - }, - "parameters": [ - "Player", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::SetAnimationName" - }, - "parameters": [ - "PlayerModel", - "=", - "\"Idle\"" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::IsMoving" - }, - "parameters": [ - "Player", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::SetAnimationName" - }, - "parameters": [ - "PlayerModel", - "=", - "\"Run\"" - ] - } - ] } ] } @@ -26792,27 +26705,6 @@ } ], "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Angle", - "+", - "sign(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))) * min(abs(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))), 720 * TimeDelta())" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Object", - "=", - "Object.Variable(Angle)" - ] - }, { "type": { "value": "Scene3D::Model3DObject::SetRotationY" @@ -26832,14 +26724,60 @@ "=", "0" ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "HasEverMoved", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Angle", + "+", + "sign(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))) * min(abs(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))), 720 * TimeDelta())" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(Angle)" + ] + } + ] }, { - "type": { - "value": "Scene3D::Model3DObject::TurnAroundX" - }, - "parameters": [ - "Object", - "45" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::TurnAroundX" + }, + "parameters": [ + "Object", + "45" + ] + } ] } ] @@ -27352,6 +27290,178 @@ } ], "objectGroups": [] + }, + { + "fullName": "Update position", + "functionType": "Action", + "name": "UpdatePosition", + "sentence": "Update the position of _PARAM0_ according to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "HasEverMoved", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Player", + "Death", + "False" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Object", + "=", + "Player.CenterX()", + "=", + "Player.CenterY() + 16" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetZ" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::SetMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Player.TopDownMovement::Angle()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "Object", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetAnimationName" + }, + "parameters": [ + "Object", + "=", + "\"Run\"" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + }, + { + "description": "Player", + "name": "Player", + "type": "objectList" + }, + { + "description": "Top-down movement", + "name": "TopDownMovement", + "supplementaryInformation": "TopDownMovementBehavior::TopDownMovementBehavior", + "type": "behavior" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [ @@ -28054,7 +28164,7 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", @@ -28099,7 +28209,7 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", @@ -28172,7 +28282,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.43028208721630734, + "zoomFactor": 0.7561452800822535, "windowMask": false } }, @@ -29262,7 +29372,7 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", @@ -29277,7 +29387,7 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", @@ -29405,15 +29515,14 @@ }, { "angle": 0, - "customSize": true, - "depth": 0, + "customSize": false, "height": 68, "layer": "", "name": "Player2", "persistentUuid": "2b89c85e-e86a-48d5-ac4d-a90dcda0f833", "width": 82, - "x": 182, - "y": -9, + "x": 199, + "y": 6, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -29427,8 +29536,8 @@ "name": "Player3", "persistentUuid": "513d236d-ffbc-4367-917a-dd9eaa59ce66", "width": 82, - "x": 190, - "y": 600, + "x": 199, + "y": 606, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -29442,7 +29551,7 @@ "name": "Player4", "persistentUuid": "7e397593-ecf8-4d95-b0c6-ea43b45731f2", "width": 82, - "x": 1030, + "x": 1039, "y": 6, "zOrder": 10, "numberProperties": [], @@ -30439,14 +30548,14 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", "name": "BlueBunny", "persistentUuid": "3cc5034c-7d2b-4e8b-937f-32ee4bcd07e1", "width": 0, - "x": 1054, + "x": 1066, "y": 606, "zOrder": 14, "numberProperties": [], @@ -31462,14 +31571,14 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 180, "customSize": false, "height": 0, "layer": "", "name": "PinkBunny", "persistentUuid": "049d618c-239e-4c7b-b1bc-d9b9927bb44c", "width": 0, - "x": 1064, + "x": 1056, "y": 54, "zOrder": 15, "numberProperties": [], @@ -31523,6 +31632,36 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PurpleBunny", + "persistentUuid": "64524959-335e-4bc8-a0ce-dc510e61e25d", + "width": 0, + "x": 224, + "y": 54, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "OrangeBunny", + "persistentUuid": "3c33e146-7812-4e39-8176-31d418fc3c98", + "width": 0, + "x": 214, + "y": 606, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "editionSettings": { @@ -31535,7 +31674,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.24141454161229675, + "zoomFactor": 0.6749291901856892, "windowMask": false } } From eac87c59a35cf744a35b8979111434a2ea89b25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 19 Aug 2023 19:22:15 +0200 Subject: [PATCH 18/53] Fix player selection. --- examples/3d-bomberman/3d-bomberman.json | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index fc820a9be..af06b3443 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -4030,6 +4030,60 @@ } ], "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneInstancesCount" + }, + "parameters": [ + "", + "Player3", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "OrangeBunny", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneInstancesCount" + }, + "parameters": [ + "", + "Player4", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "PinkBunny", + "" + ] + } + ] + }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", From 93fa4ef7f9e7f71ffce6d76d9546c2e8b00589be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 19 Aug 2023 19:51:05 +0200 Subject: [PATCH 19/53] Add a respawn animation. --- examples/3d-bomberman/3d-bomberman.json | 321 ++++++++++++++++++++---- 1 file changed, 269 insertions(+), 52 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index af06b3443..e50a296ee 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1130,11 +1130,16 @@ { "name": "PlayerModel", "type": "Player::PlayerModel", - "Tween": "Tween" + "Tween": "Tween", + "Tween3D": "Tween3D" }, { "name": "Tween", "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -1393,11 +1398,16 @@ { "name": "PlayerModel", "type": "Player::PlayerModel", - "Tween": "Tween" + "Tween": "Tween", + "Tween3D": "Tween3D" }, { "name": "Tween", "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -1656,11 +1666,16 @@ { "name": "PlayerModel", "type": "Player::PlayerModel", - "Tween": "Tween" + "Tween": "Tween", + "Tween3D": "Tween3D" }, { "name": "Tween", "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -1919,11 +1934,16 @@ { "name": "PlayerModel", "type": "Player::PlayerModel", - "Tween": "Tween" + "Tween": "Tween", + "Tween3D": "Tween3D" }, { "name": "Tween", "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -3907,6 +3927,36 @@ "" ] } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "PlayerModel", + "Player", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayRespawnAnimation" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "" + ] + } + ] + } ] } ] @@ -26668,6 +26718,56 @@ "name": "PlayerModel", "objectType": "Scene3D::Model3DObject", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "90" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Angle", + "=", + "90" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -26782,6 +26882,34 @@ ], "events": [ { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Angle", + "+", + "sign(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))) * min(abs(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))), 720 * TimeDelta())" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(Angle)" + ] + } + ] + }, + { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { @@ -27352,18 +27480,9 @@ "sentence": "Update the position of _PARAM0_ according to _PARAM2_", "events": [ { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::IsMoving" - }, - "parameters": [ - "Player", - "TopDownMovement" - ] - } - ], + "conditions": [], "actions": [ { "type": { @@ -27418,7 +27537,17 @@ "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], "actions": [ { "type": { @@ -27516,6 +27645,82 @@ } ], "objectGroups": [] + }, + { + "fullName": "Play respwan animation", + "functionType": "Action", + "name": "PlayRespawnAnimation", + "sentence": "Play respwan animation of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "90" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "Angle", + "=", + "90" + ] + }, + { + "type": { + "value": "Tween3D::SetStretchZ" + }, + "parameters": [ + "", + "=", + "8", + "Object", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenStretchZ" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Unstrentch\"", + "1", + "1", + "\"elastic\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [ @@ -27555,6 +27760,18 @@ ], "hidden": true, "name": "State" + }, + { + "value": "", + "type": "Behavior", + "label": "3D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween3D::Tween3D" + ], + "hidden": false, + "name": "Tween3D" } ], "sharedPropertyDescriptors": [] @@ -28218,60 +28435,60 @@ "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "BlueBunny", "persistentUuid": "0e59664b-d4d7-45df-a225-576dd3049dd1", "width": 0, - "x": 1054, - "y": 606, + "x": 1036, + "y": 624, "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PurpleBunny", "persistentUuid": "a0917fc0-983f-44f6-8fe3-ae14f0398f39", "width": 0, - "x": 224, - "y": 54, + "x": 244, + "y": 34, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "OrangeBunny", "persistentUuid": "ff41b690-4336-4ff1-b2be-1247be2900f1", "width": 0, - "x": 214, - "y": 606, + "x": 244, + "y": 624, "zOrder": 16, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PinkBunny", "persistentUuid": "4b6723f8-7101-429b-88c4-62783fdd6a69", "width": 0, - "x": 1064, - "y": 54, + "x": 1036, + "y": 24, "zOrder": 17, "numberProperties": [], "stringProperties": [], @@ -29426,60 +29643,60 @@ "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "BlueBunny", "persistentUuid": "d215408a-951f-495f-aef7-94849aa89639", "width": 0, - "x": 1054, - "y": 606, + "x": 1036, + "y": 624, "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PinkBunny", "persistentUuid": "bec5a1c6-d7cc-498d-b458-c32de613db3e", "width": 0, - "x": 1064, - "y": 54, + "x": 1036, + "y": 24, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "OrangeBunny", "persistentUuid": "dbe90f46-ae68-4863-bde9-44f85ca2b2bd", "width": 0, - "x": 214, - "y": 606, + "x": 244, + "y": 624, "zOrder": 16, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PurpleBunny", "persistentUuid": "6aa5c9ea-48f7-4813-9359-7bddcf707535", "width": 0, - "x": 214, - "y": 54, + "x": 244, + "y": 34, "zOrder": 17, "numberProperties": [], "stringProperties": [], @@ -30602,15 +30819,15 @@ "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "BlueBunny", "persistentUuid": "3cc5034c-7d2b-4e8b-937f-32ee4bcd07e1", "width": 0, - "x": 1066, - "y": 606, + "x": 1036, + "y": 624, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -31625,15 +31842,15 @@ "initialVariables": [] }, { - "angle": 180, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PinkBunny", "persistentUuid": "049d618c-239e-4c7b-b1bc-d9b9927bb44c", "width": 0, - "x": 1056, - "y": 54, + "x": 1036, + "y": 24, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -31688,30 +31905,30 @@ "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "PurpleBunny", "persistentUuid": "64524959-335e-4bc8-a0ce-dc510e61e25d", "width": 0, - "x": 224, - "y": 54, + "x": 244, + "y": 24, "zOrder": 19, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { - "angle": 0, + "angle": 90, "customSize": false, "height": 0, "layer": "", "name": "OrangeBunny", "persistentUuid": "3c33e146-7812-4e39-8176-31d418fc3c98", "width": 0, - "x": 214, - "y": 606, + "x": 244, + "y": 624, "zOrder": 20, "numberProperties": [], "stringProperties": [], From 7e1b252227c41c66b60c5b7a39bb226f522ef597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 19 Aug 2023 22:55:00 +0200 Subject: [PATCH 20/53] Use billboards for bonuses. --- examples/3d-bomberman/3d-bomberman.json | 1239 ++++++++++++++++++----- 1 file changed, 990 insertions(+), 249 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index e50a296ee..c7d915f70 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2226,113 +2226,49 @@ ] }, { - "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Bonus", "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, + "type": "Scene3D::Cube3DObject", "variables": [], "effects": [], - "behaviors": [], - "animations": [ - { - "name": "BombBonus", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "BombeBonus-1.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } - ] - } - ] - }, + "behaviors": [ { - "name": "FlameBonus", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": true, - "image": "assets\\FlammeBonus.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [ - [ - { - "x": 16, - "y": 16 - }, - { - "x": 32, - "y": 16 - }, - { - "x": 32, - "y": 32 - }, - { - "x": 16, - "y": 32 - } - ] - ] - } - ] - } - ] + "name": "Billboard", + "type": "Billboard::Billboard", + "ShouldRotateX": true, + "ShouldRotateY": true, + "ShouldRotateZ": true, + "OffsetPositionMode": "No change" } - ] + ], + "content": { + "width": 60, + "height": 60, + "depth": 0.01, + "enableTextureTransparency": true, + "facesOrientation": "Y", + "frontFaceResourceName": "BombeBonus-1.png", + "backFaceResourceName": "", + "backFaceUpThroughWhichAxisRotation": "X", + "leftFaceResourceName": "", + "rightFaceResourceName": "", + "topFaceResourceName": "", + "bottomFaceResourceName": "", + "frontFaceVisible": true, + "backFaceVisible": false, + "leftFaceVisible": false, + "rightFaceVisible": false, + "topFaceVisible": false, + "bottomFaceVisible": false, + "frontFaceResourceRepeat": false, + "backFaceResourceRepeat": false, + "leftFaceResourceRepeat": false, + "rightFaceResourceRepeat": false, + "topFaceResourceRepeat": false, + "bottomFaceResourceRepeat": false, + "materialType": "Basic" + } }, { "assetStoreId": "", @@ -3035,13 +2971,12 @@ "conditions": [ { "type": { - "value": "CollisionNP" + "value": "Distance" }, "parameters": [ "Player", "Bonus", - "", - "", + "20", "" ] } @@ -4233,6 +4168,10 @@ } ], "behaviorsSharedData": [ + { + "name": "Billboard", + "type": "Billboard::Billboard" + }, { "name": "BombAnimator", "type": "BombExplosion::BombAnimator" @@ -6066,139 +6005,900 @@ "" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The crate is removed after because its location is used to create the bonus." + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "3D Billboard", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXBpbmUtdHJlZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMCwyMVYxOEgzTDgsMTNINUwxMCw4SDdMMTIsM0wxNyw4SDE0TDE5LDEzSDE2TDIxLDE4SDE0VjIxSDEwWiIgLz48L3N2Zz4=", + "name": "Billboard", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/b46f9cf1fc6b0ef59a461c7831003d1fb091137cbedbae876774f40f8b7dea97_pine-tree.svg", + "shortDescription": "Rotate 3D objects to appear like 2D sprites.", + "version": "1.0.0", + "description": [ + "Rotate 3D objects to make them face the camera and appear like 2D sprite.", + "", + "The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game))." + ], + "origin": { + "identifier": "Billboard", + "name": "gdevelop-extension-store" + }, + "tags": [ + "3d" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Rotate to always face the camera (only the front face of the cube should be enabled).", + "fullName": "Billboard", + "name": "Billboard", + "objectType": "Scene3D::Cube3DObject", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::EnableTransparency" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make the instance bottom center seen in the scene editor at the same position in the game after the instance is rotated." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyOffsetPositionMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Standing on Z axis\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "Object.Height() / 2" + ] + }, + { + "type": { + "value": "Scene3D::Cube3DObject::SetZ" + }, + "parameters": [ + "Object", + "+", + "Object.Height() / 2" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::FaceCamera" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Rotate the object to the camera. This is also done automatically at the end of the scene events.", + "fullName": "Rotate to face the camera", + "functionType": "Action", + "name": "FaceCamera", + "sentence": "Rotate _PARAM0_ to the camera", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateX" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Cube3DObject::SetRotationX" + }, + "parameters": [ + "Object", + "=", + "-Scene3D::CameraRotationX(Object.Layer())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateY" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Cube3DObject::SetRotationY" + }, + "parameters": [ + "Object", + "=", + "Scene3D::CameraRotationY(Object.Layer())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateZ" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "CameraAngle(Object.Layer())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object should rotate on X axis.", + "fullName": "Should rotate on X axis", + "functionType": "Condition", + "group": "Billboard configuration", + "name": "ShouldRotateX", + "sentence": "_PARAM0_ should rotate on X axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateX" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change if the object should rotate on X axis.", + "fullName": "Should rotate on X axis", + "functionType": "Action", + "group": "Billboard configuration", + "name": "SetShouldRotateX", + "sentence": "_PARAM0_ should rotate on X axis: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateX" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateX" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + }, + { + "defaultValue": "no", + "description": "ShouldRotateX", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object should rotate on Y axis.", + "fullName": "Should rotate on Y axis", + "functionType": "Condition", + "group": "Billboard configuration", + "name": "ShouldRotateY", + "sentence": "_PARAM0_ should rotate on Y axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateY" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change if the object should rotate on Y axis.", + "fullName": "Should rotate on Y axis", + "functionType": "Action", + "group": "Billboard configuration", + "name": "SetShouldRotateY", + "sentence": "_PARAM0_ should rotate on Y axis: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateY" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateY" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + }, + { + "defaultValue": "no", + "description": "ShouldRotateY", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object should rotate on Z axis.", + "fullName": "Should rotate on Z axis", + "functionType": "Condition", + "group": "Billboard configuration", + "name": "ShouldRotateZ", + "sentence": "_PARAM0_ should rotate on Z axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Billboard::Billboard::PropertyShouldRotateZ" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change if the object should rotate on Z axis.", + "fullName": "Should rotate on Z axis", + "functionType": "Action", + "group": "Billboard configuration", + "name": "SetShouldRotateZ", + "sentence": "_PARAM0_ should rotate on Z axis: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateZ" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Billboard::Billboard::SetPropertyShouldRotateZ" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" + }, + { + "defaultValue": "no", + "description": "ShouldRotateZ", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "description": "Enable texture transparency of the front face.", + "fullName": "Enable texture transparency", + "functionType": "Action", + "name": "EnableTransparency", + "private": true, + "sentence": "Enable texture transparency of _PARAM0_", + "events": [ { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.Cube3DRuntimeObject} */", + "const object = objects[0];", + "object._shouldUseTransparentTexture = true;", + "/** @type {gdjs.Cube3DRuntimeObjectRenderer} */", + "const renderer = object.getRenderer();", + "renderer.updateFace(0);", "" - ] + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" }, { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Billboard::Billboard", + "type": "behavior" } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] + ], + "objectGroups": [] } ], - "actions": [ + "propertyDescriptors": [ { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ + "value": "true", + "type": "Boolean", + "label": "Should rotate on X axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldRotateX" + }, { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ + "value": "true", + "type": "Boolean", + "label": "Should rotate on Y axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldRotateY" + }, { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] + "value": "true", + "type": "Boolean", + "label": "Should rotate on Z axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldRotateZ" + }, + { + "value": "No change", + "type": "Choice", + "label": "Offset position", + "description": "", + "group": "", + "extraInformation": [ + "No change", + "Standing on Z axis" + ], + "hidden": false, + "name": "OffsetPositionMode" } - ] + ], + "sharedPropertyDescriptors": [] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "D8H", "category": "Movement", @@ -26271,42 +26971,79 @@ }, { "type": { - "value": "ChangePlan" + "value": "ModVarObjet" }, "parameters": [ "Bonus", + "Type", "=", - "Bonus.Y() + 10" + "GetArgumentAsNumber(\"Type\")" ] }, { "type": { - "value": "ChangeHeight" + "value": "Scene3D::Cube3DObject::SetZ" }, "parameters": [ "Bonus", "=", - "48" + "Bonus.Height() / 2" ] - }, + } + ], + "events": [ { - "type": { - "value": "ChangeWidth" - }, - "parameters": [ - "Bonus", - "=", - "48" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Type\"", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Cube3DObject::SetFaceResource" + }, + "parameters": [ + "Bonus", + "\"front\"", + "BombeBonus-1.png" + ] + } ] }, { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Bonus", - "=", - "GetArgumentAsNumber(\"Type\")" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Type\"", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Cube3DObject::SetFaceResource" + }, + "parameters": [ + "Bonus", + "\"front\"", + "assets\\FlammeBonus.png" + ] + } ] } ] @@ -26316,7 +27053,7 @@ { "description": "Bonus", "name": "Bonus", - "supplementaryInformation": "Sprite", + "supplementaryInformation": "Scene3D::Cube3DObject", "type": "objectList" }, { @@ -26410,11 +27147,13 @@ "conditions": [ { "type": { - "value": "AnimationName" + "value": "VarObjet" }, "parameters": [ "Bonus", - "\"BombBonus\"" + "Type", + "=", + "0" ] } ], @@ -26437,11 +27176,13 @@ "conditions": [ { "type": { - "value": "AnimationName" + "value": "VarObjet" }, "parameters": [ "Bonus", - "\"FlameBonus\"" + "Type", + "=", + "1" ] } ], @@ -26493,7 +27234,7 @@ "Object", "Bonus[VariableString(newIndex)][\"Number\"]", "=", - "Bonus.Animation()" + "Bonus.Variable(Type)" ] }, { @@ -26545,7 +27286,7 @@ { "description": "Bonus", "name": "Bonus", - "supplementaryInformation": "Sprite", + "supplementaryInformation": "Scene3D::Cube3DObject", "type": "objectList" } ], @@ -26651,7 +27392,7 @@ { "description": "Bonus", "name": "Bonus", - "supplementaryInformation": "Sprite", + "supplementaryInformation": "Scene3D::Cube3DObject", "type": "objectList" } ], From acfd9eb0ac3c019090e0682471f9cb1cb3f75855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 20 Aug 2023 13:17:43 +0200 Subject: [PATCH 21/53] Fix bonuses. --- examples/3d-bomberman/3d-bomberman.json | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index c7d915f70..fd3a20f81 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2243,8 +2243,8 @@ } ], "content": { - "width": 60, - "height": 60, + "width": 50, + "height": 50, "depth": 0.01, "enableTextureTransparency": true, "facesOrientation": "Y", @@ -5978,14 +5978,15 @@ "comment": "Random bonus creation" }, { - "type": "BuiltinCommonInstructions::Standard", + "type": "BuiltinCommonInstructions::ForEach", + "object": "Crate", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ - "RandomInRange(1,4)", + "RandomInRange(1, 4)", "<=", "1" ] @@ -26964,8 +26965,8 @@ "parameters": [ "", "Bonus", - "GetArgumentAsNumber(\"PositionX\")", - "GetArgumentAsNumber(\"PositionY\")", + "GetArgumentAsNumber(\"PositionX\") + 5", + "GetArgumentAsNumber(\"PositionY\") + 5", "" ] }, @@ -27002,7 +27003,7 @@ "parameters": [ "\"Type\"", "=", - "0" + "1" ] } ], @@ -27029,7 +27030,7 @@ "parameters": [ "\"Type\"", "=", - "1" + "2" ] } ], @@ -27153,7 +27154,7 @@ "Bonus", "Type", "=", - "0" + "1" ] } ], @@ -27182,7 +27183,7 @@ "Bonus", "Type", "=", - "1" + "2" ] } ], @@ -27245,7 +27246,7 @@ "Object", "Bonus[VariableString(newIndex)][\"X\"]", "=", - "Bonus.X()" + "Bonus.X() - 5" ] }, { @@ -27256,7 +27257,7 @@ "Object", "Bonus[VariableString(newIndex)][\"Y\"]", "=", - "Bonus.Y()" + "Bonus.Y() - 5" ] }, { From ac5e8bbc93f8047610b3b5c6c37cdbe80391edad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 20 Aug 2023 13:39:14 +0200 Subject: [PATCH 22/53] Adjust crate color. --- examples/3d-bomberman/3d-bomberman.json | 2 +- examples/3d-bomberman/assets/Cabbage.glb | Bin 13616 -> 11616 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index fd3a20f81..f918fb302 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -30503,7 +30503,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.4780648625316274, + "zoomFactor": 0.6233203203318115, "windowMask": false } }, diff --git a/examples/3d-bomberman/assets/Cabbage.glb b/examples/3d-bomberman/assets/Cabbage.glb index c1a8176d1e34495304d86b5dc4d7d46639272b82..2eb65a8e7983903f3c9bb64892b9c5377cb8fa03 100644 GIT binary patch literal 11616 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�S&<0V1IwH{repD_d&t1&M^NwBmFxc>)#P^4#T#; zGp6C=^TPgn#pK^3p6U0HXXdB^ysTNx)EKBJ%Z=U7*KcAaBByXcv9 GF8m+wPIun` literal 13616 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 Date: Sun, 20 Aug 2023 18:04:36 +0200 Subject: [PATCH 23/53] Fix score. --- examples/3d-bomberman/3d-bomberman.json | 1131 +++++++++++++---- .../3d-bomberman/assets/BlueBunnyIcon.png | Bin 0 -> 3224 bytes .../assets/JoueurSelectionMask.png | Bin 180 -> 202 bytes .../3d-bomberman/assets/OrangeBunnyIcon.png | Bin 0 -> 3098 bytes .../3d-bomberman/assets/PinkBunnyIcon.png | Bin 0 -> 3101 bytes .../3d-bomberman/assets/PurpleBunnyIcon.png | Bin 0 -> 3196 bytes 6 files changed, 914 insertions(+), 217 deletions(-) create mode 100644 examples/3d-bomberman/assets/BlueBunnyIcon.png create mode 100644 examples/3d-bomberman/assets/OrangeBunnyIcon.png create mode 100644 examples/3d-bomberman/assets/PinkBunnyIcon.png create mode 100644 examples/3d-bomberman/assets/PurpleBunnyIcon.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index f918fb302..c422251c2 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -8,7 +8,7 @@ }, "properties": { "adaptGameResolutionAtRuntime": true, - "antialiasingMode": "MSAA", + "antialiasingMode": "none", "antialisingEnabledOnMobile": false, "folderProject": false, "orientation": "landscape", @@ -330,7 +330,7 @@ "alwaysLoaded": false, "file": "assets/JoueurSelectionMask.png", "kind": "image", - "metadata": "", + "metadata": "{\"localFilePath\":\"assets/JoueurSelectionMask.png\",\"extension\":\".png\"}", "name": "JoueurSelectionMask.png", "smoothed": true, "userAdded": true @@ -674,6 +674,42 @@ "name": "New image", "smoothed": true, "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/BlueBunnyIcon.png", + "kind": "image", + "metadata": "", + "name": "assets\\BlueBunnyIcon.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/PurpleBunnyIcon.png", + "kind": "image", + "metadata": "", + "name": "assets\\PurpleBunnyIcon.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/OrangeBunnyIcon.png", + "kind": "image", + "metadata": "", + "name": "assets\\OrangeBunnyIcon.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/PinkBunnyIcon.png", + "kind": "image", + "metadata": "", + "name": "assets\\PinkBunnyIcon.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -728,7 +764,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 1.1680000030517574, + "zoomFactor": 0.6429657028564686, "windowMask": false }, "objectsGroups": [ @@ -813,14 +849,14 @@ "instances": [ { "angle": 0, - "customSize": true, + "customSize": false, "height": 24, - "layer": "", + "layer": "UI", "name": "Score", "persistentUuid": "42e783b6-213a-45b7-93dd-5d15c9482f94", "width": 48, - "x": 72, - "y": 0, + "x": 48, + "y": 28, "zOrder": 1000, "numberProperties": [], "stringProperties": [], @@ -835,13 +871,14 @@ { "angle": 0, "customSize": true, - "height": 23, - "layer": "", + "depth": 0, + "height": 32, + "layer": "UI", "name": "ScoreIcon1", "persistentUuid": "906f526d-ae6c-414a-8084-114f9a51cd0a", - "width": 33, - "x": 36, - "y": 0, + "width": 32, + "x": 12, + "y": 24, "zOrder": 1001, "numberProperties": [], "stringProperties": [], @@ -856,13 +893,14 @@ { "angle": 0, "customSize": true, - "height": 23, - "layer": "", + "depth": 0, + "height": 32, + "layer": "UI", "name": "ScoreIcon2", "persistentUuid": "2cc418a5-16ad-465f-a4bc-ff0f479488b8", - "width": 33, - "x": 132, - "y": 0, + "width": 32, + "x": 12, + "y": 72, "zOrder": 1002, "numberProperties": [], "stringProperties": [], @@ -877,13 +915,14 @@ { "angle": 0, "customSize": true, - "height": 23, - "layer": "", + "depth": 0, + "height": 32, + "layer": "UI", "name": "ScoreIcon4", "persistentUuid": "1713db2a-fecc-4906-b55c-8a68cc53ab88", - "width": 33, - "x": 324, - "y": 0, + "width": 32, + "x": 12, + "y": 168, "zOrder": 1003, "numberProperties": [], "stringProperties": [], @@ -898,13 +937,14 @@ { "angle": 0, "customSize": true, - "height": 23, - "layer": "", + "depth": 0, + "height": 32, + "layer": "UI", "name": "ScoreIcon3", "persistentUuid": "69e1ebf6-95a0-4c89-a026-0666d11c2762", - "width": 33, - "x": 228, - "y": 0, + "width": 32, + "x": 12, + "y": 120, "zOrder": 1004, "numberProperties": [], "stringProperties": [], @@ -918,14 +958,14 @@ }, { "angle": 0, - "customSize": true, + "customSize": false, "height": 24, - "layer": "", + "layer": "UI", "name": "Score", "persistentUuid": "c9cc7551-b991-48ff-ae7e-10ca7eedc420", "width": 48, - "x": 360, - "y": 0, + "x": 48, + "y": 172, "zOrder": 1000, "numberProperties": [], "stringProperties": [], @@ -939,14 +979,14 @@ }, { "angle": 0, - "customSize": true, + "customSize": false, "height": 24, - "layer": "", + "layer": "UI", "name": "Score", "persistentUuid": "b35a1096-fe26-4162-988f-887c1db68133", "width": 48, - "x": 264, - "y": 0, + "x": 48, + "y": 124, "zOrder": 1000, "numberProperties": [], "stringProperties": [], @@ -960,14 +1000,14 @@ }, { "angle": 0, - "customSize": true, + "customSize": false, "height": 24, - "layer": "", + "layer": "UI", "name": "Score", "persistentUuid": "970d4113-26f4-41fa-9bb3-716987e4632d", "width": 48, - "x": 168, - "y": 0, + "x": 48, + "y": 76, "zOrder": 1000, "numberProperties": [], "stringProperties": [], @@ -2293,9 +2333,9 @@ "textAlignment": "", "characterSize": 20, "color": { - "b": 0, - "g": 0, - "r": 0 + "b": 46, + "g": 56, + "r": 26 } }, { @@ -2319,7 +2359,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieBlancheDroite.png", + "image": "assets\\BlueBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -2361,7 +2401,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieGriseDroite.png", + "image": "assets\\PurpleBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -2409,7 +2449,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieRoseDroite.png", + "image": "assets\\OrangeBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -2451,7 +2491,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieMarronDroite.png", + "image": "assets\\PinkBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -4165,6 +4205,38 @@ "booleanParameters": {} } ] + }, + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "UI", + "renderingType": "2d", + "visibility": true, + "cameras": [], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "3D Light", + "doubleParameters": { + "elevation": 45, + "intensity": 1, + "rotation": 0 + }, + "stringParameters": { + "groundColor": "64;64;64", + "skyColor": "255;255;255", + "top": "Y-" + }, + "booleanParameters": {} + } + ] } ], "behaviorsSharedData": [ @@ -4228,26 +4300,26 @@ ] }, { - "b": 219, + "b": 121, "disableInputWhenNotFocused": true, "mangledName": "Selection", "name": "Selection", - "r": 175, + "r": 69, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", - "v": 209, + "v": 147, "uiSettings": { "grid": true, "gridType": "rectangular", - "gridWidth": 12, - "gridHeight": 12, + "gridWidth": 32, + "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.6864000000000002, + "zoomFactor": 0.5625471506961698, "windowMask": false }, "objectsGroups": [ @@ -4325,12 +4397,13 @@ { "angle": 0, "customSize": true, - "height": 120, + "depth": 0, + "height": 128, "layer": "", "name": "PlayerX2", "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", - "width": 120, - "x": 288, + "width": 128, + "x": 384, "y": 192, "zOrder": 20, "numberProperties": [], @@ -4340,12 +4413,13 @@ { "angle": 0, "customSize": true, - "height": 120, + "depth": 0, + "height": 128, "layer": "", "name": "PlayerX3", "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", - "width": 120, - "x": 468, + "width": 128, + "x": 576, "y": 192, "zOrder": 20, "numberProperties": [], @@ -4355,12 +4429,13 @@ { "angle": 0, "customSize": true, - "height": 120, + "depth": 0, + "height": 128, "layer": "", "name": "PlayerX4", "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", - "width": 120, - "x": 648, + "width": 128, + "x": 768, "y": 192, "zOrder": 20, "numberProperties": [], @@ -4375,8 +4450,8 @@ "name": "ClassicLevel", "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", "width": 0, - "x": 288, - "y": 360, + "x": 384, + "y": 416, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -4390,54 +4465,24 @@ "name": "EmptyLevel", "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", "width": 0, - "x": 564, - "y": 360, + "x": 692, + "y": 416, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, - { - "angle": 0, - "customSize": true, - "height": 72, - "layer": "", - "name": "Message", - "persistentUuid": "102af169-1519-4d29-8d02-fdb4dd10ed38", - "width": 528, - "x": 288, - "y": 48, - "zOrder": 6, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "height": 120, - "layer": "", - "name": "Bubble", - "persistentUuid": "dc4421a9-d865-4d35-b679-d0ea94864f69", - "width": 528, - "x": 264, - "y": 24, - "zOrder": 0, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, { "angle": 0, "customSize": false, "height": 0, "layer": "", - "name": "Arrow", - "persistentUuid": "1b867022-f84c-498a-87ee-b8cf9aed916b", + "name": "Player1", + "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", "width": 0, - "x": 264, - "y": 144, - "zOrder": 7, + "x": 764, + "y": 240, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4447,12 +4492,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Narrator", - "persistentUuid": "8c98d64d-ae30-43d0-8756-61f3be3dc933", + "name": "Player1", + "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", "width": 0, - "x": -24, - "y": 144, - "zOrder": 8, + "x": 585, + "y": 240, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4462,12 +4507,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose1", - "persistentUuid": "84f0fccf-dfbf-41ad-816b-22107bae2126", + "name": "Player2", + "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", "width": 0, - "x": 312, - "y": 240, - "zOrder": 15, + "x": 609, + "y": 228, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4477,12 +4522,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose1", - "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", + "name": "Player2", + "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", "width": 0, - "x": 660, - "y": 240, - "zOrder": 15, + "x": 788, + "y": 228, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4492,12 +4537,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose1", - "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", + "name": "Player3", + "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", "width": 0, - "x": 480, - "y": 240, - "zOrder": 15, + "x": 633, + "y": 216, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4507,12 +4552,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose2", - "persistentUuid": "d6379345-b3b8-49f9-a5f2-2d2d860acbc2", + "name": "Player3", + "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", "width": 0, - "x": 324, - "y": 228, - "zOrder": 14, + "x": 812, + "y": 216, + "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4522,27 +4567,28 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose2", - "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", + "name": "Player4", + "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", "width": 0, - "x": 492, - "y": 228, - "zOrder": 14, + "x": 832, + "y": 204, + "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, - "customSize": false, - "height": 0, + "customSize": true, + "depth": 0, + "height": 160, "layer": "", - "name": "Goose2", - "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", - "width": 0, - "x": 672, - "y": 228, - "zOrder": 14, + "name": "Controls", + "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", + "width": 128, + "x": 992, + "y": 416, + "zOrder": 21, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4552,12 +4598,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose3", - "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", + "name": "Player1", + "persistentUuid": "39330ce0-708f-400e-9cbe-93a810f37c84", "width": 0, - "x": 504, - "y": 216, - "zOrder": 13, + "x": 406, + "y": 241, + "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4567,12 +4613,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose3", - "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", + "name": "Player2", + "persistentUuid": "2c6334f5-2b8d-41d3-853b-007a9df4bb6e", "width": 0, - "x": 684, - "y": 216, - "zOrder": 13, + "x": 426, + "y": 229, + "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4582,27 +4628,12 @@ "customSize": false, "height": 0, "layer": "", - "name": "Goose4", - "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", + "name": "Controls2", + "persistentUuid": "2febaeab-ceed-4d24-9a94-9e5c97de2473", "width": 0, - "x": 696, - "y": 204, - "zOrder": 12, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "height": 48, - "layer": "", - "name": "Controls", - "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", - "width": 480, - "x": 288, - "y": 552, - "zOrder": 21, + "x": 1088, + "y": 416, + "zOrder": 22, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -4710,6 +4741,7 @@ "directions": [ { "looping": false, + "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.08, "sprites": [ { @@ -4960,7 +4992,7 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Narrator", + "name": "Player1", "tags": "", "type": "Sprite", "updateIfNotVisible": false, @@ -4978,7 +5010,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieGrand.png", + "image": "assets\\BlueBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -5002,7 +5034,7 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Goose1", + "name": "Player2", "tags": "", "type": "Sprite", "updateIfNotVisible": false, @@ -5020,7 +5052,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieBlancheDroite.png", + "image": "assets\\PurpleBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -5044,7 +5076,7 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Goose2", + "name": "Player3", "tags": "", "type": "Sprite", "updateIfNotVisible": false, @@ -5062,7 +5094,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieGriseDroite.png", + "image": "assets\\OrangeBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -5086,7 +5118,7 @@ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Goose3", + "name": "Player4", "tags": "", "type": "Sprite", "updateIfNotVisible": false, @@ -5104,7 +5136,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "OieMarronDroite.png", + "image": "assets\\PinkBunnyIcon.png", "points": [], "originPoint": { "name": "origine", @@ -5126,52 +5158,32 @@ ] }, { - "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "Goose4", + "bold": false, + "italic": false, + "name": "Controls", + "smoothed": true, "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, + "type": "TextObject::Text", + "underlined": false, "variables": [], "effects": [], "behaviors": [], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "OieRoseDroite.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] + "string": "arrows\nESDF\nIJKL\n8456\n\nor gamepads", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 46, + "g": 56, + "r": 26 + } }, { "assetStoreId": "", "bold": false, "italic": false, - "name": "Controls", + "name": "Controls2", "smoothed": true, "tags": "", "type": "TextObject::Text", @@ -5179,14 +5191,14 @@ "variables": [], "effects": [], "behaviors": [], - "string": "arrows and RShift - ESDF and LShift - IJKL and H - 8456 and 0\nor gamepads", + "string": "RShift\nLShift\nH\n0", "font": "", "textAlignment": "", - "characterSize": 16, + "characterSize": 20, "color": { - "b": 66, - "g": 61, - "r": 41 + "b": 46, + "g": 56, + "r": 26 } } ], @@ -5902,6 +5914,691 @@ } ], "behaviorsSharedData": [] + }, + { + "b": 0, + "disableInputWhenNotFocused": true, + "mangledName": "Capture", + "name": "Capture", + "r": 0, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 255, + "uiSettings": { + "grid": false, + "gridType": "rectangular", + "gridWidth": 32, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": false, + "zoomFactor": 0.5653158055126306, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Bunny", + "objects": [ + { + "name": "BlueBunny" + }, + { + "name": "PurpleBunny" + }, + { + "name": "OrangeBunny" + }, + { + "name": "PinkBunny" + } + ] + } + ], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "BlueBunny", + "persistentUuid": "1b15ce40-b157-434e-9991-7ee6a561992a", + "width": 0, + "x": 581, + "y": 355, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "NewSprite", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [] + }, + { + "assetStoreId": "", + "name": "BlueBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "Basic", + "modelResourceName": "assets\\BlueBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, + { + "assetStoreId": "", + "name": "PurpleBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "Basic", + "modelResourceName": "assets\\PurpleBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, + { + "assetStoreId": "", + "name": "OrangeBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "Basic", + "modelResourceName": "assets\\OrangeBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + }, + { + "assetStoreId": "", + "name": "PinkBunny", + "tags": "", + "type": "Scene3D::Model3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "centerLocation": "ObjectCenter", + "depth": 120, + "height": 120, + "keepAspectRatio": true, + "materialType": "Basic", + "modelResourceName": "assets\\PinkBunny.glb", + "originLocation": "ModelOrigin", + "rotationX": 90, + "rotationY": 0, + "rotationZ": 90, + "width": 120, + "animations": [ + { + "loop": true, + "name": "Idle", + "source": "Idle" + }, + { + "loop": true, + "name": "Run", + "source": "Run" + }, + { + "loop": false, + "name": "Death", + "source": "Death" + }, + { + "loop": false, + "name": "Duck", + "source": "Duck" + }, + { + "loop": false, + "name": "HitReact", + "source": "HitReact" + }, + { + "loop": false, + "name": "Idle_Gun", + "source": "Idle_Gun" + }, + { + "loop": false, + "name": "Idle_Shoot", + "source": "Idle_Shoot" + }, + { + "loop": false, + "name": "Jump", + "source": "Jump" + }, + { + "loop": false, + "name": "Jump_Idle", + "source": "Jump_Idle" + }, + { + "loop": false, + "name": "Jump_Land", + "source": "Jump_Land" + }, + { + "loop": false, + "name": "No", + "source": "No" + }, + { + "loop": false, + "name": "Punch", + "source": "Punch" + }, + { + "loop": false, + "name": "Run_Gun", + "source": "Run_Gun" + }, + { + "loop": false, + "name": "Run_Shoot", + "source": "Run_Shoot" + }, + { + "loop": false, + "name": "Walk", + "source": "Walk" + }, + { + "loop": false, + "name": "Walk_Gun", + "source": "Walk_Gun" + }, + { + "loop": false, + "name": "Wave", + "source": "Wave" + }, + { + "loop": false, + "name": "Yes", + "source": "Yes" + } + ] + } + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Bunny", + "=", + "90" + ] + } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationX" + }, + "parameters": [ + "Bunny", + "=", + "90" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::SetRotationY" + }, + "parameters": [ + "Bunny", + "=", + "-90" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Model3DObject::Scale" + }, + "parameters": [ + "Bunny", + "=", + "3" + ] + }, + { + "type": { + "value": "Scene3D::Model3DObject::SetScaleZ" + }, + "parameters": [ + "Bunny", + "=", + "3" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Bunny", + "=", + "SceneWindowWidth() / 2", + "=", + "SceneWindowHeight() / 2" + ] + }, + { + "type": { + "value": "Scene3D::PauseAnimation" + }, + "parameters": [ + "Bunny" + ] + } + ] + } + ] + } + ], + "layers": [ + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [ + { + "effectType": "Scene3D::HemisphereLight", + "name": "3D Light", + "doubleParameters": { + "elevation": 45, + "intensity": 1, + "rotation": 0 + }, + "stringParameters": { + "groundColor": "64;64;64", + "skyColor": "255;255;255", + "top": "Y-" + }, + "booleanParameters": {} + } + ] + } + ], + "behaviorsSharedData": [] } ], "externalEvents": [ diff --git a/examples/3d-bomberman/assets/BlueBunnyIcon.png b/examples/3d-bomberman/assets/BlueBunnyIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5556770b3005e1cc6f559f1e18e8eadfd10aabce GIT binary patch literal 3224 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 KMNUMnLSTa49W0pu literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/JoueurSelectionMask.png b/examples/3d-bomberman/assets/JoueurSelectionMask.png index 435ea46e216cf48bf91fbb44e893ba1f52cb609f..0e581afa4aaf12a00d2adb518021521142f50690 100644 GIT binary patch delta 174 zcmdnOc#3g?NGZx^prw85kH^JY5_^D&pQ=XB1>m;9)jY;|qM@V8HQHVd3#v zuisSPtpOgj!*HOtSmnc}#2Pt8)GgBUzr{an^L HB{Ts568|=R literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR0pkSJ( zi(^Q|t+y8(1sNDv7!3ZNKJiGG$8wHsSi;1spCdU06dW2D7@1foVtm(4vtKOJ?V|v4 OAA_f>pUXO@geCypRVHo# diff --git a/examples/3d-bomberman/assets/OrangeBunnyIcon.png b/examples/3d-bomberman/assets/OrangeBunnyIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4498aabc97430d01be437a3e2a3768d2fd3500 GIT binary patch literal 3098 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 i_$pnct8|r?qyGc0uCYc{)f-^|0000 Date: Sun, 20 Aug 2023 19:13:01 +0200 Subject: [PATCH 24/53] Fix model angle at respawn. --- examples/3d-bomberman/3d-bomberman.json | 68 +++++-------------------- 1 file changed, 12 insertions(+), 56 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index c422251c2..fe858ab63 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -28347,45 +28347,6 @@ } ] }, - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Object", - "HasEverMoved", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Object", - "Angle", - "+", - "sign(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))) * min(abs(AngleDifference(Object.Behavior::MovementAngle(), Object.Variable(Angle))), 720 * TimeDelta())" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Object", - "=", - "Object.Variable(Angle)" - ] - } - ] - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], @@ -28918,23 +28879,6 @@ "name": "UpdatePosition", "sentence": "Update the position of _PARAM0_ according to _PARAM2_", "events": [ - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Object", - "HasEverMoved", - "True" - ] - } - ] - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ @@ -29116,6 +29060,18 @@ "90" ] }, + { + "type": { + "value": "Player::PlayerModel::SetMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "90", + "" + ] + }, { "type": { "value": "Tween3D::SetStretchZ" From 98cc7d31f77eebb9d96802c840cab22eb57735ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 20 Aug 2023 20:30:44 +0200 Subject: [PATCH 25/53] Add flash animation at respawn. --- examples/3d-bomberman/3d-bomberman.json | 3725 ++++++++++++++--- .../assets/ExplosionBras-Anim1.png | Bin 435 -> 0 bytes .../assets/ExplosionBras-Anim2.png | Bin 487 -> 0 bytes .../assets/ExplosionBras-Anim3.png | Bin 554 -> 0 bytes .../assets/ExplosionBras-Anim4.png | Bin 595 -> 0 bytes .../assets/ExplosionCentre-Anim1.png | Bin 793 -> 0 bytes .../assets/ExplosionCentre-Anim2.png | Bin 952 -> 0 bytes .../assets/ExplosionCentre-Anim3.png | Bin 955 -> 0 bytes .../assets/ExplosionCentre-Anim4.png | Bin 956 -> 0 bytes .../assets/ExplosionDoigt-Anim1.png | Bin 531 -> 0 bytes .../assets/ExplosionDoigt-Anim2.png | Bin 643 -> 0 bytes .../assets/ExplosionDoigt-Anim3.png | Bin 814 -> 0 bytes .../assets/ExplosionDoigt-Anim4.png | Bin 923 -> 0 bytes examples/3d-bomberman/assets/Image.png | Bin 466 -> 0 bytes examples/3d-bomberman/assets/MurHerbe.png | Bin 364 -> 0 bytes examples/3d-bomberman/assets/Nenuphar.png | Bin 2461 -> 0 bytes examples/3d-bomberman/assets/New image2.png | Bin 789 -> 0 bytes examples/3d-bomberman/assets/OeufBombe.png | Bin 1466 -> 0 bytes .../3d-bomberman/assets/OieBlancheBas.png | Bin 1494 -> 0 bytes .../3d-bomberman/assets/OieBlancheDroite.png | Bin 962 -> 0 bytes .../3d-bomberman/assets/OieBlancheGauche.png | Bin 952 -> 0 bytes .../3d-bomberman/assets/OieBlancheHaut.png | Bin 1173 -> 0 bytes examples/3d-bomberman/assets/OieGrand.png | Bin 7473 -> 0 bytes examples/3d-bomberman/assets/OieGriseBas.png | Bin 1641 -> 0 bytes .../3d-bomberman/assets/OieGriseDroite.png | Bin 1093 -> 0 bytes .../3d-bomberman/assets/OieGriseGauche.png | Bin 1094 -> 0 bytes examples/3d-bomberman/assets/OieGriseHaut.png | Bin 1350 -> 0 bytes examples/3d-bomberman/assets/OieMarronBas.png | Bin 1905 -> 0 bytes .../3d-bomberman/assets/OieMarronDroite.png | Bin 1153 -> 0 bytes .../3d-bomberman/assets/OieMarronGauche.png | Bin 1145 -> 0 bytes .../3d-bomberman/assets/OieMarronHaut.png | Bin 1518 -> 0 bytes examples/3d-bomberman/assets/OieRoseBas.png | Bin 1877 -> 0 bytes .../3d-bomberman/assets/OieRoseDroite.png | Bin 1150 -> 0 bytes .../3d-bomberman/assets/OieRoseGauche.png | Bin 1154 -> 0 bytes examples/3d-bomberman/assets/OieRoseHaut.png | Bin 1475 -> 0 bytes examples/3d-bomberman/assets/Rock Moss 3.glb | Bin 5496 -> 0 bytes examples/3d-bomberman/assets/Soil.png | Bin 17273 -> 0 bytes examples/3d-bomberman/assets/fence.glb | Bin 10036 -> 0 bytes 38 files changed, 3154 insertions(+), 571 deletions(-) delete mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim1.png delete mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim2.png delete mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim3.png delete mode 100644 examples/3d-bomberman/assets/ExplosionBras-Anim4.png delete mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim1.png delete mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim2.png delete mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim3.png delete mode 100644 examples/3d-bomberman/assets/ExplosionCentre-Anim4.png delete mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim1.png delete mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png delete mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim3.png delete mode 100644 examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png delete mode 100644 examples/3d-bomberman/assets/Image.png delete mode 100644 examples/3d-bomberman/assets/MurHerbe.png delete mode 100644 examples/3d-bomberman/assets/Nenuphar.png delete mode 100644 examples/3d-bomberman/assets/New image2.png delete mode 100644 examples/3d-bomberman/assets/OeufBombe.png delete mode 100644 examples/3d-bomberman/assets/OieBlancheBas.png delete mode 100644 examples/3d-bomberman/assets/OieBlancheDroite.png delete mode 100644 examples/3d-bomberman/assets/OieBlancheGauche.png delete mode 100644 examples/3d-bomberman/assets/OieBlancheHaut.png delete mode 100644 examples/3d-bomberman/assets/OieGrand.png delete mode 100644 examples/3d-bomberman/assets/OieGriseBas.png delete mode 100644 examples/3d-bomberman/assets/OieGriseDroite.png delete mode 100644 examples/3d-bomberman/assets/OieGriseGauche.png delete mode 100644 examples/3d-bomberman/assets/OieGriseHaut.png delete mode 100644 examples/3d-bomberman/assets/OieMarronBas.png delete mode 100644 examples/3d-bomberman/assets/OieMarronDroite.png delete mode 100644 examples/3d-bomberman/assets/OieMarronGauche.png delete mode 100644 examples/3d-bomberman/assets/OieMarronHaut.png delete mode 100644 examples/3d-bomberman/assets/OieRoseBas.png delete mode 100644 examples/3d-bomberman/assets/OieRoseDroite.png delete mode 100644 examples/3d-bomberman/assets/OieRoseGauche.png delete mode 100644 examples/3d-bomberman/assets/OieRoseHaut.png delete mode 100644 examples/3d-bomberman/assets/Rock Moss 3.glb delete mode 100644 examples/3d-bomberman/assets/Soil.png delete mode 100644 examples/3d-bomberman/assets/fence.glb diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index fe858ab63..f82d9ac64 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -8,19 +8,19 @@ }, "properties": { "adaptGameResolutionAtRuntime": true, - "antialiasingMode": "none", + "antialiasingMode": "MSAA", "antialisingEnabledOnMobile": false, "folderProject": false, "orientation": "landscape", - "packageName": "com.example.goosebomberman", + "packageName": "com.example", "pixelsRounding": false, - "projectUuid": "d6d0b476-695b-4c95-a500-db2594bacf92", + "projectUuid": "e10dc7b2-c4b9-4811-a44d-da52021923f8", "scaleMode": "linear", "sizeOnStartupMode": "", "templateSlug": "", "useExternalSourceFiles": false, "version": "1.0.0", - "name": "Sans Foie Nie l'Oie", + "name": "Bomber Bunny", "description": "This is a game example to show how to do a Bomberman clone with GDevelop. The source can be found directly in GDevelop in the examples list.\n\nControls are:\n\n- arrows and RShift\n- ESDF and LShift\n- IJKL and H\n- 8456 and 0\n- or gamepads", "author": "", "windowWidth": 1280, @@ -128,186 +128,6 @@ "smoothed": true, "userAdded": false }, - { - "alwaysLoaded": false, - "file": "assets/OieBlancheDroite.png", - "kind": "image", - "metadata": "", - "name": "OieBlancheDroite.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieBlancheGauche.png", - "kind": "image", - "metadata": "", - "name": "OieBlancheGauche.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieBlancheHaut.png", - "kind": "image", - "metadata": "", - "name": "OieBlancheHaut.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieBlancheBas.png", - "kind": "image", - "metadata": "", - "name": "OieBlancheBas.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieGriseDroite.png", - "kind": "image", - "metadata": "", - "name": "OieGriseDroite.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieGriseGauche.png", - "kind": "image", - "metadata": "", - "name": "OieGriseGauche.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieGriseHaut.png", - "kind": "image", - "metadata": "", - "name": "OieGriseHaut.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieGriseBas.png", - "kind": "image", - "metadata": "", - "name": "OieGriseBas.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieRoseDroite.png", - "kind": "image", - "metadata": "", - "name": "OieRoseDroite.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieRoseGauche.png", - "kind": "image", - "metadata": "", - "name": "OieRoseGauche.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieRoseHaut.png", - "kind": "image", - "metadata": "", - "name": "OieRoseHaut.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieRoseBas.png", - "kind": "image", - "metadata": "", - "name": "OieRoseBas.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieMarronDroite.png", - "kind": "image", - "metadata": "", - "name": "OieMarronDroite.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieMarronGauche.png", - "kind": "image", - "metadata": "", - "name": "OieMarronGauche.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieMarronHaut.png", - "kind": "image", - "metadata": "", - "name": "OieMarronHaut.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieMarronBas.png", - "kind": "image", - "metadata": "", - "name": "OieMarronBas.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/MurHerbe.png", - "kind": "image", - "metadata": "", - "name": "MurHerbe.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/Nenuphar.png", - "kind": "image", - "metadata": "", - "name": "Nenuphar.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OeufBombe.png", - "kind": "image", - "metadata": "", - "name": "OeufBombe.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/OieGrand.png", - "kind": "image", - "metadata": "", - "name": "OieGrand.png", - "smoothed": true, - "userAdded": false - }, { "alwaysLoaded": false, "file": "assets/Bulle.png", @@ -335,114 +155,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionCentre-Anim1.png", - "kind": "image", - "metadata": "", - "name": "ExplosionCentre-Anim1.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionCentre-Anim2.png", - "kind": "image", - "metadata": "", - "name": "ExplosionCentre-Anim2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionCentre-Anim3.png", - "kind": "image", - "metadata": "", - "name": "ExplosionCentre-Anim3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionCentre-Anim4.png", - "kind": "image", - "metadata": "", - "name": "ExplosionCentre-Anim4.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionBras-Anim1.png", - "kind": "image", - "metadata": "", - "name": "ExplosionBras-Anim1.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionBras-Anim2.png", - "kind": "image", - "metadata": "", - "name": "ExplosionBras-Anim2.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionBras-Anim3.png", - "kind": "image", - "metadata": "", - "name": "ExplosionBras-Anim3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionBras-Anim4.png", - "kind": "image", - "metadata": "", - "name": "ExplosionBras-Anim4.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionDoigt-Anim1.png", - "kind": "image", - "metadata": "", - "name": "ExplosionDoigt-Anim1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionDoigt-Anim2.png", - "kind": "image", - "metadata": "", - "name": "ExplosionDoigt-Anim2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionDoigt-Anim3.png", - "kind": "image", - "metadata": "", - "name": "ExplosionDoigt-Anim3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/ExplosionDoigt-Anim4.png", - "kind": "image", - "metadata": "", - "name": "ExplosionDoigt-Anim4.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/FlammeBonus.png", @@ -461,17 +173,6 @@ "smoothed": true, "userAdded": true }, - { - "file": "assets/Rock Moss 3.glb", - "kind": "model3D", - "metadata": "", - "name": "Rock Moss 3.glb", - "userAdded": false, - "origin": { - "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Rocks and Trees/Rock/d60c181205898dd44cd84d86cbee135652e1928639f9a791dd9ba935a46c7d59_Rock Moss 3.glb", - "name": "Rock Moss 3.glb" - } - }, { "file": "assets/Cabbage.glb", "kind": "model3D", @@ -494,26 +195,6 @@ "name": "blockRoundedLong.glb" } }, - { - "file": "assets/fence.glb", - "kind": "model3D", - "metadata": "", - "name": "fence.glb", - "userAdded": false, - "origin": { - "identifier": "https://asset-resources.gdevelop.io/public-resources/3D Platformer Kit/ground/b2670e24563f56caf557b045d88dbe4604cc560ac715bbbb2ce022fbdcf7064f_fence.glb", - "name": "fence.glb" - } - }, - { - "alwaysLoaded": false, - "file": "assets/NewSprite.png", - "kind": "image", - "metadata": "{\"extension\":\".png\"}", - "name": "NewSprite", - "smoothed": true, - "userAdded": true - }, { "file": "assets/BlueBunny.glb", "kind": "model3D", @@ -598,15 +279,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/Image.png", - "kind": "image", - "metadata": "{\"extension\":\".png\"}", - "name": "Image", - "smoothed": true, - "userAdded": false - }, { "alwaysLoaded": false, "file": "assets/Bomb.png", @@ -625,24 +297,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/New image2.png", - "kind": "image", - "metadata": "{\"extension\":\".png\",\"pskl\":{},\"localFilePath\":\"assets/New image2.png\"}", - "name": "New image2", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/Soil.png", - "kind": "image", - "metadata": "", - "name": "assets\\Soil.png", - "smoothed": true, - "userAdded": true - }, { "file": "assets/FlashyRock.glb", "kind": "model3D", @@ -650,13 +304,6 @@ "name": "assets\\FlashyRock.glb", "userAdded": true }, - { - "file": "assets/GreyBlock.glb", - "kind": "model3D", - "metadata": "", - "name": "assets\\GreyBlock.glb", - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/Soil2.png", @@ -710,6 +357,22 @@ "name": "assets\\PinkBunnyIcon.png", "smoothed": true, "userAdded": true + }, + { + "file": "assets/GreyBlock.glb", + "kind": "model3D", + "metadata": "", + "name": "assets\\GreyBlock.glb", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/New image.png", + "kind": "image", + "metadata": "", + "name": "assets\\New image.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -1018,6 +681,22 @@ "value": "2" } ] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 252, + "layer": "UI", + "name": "Panel", + "persistentUuid": "197982e1-0bc8-4cb6-8531-23bc9d79bed2", + "width": 120, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "objects": [ @@ -1167,11 +846,19 @@ "variables": [], "effects": [], "behaviors": [ + { + "name": "Flash", + "type": "Flash::Flash", + "HalfPeriodTime": 0.1, + "IsFlashing": false, + "FlashDuration": 0 + }, { "name": "PlayerModel", "type": "Player::PlayerModel", "Tween": "Tween", - "Tween3D": "Tween3D" + "Tween3D": "Tween3D", + "Flash": "Flash" }, { "name": "Tween", @@ -1435,11 +1122,19 @@ "variables": [], "effects": [], "behaviors": [ + { + "name": "Flash", + "type": "Flash::Flash", + "HalfPeriodTime": 0.1, + "IsFlashing": false, + "FlashDuration": 0 + }, { "name": "PlayerModel", "type": "Player::PlayerModel", "Tween": "Tween", - "Tween3D": "Tween3D" + "Tween3D": "Tween3D", + "Flash": "Flash" }, { "name": "Tween", @@ -1703,11 +1398,19 @@ "variables": [], "effects": [], "behaviors": [ + { + "name": "Flash", + "type": "Flash::Flash", + "HalfPeriodTime": 0.1, + "IsFlashing": false, + "FlashDuration": 0 + }, { "name": "PlayerModel", "type": "Player::PlayerModel", "Tween": "Tween", - "Tween3D": "Tween3D" + "Tween3D": "Tween3D", + "Flash": "Flash" }, { "name": "Tween", @@ -1971,11 +1674,19 @@ "variables": [], "effects": [], "behaviors": [ + { + "name": "Flash", + "type": "Flash::Flash", + "HalfPeriodTime": 0.1, + "IsFlashing": false, + "FlashDuration": 0 + }, { "name": "PlayerModel", "type": "Player::PlayerModel", "Tween": "Tween", - "Tween3D": "Tween3D" + "Tween3D": "Tween3D", + "Flash": "Flash" }, { "name": "Tween", @@ -2599,29 +2310,6 @@ "animations": [] } }, - { - "assetStoreId": "3b644052ae2fdffffd3e97eeb2e6106776fb3303fc885493a4687e35e51ba848", - "name": "Fence", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 60, - "height": 110, - "keepAspectRatio": true, - "materialType": "StandardWithoutMetalness", - "modelResourceName": "fence.glb", - "originLocation": "TopLeft", - "rotationX": 90, - "rotationY": 0, - "rotationZ": -90, - "width": 30, - "animations": [] - } - }, { "assetStoreId": "", "name": "ParticleEmitter", @@ -2775,6 +2463,67 @@ "bottomFaceResourceRepeat": false, "materialType": "Basic" } + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Panel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets\\New image.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 16, + "y": 0 + }, + { + "x": 16, + "y": 16 + }, + { + "x": 0, + "y": 16 + } + ] + ] + } + ] + } + ] + } + ] } ], "events": [ @@ -2814,6 +2563,18 @@ "", "" ] + }, + { + "type": { + "value": "Scene3D::SetCameraZ" + }, + "parameters": [ + "", + "+", + "100", + "", + "" + ] } ], "events": [ @@ -3415,13 +3176,12 @@ { "type": { "inverted": true, - "value": "CollisionNP" + "value": "Distance" }, "parameters": [ "Player", "Bomb", - "", - "", + "59.9", "" ] }, @@ -3732,17 +3492,143 @@ ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "Player::PlayerModel::PlayDeathAnimation" - }, - "parameters": [ - "PlayerModel", - "PlayerModel", - "Explosion.Variable(DirectionX)", - "Explosion.Variable(DirectionY)", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Player.CenterX() - Explosion.CenterX())", + ">", + "abs(Player.CenterY() - Explosion.CenterY())" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "sign(Player.CenterX() - Explosion.CenterX())", + "0", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Player.CenterX() - Explosion.CenterX())", + "<", + "abs(Player.CenterY() - Explosion.CenterY())" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "0", + "sign(Player.CenterY() - Explosion.CenterY())", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "Explosion.Variable(DirectionX)", + "Explosion.Variable(DirectionY)", + "" + ] + } ] } ] @@ -3870,16 +3756,6 @@ "" ] }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "Player", - "=", - "127" - ] - }, { "type": { "value": "ModVarObjet" @@ -3959,34 +3835,6 @@ "target": "Print score" } ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Respawn::Respawn::isInvincible" - }, - "parameters": [ - "Player", - "Respawn", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "Player", - "=", - "255" - ] - } - ] } ], "parameters": [] @@ -4252,6 +4100,10 @@ "name": "Explosion", "type": "BombExplosion::Explosion" }, + { + "name": "Flash", + "type": "Flash::Flash" + }, { "name": "Player", "type": "Player::Player" @@ -6689,153 +6541,2845 @@ ] } ], - "actions": [ - { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Crate.X()", - "Crate.Y()", - "RandomInRange(1,2)", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The crate is removed after because its location is used to create the bonus." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "@4ian, Entropy, VegeTato", + "category": "", + "extensionNamespace": "", + "fullName": "Flash object", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZsYXNoLW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNywySDE3TDEzLjUsOUgxN0wxMCwyMlYxNEg3VjJNOSw0VjEySDEyVjE0LjY2TDE0LDExSDEwLjI0TDEzLjc2LDRIOVoiIC8+PC9zdmc+", + "name": "Flash", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/flash-outline.svg", + "shortDescription": "Make an object flash visibility (blink), color tint, object effect, or opacity (fade).", + "version": "1.1.1", + "description": [ + "Make an object flash for a period of time so that it alternates between two different states.", + "Includes the ability to flash visibility (blink), color tint, object effect, or opacity (fade).", + "", + "After adding a behavior to an object, you **trigger the effect** by using the **Flash action**.", + "", + "This can be used to:", + "- Let players know they are invincible after being hit", + "- Catch player attention on the interface (for instance a \"press start\" text)", + "" + ], + "origin": { + "identifier": "Flash", + "name": "gdevelop-extension-store" + }, + "tags": [ + "tween", + "flash", + "blink", + "visible", + "invisible", + "hit", + "damage", + "fade", + "effect", + "color", + "tint" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "q8ubdigLvIRXLxsJDDTaokO41mc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Color tint applied to an object.", + "fullName": "Color tint applied to an object", + "functionType": "ExpressionAndCondition", + "name": "ColorTint", + "sentence": "Color tint applied to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Return the color string for the tint applied to the object" + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.SpriteRuntimeObject} */\r", + "const tintedObject = objects[0];\r", + "const tint = tintedObject.getColor();\r", + "eventsFunctionContext.returnValue = tint;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a color tint is applied to an object.", + "fullName": "Is a color tint applied to an object", + "functionType": "StringExpression", + "name": "IsTinted", + "sentence": "_PARAM1_ is color tinted", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Flash::ColorTint" + }, + "parameters": [ + "", + "=", + "\"255;255;255\"", + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Toggle an object effect.", + "fullName": "Toggle an object effect", + "functionType": "Action", + "name": "ToggleEffect", + "sentence": "Toggle effect _PARAM2_ on _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_EffectToggled", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "IsEffectEnabled" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")", + "" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_EffectToggled", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_EffectToggled", + "False" + ] + }, + { + "type": { + "inverted": true, + "value": "IsEffectEnabled" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "Effect name to toggle", + "name": "EffectName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Toggle color tint between the starting tint and a given value.", + "fullName": "Toggle a color tint", + "functionType": "Action", + "name": "ToggleColorTint", + "private": true, + "sentence": "Toggle color tint _PARAM2_ on _PARAM1_", + "events": [ + { + "colorB": 35, + "colorG": 166, + "colorR": 245, + "creationTime": 0, + "name": "Note: This function cannot be \"public\" until it properly handles objects without a starting color tint variable (NULL)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Swap between the starting tint and the given value", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_ColorTintToggled", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::ColorTint" + }, + "parameters": [ + "", + "=", + "Object.VariableString(__FlashColor_StartingTint)", + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"ColorTint\")" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_ColorTintToggled", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_ColorTintToggled", + "False" + ] + }, + { + "type": { + "inverted": true, + "value": "Flash::ColorTint" + }, + "parameters": [ + "", + "=", + "Object.VariableString(__FlashColor_StartingTint)", + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Object", + "Object.VariableString(__FlashColor_StartingTint)" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "objectList" + }, + { + "description": "Color tint", + "name": "ColorTint", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Toggle object visibility.", + "fullName": "Toggle object visibility", + "functionType": "Action", + "name": "ToggleVisibility", + "sentence": "Toggle visibility of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_VisibilityToggled", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_VisibilityToggled", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__Flash_VisibilityToggled", + "False" + ] + }, + { + "type": { + "inverted": true, + "value": "Visible" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Make the object flash (blink) for a period of time so it alternates between visible and invisible.", + "fullName": "Flash visibility (blink)", + "name": "Flash", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::Flash::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Alternate states", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Timer\"", + ">", + "Object.Behavior::PropertyHalfPeriodTime()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::ToggleVisibility" + }, + "parameters": [ + "", + "Object", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Timer\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop flashing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::Flash::PropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Duration_Timer\"", + ">", + "Object.Behavior::PropertyFlashDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::Flash::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::Flash", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Make an object flash (blink) visibility for a period of time.", + "fullName": "Flash visibility (blink)", + "functionType": "Action", + "name": "Flash", + "sentence": "Make _PARAM0_ flash (blink) for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Flash::Flash::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::ToggleVisibility" + }, + "parameters": [ + "", + "Object", + "" + ] + }, + { + "type": { + "value": "Flash::Flash::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Timer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Duration_Timer\"" + ] + }, + { + "type": { + "value": "Flash::Flash::SetPropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"FlashDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::Flash", + "type": "behavior" + }, + { + "description": "Duration of the flashing, in seconds", + "longDescription": "Use \"0\" to keep flashing until stopped.", + "name": "FlashDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is flashing visibility.", + "fullName": "Is object flashing visibility", + "functionType": "Condition", + "name": "IsFlashing", + "sentence": "_PARAM0_ is flashing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::Flash::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::Flash", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Flash::Flash::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::Flash", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop flashing visibility (blink) of an object.", + "fullName": "Stop flashing visibility (blink)", + "functionType": "Action", + "name": "Stop", + "sentence": "Stop flashing visibility of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::Flash::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "Flash::Flash::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Timer\"" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Visibility_Duration_Timer\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::Flash", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Half period (time during which object is invisible)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HalfPeriodTime" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsFlashing" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Flash duration", + "description": "Use \"0\" to keep flashing until stopped", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "FlashDuration" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Make an object flash a color tint for a period of time.", + "fullName": "Flash color tint", + "name": "FlashColor", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Alternate states", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Timer\"", + ">", + "Object.Behavior::PropertyHalfPeriodTime()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Timer\"" + ] + }, + { + "type": { + "value": "Flash::ToggleColorTint" + }, + "parameters": [ + "", + "Object", + "Object.Behavior::PropertyTintColor()", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop flashing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Duration_Timer\"", + ">", + "Object.Behavior::PropertyFlashDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashColor::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashColor", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Make an object flash a color tint for a period of time.", + "fullName": "Flash color tint", + "functionType": "Action", + "name": "Flash", + "sentence": "Make _PARAM0_ flash the color tint _PARAM3_ for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjetTxt" + }, + "parameters": [ + "Object", + "__FlashColor_StartingTint", + "=", + "Flash::ColorTint(Object)" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Timer\"" + ] + }, + { + "type": { + "value": "Flash::ToggleColorTint" + }, + "parameters": [ + "", + "Object", + "GetArgumentAsString(\"ColorTint\")", + "" + ] + }, + { + "type": { + "value": "Flash::FlashColor::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Duration_Timer\"" + ] + }, + { + "type": { + "value": "Flash::FlashColor::SetPropertyTintColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"ColorTint\")" + ] + }, + { + "type": { + "value": "Flash::FlashColor::SetPropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"FlashDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashColor", + "type": "behavior" + }, + { + "description": "Duration of the flashing, in seconds", + "longDescription": "Use \"0\" to keep flashing until stopped.", + "name": "FlashDuration", + "type": "expression" + }, + { + "description": "Color tint", + "name": "ColorTint", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is flashing a color tint.", + "fullName": "Is object flashing a color tint", + "functionType": "Condition", + "name": "IsFlashing", + "sentence": "_PARAM0_ is flashing a color tint", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashColor", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Flash::FlashColor::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashColor", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop flashing a color tint on an object.", + "fullName": "Stop flashing color tint", + "functionType": "Action", + "name": "Stop", + "sentence": "Stop flashing color tint _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashColor::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Object", + "Object.VariableString(__FlashColor_StartingTint)" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Timer\"" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Duration_Timer\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashColor", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Half period (time between flashes)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HalfPeriodTime" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsFlashing" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Flash duration", + "description": "Use \"0\" to keep flashing until stopped", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "FlashDuration" + }, + { + "value": "\"255;255;255\"", + "type": "String", + "label": "Tint color", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TintColor" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Flash opacity smoothly (fade) in a repeating loop.", + "fullName": "Flash opacity smothly (fade)", + "name": "FlashOpacity", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashOpacity::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Alternate states", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToTargetOpacity\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToStartingOpacity\"", + "Object.Behavior::PropertyStartingOpacity()", + "\"easeInOutCubic\"", + "1000 * Object.Behavior::PropertyHalfPeriodTime()", + "" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToTargetOpacity\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToStartingOpacity\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToTargetOpacity\"", + "Object.Behavior::PropertyTargetOpacity()", + "\"easeInOutCubic\"", + "1000 * Object.Behavior::PropertyHalfPeriodTime()", + "" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToStartingOpacity\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop flashing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashOpacity::PropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Opacity_Duration_Timer\"", + ">", + "Object.Behavior::PropertyFlashDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashOpacity::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashOpacity", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Make an object flash opacity smoothly (fade) in a repeating loop.", + "fullName": "Flash opacity (fade)", + "functionType": "Action", + "name": "Flash", + "sentence": "Make _PARAM0_ flash opacity smoothly to _PARAM4_ in a loop for _PARAM3_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Flash::FlashOpacity::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashOpacity::SetPropertyStartingOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Opacity()" + ] + }, + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToTargetOpacity\"", + "GetArgumentAsNumber(\"TargetOpacity\")", + "\"easeInOutCubic\"", + "1000 * Object.Behavior::PropertyHalfPeriodTime()", + "" + ] + }, + { + "type": { + "value": "Flash::FlashOpacity::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Opacity_Duration_Timer\"" + ] + }, + { + "type": { + "value": "Flash::FlashOpacity::SetPropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"FlashDuration\")" + ] + }, + { + "type": { + "value": "Flash::FlashOpacity::SetPropertyTargetOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TargetOpacity\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashOpacity", + "type": "behavior" + }, + { + "description": "Tween behavior (required)", + "name": "TweenBehavior", + "supplementaryInformation": "Tween::TweenBehavior", + "type": "behavior" + }, + { + "description": "Duration of the flashing, in seconds", + "longDescription": "Use \"0\" to keep flashing until stopped.", + "name": "FlashDuration", + "type": "expression" + }, + { + "description": "Target opacity", + "name": "TargetOpacity", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is flashing opacity.", + "fullName": "Is object flashing opacity", + "functionType": "Condition", + "name": "IsFlashing", + "sentence": "_PARAM0_ is flashing opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashOpacity", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Flash::FlashOpacity::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashOpacity", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop flashing opacity of an object.", + "fullName": "Stop flashing opacity", + "functionType": "Action", + "name": "Stop", + "sentence": "Stop flashing opacity of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashOpacity::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashOpacity::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Color_Duration_Timer\"" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToTargetOpacity\"" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__Flash.ToStartingOpacity\"" + ] + }, + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyStartingOpacity()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashOpacity", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Tween Behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "TweenBehavior" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Half period (time between flashes), in seconds", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HalfPeriodTime" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsFlashing" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Flash duration", + "description": "Use \"0\" to keep flashing until stopped", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "FlashDuration" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Target opacity (Range: 0 - 255)", + "description": "Opacity will fade between the starting value and a target value", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TargetOpacity" + }, + { + "value": "", + "type": "Number", + "unit": "Dimensionless", + "label": "Starting opacity", + "description": "Opacity will fade between the starting value and a target value", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "StartingOpacity" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Make the object flash an effect for a period of time.", + "fullName": "Flash effect", + "name": "FlashEffect", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashEffect::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Alternate states", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Timer\"", + ">", + "Object.Behavior::PropertyHalfPeriodTime()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Timer\"" + ] + }, + { + "type": { + "value": "Flash::ToggleEffect" + }, + "parameters": [ + "", + "Object", + "Object.Behavior::PropertyEffectName()", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop flashing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashEffect::PropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Duration_Timer\"", + ">", + "Object.Behavior::PropertyFlashDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashEffect::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashEffect", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Make an object flash an effect for a period of time.", + "fullName": "Flash effect", + "functionType": "Action", + "name": "Flash", + "sentence": "Make _PARAM0_ flash the effect _PARAM3_ for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop flashing existing effects if the effect name changed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashEffect::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Flash::FlashEffect::PropertyEffectName" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "GetArgumentAsString(\"EffectName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashEffect::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Flash::FlashEffect::IsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "IsEffectEnabled" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__FlashColor_StartingState", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "IsEffectEnabled" + }, + "parameters": [ + "Object", + "GetArgumentAsString(\"EffectName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__FlashColor_StartingState", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Flash::ToggleEffect" + }, + "parameters": [ + "", + "Object", + "GetArgumentAsString(\"EffectName\")", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Timer\"" + ] + }, + { + "type": { + "value": "Flash::FlashEffect::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Duration_Timer\"" + ] + }, + { + "type": { + "value": "Flash::FlashEffect::SetPropertyFlashDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"FlashDuration\")" + ] + }, + { + "type": { + "value": "Flash::FlashEffect::SetPropertyEffectName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"EffectName\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashEffect", + "type": "behavior" + }, + { + "description": "Duration of the flashing, in seconds", + "longDescription": "Use \"0\" to keep flashing until stopped.", + "name": "FlashDuration", + "type": "expression" + }, + { + "description": "Name of effect", + "name": "EffectName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is flashing an effect.", + "fullName": "Is object flashing an effect", + "functionType": "Condition", + "name": "IsFlashing", + "sentence": "_PARAM0_ is flashing an effect", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashEffect::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashEffect", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Flash::FlashEffect::Stop" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashEffect", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop flashing an effect of an object.", + "fullName": "Stop flashing an effect", + "functionType": "Action", + "name": "Stop", + "sentence": "Stop flashing an effect on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Flash::FlashColor::PropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Flash::FlashEffect::SetPropertyIsFlashing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Timer\"" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Object", + "\"Flash_Effect_Duration_Timer\"" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__FlashEffect_StartingState", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyEffectName()", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__FlashEffect_StartingState", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyEffectName()", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" - ] + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" }, { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Flash::FlashEffect", + "type": "behavior" } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] + ], + "objectGroups": [] } ], - "actions": [ + "propertyDescriptors": [ { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Half period (time between flashes), in seconds", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HalfPeriodTime" + }, { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsFlashing" + }, { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Flash duration", + "description": "Use \"0\" to keep flashing until stopped", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "FlashDuration" + }, + { + "value": "", + "type": "String", + "label": "Name of effect", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "EffectName" } - ] + ], + "sharedPropertyDescriptors": [] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "", "category": "Visual effect", @@ -29098,6 +31642,33 @@ "" ] } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Wait" + }, + "parameters": [ + "0.75" + ] + }, + { + "type": { + "value": "Flash::Flash::Flash" + }, + "parameters": [ + "Object", + "Flash", + "4.25", + "" + ] + } + ] + } ] } ], @@ -29167,6 +31738,18 @@ ], "hidden": false, "name": "Tween3D" + }, + { + "value": "", + "type": "Behavior", + "label": "Flash visibility", + "description": "", + "group": "", + "extraInformation": [ + "Flash::Flash" + ], + "hidden": false, + "name": "Flash" } ], "sharedPropertyDescriptors": [] diff --git a/examples/3d-bomberman/assets/ExplosionBras-Anim1.png b/examples/3d-bomberman/assets/ExplosionBras-Anim1.png deleted file mode 100644 index 0019da00436a6491386d85b277465eae483769a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)NfV!CYmQbDYD0(JysI`C?yh!L?V$$Bw8zo^d(FNk1!d2pcm*R zd9fr81 znXfj2pU^KBrxe>};2!wv6Nt9}H=XP-c#r(Q38XFH=4{yp@0qWhXQt@~&ogh~*Asa5 z&_S^w0S10Ofr2@Kf;)lEze1h=h<}|h|3(we->A9Jq|6Ih%C(T0p3=LU8%ureaVz1- zUmY&WjST4a1uP^A@V{Tk~eA4s0s>7Jp*DB0>kw_#G diA18l>j$2^j&0-2quj; z@cK8V}>7%o7QAko0;Sbq}}~GztBRvC?zE&CAD`2H}xZERIk9T zc+jlABJa?wecn8jq_6+ z;2_H!;&qmR>$-9hxDERigK(!vfc*~8LVCy@GD610h_>};Ox^|<{P6)?nmkTPpXQ`( zoY5a2V30ws8Dt2+=#K{I=8$W;DVk^YhXZs9$TgjW<_-AO@5R(-kpDerTWc4qA-~!< z*h8L>Ir2ixX`9E;OhNzu0UnSUve>|k#%67t$sY}HPw5vKnWSu-*{>q7aj|JpuJ_!THpxc>MtfK dDJiL~*ALUgomn};`*Z*R002ovPDHLkV1kLU*?<55 diff --git a/examples/3d-bomberman/assets/ExplosionBras-Anim3.png b/examples/3d-bomberman/assets/ExplosionBras-Anim3.png deleted file mode 100644 index 5d159cd4734abbc652dddb8318e59469cc5acb34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)yUy{(|(!NsD*CZY)jsL0P_ZG3F(_5d;kCd07*qoM6N<$f;MvPIsgCw diff --git a/examples/3d-bomberman/assets/ExplosionBras-Anim4.png b/examples/3d-bomberman/assets/ExplosionBras-Anim4.png deleted file mode 100644 index 20258491716e8949381bc1514017e0f1398493fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP) zx~PQM;3>CNDu>l`y(XfF*sEa z7d)???K%Qk!k}LS7L~v?sDLWC0}r4^*xUECuR^t@7)@yOF9s-sTTowt8jUS4Y21Kc z$Rakbzzr4E6{(TSb`}YPexWSiP5}9zdt~01-VNrLIBPF#Q;qOxl40N^9KCFc}pKbM}yp@L(T?a z&@V!ZN8k-i!JL@VV#%)}a-ydK|>E{vTE^`_)jL^7dzwpVe z7-BD0NC*S|#Q{q#Ef1rGL0Ozao=*e|oPU+Ct3 hsR8?oJ-ANgZ9h-Z#SMZFrzErFf*4~-#1ryJWOCnaqXF2 z@U7-O2IM@H8kBA^+YXrrk{IxB=uDkoQfl-7@PU1WQmJvQDRthxlE9D{@PQG41g^i- zKmeUddGDnl;Q8-fjlyZgxsR5ljoV29KCrG7g)!R;4=c?5I+oJFQy>6F0ofIK|MhLQ z*uTu)53C~*_)FWX3sqE}!(85tNIm1`03VnetCz;S#44Q=v{kzUrV6BWwhJ;hG7{5g#S#5j zzn?~!oyUHtlQV7N(upK0*a6Fmry-B8%u~De*q6kkNRN|}fJ4=(8yk@!m*N65!)_(& z_HISMqlhHnizYxc0f&eX6#}?U>81g|At{cN2;hij#1z|-Nmzx~^|I|t9D#2$K%jrE z3CuzYxk;PYGZ;KD*?`Mv&p`0KG-Y(!)(twy*0Y?%Gb1H7nsZErJ`w_HB9!z>i!@>m zqg{bHJmKcEN+DU}SQEdLl~Eo$i5~wW$!V!4_}pAHwxLm(qw+RRv~y**l$)`@d4F<} zYxKw)YtdlyxeXMFekn~oU(4nbz~ZJ8?bU^f#wrIaRc`$sY$ZhEBKK&K0BKXE=R>1) zXJ&`H*J8Xr*$bk?sw-Kj^4RFNhPz>YPGqP^kTA2+3tg9dKb0=|dSK=Gq5GP3kouYx z1KQ@(o4cBSGY|rBnCYTBNtji*ANJLMHE8UZ^RL8YIIKp1>3MSq@TN$WK)0gr&U)9*uA6kFk)k-+J!fZjW_HF12@GdD z^B#-C6az~$rfhTN9g;Pit!KCKgy+n~b`lWSi2|>mIfczzNak>i7mt|>mJ<*tM`?89 zAyP5$ss|NshUk-rZS11kqPy;@z-N%zp{x7r(fUzRL`(gqAGXn%BPF7!&3x4bAbv*Hx zz)n>G(-{g77y_n5X+ir;)|BXhGH(M5e3;aJ%xzd`bU4L}myu1TGvp26{ zb(SelQAoJ^^I8ZKD1ZU7=`>&8fUV-yP4XOhKR(Ac{wQek`WjZ{S9(&7_B@>!;C<&E}iKSKgJ z$!zB#@JV)`r3IgaA&5zcK;E;@Jx0VGEjPHO|XtW1Gj?|2E>v0@o|fv&|# z#m%Wk5Z6??igsKEk!BPD>ym&&M65Uj+FEokim#?rzFuB-%0R;53a9hX8>G#|!F{FvT6ibUn=ETW9zZ)txulqf_ zX$O+gP@9(3^%^y4F}31ul~raZm19?@;U}DyTNf9*dPKDNZ~bQwpl-L^OCp(`1y`d akopIA6VFHovGD`|0000`Mc|=a zHd0>zwQQ*pi1GoXUlMJ-#v69MV|#5b%Vwn`MT$K$#~zQzGa$tI+-qZs;S!h_4FQ@M zQ$;i-GEJ)6L(Z5W)zAHw{fsBS5&?OPx3n$d@=ef3(iL(+&vQtxTNNw=o=yCkpTHduGgp&K0k|xBHf!@n5e#;>rI)!pe*? z3*!f4m}lrC#xsLQfW(N(2+Ax+2y8uD)CuIWW=IgU19!mcuK?qH`~}7jBs)NmDIsyR z*&hbJ;rI~}aR!D_WE8Z3Rb0d{-p2x%-(qx>V%S9pm^9Aw29X`E+$z5)ofGOjyjl+P86_c3Q=j5)V+1vnEo`+$NX5ugnC zyDajoH3+N~FSjbSjfsRvn2)e44;ins`l5(*7b8znBG95fKjz%Hn*#_yXTf(T?@Y80 zAO<9#?19Yf%r5E5u|{2a=4o{t2FvlHx%ZOI69f!qeVZ8t|WKIl#}iSAJ} z0YqfQJCc;xroz`JFdT|b3&D;|sI8ryw;-vjEKaoIadu=OcP%7zm30D!Lpw54Az)|3 zDREL*0q=?9ub ztz%RrWN+o!0R-lp+K{DNR;i}7uvG)fcLffSrg6H`qNPw;tosB^Nd*`x?%tlMxLcIi zX2vbAml7zi7mb+Z^?ifmH*Iii!NHXiHaG@=+rTCDEp2ctgAI;oi^*%}$XZOjGq;#> zM$v72`M~tCr-I%YK!QEg1H~raic^i2wU@B*dTrKSPfFZo9RY3D2hL-}K4Y6zsnIhKih4yhMEmfuM0eYoWg-gShu+nZ> z5qjWJI0g>%p%&2ohOAv2)=b8ags_AneG(F3=KJjN*q#X?!pA?z-1!HV|BgJxH;zk+ z8wG5NhlsE>HZKMLdCqBppG5Yd0=_IC%nAn1DXI!*P7DE#!d{j84E$$B0ehbm0<0f` zQr|xnj1(0PTQLN*6!waO-_w=RXK+X;Z1(rQhR8GI1VaoJ!_gm5Oep3Y?EBDg7AnAJ zE+oMB4>OGg=gb`m{kVLH;tUwO0?uj_T|kNveWmyV@P>%!a2uk{GVpoExkz}*1;EkA zW}uCX>N7$<@TgT}xcAUm){b{|>)S_G| zo&R*DeAEzcN4-+sAXT`g6|Mzs@>1X9g|4+O^`>`a&q}_mVp}oGDpg*eucWZBRpH#w z!WLFqEFcwWSyLma(xPoxS}cmCMO^`Po5kIdNpaVtyk1Ikd41;_99WC#$e_jKY_P>t zK>WjQWp>d3mpAz^5mik_iqqtC4VrwpI9*E9HfslIv%VR&S-Z)!S%0ziJ?nsLTdmay zjqXQ-Mt5D($j~;rt-8N&eP-NOyY{RDE_>DBBEsgj$yW_1`EVK3CxU@; es$REQ37fwhA9=}9!6a$`0000XP)9`~i;-sG=m4 zi4=vt*qM-+*qE8h#?A;sB|5eetuWWAi=serV>==d_ee*H68q%b8^22>1OkCTAP@+| zk6=FCWS(`wJn{(a0*8X#@iTY_Wm4Umh z1IQ$VGPKU?%&b37%6BcFo)|Fi%z>fX8H^`L?|5eAf0b-cO^i?OO*ETIdh=fytjM!Z z9)8hy)iiI}ATm-8fY$|$>E`L7r2Zhi>A+rMr*s`Ew?zkKnjA)2?%rCY&B^b_?Ov9g zQThO6hR%Qiunues*2S}`cCg8Q)H4?VH+~7ck}woy%>;36CV*fD<4M*u&HLn;IlC+R z0fY+X<9|affHzjPR@Fux-OML>u9AIgUw!C|3$+Xc&{PP(DKDD|pjq?)3g3hZ--#!z z6?qtqPh??HC$c!JqHi=}ONmCFmJ)pP5-qkeSj=(liM~r}nJnfCznsq5hUO*zTS}L1 zWxA#O(@ni+9h*H?amyRxW1ZNs%DcGlMDL)C=CMjYn#iIg7&=x#AP@)y0)hA^_yiQK V$xa;&h1LK7002ovPDHLkV1i6k=a&Eg diff --git a/examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png b/examples/3d-bomberman/assets/ExplosionDoigt-Anim2.png deleted file mode 100644 index c98d1f0918bc19ef5f697454cbda5e7cf01af356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)UD~PCMLN}r-eFYJ56O!~o z@7CHI6nEA|rC6+pK7cEiE_CB%=f*`hUU584Cs2x$%p|EMH3vSXq%(*A&txVulR&@^ zKm72+b%DddaV(>CtO^yZpiAHpE8;VhA04#c588j7I%`;37;`4SR$f85jitE}KH*Yu z0;^&H61)MJlUJ=RpgI0%|HZ51A9OLC=m+eTAI|cA}T?06bTuFx-z=qGoTW2B}Ou&4Xb!s z?gX{X6Q6-Bhj^VVqxh&nj$Qf`&2AuNLA*|i!9dQSeSzBUi_JjHhIpNrf%v3J+ak5? zr?G(ud5%jCk?9%S5soqSvw?TI0keb^;1H+-Cxkk=R&mg@Q4gr-j^DsOa0E0>I3jhO zFt9_LM#WQh17&h|o19c_iq8Wf>U&_B%|Kgx&4PHH8p**czCHVdsn35AJ`fdd=j z?es*PCSKey-ve|fI(EQ7!-4_YqZ64QmyGY1tDv^axR!s++jM38*+%qT;|NhR^Oeu~U0yyo7ilBRz^0 z`+M`f$?TI(5QB>rd9b&1cSG?bzO!^uGdi zxPJ+2>aJjkYwCWClspK02XH{XS+SrIpT4q+k$Q-pboT6Ste@zE01em(k$5W`mR4Ho zwX~z^>+*Z79Y5%Az$+*X+ysVzdq5r-0SW~3dYIfZpUILK-lS;y=IebR2O!Cgso@!Q z2iriJh&q!E!VtqqP<``D8fe5{_BMdv<{)t#Ht|BsuahGmj0jQm@7e~WFL?0io~;H7 zF(ln?GQK?OCzSXXJO z+y+>Jb3heX0#*r2Afz-PcrZUK19U?D~$vmE1quDoI!sB$FUN;P8g z&w()?16kKNaGGwQ9wK?0dW5PoPMP60>;DMGscrrS-b6^==5+`I4}6lphcu%LD zLMt&CSPo&pZxlxk171_xh$5djm zgHs7Z{@9tx+{1QF=7gV4Cuu=bj=G@vCzh0*T+~l-E$VCh+bTtlZI$9*-c~V`jMy7n zx^!4P1GgIn*2LUe%rvUcHL$JEp0A;0KhzI+#v=J6aWAK07*qoM6N<$f@;BUj{pDw diff --git a/examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png b/examples/3d-bomberman/assets/ExplosionDoigt-Anim4.png deleted file mode 100644 index 859f45726960337e4bf1ce8169c639af1dee4480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmV;M17!S(P)B2I9SDiTMNLD6 z(t898Pz#Zokdn5dT~wu{1rkV8sVb|$B59>4z=n&2kcMODn2hZi-zlC(`V`Ba^XvTf z*gi93NizM2lDI?^d4#0pEKmkoK!>E`U*P}u0ByU2$I4n;H3niOho1}m??4;a0}9YK zMv{q(_M*w_=SV6(1_5<|1f;HMfo6#M-+&t=dG!M0jL4&SHc7~IH0?0;75O7c$1WQU zuo`B7EHDY=ff-;Hm_yX3y}Dn>FTIjx9|)G)t^Q!vx!vf=D+|eXaRT(6oE2O0iFX@MBQG& zV?}Jc;2|kHef9qtu&B0+4ch0KSG2EP1%q$_cnYlgpo*~to5a29SEv&+!MY0ZYZ94< zjR(LICb1fjDr%{k^GFc=lHN6A)|*<9r=-9Mp9T-PSK+M~2A-gS8H<5qF$|Qb`{<6r zz)yPvn?Mby15KcXG;v=I+xSUp8)yLgsJH8IGwTNK84Ubl8(72SS}v(!jN9aS+S{D= zE0h7_BlWAqO#Zcp+HBNP`8P1+QiZClc9l@(ZE)K z_W&>}cR!Hok<{Gl$;hu8pLdGkQl^g{Rflt5*&__;i-(iTR z?YdCKRNNU#37*&y&;>p_(8ac47}(<&Sf&izr%MSK!dgTQ@a*h52nKpS4Dh-RJxEdvW%TH9Onjyc2;YT-zlnu>j6pqXTBX65R%wJhtx^kfS|!R8TXzixeu!aU zi95B}6>D-g$C})Y`tlEU diff --git a/examples/3d-bomberman/assets/Image.png b/examples/3d-bomberman/assets/Image.png deleted file mode 100644 index 9c73c253b985f002258d5c94d6c7b6f20af77919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)Px$j7da6RCr$Po7)n@AP7Y3|9`Zdwv&vpUH~yc*}m49WRD9flJL6e7h{Z^M}-gq zXS{Umw1;p7_XNxWq6$D;bPb9o3>5%(3D1FOfEWVslyFTDVgOdeA26hD5CO0zegpyw zfK}lmAwdSPig>OYNB~w7&wvKyACZ%k1}DP;|g<;#&~@0PHHh z1_1!l9I*TBmt1ghfNKC=#OE$J9RL8#qGhj!XZ`=9e(-gGx7km_007_s?;+qd{?9xB z0M3@bzXB>800;1{t*!6yxbGJb0tf+w0IPL{8)MeTBL}!of;bI&KMleGaKLY&@|FxQ zMNt5N1AK)++Ea+T!F;d2dos*BO3@!sI<4*Mf>J+mwM%R_2(@Nvw8^y!7Q48h)k=?6 zSxU)jRVPqBqUbu{0JIteiujK-6*K`MS2 zz|$Z`gb#m)-otfn35%Qmf&2&8~54(AO)p^Q~&?~07*qo IM6N<$f}YjBt^fc4 diff --git a/examples/3d-bomberman/assets/MurHerbe.png b/examples/3d-bomberman/assets/MurHerbe.png deleted file mode 100644 index f40e6fd6308c601139d2538948eb124748a7c39a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^20(1X!3HE14p{yHQk(@Ik;M!QjFlkFIG^F=L?A=X z)5S3)^OU9p(-@AJx@)8R&% zJ3rOFKBW;+9)Bq)OVwP?!Fr3g^;YYwdW{DgXHM#G=bkBMyl^JVY|~fAH@06d-^Zuo=+3#MtDce_V{uJLcY5nfk_w8(*%@3wY#lAM(o4))04T-AR dj2qsbVfgmzxU&({kK-WEdAjdCE&(6*^^!E0CMzPUjczAfz z$jHcV5VfLw!D<3BjBh8XEcmxe02~ zAq9qOL((|}mypgON&n2u%qhXGTrOAdU2zo}kw_$9GMTDTy8$UMB$fG)^y1=rAa@ea zW8A>P!h)CPg@FY6*NuSLY(68=9{D$cN{Z*v&mkHS86Z@R$eu*R#uS0L6_ODHI2<{K zBP$K88DI>q&tAB2A?@#I>OYDPL(P*FNQ)rWBF#gnAHaPTwI9Xn9we{>eeX30_??h6 z9t6L+26D#|IPInmolf`lv9Yn=qMNEQvzG&`nz6-T?lnc~&)B;Exl8dJ@V8>CqQN~0B z^gC0a1@Y`fOGYWf$%03#IJ8>r!z&_iYpmm60`N#U1Rl4W6SK+01!`Jbfzu)|J2_WK z%s!U_I>~Flo4-zrh&V(9BF&sjiepKVmTOi7zLZrxb-HJ))8piH4?P;T%9diZN6Pk_jblJ=j+9phXa5eaTjabb)_^=<>b2rg@meLu>=k-7=7Rw=ksq>b9H=lm93ZJxvO?E_cyf~V|Yw^_NsCXEM-<b$S zn-}0*)2p(@i2Pkhi7O=##qj!YV5lx+%3MU~4VAWmN@+-Mh^ZFz~4 zQ%z5&gX^Dd2Ue}!RB`k}Rr~8u-FbqO^X(;Yl6^7{4rPTx&8k!@B~VD-YJDj$II=+S zHd&0S|JjxU9|)asAt_~wm5SXpyC1+0=CvYlg4vE0*O#Z42|-i$#eyvgeW%fAwy8C$ z2XVj0_(JQKIcr|6R@^T<{~lgTD~uU>WWhD}RdKGy_MXoh%veJbEX#f;t6SEnK9BqU z5~U`cHCg4M^n#L>ZC_fB$(Acj-@kK!b&fQ^G4|)_7`oh92@dx{Zk*Vyb85Bv{(Mi3 z>N?d!*uTB-r;j#$QTi5Q&sq_9v*{`D;nNoZqPH4tw=T)G0q|E`*NR!q?#d7`n@laM zeiw?H)~*$a_QA{C1Nl4GU%Tzv3ib)Oq&p5bC)yYKhkK8&n!w@u&0i^NP>!tyfxoc7 zhCee;tmfVxb@QfgteS+nZu7U6TbOjrYsw9q)8hs00000NkvXXu0mjfaxtVX diff --git a/examples/3d-bomberman/assets/New image2.png b/examples/3d-bomberman/assets/New image2.png deleted file mode 100644 index 1c932fc4b247a06e4b61f8c7cae55f748f322f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmV+w1M2*VP)Px%&q+imSbR?e5G@Zt#5@22L@fca`LKroB9?&Ibm$O3#1asj4jlqWe*#a> zFLz(^`SE_YW=6qjI>dr-D_|8MS&(eNkx#b*iVVmMfWOdYqey_LU~E9kgD7Dv52A(v zh~an|*_^AMnX!CL+d~w)V-Ip9%y5t+LCiRX4Fx$m#x+n^*9-$W6Gms}3;{ViMrG%; zgRF#cfypdqtspC6WKqgMRt~@NxC}_uE%J|XB1=~qgwD7v>P1O`fN{UQ0J)#h(28Lo zbcfA#2nZN9jL6sd?mYwyI|d-WtlF!+%hfg^SBKCYK0`o!d9_yq(jKw>1rZFEEPKB0 zNqZnuqr@?MQwW#Ahw)_R(Vm_Lz;P7LAJT`^@&dq z5MN&H)qu1|?0W$qzP#G20cnre_kwm1Hg-UK35ZqGAz~ogbUY}oiy_NZOdF6`Zf#Gs zfpANYn^{p@OBNtPAYjBXJR7^IL%_&k0FuwIe1y_HgbvC30FuwJbOb<3cB{YtlBAE7$qR9 zp>$%Dfvj};Iuyv+yQLeWyhG03DTf6)Bg_blwhpo0wT^OZ9)&R-Wa*1o)j#=oiDz zkfUQqaFifU(IJu3nIgjV|8bfQiFTISbAX7600M|u0%FslLjVy=Kx{g6h#1I!<|L&M TaS{3100000NkvXXu0mjfq)c5n diff --git a/examples/3d-bomberman/assets/OeufBombe.png b/examples/3d-bomberman/assets/OeufBombe.png deleted file mode 100644 index 4bd5388a115860e7150d7a90a79c430b7e530077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1466 zcmV;r1x5OaP)Y)M2xRA}DKntf~&br{FzBB+?4#(;^5kr3Qw2)@OaXpGSaF(d-J zTb39M{$mvXL8E^l#GrM95YhRM0bK+)rU5cvBJ0MBL6Og*%)dyV&B*53h* z%&V}IeWAi~xPx`8p|#Eptt`NPb{HD#+M$t+p+exOz1uplHs*QwnH_{41oNPNMLAJl zqZ&~=nGI!w33S!0;+!?>{LY$f?8JA#ediI9K5cN-okELtAd5^l`3h4Wu<2DyvpgS=~iKk@WL8jwG| zN#Xqi-JHLFkKfbxL{31wI2>XV&_NARdk$}N$p+oX9xuH615|Rp3(cY6h%Xumg04vr z(+NaIk7T&D22`QfIIczokis5?=lXkmKKHV$^R?7%!$`$wE5Up3hX^-`8ZA7H-oEV- z;v1(I&y?cpm;w}f-vsmLx+Vhe?;p$pY<_zI9Ar07y+=bJ;8k$cFD$G9bFST?;II*y zEJ)8GAcIYyD_+xQ5=L6C^7!$w;31=Cak zgwQ3UR*hpZ(jSWj?=2c!T$49XZyAzNXVfG#Dzxs1G?p|AnnNaIhC#x@-&01?)UX-6 z2Yc#*dBf?t_za%x+UyYur<}_}MD`nwRt&keY0{d) z>rRvRln^d0uOJAE<_w45Y&oXr-!cF~T$gtg;@Y3e0hdxNk&y1o8!nL$SJC2h0H;gZr-RlWHx0`2nUs=cg{OegQ=(f8!{t$<6WnGECsNZghIq7tg~=!|fx zDm-W{&UTyl}s zlntoMuh|6QK71GN0@H54F&F Ux4ohp0RR9107*qoM6N<$g6Vg=+W-In diff --git a/examples/3d-bomberman/assets/OieBlancheBas.png b/examples/3d-bomberman/assets/OieBlancheBas.png deleted file mode 100644 index 5a26801a16eb6ce65e96d9a5074bf1e93a12b906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1494 zcmV;{1u6Q8P)fN2*y9x;E$k2qHz@r26txm{g{2s&TM9OXXicFI+dPD zO-*+_dZu^U3m2N|>aIGs?&DN-uOp&$0qI7jFFLw0sBwat{L4&d>59aezVv?pu!-pa zdCPZBpHKq0hUr<-%P&sf&;jTsbLkEnfNLe6*U3E7>%s(JKiSK^Fah|%2Y`XF0Jwo^ z-UonHrq_o7z%KGH4~GH3>n#9yt8I##mDizA-^OVcws9Y`wRvT<5zfI@&nM{Uau^5evjL_876xY$w zQHn;RluD&cK-?1~fR9uoV}j%3*n4$;wt&X>xLsqW_+w`?lRqW6@um`k)Q>Vne_2I9OU*QUTb}b^t7soL*U3 zaUBhl2Z+m-E>g9yOqG=cRr49H{F=4l9;8$%@mO$^VzEe(NaV+M1L$Juu#BAUp=Ab0kYhCUM$ z6WrR0_a&L$(JFwOYN=D6q$mhVQL+O)O#sj)r&9xiM3~;#3V_eNtSkzGQcR)gQ_nU5 z$eenvA(bL-yaetAS90W2zX0~u-hiNk3wiQk=F70?^71lOOLBVj0NkOL-*Z3pQ=;zyn(V!k=~j0AAdd^f zO3W$A;^JaMon(584S*Bk)3dX)+`2kJKY*>SE-{PmuCD;D(FW@yc(uHm0d(ni+!VlV zGT(>)>o|_QQrYj{yb{1?j(AztI59XUA6rZS9F_}<%Kv3I0(ItA{QH|afWn1uc^lYh zz2IpCeO(IYArk->8qNUc=XGV@H3gQY2I~My(|__dfKvr;Ln>xLjJ<>;f9U|+DsNa! zD6$&>`23|4U0iXkOT}JpBmu6-!7KxKTI`L$#ZuacILUHyl&eWCag&9G1y0i?*`orm zPwa`^6*7lk053!1#q_t0KS-%JSeS}$eH*zwxuS7 zPE4f&l_@$O6qQtB&?EXucc^75pwy=EC1u0kO}Nmp8gkRT4eJ}8d)9;5bQPpx`k@Jc zM@2@ca|^_Y-vXs$rnoOL;aw&Gt|sTBb#0fW+Cd?3z0Qktn-Q545DGZ4ZS3QdR>Tfhnf%~>)fp=hCyKxhFa zq=i;Q2%-?9hzO*amqtdGedt4F_{D-21?hurRAUR2SQ@seqw`$InK4iQ+q^(*Y~G!j z^1VBA;0H6q-22}B&2Znn=iG>DTT_IdA)?vf251FczzLp%^I(D6e)KM34){bP!tLy# zp&u^x@;lfX3L@@~lpuGtk}-8I9WUBJu)#hWr2dZe!ivBEv&c)>+nXsrcQq9q&Lii5 z!y~6G!{xA=cZw?F8mSCNY5Jf;GLge-tm?BE;)D@_vBiLXwIbxw6|P?*K$j)0*M4T1 z#c|f0WtR-GdKa;dI6^MV9QZAwvm}*Tisw_e)xh4nWyy4fuIEJQRm3T^65Oo~)N^5t z9Rq%if!k!s*nro!WyyS}+iI%smW*|>l%A_s5%<-K80u~B=&L?>83W$bV_CkC%2T5M z>@OlxuOd4CGWJ@qALM{EFkZ-Y1O^uC<4>^4pMLcyBH4$CeW4;E+lPpXP!Un!L&W<~ z5mBPzVUZLHA}UmfIOMkoG@h&z5jRzcc*-pTjkbVB@C795Kt!#|wbVRb5f_IwZU*rh z7x7G`h@-qB_KfI&T_{$=BHpPK(a0;p;H8s#FiE2#K5%S27x9Q-dwaK+PCkQ^AOp+- zQxs-`C154k%vN%s7)YQ}nau7DqXt|8C%^%)0n7+ML>q^QVy>qK8rbOn$45{Fc7X&A z5nnm3VdE81Nn;yB;1MVU(*xLfdW%FJ5e1~3a4Px8%uz&qE0z!T+%it#r)9%zkWF*w4~ zVPo)=VW&yYfs|m>OM-o*CtJC>SL7)ldc#hh!{feij3R&?K4;11iNP!!>G~{oSVUMv kSVUMvSVUMvSj3p}6Ht=)KPygIF8}}l07*qoM6N<$f?x@^v;Y7A diff --git a/examples/3d-bomberman/assets/OieBlancheGauche.png b/examples/3d-bomberman/assets/OieBlancheGauche.png deleted file mode 100644 index fb05e7f82ef4103f4adcc24e76370c30b2234606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmV;p14sOcP)`QQipu=6qVJG(Py=9`e}hNch}h$sP+gLl9SxV)yqn4t0>bkgs{)#Be`b~VX-jpH~IX%ZE+n&2hq*_H@`9zVW zhl*^oyJcG=K7Z_~*x>AMweyHLYtCN;g@pdIQj{l0^jww_AZV+nx}ehMaddHrcq;OH zL^wzV+dw{eF^&j_up)HCWc&G5LKr93omL(AgOEg-m;UJp*ol8g`kdti&e9F17@EL?~5giE{r~2r-vc#O?r+cYxbu{Ag#dbYTNU;zkXRh))8GC}a|WFNO`(J;jY| zRuM4*OHd#1ELIWA1s3s&`Cx`~qh+=@!6Ra^z#@`(M1+DL0!pakzcEAfNI((00uhlT zm<08VGAs}g5uiyB3F zx4`y4DqSnZLZZMy8osQq7j7E9%}K6 diff --git a/examples/3d-bomberman/assets/OieBlancheHaut.png b/examples/3d-bomberman/assets/OieBlancheHaut.png deleted file mode 100644 index 24c986439867e032742547b7423f11a0e5457069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1173 zcmV;G1Zw+0nnlnz$FQQ ziz)#uVfNj`#edW5DCI`;m<TCN;D+@;BM0EA8vwiIT;Tv*b_2j&4nVyd0G@FG8r=Z!g#++eb%1PUQ4Rpk zEmJ)!k+Jo#695eY0FP7!*kCYyrWI2)8ogy=J#bw$fI?;w695>gt*QVZx@?wMQhu@{ zGPMJsisV(f&;W3WaSH&byLX`gb}<_!>k2a4nQ4H-%)(@!!g`yI11x8DpPbWkW;sp) ztYh|roY!wXMPn-fG6~(3Idw7HY!|>vX1^%&`onCMRe&smEQ8Z()~`Vtppq6|<+1=9 znT;s`FwWb};Q_oNb@b9Kz&3;Z-i6S1GXPIWJvE2|tkCD3Y6|I*fFZyUQdfsW03KWI zC7Ddp(9jV1{r;5UH;&n$hav#&mc}_0qPDg+8XO#?L?V&0fq{Y4F`Tm~zY#!=74L(K zZf|d=$;ruC=Wqd)xB041_5kBp2^XJ@BjIg~+J3);a0I4C>kF-0(4jD#{M zYvGyL&jUCu(_$bHNX>Imp)Bf1>Ld@KTI$JSo<`*E&m0BRk@kx2LDa z7Qb&KJjCdWroMnIB%9Lf1?=G(%LD-WV12=X2>o$Lc!Q(2x3`qV@vTk+pbzv#4s9`I z>2KaoPBv}w!6)A&{wJ2A!lK{?O?_*T@qJ?4tzu@!XzD)%NIYSqu8G;Z nG;7k&Jms!KLZ2;VMZG2nL!{FT;Ok!juu4R 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 diff --git a/examples/3d-bomberman/assets/OieGriseDroite.png b/examples/3d-bomberman/assets/OieGriseDroite.png deleted file mode 100644 index 49d42fdcaf6aff22e056fb6519ddeb66e4a41657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1093 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 diff --git a/examples/3d-bomberman/assets/OieMarronDroite.png b/examples/3d-bomberman/assets/OieMarronDroite.png deleted file mode 100644 index 25c94bfd53e9a734c5a8205170a10ea51da3b940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmV-{1b+L8P)lrWi(9C{8zb@12^^9~FrN zqZb$@S-FSWAcFd1L4@?uJsb(y`KsIR=tNm_ zJLhic?%n?QvR$@&w)45a^E==3JBPa3(M5?_wN-g3HY0b*W@NiT-#`O)1N#VGPdfBm zI&M3nhF~}3r$UE6fcS}Wnzg*6ibL;z*$v!g$%C+(*qiPU9A=KsS~`z6Z7<**rV$v! zN6VCJB@4oCV2a!!Ala)~zPKobFD*{z>-UU+;5EszLA8P|mm~=2-~~@0JSk5u8&=6_ zK37g(RxhODBm?3^wPqG{@FzBiB-tPWfs~y<_hl!@>Qr)Bkvf)&7BvXS4Qp^Aj1G;c z{xJ|)@idB8e2yp1xRYKYoAqXzh$8a!&1PHr9TjCuA(-g2RBhwPZIpQTIh)yC9b(Ngjy%DQ{ zZD}Z1#sq0Zyun>(fXmFl2H{%U4|!;)2ZqYwIz5x`&@+piySceY^%eO^c7tXG45^ji z={F)LXEkva_^u6f)|Jd|jf-o7&rd_-9fGH6g6nm)RoVnUe8hWP5a@pq%^Gl12g&+A zKzau-FT?9j=v*Q}M0_InjSeCZt|!S)qy9jo+y|M#3@z|u<>|?Cr;&iDo@NjeH85I_ z)D}zv;xk!$oS6WG=ZbI;s1+VkF;7tuLUM#lcdnLZ zN_8Bz#TGz%$_2^wJeth}+_#kk#I;}tAv~g(25b;;!$GNnz;T%qBVx65L9jy>3l)h4 z0vu*6N-R=^;cGGJK1V;0@bJha0U_Z$;k|t4cKU?LlJ3mmeLdsJ!nR2e#E*&Y6bl59 zE0bV;XdN4|cNVvQK}qM=+FC3s&0hR7}nK#U=Y&7{ z6m1`R5`5O{Iy~+}sG}YsbfaQ3tR`m%a^pzUXR*T|!XUyR!XUyR!XUyRrd59dWO;In T$*~#j00000NkvXXu0mjfAb$xm diff --git a/examples/3d-bomberman/assets/OieMarronGauche.png b/examples/3d-bomberman/assets/OieMarronGauche.png deleted file mode 100644 index bbd12ed8231eced7836e6704dd9475fc3a4d8e04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1145 zcmV-<1cv*GP)ysjsl}Qnbegt6zM5J<%0K~8I62p91f-o_R5)8fq8eXGPh*6<|Vq*9x z1SCUL&>sR2qE+BG$Pxq?n+5& zp%%nM0gQA{UUB9yw_vV-5Ili^<#@uJ0AV+Cmpy~vGUkX!aGyMb;ESjSVHMbw-m?dL zo_Y}Qw97D3XdU$+z|c1D9>HIigYgx`riDI%a1`*dm}Lt7eY#iYk0Hy1m0jsAlP`lm+G8gHFM3b<2C3A z(k6GD07RGXgEdB=1sPhsLWVj4+xklo!%b-38KXu}J$%jv?_1!t8PfW87~|T}2bQ9# z&gT~)p;{`coWXmiM&|^Vu@2Vfn1V^d;w1ry9)eY>3X}%}y#eh$lhi(@Np09!!z!dM zC+ytg4zwnZT?&RDgeTn!pZzxr#*dvJE@Fd#28Rg0pm&mfjOZN1c`hPKL##joqJ^w; zzI&WU74ba8@Ga>W?^=1sn!KRFU&1f=h}u>bu&G{(IJ2(u5% zAoy&`yrBav3y48LiV1=aIw=7$g!VsExK(H5q_uVSO;&-=o$|Q`bg~&b>z65n0oXI` zowfrWM*$a)D%3JtFFc3e`e{GuvRLBhpB$5w$of==mY{C>n_LRW?$CQC*xtGmzP-<_A) zy{QlS`QT2Yr)_*SWU@?jYBj4DMQD^Cf**t*gdc<-gdc<-1hM`DCn0nHxs-|o00000 LNkvXXu0mjfBqaRS diff --git a/examples/3d-bomberman/assets/OieMarronHaut.png b/examples/3d-bomberman/assets/OieMarronHaut.png deleted file mode 100644 index de491abd3ba9aea3c5c58578335ef15def33d670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmV-Mv+S1VfcDu9NZ7EA*Bs4U%tS#N{PeBq17)^-0NTTt#(qX1U9 zkyS2q-Z+4KUKoIgpByv_5b-O+!T_9Xsk#G<`qDt}e}VT16-K9fH$DQ!UE~1xJ?e86 z3YkiPaRCm1fUvpHbgxvz;XZ4`%|^9+h+JX-T%s25&g@91KVblTEc|{TrYffy0B_~O zh9<^XeIq$A0%Vji0*8bLfK~Yz10bFYF7$T#3{*Lt3jm)n=D?>y17JA?44q}T(CqkN z&E29`C9<|3wgG^g;>d+g3JEaTFRj*bpOpM7WHt)nbJD|mSB7KSi2K<$Q z@hSN;rdE=y0z~|B13dVu1;(f3D(bWyAQU9`#8mmXg@)fMesU%psJh=4fN-GlVR*<_ zwi*Awe1|0(O97JA=U=m6d`f-^_bZQE0stB2eW38$EE=DZ?~i(vl^Fq?sjtu1sWR9t z=gY3;=H698C)l@k_E<<*ziC(~hSdG^#S%!L@d1 zv%k5_G{jV&;z|nu6S&@#QZTFu+y>o6uPwI0wo|IviLBHyMnLwNQ5tM0)qI|}{Q$Jx z2NT=edZ6^C1%TvjpBbeXX{I=O|K?F>u3l?4lnycg$je3*hPqt|-#2()d#!`M+U+(o z0z<4hFl1CAMwOvPv?-l#;OymlnV6%JyaM>B|mE!d7* z@l(`SxhkXLZt^|2-@3s!$2y$017M)=JflUUi+K8JNqHS1AmhAj#locv01F!gi@#&4 zhCKd)-2nKEw(SndmLsOb#MV~o89NGBcx0 U0WgV-&j0`b07*qoM6N<$g7#9!m;e9( diff --git a/examples/3d-bomberman/assets/OieRoseBas.png b/examples/3d-bomberman/assets/OieRoseBas.png deleted file mode 100644 index 1ea49263688674462e8b3d8c3c92981994795965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1877 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 Q%m4rY07*qoM6N<$f>p%*CjbBd diff --git a/examples/3d-bomberman/assets/OieRoseGauche.png b/examples/3d-bomberman/assets/OieRoseGauche.png deleted file mode 100644 index e9c9a1c5ee90044be44ff8beea4177a06b489a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmV-|1bzF7P)2ee?Fsn{l1GZ@NSjp)@Z{NQJ5E_rkjV8F~%XS(H{l82vF!HD-na4DVxA9|;5oC=KHFwkCwrS-|Ry54Rs;NI7jPuHZ@a3ef z9NRDRD>t;pC}qX-Ca^`*^VvO85)TA337Mo6h{6G`zC}6i6TTcb8{^Grif43OQF_$z zAc}gqx)tW6PaT<^zH4N*`#p!iH8wZ%i!caX|4<(ab#)|&$u3tq3_c7sjq> zCh!QQ%7d^7+1L^YOV{^x1dq5Q0OFVvjE|I+^+*bYWf(&Q6RS&hhkz7dAja8d=in~#mc>i}NQ@VN7bPQW`4Lgo10kI!qM z`C(0)!f%+VY2La(peGlvrSi&|Non9`OlUsVFA=}LiwuYd5+E8x`^CD%gJ87^1|3Jc z=Tfzg*3li|rv~QGV9Cy3v;ega0#q^X(oMYo-VVn9j%Sqa7Y2a_8ze8#7_XmNLMHHi zkm$Y$vx(M)rUg8 zgg_uZEKTA94e+8Pb_NjZxgy!*J_i_-tj-97z>goP3W6^ggg~&$N;lv4R22lTy$XSd z21-?@MUxc_b{7IsYZxOG260`uFeACpa+*qnL4*yXpR$26X3HUQuw<+g8og64NMem6 zU9&{PbIN%HAxq>z5VBY?2vs~SkUv9JQIUZTOhrI^!gQXo5l3!OM$L;}dO6 zOK)5vFSJlqRWGgJDEM4*05w$=ui60Bl@+xm1@Mbu+}!ru@^{zQJi<}ho_~Db&#~A|B>|9S ztYwPQ84z9|Gx$zx0E@AgLD6dqC~wPEi;$Oe1t^~)Bq31VmI*AY9RQB32j%lJ&De|D z0f1tMy#ioatpH&3A42<<0Jxf>^Z{)EvXl-;C~r%@HUOZ^mkI!fbpkl10B}qvfI(RR zi&8@yfSh662uhuh02s$Qdb!bP^gdARf(PY)vrMx}%TNNm(d%viSVr4eXet(a*wyx7 z&(JvA7n-wI~nYwgbipyUC8`FvIi0B;Ls;4S@6WRwm&0uVB! z{|pfFo}&w8Y+osu(B}dZI#3ET@Vx-wJFNjQodQbE3IJv&D7{7ZtVGey!@-9VliXf#VmOyWF1wE~zn%|}70%Mt*y8Pj}B7l3lG>u+R_l(1tT z4=Qn8_1u zQujjxmlhiUwMDV~vf{ieR1eu3hpQ8X>*TGXO88%?G^7>CR4RMbLy2n>Pmz@S5~UwzTl{ z&YjYVqz!|QLtOlC=ud|lZYh(=#<+sHh9I)0Zq_D*^Ua7_cdC z|32Mvma$Ix#1>}d2svsuau#g#)P@bA1Du3D=C3gbZ@%J&af4cBj?%k9&e;*9pE%z0 zV(#kV6Lw_FSk4+AzROo~ckVm5U(q&G0r-8_eF6G7v34y!U%=bXK+@|7G1lBXlP(ef z#7KYT7+V(T1;@$O)|C*)9}his0(~T!npT8!M+OTUcj|>)Y!Hbnys~vmrw4M$hdvoP zjEX+7l#t)S+cEssqWBlxFj@ey0=&gK{2u~LJmEzhD0L9zNP!&0cTn!b{Qnz39V;4r dT6V+><$p}a5YQq2EX4o-002ovPDHLkV1iLgr9S`w diff --git a/examples/3d-bomberman/assets/Rock Moss 3.glb b/examples/3d-bomberman/assets/Rock Moss 3.glb deleted file mode 100644 index cc38c10bd8c2a73272dbe62036683d9c5cdcbac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5496 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 Wz@LFX0e=Jj3j76l4)_P~ci=yj{9YRX From f31c97b2b709ad41594b7f711ff188dd0176f918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 20 Aug 2023 21:32:16 +0200 Subject: [PATCH 26/53] Add a soil texture on borders. --- examples/3d-bomberman/3d-bomberman.json | 281 +++++++++++++++++++- examples/3d-bomberman/assets/SoilBorder.png | Bin 0 -> 8083 bytes examples/3d-bomberman/assets/SoilCorner.png | Bin 0 -> 3207 bytes 3 files changed, 268 insertions(+), 13 deletions(-) create mode 100644 examples/3d-bomberman/assets/SoilBorder.png create mode 100644 examples/3d-bomberman/assets/SoilCorner.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index f82d9ac64..47c1e1b8d 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -373,6 +373,24 @@ "name": "assets\\New image.png", "smoothed": true, "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/SoilBorder.png", + "kind": "image", + "metadata": "", + "name": "assets\\SoilBorder.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/SoilCorner.png", + "kind": "image", + "metadata": "", + "name": "assets\\SoilCorner.png", + "smoothed": true, + "userAdded": false } ], "resourceFolders": [] @@ -2404,7 +2422,7 @@ "width": 110, "height": 110, "depth": 0.01, - "enableTextureTransparency": true, + "enableTextureTransparency": false, "facesOrientation": "Y", "frontFaceResourceName": "assets\\Soil2.png", "backFaceResourceName": "", @@ -2428,6 +2446,78 @@ "materialType": "Basic" } }, + { + "assetStoreId": "", + "name": "SoilBorder", + "tags": "", + "type": "Scene3D::Cube3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "width": 60, + "height": 120, + "depth": 0.01, + "enableTextureTransparency": false, + "facesOrientation": "Y", + "frontFaceResourceName": "assets\\SoilBorder.png", + "backFaceResourceName": "", + "backFaceUpThroughWhichAxisRotation": "X", + "leftFaceResourceName": "", + "rightFaceResourceName": "", + "topFaceResourceName": "", + "bottomFaceResourceName": "", + "frontFaceVisible": true, + "backFaceVisible": false, + "leftFaceVisible": false, + "rightFaceVisible": false, + "topFaceVisible": false, + "bottomFaceVisible": false, + "frontFaceResourceRepeat": true, + "backFaceResourceRepeat": false, + "leftFaceResourceRepeat": false, + "rightFaceResourceRepeat": false, + "topFaceResourceRepeat": false, + "bottomFaceResourceRepeat": false, + "materialType": "Basic" + } + }, + { + "assetStoreId": "", + "name": "SoilCorner", + "tags": "", + "type": "Scene3D::Cube3DObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "width": 60, + "height": 60, + "depth": 0.01, + "enableTextureTransparency": false, + "facesOrientation": "Y", + "frontFaceResourceName": "assets\\SoilCorner.png", + "backFaceResourceName": "", + "backFaceUpThroughWhichAxisRotation": "X", + "leftFaceResourceName": "", + "rightFaceResourceName": "", + "topFaceResourceName": "", + "bottomFaceResourceName": "", + "frontFaceVisible": true, + "backFaceVisible": false, + "leftFaceVisible": false, + "rightFaceVisible": false, + "topFaceVisible": false, + "bottomFaceVisible": false, + "frontFaceResourceRepeat": false, + "backFaceResourceRepeat": false, + "leftFaceResourceRepeat": false, + "rightFaceResourceRepeat": false, + "topFaceResourceRepeat": false, + "bottomFaceResourceRepeat": false, + "materialType": "Basic" + } + }, { "assetStoreId": "", "name": "New3DBox", @@ -2563,21 +2653,28 @@ "", "" ] - }, - { - "type": { - "value": "Scene3D::SetCameraZ" - }, - "parameters": [ - "", - "+", - "100", - "", - "" - ] } ], "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCameraCenterY" + }, + "parameters": [ + "", + "=", + "685", + "", + "" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], @@ -2592,6 +2689,17 @@ "0", "0" ] + }, + { + "type": { + "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" + }, + "parameters": [ + "", + "\"SoilBorders\"", + "0", + "0" + ] } ] }, @@ -35926,6 +36034,153 @@ "zoomFactor": 0.6749291901856892, "windowMask": false } + }, + { + "associatedLayout": "Game", + "name": "SoilBorders", + "instances": [ + { + "angle": 0, + "customSize": true, + "depth": 0.01, + "height": 600, + "layer": "", + "name": "SoilBorder", + "persistentUuid": "8d20a9f8-cf18-4128-be3d-1cfd173cdb5d", + "width": 60, + "x": 160, + "y": 30, + "z": -1, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": true, + "depth": 0.01, + "height": 660, + "layer": "", + "name": "SoilBorder", + "persistentUuid": "62fee90c-a67e-40dc-91af-d2582dfd9139", + "width": 60, + "x": 1060, + "y": 0, + "z": -1, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": true, + "depth": 0.01, + "height": 900, + "layer": "", + "name": "SoilBorder", + "persistentUuid": "1c4791e4-f359-4686-a9eb-9e8f2b90698c", + "width": 60, + "x": 610, + "y": -450, + "z": -1, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SoilCorner", + "persistentUuid": "161eb0d6-e83e-4497-aeac-20df2dc790f0", + "width": 0, + "x": 160, + "y": -30, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 90, + "customSize": false, + "height": 0, + "layer": "", + "name": "SoilCorner", + "persistentUuid": "3d51f0c2-4353-4e6c-82a1-bcae943b0eae", + "width": 0, + "x": 1060, + "y": -30, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 180, + "customSize": false, + "height": 0, + "layer": "", + "name": "SoilCorner", + "persistentUuid": "2cf8ee75-feba-4f7a-956c-05aaeb776417", + "width": 0, + "x": 1060, + "y": 630, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": false, + "height": 0, + "layer": "", + "name": "SoilCorner", + "persistentUuid": "d3252456-292f-442a-956a-c0feb247d6dd", + "width": 0, + "x": 160, + "y": 630, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -90, + "customSize": true, + "depth": 0.01, + "height": 900, + "layer": "", + "name": "SoilBorder", + "persistentUuid": "14ced4a4-87c6-452a-8bd6-6e8d81f5f6b8", + "width": 60, + "x": 610, + "y": 210, + "z": -1, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "editionSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 30, + "gridHeight": 30, + "gridOffsetX": 10, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.3, + "snap": true, + "zoomFactor": 0.7370816317994068, + "windowMask": false + } } ], "externalSourceFiles": [] diff --git a/examples/3d-bomberman/assets/SoilBorder.png b/examples/3d-bomberman/assets/SoilBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..89239c497a8a92bb856494c7c157b1b78274372c GIT binary patch literal 8083 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/SoilCorner.png b/examples/3d-bomberman/assets/SoilCorner.png new file mode 100644 index 0000000000000000000000000000000000000000..cdbc938da772fc6b3b65b757bdd790a20a7ab5f6 GIT binary patch literal 3207 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 literal 0 HcmV?d00001 From 9d653d41ece83511962ef9eac02d454365c30ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 20 Aug 2023 21:52:07 +0200 Subject: [PATCH 27/53] Go back to something simple for the border as it doesn't matter. --- examples/3d-bomberman/3d-bomberman.json | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 47c1e1b8d..4da20a57f 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -36050,7 +36050,6 @@ "width": 60, "x": 160, "y": 30, - "z": -1, "zOrder": 1, "numberProperties": [], "stringProperties": [], @@ -36060,14 +36059,13 @@ "angle": 180, "customSize": true, "depth": 0.01, - "height": 660, + "height": 600, "layer": "", "name": "SoilBorder", "persistentUuid": "62fee90c-a67e-40dc-91af-d2582dfd9139", "width": 60, "x": 1060, - "y": 0, - "z": -1, + "y": 30, "zOrder": 1, "numberProperties": [], "stringProperties": [], @@ -36077,14 +36075,13 @@ "angle": 90, "customSize": true, "depth": 0.01, - "height": 900, + "height": 840, "layer": "", "name": "SoilBorder", "persistentUuid": "1c4791e4-f359-4686-a9eb-9e8f2b90698c", "width": 60, "x": 610, - "y": -450, - "z": -1, + "y": -420, "zOrder": 1, "numberProperties": [], "stringProperties": [], @@ -36154,14 +36151,13 @@ "angle": -90, "customSize": true, "depth": 0.01, - "height": 900, + "height": 840, "layer": "", "name": "SoilBorder", "persistentUuid": "14ced4a4-87c6-452a-8bd6-6e8d81f5f6b8", "width": 60, "x": 610, - "y": 210, - "z": -1, + "y": 240, "zOrder": 1, "numberProperties": [], "stringProperties": [], @@ -36178,7 +36174,7 @@ "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, - "zoomFactor": 0.7370816317994068, + "zoomFactor": 0.7619362677197657, "windowMask": false } } From cc4db83cd32c9409c0fa8f19ff289976ec0c01ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 26 Aug 2023 18:39:49 +0200 Subject: [PATCH 28/53] Add a Wobble behavior. --- examples/3d-bomberman/3d-bomberman.json | 1351 ++++++++++++++++++++--- 1 file changed, 1210 insertions(+), 141 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 4da20a57f..f389d2201 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1895,7 +1895,8 @@ "name": "BombAnimator", "type": "BombExplosion::BombAnimator", "Tween3D": "Tween3D", - "Tween": "Tween" + "Tween": "Tween", + "Wobble": "Wobble" }, { "name": "Sticker", @@ -1910,6 +1911,20 @@ { "name": "Tween3D", "type": "Tween3D::Tween3D" + }, + { + "name": "Wobble", + "type": "Tween3D::Wobble", + "Tween3D": "Tween3D", + "Tween": "Tween", + "ScaleMin": 0.75, + "ScaleMax": 1, + "ScalePeriodDuration": 1, + "ScalePeriodOffset": 0, + "StretchMin": 1, + "StretchMax": 1.25, + "StretchPeriodDuration": 1, + "StretchPeriodOffset": -0.25 } ], "content": { @@ -4196,6 +4211,10 @@ } ], "behaviorsSharedData": [ + { + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" + }, { "name": "Billboard", "type": "Billboard::Billboard" @@ -4204,6 +4223,10 @@ "name": "BombAnimator", "type": "BombExplosion::BombAnimator" }, + { + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, { "name": "Explosion", "type": "BombExplosion::Explosion" @@ -4212,6 +4235,18 @@ "name": "Flash", "type": "Flash::Flash" }, + { + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" + }, + { + "name": "Object3D", + "type": "Scene3D::Base3DBehavior" + }, + { + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" + }, { "name": "Player", "type": "Player::Player" @@ -4225,10 +4260,18 @@ "name": "RemapForTopdown", "type": "BehaviorRemapper::RemapForTopdown" }, + { + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" + }, { "name": "Respawn", "type": "Respawn::Respawn" }, + { + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" + }, { "name": "Sticker", "type": "Sticker::Sticker" @@ -4256,6 +4299,10 @@ { "name": "Tween3D", "type": "Tween3D::Tween3D" + }, + { + "name": "Wobble", + "type": "Tween3D::Wobble" } ] }, @@ -11164,6 +11211,56 @@ } ], "objectGroups": [] + }, + { + "description": "Exponentially tween bewteen 2 values according to an easing function.", + "fullName": "Ease exponentially", + "functionType": "Expression", + "name": "EaseExp", + "private": true, + "sentence": "the exponent-tweened value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "exp(Tween::Ease(GetArgumentAsString(\"Easing\"), log(GetArgumentAsNumber(\"InitialValue\")), log(GetArgumentAsNumber(\"TargetedValue\")), GetArgumentAsNumber(\"Weighting\")))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Easing", + "name": "Easing", + "type": "string" + }, + { + "description": "Initial value", + "name": "InitialValue", + "type": "expression" + }, + { + "description": "Targeted value", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Weighting", + "name": "Weighting", + "type": "expression" + } + ], + "objectGroups": [] } ], "eventsBasedBehaviors": [ @@ -11359,7 +11456,7 @@ "type": "identifier" }, { - "description": "Stretch", + "description": "Scale volume", "name": "TargetedValue", "type": "expression" }, @@ -11841,7 +11938,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "exp(Tween::Ease(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), log(Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier))), log(Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier))), Object.Behavior::Progress(VariableString(_Tween3D.Identifier))))" + "Tween3D::EaseExp(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" ] } ] @@ -13467,45 +13564,1024 @@ "objectGroups": [] }, { - "description": "Invalidate tween identifiers.", - "fullName": "Invalidate tween identifiers", - "functionType": "Action", - "name": "InvalidateTweenIdentifiers", - "private": true, - "sentence": "Invalidate tween identifiers of _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "", - "object.__Tween3D = object.__Tween3D || {};", - "object.__Tween3D.variableIdentifiers = null;", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - } - ], - "objectGroups": [] + "description": "Invalidate tween identifiers.", + "fullName": "Invalidate tween identifiers", + "functionType": "Action", + "name": "InvalidateTweenIdentifiers", + "private": true, + "sentence": "Invalidate tween identifiers of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "", + "object.__Tween3D = object.__Tween3D || {};", + "object.__Tween3D.variableIdentifiers = null;", + "" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + }, + { + "description": "", + "fullName": "3D wobble", + "name": "Wobble", + "objectType": "Scene3D::Model3DObject", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::UpdateScaleVolume" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::UpdateStretch" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tween", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyScaleMinTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyScaleMinTweenDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::TimeDelta()" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween3D::EaseExp(Object.Behavior::PropertyScaleMinTweenEasing(), Object.Behavior::PropertyScaleMinTweenInitialValue(), Object.Behavior::PropertyScaleMinTweenTarget(), Object.Behavior::PropertyScaleMinTweenTime() / Object.Behavior::PropertyScaleMinTweenDuration())" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyScaleMinTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "Object.Behavior::PropertyScaleMinTweenDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyScaleMinTweenTarget()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyScaleMaxTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyScaleMaxTweenDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::TimeDelta()" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween3D::EaseExp(Object.Behavior::PropertyScaleMaxTweenEasing(), Object.Behavior::PropertyScaleMaxTweenInitialValue(), Object.Behavior::PropertyScaleMaxTweenTarget(), Object.Behavior::PropertyScaleMaxTweenTime() / Object.Behavior::PropertyScaleMaxTweenDuration())" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyScaleMaxTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "Object.Behavior::PropertyScaleMaxTweenDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyScaleMinTweenTarget()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Wobble", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::UpdateScaleVolume" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::UpdateStretch" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyAngle" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "mod(Object.Behavior::TimeDelta() * 2 * Pi()\n / Object.Behavior::PropertyPeriodDuration(), 2 * Pi())" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the minimum scale volume of the object.", + "fullName": "Minimum scale volume", + "functionType": "ExpressionAndCondition", + "group": "Wobble scale configuration", + "name": "ScaleMin", + "sentence": "the minimum scale volume", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyScaleMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ScaleMin", + "name": "SetScaleMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum scale volume of the object.", + "fullName": "Maximum scale volume", + "functionType": "ExpressionAndCondition", + "group": "Wobble scale configuration", + "name": "ScaleMax", + "sentence": "the maximum scale volume", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyScaleMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ScaleMax", + "name": "SetScaleMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens the minimum scale volume from its current value to a new one. The scale volume can never be 0 or less.", + "fullName": "Tween minimum scale volume", + "functionType": "Action", + "name": "TweenScaleMin", + "sentence": "Tween the minimum scale volume of object _PARAM0_ to _PARAM2_ over _PARAM3_ seconds with _PARAM4_ easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::ScaleMin()" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenTarget" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TargetedValue\")" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMinTweenEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Easing\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + }, + { + "description": "Minimum scale volume", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens the maximum scale volume from its current value to a new one. The scale volume can never be 0 or less.", + "fullName": "Tween maximum scale volume", + "functionType": "Action", + "name": "TweenScaleMax", + "sentence": "Tween the maximum scale volume of object _PARAM0_ to _PARAM2_ over _PARAM3_ seconds with _PARAM4_ easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::ScaleMax()" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenTarget" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TargetedValue\")" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScaleMaxTweenEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Easing\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + }, + { + "description": "Maximum scale volume", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "fullName": "Time delta", + "functionType": "Expression", + "name": "TimeDelta", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "TimeDelta() * LayerTimeScale(Object.Layer())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Update scale volume", + "functionType": "Action", + "name": "UpdateScaleVolume", + "private": true, + "sentence": "Update scale volume of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::SetScaleVolume" + }, + "parameters": [ + "", + "=", + "exp(log(Object.Behavior::PropertyScaleMin()) + (log(Object.Behavior::PropertyScaleMax()) - log(Object.Behavior::PropertyScaleMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyScalePeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Update stretch", + "functionType": "Action", + "name": "UpdateStretch", + "private": true, + "sentence": "Update stretch of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::SetStretchZ" + }, + "parameters": [ + "", + "=", + "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0.75", + "type": "Number", + "unit": "Dimensionless", + "label": "Minimum scale volume", + "description": "", + "group": "Scale", + "extraInformation": [], + "hidden": false, + "name": "ScaleMin" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Maximum scale volume", + "description": "", + "group": "Scale", + "extraInformation": [], + "hidden": false, + "name": "ScaleMax" + }, + { + "value": "1", + "type": "Number", + "unit": "Second", + "label": "Cycle duration", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PeriodDuration" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Scale cycle offset", + "description": "", + "group": "Scale", + "extraInformation": [], + "hidden": false, + "name": "ScalePeriodOffset" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Minimum stretch", + "description": "", + "group": "Stretch", + "extraInformation": [], + "hidden": false, + "name": "StretchMin" + }, + { + "value": "1.25", + "type": "Number", + "unit": "Dimensionless", + "label": "Maximum stretch", + "description": "", + "group": "Stretch", + "extraInformation": [], + "hidden": false, + "name": "StretchMax" + }, + { + "value": "-0.25", + "type": "Number", + "unit": "Second", + "label": "Stretch cycle offset", + "description": "", + "group": "Stretch", + "extraInformation": [], + "hidden": false, + "name": "StretchPeriodOffset" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Angle" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMinTweenTarget" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMinTweenDuration" + }, + { + "value": "", + "type": "String", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMinTweenEasing" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMaxTweenTarget" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMaxTweenDuration" + }, + { + "value": "", + "type": "String", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMaxTweenEasing" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMinTweenTime" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMaxTweenTime" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMinTweenInitialValue" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ScaleMaxTweenInitialValue" } ], - "propertyDescriptors": [], "sharedPropertyDescriptors": [] } ], @@ -29908,121 +30984,158 @@ ] }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { - "value": "Tween3D::Tween3D::TweenStretchZ" + "value": "ModVarObjet" }, "parameters": [ "Object", - "Tween3D", - "\"Squatch\"", - "0.5", - "0.25", - "\"linear\"", - "" + "scale", + "=", + "Object.Wobble::ScaleMin()" ] }, { "type": { - "value": "Wait" + "value": "Tween3D::Wobble::SetScaleMin" }, "parameters": [ - "0.25" + "Object", + "Wobble", + "=", + "0.065 * Object.Variable(scale)", + "" ] }, { "type": { - "value": "Tween3D::Tween3D::TweenStretchZ" + "value": "Tween3D::Wobble::TweenScaleMin" }, "parameters": [ "Object", - "Tween3D", - "\"Unsquatch\"", - "1", - "3", - "\"elastic\"", + "Wobble", + "Object.Variable(scale)", + "0.5", + "\"easeInOutQuad\"", "" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { - "value": "Wait" + "value": "ModVarObjet" }, "parameters": [ - "0.75" + "Object", + "scale", + "=", + "Object.Wobble::ScaleMax()" ] }, { "type": { - "value": "Tween3D::Tween3D::StopTween" + "value": "Tween3D::Wobble::SetScaleMax" }, "parameters": [ "Object", - "Tween3D", - "\"Unsquatch\"", - "", + "Wobble", + "=", + "0.065 * Object.Variable(scale)", "" ] }, { "type": { - "value": "ResetObjectTimer" + "value": "Tween3D::Wobble::TweenScaleMax" }, "parameters": [ "Object", - "\"Wobble\"" + "Wobble", + "Object.Variable(scale)", + "0.5", + "\"easeInOutQuad\"", + "" ] } ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { - "value": "ResetObjectTimer" + "value": "Tween3D::Tween3D::TweenStretchZ" }, "parameters": [ "Object", - "\"Wobble\"" + "Tween3D", + "\"Squatch\"", + "0.5", + "0.25", + "\"linear\"", + "" ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "Tween3D::SetScaleVolume" + "value": "Wait" + }, + "parameters": [ + "0.25" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenStretchZ" }, "parameters": [ - "", - "=", - "0.065", "Object", + "Tween3D", + "\"Unsquatch\"", + "1", + "3", + "\"elastic\"", "" ] }, { "type": { - "value": "Tween3D::Tween3D::TweenScaleVolume" + "value": "Wait" + }, + "parameters": [ + "0.75" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::StopTween" }, "parameters": [ "Object", "Tween3D", - "\"Grow\"", - "1", - "0.5", - "\"easeOutQuad\"", + "\"Unsquatch\"", + "", "" ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"Wobble\"" + ] } ] }, @@ -30079,63 +31192,7 @@ "functionType": "Action", "name": "doStepPreEvents", "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareObjectTimer" - }, - "parameters": [ - "Object", - "\"Wobble\"", - ">=", - "0" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Tween3D::SetScaleVolume" - }, - "parameters": [ - "", - "=", - "exp(log(0.75) + (log(1) - log(0.75)) * sin(Object.ObjectTimerElapsedTime(\"Wobble\") * 2 * Pi()))", - "Object", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Tween3D::SetStretchZ" - }, - "parameters": [ - "", - "=", - "exp(log(1) + (log(1.25) - log(1)) * sin(Object.ObjectTimerElapsedTime(\"Wobble\") * 2 * Pi() - Pi() / 2))", - "Object", - "" - ] - } - ] - } - ] - } - ], + "events": [], "parameters": [ { "description": "Object", @@ -30177,6 +31234,18 @@ ], "hidden": false, "name": "Tween" + }, + { + "value": "", + "type": "Behavior", + "label": "3D wobble", + "description": "", + "group": "", + "extraInformation": [ + "Tween3D::Wobble" + ], + "hidden": false, + "name": "Wobble" } ], "sharedPropertyDescriptors": [] @@ -33847,7 +34916,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.6233203203318115, + "zoomFactor": 0.7357437357282408, "windowMask": false } }, From 3d49ab39fab2249eaabc1cbe936556f3a50824e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 26 Aug 2023 18:59:08 +0200 Subject: [PATCH 29/53] Add descriptions. --- examples/3d-bomberman/3d-bomberman.json | 427 +++++++++++++++++++++++- 1 file changed, 423 insertions(+), 4 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index f389d2201..7f20805ab 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -10835,9 +10835,11 @@ "version": "0.0.1", "description": "Change models proportions and orientation over time to make smooth animations.", "tags": [ + "3d", "tween", "smooth", - "interpolation" + "interpolation", + "wobble" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" @@ -13606,7 +13608,7 @@ "sharedPropertyDescriptors": [] }, { - "description": "", + "description": "Squash and stretch a 3D model in loop.", "fullName": "3D wobble", "name": "Wobble", "objectType": "Scene3D::Model3DObject", @@ -13896,7 +13898,7 @@ "description": "the minimum scale volume of the object.", "fullName": "Minimum scale volume", "functionType": "ExpressionAndCondition", - "group": "Wobble scale configuration", + "group": "3D wobble scale configuration", "name": "ScaleMin", "sentence": "the minimum scale volume", "events": [ @@ -13979,7 +13981,7 @@ "description": "the maximum scale volume of the object.", "fullName": "Maximum scale volume", "functionType": "ExpressionAndCondition", - "group": "Wobble scale configuration", + "group": "3D wobble scale configuration", "name": "ScaleMax", "sentence": "the maximum scale volume", "events": [ @@ -14062,6 +14064,7 @@ "description": "Tweens the minimum scale volume from its current value to a new one. The scale volume can never be 0 or less.", "fullName": "Tween minimum scale volume", "functionType": "Action", + "group": "3D wobble scale configuration", "name": "TweenScaleMin", "sentence": "Tween the minimum scale volume of object _PARAM0_ to _PARAM2_ over _PARAM3_ seconds with _PARAM4_ easing", "events": [ @@ -14163,6 +14166,7 @@ "description": "Tweens the maximum scale volume from its current value to a new one. The scale volume can never be 0 or less.", "fullName": "Tween maximum scale volume", "functionType": "Action", + "group": "3D wobble scale configuration", "name": "TweenScaleMax", "sentence": "Tween the maximum scale volume of object _PARAM0_ to _PARAM2_ over _PARAM3_ seconds with _PARAM4_ easing", "events": [ @@ -14384,6 +14388,421 @@ } ], "objectGroups": [] + }, + { + "description": "the cycle duration of the object.", + "fullName": "Cycle duration", + "functionType": "ExpressionAndCondition", + "group": "3D wobble configuration", + "name": "PeriodDuration", + "sentence": "the cycle duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPeriodDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PeriodDuration", + "name": "SetPeriodDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyPeriodDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the scale cycle offset of the object.", + "fullName": "Scale cycle offset", + "functionType": "ExpressionAndCondition", + "group": "3D wobble scale configuration", + "name": "ScalePeriodOffset", + "sentence": "the scale cycle offset", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyScalePeriodOffset()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ScalePeriodOffset", + "name": "SetScalePeriodOffset", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyScalePeriodOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the minimum stretch of the object.", + "fullName": "Minimum stretch", + "functionType": "ExpressionAndCondition", + "group": "3D wobble stretch configuration", + "name": "StretchMin", + "sentence": "the minimum stretch", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyStretchMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StretchMin", + "name": "SetStretchMin", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyStretchMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum stretch of the object.", + "fullName": "Maximum stretch", + "functionType": "ExpressionAndCondition", + "group": "3D wobble stretch configuration", + "name": "StretchMax", + "sentence": "the maximum stretch", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyStretchMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StretchMax", + "name": "SetStretchMax", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyStretchMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the stretch cycle offset of the object.", + "fullName": "Stretch cycle offset", + "functionType": "ExpressionAndCondition", + "group": "3D wobble stretch configuration", + "name": "StretchPeriodOffset", + "sentence": "the stretch cycle offset", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyStretchPeriodOffset()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StretchPeriodOffset", + "name": "SetStretchPeriodOffset", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Wobble::SetPropertyStretchPeriodOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Wobble", + "type": "behavior" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [ From 4ba5eafc3efe13878b7998eb7641169d243a9c03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 26 Aug 2023 17:04:18 +0000 Subject: [PATCH 30/53] Optimised images with calibre/image-actions --- .../3d-bomberman/assets/BlueBunnyIcon.png | Bin 3224 -> 2630 bytes examples/3d-bomberman/assets/Bomb.png | Bin 200 -> 178 bytes .../assets/ExplosionCentre-Anim5.png | Bin 1465 -> 1009 bytes .../assets/JoueurSelectionMask.png | Bin 202 -> 179 bytes examples/3d-bomberman/assets/NewSprite.png | Bin 205 -> 165 bytes examples/3d-bomberman/assets/Orange.png | Bin 205 -> 165 bytes .../3d-bomberman/assets/OrangeBunnyIcon.png | Bin 3098 -> 2511 bytes examples/3d-bomberman/assets/Pink.png | Bin 205 -> 165 bytes .../3d-bomberman/assets/PinkBunnyIcon.png | Bin 3101 -> 2568 bytes examples/3d-bomberman/assets/Purple.png | Bin 202 -> 164 bytes .../3d-bomberman/assets/PurpleBunnyIcon.png | Bin 3196 -> 2592 bytes examples/3d-bomberman/assets/Soil2.png | Bin 20328 -> 17035 bytes examples/3d-bomberman/assets/SoilBorder.png | Bin 8083 -> 7470 bytes examples/3d-bomberman/assets/SoilCorner.png | Bin 3207 -> 3166 bytes 14 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/3d-bomberman/assets/BlueBunnyIcon.png b/examples/3d-bomberman/assets/BlueBunnyIcon.png index 5556770b3005e1cc6f559f1e18e8eadfd10aabce..b39d45d369f4d38afd79425896c704fd4430b8c5 100644 GIT binary patch delta 2622 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 Hu0mjfE;==T diff --git a/examples/3d-bomberman/assets/Bomb.png b/examples/3d-bomberman/assets/Bomb.png index ed8ed1c152b23c71eeee9180da78c577af89d655..255fbe0eea61972b79ed8d9ac27eb7f48e67d51b 100644 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR0pkRup zi(^Q|t+y8(1sNDPm=~Bv{+}}I@MLyYkJ~?Wm{>Rj6dW2D7%5>KsO2^?IcQVA#c2Z2 OJ_b)$KbLh*2~7Ykt0m6> delta 172 zcmdnQc!F_)NGZx^prw85kIvJY5_^D&pQ=XB1>G;9xckXsVw&d%}5@FK)$m zcUKG7X*1X#;C#_gz}_dcgn?DVfsw04_<#bNVTU76o1j6P0gz4-XqMnnZ-6qC6L>)a zM}TT1{1~7Nw*yij0gz$?)j14MR!@Uz$3d%R`CO%N$IXW`zXF}Z;OXk;vd$@?2>`67 BHJShb diff --git a/examples/3d-bomberman/assets/ExplosionCentre-Anim5.png b/examples/3d-bomberman/assets/ExplosionCentre-Anim5.png index 5c71b660a0e0e2922aa77127850103cdd99d54f0..ac4e7a9d642ed16067522a98658d7d15441c0355 100644 GIT binary patch delta 987 zcmV<110?*p3-Je#B!3BTNLh0L01FZT01FZU(%pXi000A{Nkl0f|bVwxOO zPq<8^uv(^7h=D-;8@I@C+)4eG5WWu~s&fzYXWoJq6H6U~sbBWu>vA|lu2HW9>t&BV zlig)R;U%C3u)bi8ZE(nlKKJ}t_2@H$Rn+WCrm4Om(*ekZZ}7g3ndPJY?ygFho2Dj+ zp$o24;eU|AY6UgKTp09O_q0M;#gm}jJH*%tE8NQQ?b+xE%Bt#*XEmZKJZlisvZ zKY!0{<}l64t>`eVi8`ppo*tJrK+SYq${mQSik-S4+v5!%h&z@C;uY#ZJW;|y^%1H@ zVwY;K!64og z&dX7&Y5Nw{w8g09!(j@V@#7$QKnjx+LJOb$zfVQFdOne2v04U0lWYd`Oh$aCLKejKHO?zk3+Dzl$X6MdUcyK)Y zUNEyWv%TH_7=Eiqzg(9m;X$&pPWLb2&b#pY)6CwN-`f-cAAbphFNI%#Tn*R93KO$I z>Nf=U%LqVj{4X<8KW)q#Gy8K0cxDG23OhRlD~qCH?-B+3vVM*jDXV(@pe`(|2F1nN z1tK@?o!hOo8)i*GU^dO{R5A;I1wMY1V`s$SeCT*O{C+jFkKuaTS!D`JT>vU}*1d0L z_Q{z8T-zHv4}Y3%D^ob=F1u)El4s3{T&J7Byw{w*+`pXJASgq7Wo9Yp-vL;9pN)E( zfJ1h#Cgy7gwC!MP3n!J`I+HN@??CIe#bL8js==drKV8Lg9PC@sKP5 z98jsuvIsT;S)>Uh*SdGoS?qN)JK6_r*!1U)9DX;m*U20|qI;g)f&)z8hR(B!T4nV&v*N~s(I=tY9dK=;91E!HIT;xB z8;x18>$`hTfC2jtZCZ;wF6NOfhWeh9f=okY=_0)wT_dqN2896}HwGXlD4J4$z!7`=G)5Dk^VNB&W!2%BG&vk*=TrGZ?ynYkyRc3wojHf@SQY)Q#VtGgE+unjWPq z>+cU3ia|}q!#T5svYJ;>^6fs4tt)O&7IJejVE zNbPw|W@WxmT0~xP$mq=Nvou;4&6X-8Z*gpbG;*K*HGtl8KudGi`~|s|*lUN)yMQr2 zM1MCmIRq#GaXM;!hk#7SXz>6cf~o;WOA~!1W~yl)P1>pXkuoYJ=>Vxv5ul5ho<%kR zFu0YKP;mMR6q=OVFYNH>06$LCw4S5~4nTP=gMIr_Uu=$_9fyO3@l9I-EG0xPYMp?3 zfB=ttd+~JC-v_+Wnr&q~slL0vs(!@IG=ID_#}n%UMlq4O@PdU^ff({$CF&Dxeh7H# zaCm|KkX>H&7|d3Z4e3(&rgh`nRWE$#`;p6pIl2KC=vjJT+5X0@V*Ee4}9<-;0FpY@i2kBysLwl08pafx0i?~Xn!CX zSIcH7`?0Lhao!XU{W)>$qWw2Nx7vbh7yHk9kmb%DI1AW+Vi6pffvwRqJEy5j+&cUI!xds2nS2BR0pkS(} zi(^Q|t+y8(1sNDv7!01aOma>rvZ!8jKxy~0%>oJz4GfG-EF2Uu-bH)tX3{A&T;>k6 OkipZ{&t;ucLK6U;l_qNd delta 174 zcmdnYc#3g?NGZx^prw85kH^JY5_^D&pQ=XB1>m;9)jY;|qM@V8HQHVd3#v zuisSPtpOgj!*HOtSmnc}#2Pt8)GgBUzr{an^L HB{Ts55>YmM diff --git a/examples/3d-bomberman/assets/NewSprite.png b/examples/3d-bomberman/assets/NewSprite.png index 940a8ad3f76619ef82c8bb7e3fb96a580df107b6..8406785e1ec52da75854926e3470d06924e1155d 100644 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9GGLLkg|>2BR0pkTPC zi(^Q}y|?EL85tN@7z}EcTn^Hf(nvVYq_e5Yjx&)g@bEN~sMI8dms_4^1Fc~2boFyt I=akR{0O>GZx^prw85kJaJzX3_GMwLDVH7-|Ai!c6$N%cprgdEmGC9r6 zdB*m?EBAk0Y;GsBerEN#<6N<$mR* z+*^{vxFp#zHgn0uKHY{AofX=>CYLs{PUvGTT{_WC%W50LrHu>LnOyQXF6Lk*c4eyD cF27$4AAFVdQ&MBb@0B@;AssI20 diff --git a/examples/3d-bomberman/assets/Orange.png b/examples/3d-bomberman/assets/Orange.png index 121fe788a98b962af833a11d4c7d8219d3711aaf..56da6c303d48ab542322f4af38986fb7832ec9b7 100644 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9GGLLkg|>2BR0pkTPC zi(^Q}y|?EL85tN@7z_lzUI;Xm(nvVYq_eBYjx&)g@bENKQ|-?Br2JwHpcM?Bu6{1- HoD!M<GZx^prw85kJaJzX3_GMwLDVH7-|Ai!dHPtoqx#%o;+GC9r6 zdB*ndH}C(t*xXKL{n`SX4?z(RZ!mcrZ;HDg2xVDCc__<9GrWul2$#xSlFY3j%l*nr zxwj;TaY?dcZ03@QeYy=LIxDn$O)hO@ozTZxx^$wOmen?fOB)xgGr8n(T+G2r?8;QP cU4Fk9>gP|1O_j;W1GwSU8%`Q}~D{hjaoo!>p@ z+_T~1Gjt7IL)Xyt9WDv=9|rgVV}Oys@B!2st~ACd&0&LC@Nqy0kPo~KoB>LJjld#c zLO*If3@lLGB}(gUrA;5kdAsl77j;2`82{?wIBkh^U%3}*jG>7CjxiWGk+`aC9u@ddFD}hJ<*^q5#HWMfU&ea-OE6VA?#Uav0ek{%1>)4- z_RrgFZJ52e>Lkl`zA$>A4^szY9KbC9Uwt-BJWd4GzATW_qCwtsDLV#w+2Gg`+L*nZ{?dvDq^( zIml%f2x>fG)TwbI9Bs5LpCh+-uaKLkv!(X@^HO^uzXx^ao|pO)>*Us(tE4k`p$6VF zjnC|DYtQFv9ONP=xYRr7%fz{{6ivGJh4b z*&j~}mh$a=?*o{35;&%S>moRrP7P>rUXf{(!gE%*34<9+^ZsPb$q$QD<>|n=;_p9G zF7Hd~^H+d*1HeHpax#q?7$tJ1xOvcKfjR;B6-H~8=HGU|rK%&Dk`x&r88HF!xALq$ z2Y`9WK`wG?0XUGtk)cJcDHu;VhF%~RPz4QTxlnvWVO0Ng9cvPRBqZ7E#UYX;aa0DmVxfz+Uu z*Y*JJAqbD+%^Wu;hngDSO7GtwfQy{uriP*3zC#e6@wHNSHqWzK0UO#f5A%|PTzK=l95+vl90V?o zEX3~-wAriXSPBs-ve+mVf!da%E3}ymsbY z4ckti)nNOZ&&;rKSO#xUTuTFBP8Wt#3+qTKCQGex~1%S_JV+{{Rw=?|$T>IQe4n(eVsa{SO?-S%(a5736T9&C~}Xxi{$Pzv8% zl03|m5|)Iyd6VvDr$hU1OihyFqZMvzKyi76W~R0<- zeq?>c+D}?{CRj~r;asQ`r-48KzDZA(qVf}N13(+vIt>6dphZn+3w?k;QS`}Mg&zyN z3{>}Qb{=0NZQJ9;vShZ?Aha)wl+yk{Ga;aOJse$)Q)2;Sl z0U8(Dy1S{gS@|}6pqoKD(CK#Z^3`SCGdnk52PdOGy8!rWTpld8(x-H9bb?EO7MF{c zr?ahHYv+rL&m*_E|D_H>SF3xIvyP8kr*%xI0xL(c?&!7jb4v8=j!lemHin%b=I)T z#h|AHoEylkQ~T~HUnYBdF!Z?k?34o^0~J7K&HKL?Z%PkeY>5rNtqqRuuJGJF6}E83 zXV&PTi8e0YGtJRX%L@*0wITp9H5b>9r-st{Sbu4!(U(CP4nuetFdCSkezhLB;nvHSKE$w?N9?3H;MMmF>-r%;zx~#GkQ*V;QnExeaL4$cF4oL0z znuGU`Q_e2bf>9VM2i2a>&qMEhpzdtm2RGiy{S>$a97J05^~x7|&iL@2X?&(^K4l)H z9X})oxyX6ntqZCe;tR0qP6QqVM(MpZWjjjQOjLP%4f%$LuAyt_`oFpU2X_hK0>6^c Q*Z=?k07*qoM6N<$f`L}bEC2ui delta 3094 zcmV+x4C(XF6Pg&1BYz9wNkl#i~-yQ{4J0KtcI^WU=DZ) z_`JyFUub-G{D1v_XZ3ym3-wpPYdi1-Ut=9Ph~TIsd!&xwmPapj8r%nb9k_7~%g2Ccfro*kzlS`J?UVVO~UfJ_h_d@MV3bEO7N2JoLPl z;n-!V1XVWE1^m4}tyYm*>7pf~PgAwvI|Jl^TYr{$M=M&;p7akQm!H3!rSLZ3U$wio z@~E!wuP+19}WV)Ia|RxJBM{*8c}u^ee3s{ z*T#4qUUn63M{%FuABmT5+)8Cf9M3jEyu?QM3ZqiTF3e${m;|8uswCBP3@>7#q$AkQS+9q0ZP;30Fue+vC)(Nm&TqzJ?dEOKSj?&6vPJ)g9Ve*?*P7 zw{2dSvH9wQPw|K2=TYjFgEmSj{&4&}Uw!Z?UYN1*Y@5oi6skM46?nTYt2c}XBv9Py z^*d%g9-*ef938Xx`KZU(^a6expp~y+e0qVOk9r&(v#6;s^>_rY-!W0#qA`aJV}LEd zPB-P?+a}{vvpkZ2hUvP2uUh53HGfn)N-*mhJd%HgiOE@f+r&*dAlRvSZWsgX!Vn2B z9zjXT^lXVIPflP-foVuY8_7lhrXew<;K`E{OwW~2QsTuUAVor>QX9qqNep3mP6z}j zU*Rio3`HzzHDsY1>sW{b*sUSFt>(81~WrR-pLR_5kjlpn9d0$~pmBICAfzgeW1x}!N#ymfdTyR-0l2sS; z{5&W|HO9DM3~(O7_slcJl6`I#lb$N^Z+ge9&k1APwvj1gXQZ7LJI>i{Lsb4Sy^)lzc`2U z*x8zSa`tBg4cDhPBp{-VunVQ`R6X_wYP%By)xiX{WHbOfj5S0?r4U{KnuI1x*w0N7 zIzDw)%+|h#;C_+IKY!avdDjKN)ZoYg1h*^4yxC7VTiui+y<`Np*TJ_9e9J&dsiV7( ztb2&6hc#2in5)!6PD7khMCpQiUM9Payb5;F}_spI$E+#X2hAL(nU@8-Lil7;p>wG92Hzhj6V% zs2-q2HOpcl6k_+uQPM~A4TvB|fiD3+YIg$Ul3{{Pg5jru_cgw?`Jpf;26ywT?K=bO z>rA0^To6jpKl(?E+QQ=DTnqdQ@H&;vd`0B)&unM|=oa_Q1nsgn(%9Hkib`S=rxPiB zt(|HJhzdBBNPqF##3rKWo^N!{B=9j{kIH851%A`16xdNvRFAy8i=bbZrAb$JwlB?C z#AyWpGahl6=}R{QkSx9DSAch|WxVE6gQ5<>%+MDJ`u!K^sHDL}s-Lpi+Ud%s$z-Y@ zWf-mE)qc(6j>g%e%MFOcfKLMV0xf5L{7{&Q-ZY)yeojINQ6o(&Zh&J z^4wI9J%2iZd8P<8zhz~iq{LqXK;R>mD#Vs<5|X%Ex~c9-^;QNGpK!bE>B7kH!|9%geCu}nUc33h34t>`L3+Np>J>=O7jb4Ln%8Iw z{N51dTemTD+ivFfZpQ7hZz7m9yIae)eg-Iv41Y_4sm)>Z{GO5mw>!-IwVNp&7{p6E zO^smBjY&v#?+*?$rhGAl*8D@D4`DqaTpwulUV*bF*CE0YJD zOAj6L*E5#f31R!58q zmQh{$zdKZ=?o~v^yYP5SiQgS^fqxT9iU)+RPU<(qG{NNg!@&QhhYq!c6}F8Bq=ybY zTNoKW3H*Ry*0&6lue$Av{=^UdYQiYhUX+#kpgFf-$zpY>Z>T~BZqiw(C!>lV|2inE z-~Afjnk-e!$ugp*N9Rn5-)-Z@!gW7lo%N!jv8&$lZ&QVl;r|A{-N3Vy9)CL2HU@uD zfQV*1um6^)7I%(_p73Ab^LnAwK76%9C>7P~PANnF)C*fnE?*hwov9_GUlyK!l3+}} zO9@dziWig+Parw0q&%{iiJI};kf3N`WLW5I5!IkZP2bt-@>A1mZGxfd5W#N>NTp#T5?07*qoM6N<$f+>CHApigX diff --git a/examples/3d-bomberman/assets/Pink.png b/examples/3d-bomberman/assets/Pink.png index 9c292ed6c9796a43fd385b91cc1ded469cc7e59d..1fb004f86968ff87ac34f2468aaad9b8ca881574 100644 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9GGLLkg|>2BR0pkTPC zi(^Q}y|?EL85tN@7!0`#C~UepM&EnpcM?Bu6{1- HoD!MGZx^prw85kJaJzX3_GMwLDVH7-|Ai!c6Cw5J1!?rF4nVe?k zJY)O!b^E?9Hn)>mzqY{ULr}!S8%!R@o8s;VLRnT(9?G)O3@;-B!lg2oBy%gsa=-FY z?k&k-T$1b;}C-kwFE}iJ6Wwnjr(#8erOfGpG7jv)@yE4^n cm)|dj^5s)vZ*LYA2D*vC)78&qol`;+003)6=Kufz diff --git a/examples/3d-bomberman/assets/PinkBunnyIcon.png b/examples/3d-bomberman/assets/PinkBunnyIcon.png index cb44e461340453e551659d2a8722c1c3cfbb2d3b..ea1396967f9fb62b6f86f34b0e5535403018a928 100644 GIT binary patch delta 2559 zcmV|w;7>E>*BYyx1a7bBm000XT000XT0n*)m`~Uz6x=BPqRCwC$T6<7b*BM8R zk5V6_nP}Q{%pYlzMjijibhHy&(y4zqeVEiV)p5u|RAW%b3NO#+W>YvL;Izv!u*P<7xOD#xEGrjDw6KMkXVU z@f*hcQIz!v<5!Y9Q_4ChWkZKK-Zp*;;|~lIqn|-`7+~CFWHTOjY+D^cQ}0pMnJ z$!#yIU+Mr|9)I$t1D;}Bc2LFBkMF@T8Y5={$Wh)rdJ&@xoIqtZT^-so= z-Z5SyzWFc@lmglrs~ZAr->Uq6Qy5K*B&8nW;DFVV!<`)HvJtv@tNSM~EFLHZ6b^o) z(s}R7t_-D*GM?k|DNbTcp@%XoQl}~2`UF-nIz3db-haM(^1VN!S3a{cY8k(CbOPGQ zww}mYO@OxF^P)PK7BG8y)l3h2_$QOk$_p{7k;)Bpqh zrQv*!GCV__!TM->EwMvz**Og|o>J@7*q;@>+4x#7=~Anxqv%62m2M)_@hC<#BZmLS zQb*w)(r28dYY9dH+@s7?5^Jj?>PCsS-~dC!l?Pkn@$XK z53~gbxQs{NCvZasWU0+~WN*p*hRlXfi^+6i6J5-SqtKWA=<3d)FkLA=3xbpYCA za$9hK3!LDF43<|pnk!DD;ecluhUWL0$#iTp)#SWI>({TNSuPr=P|nn!xkcUd0H?nUA~g$Eq*kwpn2UCo>kq{^LT)Ga1437iX5<+ zyQM|{@kv_%I~GZ&Q#DkP7BHd_z&;Ry16<$~p8(5fc-3MNGS%P!83RJt0eAJBtqrEK z#!?$bYW#34u;+;(efn9%04%wOs3{2gVIiaCFZGvEivf@0izaK=|5+Rns^3F3JQ;!2QVy_^AgHw+_lZV36cSqj=rSA~9wZUfO z01--i3FF-h9^+o{S!3ka=C*@{4%6WKd-LFGJ6J&Ah747`eFrBzjoqB4n45k2eW!S; zyG;hgsF4}YZ85Xd?<*&8%72}rANi>H!UhMwr5)PPzV_xMy%@GS3ew0}oFuyOuyIPT zb#>H58?9~2KW+(Wv!oTL?OjBXVeqOT!2tAvc~ zi&Xo@9i_d1e#z;lx_|NC?yXN}ye#+o6?cd(CfuOy1t*<40M9NY-f*=eR4ZjnS6|e( z?ds~BZfS9FE8U@^_qfYDa{!*9j$I&Bf=ROKu&2I;iWxCTW+D&3`(Ki}8m2CnhyUbqDg? zyjyXz(*ZTnJ+v$Dj9UkwPEGVJ_YQzemJJU(@l()g6T?Rjs@JW#v2_ z%D7bca?CB-nOEV~0jPtzE{$hdkjb*CqcF9Kb$J0gdCU0OjCe-7ZQm}I+VeB0^`kn{ zZoEs*dc&2let*i!s&Q%j7DiUqWv<)j^sPe%WI?8FGgZtXSeNJo=r-2IPi6!$x*TV2 z#^Noc�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 diff --git a/examples/3d-bomberman/assets/Purple.png b/examples/3d-bomberman/assets/Purple.png index db5d72ef45c6ce9abcb1c57987bd38e3f4c638ea..72c3697f2482c06e67f54edc309229b48cc2abf3 100644 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9GGLLkg|>2BR0pkSD% zi(^Q}y|?EN0y!Kk8*(0Z{4w%aV9T~)mYGZx^prw85kH^JY5_^GMwLDVH9N$5Mgn=bV|{Z(IjGVsFqW+Dl8Jq~4JA4&w0li1ZDgI$$6C5{qMOw= zhD#e4tTVafaa_#7O6sC5m^_X*?YiWlEE~FVdQ&MBb@0ABG!yZ`_I diff --git a/examples/3d-bomberman/assets/PurpleBunnyIcon.png b/examples/3d-bomberman/assets/PurpleBunnyIcon.png index 0569e952fa06de377e08ea67a57ccd18ddbd702b..2c01bb900f39d267398afc59954f8fb1b9e49dab 100644 GIT binary patch delta 2584 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 literal 8083 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 diff --git a/examples/3d-bomberman/assets/SoilCorner.png b/examples/3d-bomberman/assets/SoilCorner.png index cdbc938da772fc6b3b65b757bdd790a20a7ab5f6..58fc2d149d62f4ac0442a2364323289b73ac7899 100644 GIT binary patch delta 3162 zcmV-g45jmj8QvI>BYyx1a7bBm000XT000XT0n*)m`~Uz95J^NqRCwC$n|oIjR~E(V zbItgEL{VU^(Ktya&N#`$7b2(u6~U%4j-!cDV=zV&73Hb4-Ozl%p8DN;cJ-}GHPX6KY`9k|#e2O0z+SVa z_t~$Ox^qPEZzLbW`|ZbRZ_abEH+8K=UiBb*GUbRUJ%3w^z`s`lR@SJ+A=p^P%Ypne z??xbttXj(73+&tL-OfZrHCVrQ0#@EpqT(b~&&fEFe>n!62Leb)SR6f^+g}{>vR@qS zc5A*TQn2KGb#kj@KG7m;kB3=1l71jpdAI@yyl88IlcYV!=6Bwtgs`X2xR)|Iu7JXh ztsvf)qJP8{dRyKU09~u4o}A}ir$8V8A^;`tvwm#`U>V;D6(E%)?*n+8_`=w(2cSg+ zd-|h7;5iZuH~`*6;3@`A1n`WLyxmvy>}X#8>?a*SR}x>6gayEohOc zR!iy?lk^+Q<_qSnih*Ak2^28u!En!KB4RcLKV!z{T<44cDMX(q@3Y=7M}2qLkW_=1 zuYX0J59PWL00cZ9#+$6!1H}ADlYm(ZgPAK`8A$)kA*T#X1n|A2qp~kJq`1z^2#Awf z+?KvI&kKCTq^sB#VAd~(yBc%p{fnW4jc1n*Hh#TypfR0-n~MnGJI}v9==KyE7%JgD z=~V15N5GpcZ9ef;gCtkA=A~-VS9X`joqyK@CGdw&n-?Kq#y|iN6F{yI;>fYjuwO17 z$iB;GuZA~4K-}15HGO<_FE0-(S|)?j>JGz_15BHRL`2%)HMY z1ON`OFAO;MB7hLmb6k^-9Civ?+c55_%W7TKl~t^!3%Kg?o3NR==9PfQFbI%z@qet7 zeF}&W0OZpP2O3imIqb`x+jm3?&m^0f=N0$(%`Q)IUW-~&EG%_Z1CKScbXOL)y2{Id zhL9&I;3pS8YWzI-Q3ecq768TTd=B8pgZ|k^=l8q&mm3X%xZ4YlpP~H24o;n3CGfU7 zG`!4nb0&9reo9`y+EjtO{n9)QpnsnRJTOdN1|*8$3JKbuOz#~5={@UYGx84sho*Sf zkye0RKR%l8=;p1oEnI7sGVZ5?WCanDwh|d&f9&7yy!xPTU*q1{y_vV4UNi#IE9Crg zu}K8?56|s);P0Q^*B$|_Tiu}LZE;4I3e=nDO5BLA-zr_o^ivk6cpWnEAb)@#4R{#? z_OY$+rC=TncwiXh{BUlcfBw8Dif7rwAc6a2v-Llo!PQFnGkZ1gKGy}S?~*zh9Tm8` zezn=OklDTD4>;h&Iz&7%Spx!~57R4PLz5~nfO4Ho_whc)_wJn9^px(!W z%24)|;1srK_u+v?vH8NXwtr$>powGEb=JswvcE~dPv%w08UmbmQxbkifq!>;Z{yn( zEC%TB&+Kjd`(L}=`fmDJ(vjZ3#hG5VIF?_lWt}(a1D@-YH7CmOkOK*TCw|!@Zm~%x z`@Ig(-PG=!+~dd);QxHJ#{vEJ)LyseVm~E^J-#!3VprqVSGzYrKz}r=4+oXCDE`Cx zuFS5upEbEZv&80G+5=fh+|dX*y+Ht2U*ERy1r)j*OLo@=KQWZ>+jX(O8V;6 zr-S;ggA8%2QlJ)1gyLZd^wupS`}bgqv1x_=*(FEt_tw0#Xb@b z%h;rqI{@4bz)R);$ICaq*zIB*@0Lv3kT7awj2hUI5r6{PC!qXp?~90VSQ!o_7e;if z^_gBRD%o8v?SG?zCJ`!g$enC1@OLbp$>IQ1f|Hj87?9Y=@f~jO^51s2HP?%uY;&I_ zof>(IfU5QXi(~mFNI78I&g@8Cjg1-l&0F44LLIBY6u;dRAD^ zp7r2gw|_bBvzK(@9Dvn=Nlz_!lcN_B8eG1%F*YYYo$xfAcx0_C-XL%ZZuivczbx$L$n=0$sbh`j0S&0jDZne1*ncqOJ&+n;F9hCZpXUbyGB!M89We*}qVqtkh?w2jj z0e{RIuu=hg1IL;KV9Eh}jwKy={T==4LZffJwGH3bp#nO=tpC5{hnY`}0FoZkcfe2i z@<-Ey#(_giEu9$}afpwM=aPFul;GC_s zhb0?12o?PjYdQM$MmX|zZ(@QYu<`+>c^$FO3Gbn`zNH}HsfXtt@ScPnSrWtu19?3p zpw9pc^w}d#Vpu1gcp;Km)(v*&ezp=SV8#ZXFM_!}vpk*jIQQ#(f5#L6XmxzUmVfc_ zyvkpg=t9qn0D$)$@qqgRJM))6wb=-ji)H~<1;*nl(34GqbRN(^1OkY8z0pzWQ}(A7 zzHNz5r#`@sS`q{_@lVoId2{jZVm$Evkvw><1->l;TAc{vv3U3jEE|K3`f$MeAqjZ@ zi6ubRn((L!OxSd%WJg#)51U;v@PBG@+Vp!kQ#Iu5G^mKqjqAfhVp#(ux^+@?QL!jE?NQTxmFhRyFNd#>02%mW{a z2pF)&CMQr=ihuQ0E#*U@61))6nLw|)9RY)W@~bH?UMB=@e(5JY zT-64vEDjq97lMvX1mr>>ic|Rw5wHq$f%ls~Mh>kzdmCH{e)OO>xXS+2fBy!@8*%@g zO@3}#6I8aLCOJS8olpgXK?p!ZEPW-wSOr}F3md(AAeHuaM*si-07*qoM6N<$g05XB AxBvhE delta 3203 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 From c106252e1c256fa2248ce211e6a7fd85dbc830a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 26 Aug 2023 21:30:44 +0200 Subject: [PATCH 31/53] Add a property for the wobble orientation --- examples/3d-bomberman/3d-bomberman.json | 62 +++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 7f20805ab..0658d2849 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1924,7 +1924,8 @@ "StretchMin": 1, "StretchMax": 1.25, "StretchPeriodDuration": 1, - "StretchPeriodOffset": -0.25 + "StretchPeriodOffset": -0.25, + "Top": "Z+" } ], "content": { @@ -10832,7 +10833,7 @@ "name": "Tween3D", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", "shortDescription": "Smoothly animate scale and rotation of 3d models.", - "version": "0.0.1", + "version": "0.0.2", "description": "Change models proportions and orientation over time to make smooth animations.", "tags": [ "3d", @@ -14356,7 +14357,19 @@ "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyTop" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Z+\"" + ] + } + ], "actions": [ { "type": { @@ -14371,6 +14384,36 @@ ] } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Wobble::PropertyTop" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Y-\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::SetStretchY" + }, + "parameters": [ + "", + "=", + "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object", + "" + ] + } + ] } ], "parameters": [ @@ -14999,6 +15042,19 @@ "extraInformation": [], "hidden": true, "name": "ScaleMaxTweenInitialValue" + }, + { + "value": "Z+", + "type": "Choice", + "label": "Top orientation", + "description": "", + "group": "", + "extraInformation": [ + "Z+", + "Y-" + ], + "hidden": false, + "name": "Top" } ], "sharedPropertyDescriptors": [] From 5347cdb03bd881d081015dc64cc1abc30ecd2a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 27 Aug 2023 23:09:18 +0200 Subject: [PATCH 32/53] Rename Bomb extension. --- examples/3d-bomberman/3d-bomberman.json | 106 ++++++++++++++++++++---- 1 file changed, 91 insertions(+), 15 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 0658d2849..95973e967 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1893,7 +1893,7 @@ "behaviors": [ { "name": "BombAnimator", - "type": "BombExplosion::BombAnimator", + "type": "Bomb::BombAnimator", "Tween3D": "Tween3D", "Tween": "Tween", "Wobble": "Wobble" @@ -1955,7 +1955,7 @@ "behaviors": [ { "name": "Explosion", - "type": "BombExplosion::Explosion" + "type": "Bomb::Explosion" } ], "animations": [ @@ -3416,7 +3416,7 @@ "actions": [ { "type": { - "value": "BombExplosion::Explode" + "value": "Bomb::Explode" }, "parameters": [ "", @@ -3470,7 +3470,7 @@ "actions": [ { "type": { - "value": "BombExplosion::Explode" + "value": "Bomb::Explode" }, "parameters": [ "", @@ -4222,7 +4222,7 @@ }, { "name": "BombAnimator", - "type": "BombExplosion::BombAnimator" + "type": "Bomb::BombAnimator" }, { "name": "Effect", @@ -4230,7 +4230,7 @@ }, { "name": "Explosion", - "type": "BombExplosion::Explosion" + "type": "Bomb::Explosion" }, { "name": "Flash", @@ -30994,7 +30994,7 @@ "fullName": "", "helpPath": "", "iconUrl": "", - "name": "BombExplosion", + "name": "Bomb", "previewIconUrl": "", "shortDescription": "", "version": "", @@ -31099,7 +31099,7 @@ "actions": [ { "type": { - "value": "BombExplosion::CreateExplosionArm" + "value": "Bomb::CreateExplosionArm" }, "parameters": [ "", @@ -31115,7 +31115,7 @@ }, { "type": { - "value": "BombExplosion::CreateExplosionArm" + "value": "Bomb::CreateExplosionArm" }, "parameters": [ "", @@ -31131,7 +31131,7 @@ }, { "type": { - "value": "BombExplosion::CreateExplosionArm" + "value": "Bomb::CreateExplosionArm" }, "parameters": [ "", @@ -31147,7 +31147,7 @@ }, { "type": { - "value": "BombExplosion::CreateExplosionArm" + "value": "Bomb::CreateExplosionArm" }, "parameters": [ "", @@ -31656,7 +31656,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::BombAnimator", + "supplementaryInformation": "Bomb::BombAnimator", "type": "behavior" } ], @@ -31678,7 +31678,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::BombAnimator", + "supplementaryInformation": "Bomb::BombAnimator", "type": "behavior" } ], @@ -31762,7 +31762,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::Explosion", + "supplementaryInformation": "Bomb::Explosion", "type": "behavior" } ], @@ -31811,7 +31811,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "BombExplosion::Explosion", + "supplementaryInformation": "Bomb::Explosion", "type": "behavior" } ], @@ -33408,6 +33408,82 @@ } ], "eventsBasedObjects": [] + }, + { + "author": "", + "category": "", + "extensionNamespace": "", + "fullName": "", + "helpPath": "", + "iconUrl": "", + "name": "Bonus", + "previewIconUrl": "", + "shortDescription": "", + "version": "", + "description": "", + "tags": [], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "", + "fullName": "", + "name": "BonusAnimator", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Bonus::BonusAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "3D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween3D::Tween3D" + ], + "hidden": false, + "name": "Tween3D" + }, + { + "value": "", + "type": "Behavior", + "label": "2D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] } ], "externalLayouts": [ From 60c93edc168980c365b4eb082ecd142951473d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 2 Sep 2023 23:47:32 +0200 Subject: [PATCH 33/53] A draft of bonus animation. --- examples/3d-bomberman/3d-bomberman.json | 160 +++++++++++++++++++++--- 1 file changed, 145 insertions(+), 15 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 95973e967..30ecc1b7a 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2019,12 +2019,18 @@ "effects": [], "behaviors": [ { - "name": "Billboard", - "type": "Billboard::Billboard", - "ShouldRotateX": true, - "ShouldRotateY": true, - "ShouldRotateZ": true, - "OffsetPositionMode": "No change" + "name": "BonusAnimator", + "type": "Bonus::BonusAnimator", + "Tween3D": "Tween3D", + "Tween": "Tween" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + }, + { + "name": "Tween3D", + "type": "Tween3D::Tween3D" } ], "content": { @@ -4216,14 +4222,14 @@ "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, - { - "name": "Billboard", - "type": "Billboard::Billboard" - }, { "name": "BombAnimator", "type": "Bomb::BombAnimator" }, + { + "name": "BonusAnimator", + "type": "Bonus::BonusAnimator" + }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" @@ -6693,7 +6699,7 @@ "parameters": [ "RandomInRange(1, 4)", "<=", - "1" + "4" ] } ], @@ -10835,6 +10841,10 @@ "shortDescription": "Smoothly animate scale and rotation of 3d models.", "version": "0.0.2", "description": "Change models proportions and orientation over time to make smooth animations.", + "origin": { + "identifier": "Tween3D", + "name": "gdevelop-extension-store" + }, "tags": [ "3d", "tween", @@ -11481,7 +11491,7 @@ "description": "Tweens an object rotation X from its current value to a new one.", "fullName": "Tween rotation X", "functionType": "Action", - "group": "Size", + "group": "Angle", "name": "TweenRotationX", "sentence": "Tween the rotation X of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ @@ -11549,7 +11559,7 @@ "description": "Tweens an object rotation Y from its current value to a new one.", "fullName": "Tween rotation Y", "functionType": "Action", - "group": "Size", + "group": "Angle", "name": "TweenRotationY", "sentence": "Tween the rotation Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ @@ -33430,18 +33440,138 @@ "description": "", "fullName": "", "name": "BonusAnimator", - "objectType": "", + "objectType": "Scene3D::Cube3DObject", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", - "events": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"Jump\"", + "120", + "\"easeOutQuad\"", + "500", + "" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "0.5" + ] + }, + { + "type": { + "value": "Tween::AddObjectPositionZTween" + }, + "parameters": [ + "Object", + "Tween", + "\"Jump\"", + "20", + "\"easeOutBounce\"", + "1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "-180" + ] + }, + { + "type": { + "value": "Tween::AddObjectAngleTween" + }, + "parameters": [ + "Object", + "Tween", + "\"Turn\"", + "0", + "\"linear\"", + "1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationX" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "-20" + ] + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1000" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenRotationX" + }, + "parameters": [ + "Object", + "Tween3D", + "\"Billboard\"", + "20", + "1000", + "\"linear\"", + "" + ] + } + ] + } + ], "parameters": [ { "description": "Object", "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { From 6e642bb8983010675c9b14a5f131505355ebb150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 3 Sep 2023 02:40:25 +0200 Subject: [PATCH 34/53] Make 3D tweens work with any 3D object. --- examples/3d-bomberman/3d-bomberman.json | 1094 ++++++++++++++--------- 1 file changed, 665 insertions(+), 429 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 30ecc1b7a..07f974555 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -884,7 +884,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" } ], "content": { @@ -1160,7 +1162,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" } ], "content": { @@ -1436,7 +1440,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" } ], "content": { @@ -1712,7 +1718,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" } ], "content": { @@ -1910,7 +1918,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" }, { "name": "Wobble", @@ -2030,7 +2040,9 @@ }, { "name": "Tween3D", - "type": "Tween3D::Tween3D" + "type": "Tween3D::Tween3D", + "Object3D": "Object3D", + "Scale": "Scale" } ], "content": { @@ -10862,23 +10874,9 @@ "fullName": "Stretch on Z axis", "functionType": "ExpressionAndCondition", "name": "StretchZ", - "sentence": "the stretch on Z axis of _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.ScaleZ() / sqrt(Object.ScaleX() * Object.ScaleY())" - ] - } - ] - } - ], + "private": true, + "sentence": "the stretch on Z axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], "expressionType": { "type": "expression" }, @@ -10886,8 +10884,19 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" } ], "objectGroups": [] @@ -10898,83 +10907,27 @@ "functionType": "ActionWithOperator", "getterName": "StretchZ", "name": "SetStretchZ", + "private": true, "sentence": "Change the stretch on Z axis of ", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsNumber" - }, - "parameters": [ - "\"Value\"", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Volume", - "=", - "Tween3D::ScaleVolume(Object)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleZ" - }, - "parameters": [ - "Object", - "=", - "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.SurfaceRatio", - "=", - "sqrt((Variable(_Tween3D.Volume) / Object.ScaleZ()) / (Object.ScaleX() * Object.ScaleY()))" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleX" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.SurfaceRatio)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleY" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.SurfaceRatio)" - ] - } - ] - } - ], + "events": [], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "objectList" }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, { "description": "Stretch ratio", "name": "StretchRatio", @@ -10988,23 +10941,9 @@ "fullName": "Stretch on Y axis", "functionType": "ExpressionAndCondition", "name": "StretchY", - "sentence": "the stretch on Y axis of _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.ScaleY() / sqrt(Object.ScaleX() * Object.ScaleZ())" - ] - } - ] - } - ], + "private": true, + "sentence": "the stretch on Y axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], "expressionType": { "type": "expression" }, @@ -11012,8 +10951,19 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" } ], "objectGroups": [] @@ -11024,83 +10974,27 @@ "functionType": "ActionWithOperator", "getterName": "StretchY", "name": "SetStretchY", + "private": true, "sentence": "Change the stretch on Z axis of ", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsNumber" - }, - "parameters": [ - "\"Value\"", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Volume", - "=", - "Tween3D::ScaleVolume(Object)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleY" - }, - "parameters": [ - "Object", - "=", - "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.SurfaceRatio", - "=", - "sqrt((Variable(_Tween3D.Volume) / Object.ScaleZ()) / (Object.ScaleX() * Object.ScaleY()))" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleX" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.SurfaceRatio)" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleZ" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.SurfaceRatio)" - ] - } - ] - } - ], + "events": [], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "objectList" }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, { "description": "Stretch ratio", "name": "StretchRatio", @@ -11114,23 +11008,9 @@ "fullName": "Scale volume", "functionType": "ExpressionAndCondition", "name": "ScaleVolume", - "sentence": "the scale volume of _PARAM1_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.ScaleX() * Object.ScaleY() * Object.ScaleZ()" - ] - } - ] - } - ], + "private": true, + "sentence": "the scale volume of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], "expressionType": { "type": "expression" }, @@ -11138,8 +11018,19 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" } ], "objectGroups": [] @@ -11150,139 +11041,521 @@ "functionType": "ActionWithOperator", "getterName": "ScaleVolume", "name": "SetScaleVolume", + "private": true, "sentence": "Change the stretch on Z axis of ", + "events": [], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Exponentially tween bewteen 2 values according to an easing function.", + "fullName": "Ease exponentially", + "functionType": "Expression", + "name": "EaseExp", + "private": true, + "sentence": "the exponent-tweened value of tween _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "CompareArgumentAsNumber" + "value": "SetReturnNumber" }, "parameters": [ - "\"Value\"", - ">", - "0" + "exp(Tween::Ease(GetArgumentAsString(\"Easing\"), log(GetArgumentAsNumber(\"InitialValue\")), log(GetArgumentAsNumber(\"TargetedValue\")), GetArgumentAsNumber(\"Weighting\")))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Easing", + "name": "Easing", + "type": "string" + }, + { + "description": "Initial value", + "name": "InitialValue", + "type": "expression" + }, + { + "description": "Targeted value", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Weighting", + "name": "Weighting", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Smoothly animate scale and rotation of 3d models.", + "fullName": "3D tween (experimental)", + "name": "Tween3D", + "objectType": "", + "eventsFunctions": [ + { + "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "StretchZ", + "sentence": "the stretch on Z axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Object3D::ScaleZ() / sqrt(Object.Scale::X() * Object.Scale::Y())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchZ", + "name": "SetStretchZ", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Object.Behavior::ScaleVolume()" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", + "fullName": "Stretch on Y axis", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "StretchY", + "sentence": "the stretch on Y axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Scale::Y() / sqrt(Object.Scale::X() * Object.Object3D::ScaleZ())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchY", + "name": "SetStretchY", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Object.Behavior::ScaleVolume()" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the scale volume.", + "fullName": "Scale volume", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "ScaleVolume", + "sentence": "the scale volume", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Scale::X() * Object.Scale::Y() * Object.Object3D::ScaleZ()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "ScaleVolume", + "name": "SetScaleVolume", + "sentence": "Change the stretch on Z axis of ", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Ratio", + "=", + "pow(GetArgumentAsNumber(\"Value\") / Object.Behavior::ScaleVolume(), 1 / 3)" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.Ratio)" + ] + } ] } ], - "actions": [ + "parameters": [ { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Ratio", - "=", - "pow(GetArgumentAsNumber(\"Value\") / Tween3D::ScaleVolume(Object), 1 / 3)" - ] + "description": "Object", + "name": "Object", + "type": "object" }, { - "type": { - "value": "Scene3D::Model3DObject::SetScaleZ" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.Ratio)" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" }, { - "type": { - "value": "Scene3D::Model3DObject::SetScaleX" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.Ratio)" - ] + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" }, { - "type": { - "value": "Scene3D::Model3DObject::SetScaleY" - }, - "parameters": [ - "Object", - "*", - "Variable(_Tween3D.Ratio)" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", - "type": "objectList" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Exponentially tween bewteen 2 values according to an easing function.", - "fullName": "Ease exponentially", - "functionType": "Expression", - "name": "EaseExp", - "private": true, - "sentence": "the exponent-tweened value of tween _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "exp(Tween::Ease(GetArgumentAsString(\"Easing\"), log(GetArgumentAsNumber(\"InitialValue\")), log(GetArgumentAsNumber(\"TargetedValue\")), GetArgumentAsNumber(\"Weighting\")))" - ] + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Easing", - "name": "Easing", - "type": "string" - }, - { - "description": "Initial value", - "name": "InitialValue", - "type": "expression" - }, - { - "description": "Targeted value", - "name": "TargetedValue", - "type": "expression" + ], + "objectGroups": [] }, - { - "description": "Weighting", - "name": "Weighting", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "Smoothly animate scale and rotation of 3d models.", - "fullName": "3D tween (experimental)", - "name": "Tween3D", - "objectType": "Scene3D::Model3DObject", - "eventsFunctions": [ { "description": "Tweens an object stretch Z from its current value to a new one. The stretch can never be 0 or less.", "fullName": "Tween stretch Z", @@ -11317,7 +11590,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11385,7 +11657,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11453,7 +11724,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11521,7 +11791,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11589,7 +11858,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11713,14 +11981,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetStretchZ" + "value": "Tween3D::Tween3D::SetStretchZ" }, "parameters": [ - "", + "Object", + "Behavior", "=", "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object", - "" + "Object3D" ] } ] @@ -11745,14 +12013,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetStretchY" + "value": "Tween3D::Tween3D::SetStretchY" }, "parameters": [ - "", + "Object", + "Behavior", "=", "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object", - "" + "Object3D" ] } ] @@ -11777,14 +12045,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetScaleVolume" + "value": "Tween3D::Tween3D::SetScaleVolume" }, "parameters": [ - "", + "Object", + "Behavior", "=", "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object", - "" + "Object3D" ] } ] @@ -11809,10 +12077,11 @@ "actions": [ { "type": { - "value": "Scene3D::Model3DObject::SetRotationX" + "value": "Scene3D::Base3DBehavior::SetRotationX" }, "parameters": [ "Object", + "Object3D", "=", "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" ] @@ -11839,10 +12108,11 @@ "actions": [ { "type": { - "value": "Scene3D::Model3DObject::SetRotationY" + "value": "Scene3D::Base3DBehavior::SetRotationY" }, "parameters": [ "Object", + "Object3D", "=", "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" ] @@ -11874,7 +12144,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11916,7 +12185,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -11964,7 +12232,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12112,7 +12379,7 @@ "Object", "Behavior", "=", - "Tween3D::StretchZ(Object)", + "Object.Behavior::StretchZ()", "GetArgumentAsString(\"TweenIdentifier\")", "" ] @@ -12142,7 +12409,7 @@ "Object", "Behavior", "=", - "Tween3D::StretchY(Object)", + "Object.Behavior::StretchY()", "GetArgumentAsString(\"TweenIdentifier\")", "" ] @@ -12172,7 +12439,7 @@ "Object", "Behavior", "=", - "Tween3D::ScaleVolume(Object)", + "Object.Behavior::ScaleVolume()", "GetArgumentAsString(\"TweenIdentifier\")", "" ] @@ -12202,7 +12469,7 @@ "Object", "Behavior", "=", - "Object.RotationX()", + "Object.Object3D::RotationX()", "GetArgumentAsString(\"TweenIdentifier\")", "" ] @@ -12232,7 +12499,7 @@ "Object", "Behavior", "=", - "Object.RotationY()", + "Object.Object3D::RotationY()", "GetArgumentAsString(\"TweenIdentifier\")", "" ] @@ -12244,7 +12511,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12313,7 +12579,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12361,7 +12626,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12409,7 +12673,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12457,7 +12720,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12505,7 +12767,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12553,7 +12814,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12601,7 +12861,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12649,7 +12908,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12697,7 +12955,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12745,7 +13002,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12793,7 +13049,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12849,7 +13104,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12931,7 +13185,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -12984,7 +13237,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13061,7 +13313,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13126,7 +13377,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13186,7 +13436,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13254,7 +13503,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13309,7 +13557,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13389,7 +13636,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13447,7 +13693,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13506,7 +13751,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13559,7 +13803,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13602,7 +13845,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13615,14 +13857,39 @@ "objectGroups": [] } ], - "propertyDescriptors": [], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "3D capability", + "description": "", + "group": "", + "extraInformation": [ + "Scene3D::Base3DBehavior" + ], + "hidden": false, + "name": "Object3D" + }, + { + "value": "", + "type": "Behavior", + "label": "Scalable capacity", + "description": "", + "group": "", + "extraInformation": [ + "ScalableCapability::ScalableBehavior" + ], + "hidden": false, + "name": "Scale" + } + ], "sharedPropertyDescriptors": [] }, { "description": "Squash and stretch a 3D model in loop.", "fullName": "3D wobble", "name": "Wobble", - "objectType": "Scene3D::Model3DObject", + "objectType": "", "eventsFunctions": [ { "fullName": "", @@ -13661,7 +13928,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13893,7 +14159,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13935,7 +14200,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -13976,7 +14240,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14018,7 +14281,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14059,7 +14321,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14145,7 +14406,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14247,7 +14507,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14304,7 +14563,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14329,14 +14587,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetScaleVolume" + "value": "Tween3D::Tween3D::SetScaleVolume" }, "parameters": [ - "", - "=", - "exp(log(Object.Behavior::PropertyScaleMin()) + (log(Object.Behavior::PropertyScaleMax()) - log(Object.Behavior::PropertyScaleMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyScalePeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", "Object", - "" + "Tween3D", + "=", + "exp(log(Object.Behavior::PropertyScaleMin()) + (log(Object.Behavior::PropertyScaleMax()) - log(Object.Behavior::PropertyScaleMin())) * sin(Object.Behavior::PropertyAngle() + Object.Behavior::PropertyScalePeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object3D" ] } ] @@ -14346,7 +14604,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14383,14 +14640,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetStretchZ" + "value": "Tween3D::Tween3D::SetStretchZ" }, "parameters": [ - "", - "=", - "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", "Object", - "" + "Tween3D", + "=", + "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior::PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object3D" ] } ] @@ -14413,14 +14670,14 @@ "actions": [ { "type": { - "value": "Tween3D::SetStretchY" + "value": "Tween3D::Tween3D::SetStretchY" }, "parameters": [ - "", - "=", - "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior:: PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", "Object", - "" + "Tween3D", + "=", + "exp(log(Object.Behavior::PropertyStretchMin()) + (log(Object.Behavior::PropertyStretchMax()) - log(Object.Behavior::PropertyStretchMin())) * sin(Object.Behavior::PropertyAngle() + Object.Behavior::PropertyStretchPeriodOffset() / Object.Behavior::PropertyPeriodDuration() * 2 * Pi()))", + "Object3D" ] } ] @@ -14430,7 +14687,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14472,7 +14728,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14513,7 +14768,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14555,7 +14809,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14596,7 +14849,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14638,7 +14890,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14679,7 +14930,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14721,7 +14971,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14762,7 +15011,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14804,7 +15052,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -14845,7 +15092,6 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", "type": "object" }, { @@ -15065,6 +15311,18 @@ ], "hidden": false, "name": "Top" + }, + { + "value": "", + "type": "Behavior", + "label": "3D tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween3D::Tween3D" + ], + "hidden": false, + "name": "Tween3D" } ], "sharedPropertyDescriptors": [] @@ -31671,28 +31929,6 @@ } ], "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Model3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Bomb::BombAnimator", - "type": "behavior" - } - ], - "objectGroups": [] } ], "propertyDescriptors": [ @@ -33280,14 +33516,14 @@ }, { "type": { - "value": "Tween3D::SetStretchZ" + "value": "Tween3D::Tween3D::SetStretchZ" }, "parameters": [ - "", + "Object", + "Tween3D", "=", "8", - "Object", - "" + "Object3D" ] }, { From 7603d9f473244e71b20bb982da2cfc4e96a1dc79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 3 Sep 2023 14:27:47 +0200 Subject: [PATCH 35/53] Add particles for bonus catching. --- examples/3d-bomberman/3d-bomberman.json | 176 +++++++++++++++++++++++- 1 file changed, 173 insertions(+), 3 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 07f974555..e219bec22 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2364,7 +2364,7 @@ }, { "assetStoreId": "", - "name": "ParticleEmitter", + "name": "ExplosionParticleEmitter", "tags": "", "type": "ParticleEmitter3D::ParticleEmitter3D", "variables": [], @@ -2444,6 +2444,97 @@ } } }, + { + "assetStoreId": "", + "name": "UpgradeParticleEmitter", + "tags": "", + "type": "ParticleEmitter3D::ParticleEmitter3D", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": true, + "IsDestroyedWithParent": false + } + ], + "content": { + "Z": 20, + "Duration": 0.125, + "GravityTop": "Z+", + "StartSpeedMax": 200, + "SpayConeAngle": 360, + "StartSizeMin": 125, + "StartSizeMax": 256, + "EndScale": 0.25, + "StartSpeedMin": 200, + "LifespanMax": 0.5, + "LifespanMin": 0.5, + "Flow": 120, + "EndColor": "255;255;255", + "EndOpacity": 0, + "StartColor": "255;255;255", + "AreParticlesRelative": true + }, + "childrenContent": { + "Particle": { + "adaptCollisionMaskAutomatically": true, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Image", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets\\SmoothParticle.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 20, + "y": 21 + }, + { + "x": 44, + "y": 21 + }, + { + "x": 44, + "y": 46 + }, + { + "x": 20, + "y": 46 + } + ] + ] + } + ] + } + ] + } + ] + } + } + }, { "assetStoreId": "", "name": "Soil", @@ -2935,6 +3026,29 @@ "Bonus", "" ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "UpgradeParticleEmitter", + "Player.CenterX()", + "Player.CenterY() - 15", + "" + ] + }, + { + "type": { + "value": "Sticker::Sticker::Stick" + }, + "parameters": [ + "UpgradeParticleEmitter", + "Sticker", + "Player", + "" + ] } ] } @@ -3441,7 +3555,7 @@ "Bomb", "Explosion", "Obstacle", - "ParticleEmitter", + "ExplosionParticleEmitter", "" ] } @@ -3495,7 +3609,7 @@ "Bomb", "Explosion", "Obstacle", - "ParticleEmitter", + "ExplosionParticleEmitter", "" ] } @@ -3917,6 +4031,7 @@ "Player", "Player", "Bonus", + "BonusAnimator", "" ] } @@ -32498,6 +32613,16 @@ "+", "1" ] + }, + { + "type": { + "value": "Bonus::BonusAnimator::PlaySpawnAnimation" + }, + "parameters": [ + "Bonus", + "BonusAnimator", + "" + ] } ] }, @@ -32534,6 +32659,12 @@ "name": "Bonus", "supplementaryInformation": "Scene3D::Cube3DObject", "type": "objectList" + }, + { + "description": "Bonus animator", + "name": "BonusAnimator", + "supplementaryInformation": "Bonus::BonusAnimator", + "type": "behavior" } ], "objectGroups": [] @@ -33683,6 +33814,45 @@ "functionType": "Action", "name": "onCreated", "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Bonus::BonusAnimator::PlaySpawnAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Cube3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Bonus::BonusAnimator", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Play spwan animation", + "functionType": "Action", + "name": "PlaySpawnAnimation", + "sentence": "Play spwan animation of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", From 7036d2d94e0cbd6861e88b753277caa8d0f85ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 3 Sep 2023 19:41:58 +0200 Subject: [PATCH 36/53] Better bonus animation. --- examples/3d-bomberman/3d-bomberman.json | 3019 +++++++++++++++++++++-- 1 file changed, 2841 insertions(+), 178 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index e219bec22..cd069e67b 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2032,7 +2032,31 @@ "name": "BonusAnimator", "type": "Bonus::BonusAnimator", "Tween3D": "Tween3D", - "Tween": "Tween" + "Tween": "Tween", + "Shake3D": "ShakeModel3D" + }, + { + "name": "ShakeModel3D", + "type": "ShakeObject3D::ShakeModel3D", + "TranslationAmplitudeX": 0, + "TranslationAmplitudeY": 0, + "TranslationAmplitudeZ": 0, + "RotationAmplitudeX": 30, + "RotationAmplitudeY": 30, + "RotationAmplitudeZ": 0, + "Time": 5, + "Duration": 5, + "StartEasingDuration": 5, + "StopEasingDuration": 5, + "Frequency": 2, + "DeltaX": 5, + "DeltaY": 5, + "DeltaZ": 5, + "DeltaAngleX": 5, + "DeltaAngleY": 5, + "DeltaAngleZ": 5, + "NoiseTime": 5, + "Object3D": "Object3D" }, { "name": "Tween", @@ -2461,21 +2485,22 @@ ], "content": { "Z": 20, - "Duration": 0.125, + "Duration": 0.03125, "GravityTop": "Z+", - "StartSpeedMax": 200, + "StartSpeedMax": 300, "SpayConeAngle": 360, "StartSizeMin": 125, "StartSizeMax": 256, "EndScale": 0.25, - "StartSpeedMin": 200, - "LifespanMax": 0.5, - "LifespanMin": 0.5, - "Flow": 120, + "StartSpeedMin": 300, + "LifespanMax": 0.333, + "LifespanMin": 0.333, + "Flow": 480, "EndColor": "255;255;255", "EndOpacity": 0, "StartColor": "255;255;255", - "AreParticlesRelative": true + "AreParticlesRelative": true, + "Gravity": 0 }, "childrenContent": { "Particle": { @@ -4406,6 +4431,11 @@ "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, + { + "name": "ShakeModel3D", + "type": "ShakeObject3D::ShakeModel3D", + "EasingFactor": 0 + }, { "name": "Sticker", "type": "Sticker::Sticker" @@ -6798,185 +6828,2775 @@ "value": "Wait" }, "parameters": [ - "1" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Random bonus creation" + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Random bonus creation" + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Crate", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "RandomInRange(1, 4)", + "<=", + "4" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::CreateBonus" + }, + "parameters": [ + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "3D object shake", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXZlY3Rvci1kaWZmZXJlbmNlLWFiIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTMsMUMxLjg5LDEgMSwxLjg5IDEsM1Y1SDNWM0g1VjFIM003LDFWM0gxMFYxSDdNMTIsMVYzSDE0VjVIMTZWM0MxNiwxLjg5IDE1LjExLDEgMTQsMUgxMk0xLDdWMTBIM1Y3SDFNMTQsN0MxNCw3IDE0LDExLjY3IDE0LDE0QzExLjY3LDE0IDcsMTQgNywxNEM3LDE0IDcsMTggNywyMEM3LDIxLjExIDcuODksMjIgOSwyMkgyMEMyMS4xMSwyMiAyMiwyMS4xMSAyMiwyMFY5QzIyLDcuODkgMjEuMTEsNyAyMCw3QzE4LDcgMTQsNyAxNCw3TTE2LDlIMjBWMjBIOVYxNkgxNEMxNS4xMSwxNiAxNiwxNS4xMSAxNiwxNFY5TTEsMTJWMTRDMSwxNS4xMSAxLjg5LDE2IDMsMTZINVYxNEgzVjEySDFaIiAvPjwvc3ZnPg==", + "name": "ShakeObject3D", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg", + "shortDescription": "Shake 3D objects.", + "version": "1.0.0", + "description": [ + "Shake 3D objects with translation and rotation.", + "", + "The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game))." + ], + "origin": { + "identifier": "ShakeObject3D", + "name": "gdevelop-extension-store" + }, + "tags": [ + "3d", + "shaking", + "effect", + "shake", + "translate", + "rotate" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "gdjs._shakeObjectExtension = gdjs._shakeObjectExtension || {};", + "", + "/** Noise generator manager. */", + "gdjs._shakeObjectExtension.NoiseManager = /** @class */ (function () {", + " /**", + " * Create the manager of noise generators.", + " */", + " function NoiseManager() {", + " this.seed = gdjs.randomInRange(1, Number.MAX_SAFE_INTEGER);", + " /** @type {Map} */", + " this.generators = new Map();", + " }", + "", + " /**", + " * @param name {string}", + " * @return {gdjs._shakeObjectExtension.NoiseGenerator}", + " */", + " NoiseManager.prototype.getGenerator = function (name) {", + " let generator = this.generators.get(name);", + " if (!generator) {", + " generator = new gdjs._shakeObjectExtension.NoiseGenerator(name + this.seed);", + " this.generators.set(name, generator);", + " }", + " return generator;", + " }", + "", + " /**", + " * @param seed {number}", + " */", + " NoiseManager.prototype.setSeed = function (seed) {", + " this.seed = seed;", + " this.generators.forEach(generator => generator.setSeed(seed));", + " }", + "", + " /**", + " * @param name {string}", + " */", + " NoiseManager.prototype.deleteGenerator = function (name) {", + " this.generators.delete(name);", + " }", + "", + " /**", + " */", + " NoiseManager.prototype.deleteAllGenerators = function () {", + " this.generators.clear();", + " }", + "", + " return NoiseManager;", + "}());", + "", + "/** Noise generator with octaves. */", + "gdjs._shakeObjectExtension.NoiseGenerator = /** @class */ (function () {", + " /**", + " * Create a noise generator with a seed.", + " * @param seed {string}", + " */", + " function NoiseGenerator(seed) {", + " this.simplexNoise = new gdjs._shakeObjectExtension.SimplexNoise(seed);", + " this.frequency = 1;", + " this.octaves = 1;", + " this.persistence = 0.5;", + " this.lacunarity = 2;", + " this.xLoopPeriod = 0;", + " this.yLoopPeriod = 0;", + " }", + "", + " /**", + " * @param seed {string}", + " */", + " NoiseGenerator.prototype.setSeed = function(seed) {", + " this.simplexNoise = new gdjs._shakeObjectExtension.SimplexNoise(seed);", + " }", + "", + " /**", + " * @param x {float}", + " * @param y {float}", + " * @param z {float} optionnal", + " * @param w {float} optionnal", + " * @return {float}", + " */", + " NoiseGenerator.prototype.noise = function (x, y, z, w) {", + " if (this.xLoopPeriod && this.yLoopPeriod) {", + " const circleRatioX = 2 * Math.PI / this.xLoopPeriod;", + " const circleRatioY = 2 * Math.PI / this.yLoopPeriod;", + " const angleX = circleRatioX * x;", + " const angleY = circleRatioY * y;", + " x = Math.cos(angleX) / circleRatioX;", + " y = Math.sin(angleX) / circleRatioX;", + " z = Math.cos(angleY) / circleRatioY;", + " w = Math.sin(angleY) / circleRatioY;", + " }", + " else if (this.xLoopPeriod) {", + " const circleRatio = 2 * Math.PI / this.xLoopPeriod;", + " const angleX = circleRatio * x;", + " w = z;", + " z = y; ", + " x = Math.cos(angleX) / circleRatio;", + " y = Math.sin(angleX) / circleRatio;", + " }", + " else if (this.yLoopPeriod) {", + " const circleRatio = 2 * Math.PI / this.xLoopPeriod;", + " const angleX = circleRatio * x;", + " w = z;", + " // Make the circle perimeter equals to the looping period", + " // to keep the same perceived frequency with or without looping.", + " y = Math.cos(angleX) / circleRatio;", + " z = Math.sin(angleX) / circleRatio;", + " }", + " let noiseFunction = this.simplexNoise.noise4D.bind(this.simplexNoise);", + " if (z === undefined) {", + " noiseFunction = this.simplexNoise.noise2D.bind(this.simplexNoise);", + " }", + " else if (w === undefined) {", + " noiseFunction = this.simplexNoise.noise3D.bind(this.simplexNoise);", + " }", + " let frequency = this.frequency;", + " let noiseSum = 0;", + " let amplitudeSum = 0;", + " let amplitude = 1;", + " for (let i = 0; i < this.octaves; i++) {", + " noiseSum += noiseFunction(x * frequency, y * frequency, z * frequency, w * frequency) * amplitude;", + " amplitudeSum += Math.abs(amplitude);", + " amplitude *= this.persistence;", + " frequency *= this.lacunarity;", + " }", + " return noiseSum / amplitudeSum;", + " }", + "", + " return NoiseGenerator;", + "}());", + "", + "/*", + "A fast javascript implementation of simplex noise by Jonas Wagner", + "https://github.com/jwagner/simplex-noise.js", + "", + "Based on a speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.", + "Which is based on example code by Stefan Gustavson (stegu@itn.liu.se).", + "With Optimisations by Peter Eastman (peastman@drizzle.stanford.edu).", + "Better rank ordering method by Stefan Gustavson in 2012.", + "", + " Copyright (c) 2021 Jonas Wagner", + "", + " Permission is hereby granted, free of charge, to any person obtaining a copy", + " of this software and associated documentation files (the \"Software\"), to deal", + " in the Software without restriction, including without limitation the rights", + " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", + " copies of the Software, and to permit persons to whom the Software is", + " furnished to do so, subject to the following conditions:", + "", + " The above copyright notice and this permission notice shall be included in all", + " copies or substantial portions of the Software.", + "", + " THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", + " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", + " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", + " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", + " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", + " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE", + " SOFTWARE.", + " */", + "", + "const F2 = 0.5 * (Math.sqrt(3.0) - 1.0);", + "const G2 = (3.0 - Math.sqrt(3.0)) / 6.0;", + "const F3 = 1.0 / 3.0;", + "const G3 = 1.0 / 6.0;", + "const F4 = (Math.sqrt(5.0) - 1.0) / 4.0;", + "const G4 = (5.0 - Math.sqrt(5.0)) / 20.0;", + "const grad3 = new Float32Array([1, 1, 0,", + " -1, 1, 0,", + " 1, -1, 0,", + " -1, -1, 0,", + " 1, 0, 1,", + " -1, 0, 1,", + " 1, 0, -1,", + " -1, 0, -1,", + " 0, 1, 1,", + " 0, -1, 1,", + " 0, 1, -1,", + " 0, -1, -1]);", + "const grad4 = new Float32Array([0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1,", + " 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1,", + " 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1,", + " -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1,", + " 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1,", + " -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1,", + " 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0,", + " -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0]);", + "", + "/** Deterministic simplex noise generator suitable for 2D, 3D and 4D spaces. */", + "gdjs._shakeObjectExtension.SimplexNoise = /** @class */ (function () {", + " /**", + " * Creates a new `SimplexNoise` instance.", + " * This involves some setup. You can save a few cpu cycles by reusing the same instance.", + " * @param {(() => number)|string|number} randomOrSeed A random number generator or a seed (string|number).", + " * Defaults to Math.random (random irreproducible initialization).", + " */", + " function SimplexNoise(randomOrSeed) {", + " if (randomOrSeed === void 0) { randomOrSeed = Math.random; }", + " const random = typeof randomOrSeed == 'function' ? randomOrSeed : alea(randomOrSeed);", + " this.p = buildPermutationTable(random);", + " this.perm = new Uint8Array(512);", + " this.permMod12 = new Uint8Array(512);", + " for (let i = 0; i < 512; i++) {", + " this.perm[i] = this.p[i & 255];", + " this.permMod12[i] = this.perm[i] % 12;", + " }", + " }", + "", + " /**", + " * Samples the noise field in 2 dimensions", + " * @param {number} x", + " * @param {number} y", + " * @returns a number in the interval [-1, 1]", + " */", + " SimplexNoise.prototype.noise2D = function (x, y) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0 = 0; // Noise contributions from the three corners", + " let n1 = 0;", + " let n2 = 0;", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y) * F2; // Hairy factor for 2D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const t = (i + j) * G2;", + " const X0 = i - t; // Unskew the cell origin back to (x,y) space", + " const Y0 = j - t;", + " const x0 = x - X0; // The x,y distances from the cell origin", + " const y0 = y - Y0;", + " // For the 2D case, the simplex shape is an equilateral triangle.", + " // Determine which simplex we are in.", + " let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords", + " if (x0 > y0) {", + " i1 = 1;", + " j1 = 0;", + " } // lower triangle, XY order: (0,0)->(1,0)->(1,1)", + " else {", + " i1 = 0;", + " j1 = 1;", + " } // upper triangle, YX order: (0,0)->(0,1)->(1,1)", + " // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and", + " // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where", + " // c = (3-sqrt(3))/6", + " const x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords", + " const y1 = y0 - j1 + G2;", + " const x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) unskewed coords", + " const y2 = y0 - 1.0 + 2.0 * G2;", + " // Work out the hashed gradient indices of the three simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " // Calculate the contribution from the three corners", + " let t0 = 0.5 - x0 * x0 - y0 * y0;", + " if (t0 >= 0) {", + " const gi0 = permMod12[ii + perm[jj]] * 3;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad3[gi0] * x0 + grad3[gi0 + 1] * y0); // (x,y) of grad3 used for 2D gradient", + " }", + " let t1 = 0.5 - x1 * x1 - y1 * y1;", + " if (t1 >= 0) {", + " const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad3[gi1] * x1 + grad3[gi1 + 1] * y1);", + " }", + " let t2 = 0.5 - x2 * x2 - y2 * y2;", + " if (t2 >= 0) {", + " const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad3[gi2] * x2 + grad3[gi2 + 1] * y2);", + " }", + " // Add contributions from each corner to get the final noise value.", + " // The result is scaled to return values in the interval [-1,1].", + " return 70.0 * (n0 + n1 + n2);", + " }", + "", + " /**", + " * Samples the noise field in 3 dimensions", + " * @param {number} x", + " * @param {number} y", + " * @param {number} z", + " * @returns a number in the interval [-1, 1]", + " */", + " SimplexNoise.prototype.noise3D = function (x, y, z) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0, n1, n2, n3; // Noise contributions from the four corners", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y + z) * F3; // Very nice and simple skew factor for 3D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const k = Math.floor(z + s);", + " const t = (i + j + k) * G3;", + " const X0 = i - t; // Unskew the cell origin back to (x,y,z) space", + " const Y0 = j - t;", + " const Z0 = k - t;", + " const x0 = x - X0; // The x,y,z distances from the cell origin", + " const y0 = y - Y0;", + " const z0 = z - Z0;", + " // For the 3D case, the simplex shape is a slightly irregular tetrahedron.", + " // Determine which simplex we are in.", + " let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords", + " let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords", + " if (x0 >= y0) {", + " if (y0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 1;", + " k2 = 0;", + " } // X Y Z order", + " else if (x0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // X Z Y order", + " else {", + " i1 = 0;", + " j1 = 0;", + " k1 = 1;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // Z X Y order", + " }", + " else { // x0 y0)", + " rankx++;", + " else", + " ranky++;", + " if (x0 > z0)", + " rankx++;", + " else", + " rankz++;", + " if (x0 > w0)", + " rankx++;", + " else", + " rankw++;", + " if (y0 > z0)", + " ranky++;", + " else", + " rankz++;", + " if (y0 > w0)", + " ranky++;", + " else", + " rankw++;", + " if (z0 > w0)", + " rankz++;", + " else", + " rankw++;", + " // simplex[c] is a 4-vector with the numbers 0, 1, 2 and 3 in some order.", + " // Many values of c will never occur, since e.g. x>y>z>w makes x= 3 ? 1 : 0;", + " const j1 = ranky >= 3 ? 1 : 0;", + " const k1 = rankz >= 3 ? 1 : 0;", + " const l1 = rankw >= 3 ? 1 : 0;", + " // The integer offsets for the third simplex corner", + " const i2 = rankx >= 2 ? 1 : 0;", + " const j2 = ranky >= 2 ? 1 : 0;", + " const k2 = rankz >= 2 ? 1 : 0;", + " const l2 = rankw >= 2 ? 1 : 0;", + " // The integer offsets for the fourth simplex corner", + " const i3 = rankx >= 1 ? 1 : 0;", + " const j3 = ranky >= 1 ? 1 : 0;", + " const k3 = rankz >= 1 ? 1 : 0;", + " const l3 = rankw >= 1 ? 1 : 0;", + " // The fifth corner has all coordinate offsets = 1, so no need to compute that.", + " const x1 = x0 - i1 + G4; // Offsets for second corner in (x,y,z,w) coords", + " const y1 = y0 - j1 + G4;", + " const z1 = z0 - k1 + G4;", + " const w1 = w0 - l1 + G4;", + " const x2 = x0 - i2 + 2.0 * G4; // Offsets for third corner in (x,y,z,w) coords", + " const y2 = y0 - j2 + 2.0 * G4;", + " const z2 = z0 - k2 + 2.0 * G4;", + " const w2 = w0 - l2 + 2.0 * G4;", + " const x3 = x0 - i3 + 3.0 * G4; // Offsets for fourth corner in (x,y,z,w) coords", + " const y3 = y0 - j3 + 3.0 * G4;", + " const z3 = z0 - k3 + 3.0 * G4;", + " const w3 = w0 - l3 + 3.0 * G4;", + " const x4 = x0 - 1.0 + 4.0 * G4; // Offsets for last corner in (x,y,z,w) coords", + " const y4 = y0 - 1.0 + 4.0 * G4;", + " const z4 = z0 - 1.0 + 4.0 * G4;", + " const w4 = w0 - 1.0 + 4.0 * G4;", + " // Work out the hashed gradient indices of the five simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " const kk = k & 255;", + " const ll = l & 255;", + " // Calculate the contribution from the five corners", + " let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;", + " if (t0 < 0)", + " n0 = 0.0;", + " else {", + " const gi0 = (perm[ii + perm[jj + perm[kk + perm[ll]]]] % 32) * 4;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad4[gi0] * x0 + grad4[gi0 + 1] * y0 + grad4[gi0 + 2] * z0 + grad4[gi0 + 3] * w0);", + " }", + " let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;", + " if (t1 < 0)", + " n1 = 0.0;", + " else {", + " const gi1 = (perm[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] % 32) * 4;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad4[gi1] * x1 + grad4[gi1 + 1] * y1 + grad4[gi1 + 2] * z1 + grad4[gi1 + 3] * w1);", + " }", + " let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;", + " if (t2 < 0)", + " n2 = 0.0;", + " else {", + " const gi2 = (perm[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] % 32) * 4;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad4[gi2] * x2 + grad4[gi2 + 1] * y2 + grad4[gi2 + 2] * z2 + grad4[gi2 + 3] * w2);", + " }", + " let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;", + " if (t3 < 0)", + " n3 = 0.0;", + " else {", + " const gi3 = (perm[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] % 32) * 4;", + " t3 *= t3;", + " n3 = t3 * t3 * (grad4[gi3] * x3 + grad4[gi3 + 1] * y3 + grad4[gi3 + 2] * z3 + grad4[gi3 + 3] * w3);", + " }", + " let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;", + " if (t4 < 0)", + " n4 = 0.0;", + " else {", + " const gi4 = (perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32) * 4;", + " t4 *= t4;", + " n4 = t4 * t4 * (grad4[gi4] * x4 + grad4[gi4 + 1] * y4 + grad4[gi4 + 2] * z4 + grad4[gi4 + 3] * w4);", + " }", + " // Sum up and scale the result to cover the range [-1,1]", + " return 27.0 * (n0 + n1 + n2 + n3 + n4);", + " };", + "", + " /**", + " * Builds a random permutation table.", + " * This is exported only for (internal) testing purposes.", + " * Do not rely on this export.", + " * @param {() => number} random", + " * @private", + " */", + " function buildPermutationTable(random) {", + " const p = new Uint8Array(256);", + " for (let i = 0; i < 256; i++) {", + " p[i] = i;", + " }", + " for (let i = 0; i < 255; i++) {", + " const r = i + ~~(random() * (256 - i));", + " const aux = p[i];", + " p[i] = p[r];", + " p[r] = aux;", + " }", + " return p;", + " }", + "", + " /*", + " The ALEA PRNG and masher code used by simplex-noise.js", + " is based on code by Johannes Baagøe, modified by Jonas Wagner.", + " See alea.md for the full license.", + " @param {string|number} seed", + " */", + " function alea(seed) {", + " let s0 = 0;", + " let s1 = 0;", + " let s2 = 0;", + " let c = 1;", + " const mash = masher();", + " s0 = mash(' ');", + " s1 = mash(' ');", + " s2 = mash(' ');", + " s0 -= mash(seed);", + " if (s0 < 0) {", + " s0 += 1;", + " }", + " s1 -= mash(seed);", + " if (s1 < 0) {", + " s1 += 1;", + " }", + " s2 -= mash(seed);", + " if (s2 < 0) {", + " s2 += 1;", + " }", + " return function () {", + " const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32", + " s0 = s1;", + " s1 = s2;", + " return s2 = t - (c = t | 0);", + " };", + " }", + "", + " function masher() {", + " let n = 0xefc8249d;", + " return function (data) {", + " data = data.toString();", + " for (let i = 0; i < data.length; i++) {", + " n += data.charCodeAt(i);", + " let h = 0.02519603282416938 * n;", + " n = h >>> 0;", + " h -= n;", + " h *= n;", + " n = h >>> 0;", + " h -= n;", + " n += h * 0x100000000; // 2^32", + " }", + " return (n >>> 0) * 2.3283064365386963e-10; // 2^-32", + " };", + " }", + " return SimplexNoise;", + "}());", + "", + "gdjs._shakeObjectExtension.noiseManager = new gdjs._shakeObjectExtension.NoiseManager();" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Generate a number from 2 dimensional simplex noise.", + "fullName": "2D noise", + "functionType": "Expression", + "name": "Noise2d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).noise(x, y);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a number from 3 dimensional simplex noise.", + "fullName": "3D noise", + "functionType": "Expression", + "name": "Noise3d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "const z = eventsFunctionContext.getArgument(\"Z\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).noise(x, y, z);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + }, + { + "description": "Z coordinate", + "name": "Z", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a number from 4 dimensional simplex noise.", + "fullName": "4D noise", + "functionType": "Expression", + "name": "Noise4d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "const z = eventsFunctionContext.getArgument(\"Z\");\r", + "const w = eventsFunctionContext.getArgument(\"W\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).noise(x, y, z, w);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + }, + { + "description": "Z coordinate", + "name": "Z", + "type": "expression" + }, + { + "description": "W coordinate", + "name": "W", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Create a noise generator with default settings (frequency = 1, octaves = 1, persistence = 0.5, lacunarity = 2).", + "fullName": "Create a noise generator", + "functionType": "Action", + "name": "Create", + "private": true, + "sentence": "Create a noise generator named _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete a noise generator and loose its settings.", + "fullName": "Delete a noise generator", + "functionType": "Action", + "name": "Delete", + "private": true, + "sentence": "Delete _PARAM1_ noise generator", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.deleteGenerator(name);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete all noise generators and loose their settings.", + "fullName": "Delete all noise generators", + "functionType": "Action", + "name": "DeleteAll", + "private": true, + "sentence": "Delete all noise generators", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "gdjs._shakeObjectExtension.noiseManager.deleteAllGenerators();", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "The seed is a number used to generate the random noise. Setting the same seed will result in the same random noise generation. It's for example useful to generate the same world, by saving this seed value and reusing it later to generate again a world.", + "fullName": "Noise seed", + "functionType": "Action", + "name": "SetSeed", + "private": true, + "sentence": "Change the noise seed to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "gdjs._shakeObjectExtension.noiseManager.setSeed(eventsFunctionContext.getArgument(\"Seed\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Seed", + "longDescription": "15 digits numbers maximum", + "name": "Seed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the looping period on X used for noise generation. The noise will wrap-around on X.", + "fullName": "Noise looping period on X", + "functionType": "Action", + "name": "SetLoopPeriodX", + "private": true, + "sentence": "Change the looping period on X of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).xLoopPeriod = eventsFunctionContext.getArgument(\"LoopPeriod\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Looping period on X", + "name": "LoopPeriod", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the looping period on Y used for noise generation. The noise will wrap-around on Y.", + "fullName": "Noise looping period on Y", + "functionType": "Action", + "name": "SetLoopPeriodY", + "private": true, + "sentence": "Change the looping period on Y of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).yLoopPeriod = eventsFunctionContext.getArgument(\"LoopPeriod\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Looping period on Y", + "name": "LoopPeriod", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the base frequency used for noise generation. A lower frequency will zoom in the noise.", + "fullName": "Noise base frequency", + "functionType": "Action", + "name": "SetFrequency", + "private": true, + "sentence": "Change the noise frequency of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).frequency = eventsFunctionContext.getArgument(\"Frequency\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Frequency", + "name": "Frequency", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of octaves used for noise generation. It can be seen as layers of noise with different zoom.", + "fullName": "Noise octaves", + "functionType": "Action", + "name": "SetOctaves", + "private": true, + "sentence": "Change the number of noise octaves of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).octaves = eventsFunctionContext.getArgument(\"Octaves\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Octaves", + "name": "Octaves", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the persistence used for noise generation. At its default value \"0.5\", it halves the noise amplitude at each octave.", + "fullName": "Noise persistence", + "functionType": "Action", + "name": "SetPersistence", + "private": true, + "sentence": "Change the noise persistence of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).persistence = eventsFunctionContext.getArgument(\"Persistence\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Persistence", + "name": "Persistence", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the lacunarity used for noise generation. At its default value \"2\", it doubles the frequency at each octave.", + "fullName": "Noise lacunarity", + "functionType": "Action", + "name": "SetLacunarity", + "private": true, + "sentence": "Change the noise lacunarity of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._shakeObjectExtension.noiseManager.getGenerator(name).lacunarity = eventsFunctionContext.getArgument(\"Lacunarity\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Lacunarity", + "name": "Lacunarity", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The seed used for noise generation.", + "fullName": "Noise seed", + "functionType": "Expression", + "name": "Seed", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.seed;", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "The base frequency used for noise generation.", + "fullName": "Noise base frequency", + "functionType": "Expression", + "name": "Frequency", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).frequency;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The number of octaves used for noise generation.", + "fullName": "Noise octaves number", + "functionType": "Expression", + "name": "Octaves", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).octaves;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The persistence used for noise generation.", + "fullName": "Noise persistence", + "functionType": "Expression", + "name": "Persistence", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).persistence;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The lacunarity used for noise generation.", + "fullName": "Noise lacunarity", + "functionType": "Expression", + "name": "Lacunarity", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._shakeObjectExtension.noiseManager.getGenerator(name).lacunarity;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Shake 3D models with translation and rotation.", + "fullName": "3D shake", + "name": "ShakeModel3D", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Step time counters." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "TimeDelta()" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyNoiseTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "TimeDelta() * Object.Behavior::Frequency()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetSharedPropertyEasingFactor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyStartEasingDuration()" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyDuration() - Object.Behavior::PropertyStopEasingDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetSharedPropertyEasingFactor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(0, 1, Object.Behavior::PropertyTime() / Object.Behavior::PropertyStartEasingDuration())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyDuration() - Object.Behavior::PropertyStopEasingDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetSharedPropertyEasingFactor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(0, 1, (Object.Behavior::PropertyDuration() - Object.Behavior::PropertyTime()) / Object.Behavior::PropertyStopEasingDuration())" + ] + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ShakeObject3D::SetFrequency" + }, + "parameters": [ + "", + "Object.Behavior::PropertyFrequency()", + "\"\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shake the layer camera.\nSave the camera displacement to revert it in onScenePostEvents." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeX" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 1000) * Object.Behavior::PropertyTranslationAmplitudeX() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "+", + "Object.Behavior::PropertyDeltaX()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeY" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 2000) * Object.Behavior::PropertyTranslationAmplitudeY() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "Object.Behavior::PropertyDeltaY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeZ" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaZ" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 3000) * Object.Behavior::PropertyTranslationAmplitudeZ() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetZ" + }, + "parameters": [ + "Object", + "Object3D", + "+", + "Object.Behavior::PropertyDeltaY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeX" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaAngleX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 4000) * Object.Behavior::PropertyRotationAmplitudeX() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationX" + }, + "parameters": [ + "Object", + "Object3D", + "+", + "Object.Behavior::PropertyDeltaAngleX()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeY" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaAngleY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 5000) * Object.Behavior::PropertyRotationAmplitudeY() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationY" + }, + "parameters": [ + "Object", + "Object3D", + "+", + "Object.Behavior::PropertyDeltaAngleY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeZ" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDeltaAngleZ" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "ShakeObject3D::Noise2d(\"\", Object.Behavior::PropertyNoiseTime(), 6000) * Object.Behavior::PropertyRotationAmplitudeZ() * Object.Behavior::SharedPropertyEasingFactor()" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "+", + "Object.Behavior::PropertyDeltaAngleZ()" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Revert the shaking." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeX" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Behavior::PropertyDeltaX()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeY" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Behavior::PropertyDeltaY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTranslationAmplitudeZ" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetZ" + }, + "parameters": [ + "Object", + "Object3D", + "-", + "Object.Behavior::PropertyDeltaZ()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeX" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationX" + }, + "parameters": [ + "Object", + "Object3D", + "-", + "Object.Behavior::PropertyDeltaAngleX()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeY" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationY" + }, + "parameters": [ + "Object", + "Object3D", + "-", + "Object.Behavior::PropertyDeltaAngleY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyRotationAmplitudeZ" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Behavior::PropertyDeltaAngleZ()" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Shake the camera on layers chosen with configuration actions.", + "fullName": "Shake", + "functionType": "Action", + "name": "Shake", + "sentence": "Shake _PARAM0_ for _PARAM2_ seconds with _PARAM3_ seconds of easing to start and _PARAM4_ seconds to stop", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyNoiseTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "TimeFromStart() * Object.Behavior::Frequency()" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStartEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"StartEaseDuration\")" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStopEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"StopEaseDuration\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Duration\"", + "<", + "GetArgumentAsNumber(\"StartEaseDuration\") + GetArgumentAsNumber(\"StopEaseDuration\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStartEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"StartEaseDuration\") * Variable(__CameraShake.Duration) / (GetArgumentAsNumber(\"StartEaseDuration\") + GetArgumentAsNumber(\"StopEaseDuration\"))" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStopEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"StopEaseDuration\") * Variable(__CameraShake.Duration) / (GetArgumentAsNumber(\"StartEaseDuration\") + GetArgumentAsNumber(\"StopEaseDuration\"))" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Ease duration to start (in seconds)", + "name": "StartEaseDuration", + "type": "expression" + }, + { + "description": "Ease duration to stop (in seconds)", + "name": "StopEaseDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Start shaking the camera indefinitely.", + "fullName": "Start shaking", + "functionType": "Action", + "name": "StartShaking", + "sentence": "Start shaking _PARAM0_ with _PARAM2_ seconds of easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyNoiseTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "TimeFromStart() * Object.Behavior::Frequency()" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "1234567890" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStartEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + }, + { + "description": "Ease duration (in seconds)", + "name": "EaseDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Stop shaking the camera.", + "fullName": "Stop shaking", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking _PARAM0_ with _PARAM2_ seconds of easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + }, + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyStopEasingDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + }, + { + "description": "Ease duration (in seconds)", + "name": "EaseDuration", + "type": "expression" + } + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Crate", - "conditions": [ + "description": "Check if the object is shaking.", + "fullName": "Is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "_PARAM0_ is shaking", + "events": [ { - "type": { - "value": "Egal" - }, - "parameters": [ - "RandomInRange(1, 4)", - "<=", - "4" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } ] } ], - "actions": [ + "parameters": [ { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Crate.X()", - "Crate.Y()", - "RandomInRange(1,2)", - "" - ] + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" } - ] + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 + "description": "the shaking frequency of the object.", + "fullName": "Shaking frequency", + "functionType": "ExpressionAndCondition", + "group": "ShakeObject3D configuration", + "name": "Frequency", + "sentence": "the shaking frequency", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFrequency()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" }, - "comment": "The crate is removed after because its location is used to create the bonus." + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + } + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Frequency", + "name": "SetFrequency", + "sentence": "", + "events": [ { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::SetPropertyFrequency" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" }, { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] + ], + "objectGroups": [] } ], - "actions": [ + "propertyDescriptors": [ { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Translation amplitude on X axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TranslationAmplitudeX" + }, { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Translation amplitude on Y axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TranslationAmplitudeY" + }, + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Translation amplitude on Z axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TranslationAmplitudeZ" + }, + { + "value": "5", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation amplitude around X axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "RotationAmplitudeX" + }, + { + "value": "5", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation amplitude around Y axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "RotationAmplitudeY" + }, + { + "value": "5", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation amplitude around Z axis", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "RotationAmplitudeZ" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Time" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Duration" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "StartEasingDuration" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "StopEasingDuration" + }, + { + "value": "", + "type": "Number", + "label": "Frequency", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Frequency" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaX" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaY" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaZ" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaAngleX" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaAngleY" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "DeltaAngleZ" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NoiseTime" + }, + { + "value": "", + "type": "Behavior", + "label": "3D capability", + "description": "", + "group": "", + "extraInformation": [ + "Scene3D::Base3DBehavior" + ], + "hidden": false, + "name": "Object3D" } ], - "actions": [ + "sharedPropertyDescriptors": [ { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "EasingFactor" } ] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "@4ian, Entropy, VegeTato", "category": "", @@ -32658,7 +35278,7 @@ "description": "Bonus", "name": "Bonus", "supplementaryInformation": "Scene3D::Cube3DObject", - "type": "objectList" + "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Bonus animator", @@ -33917,19 +36537,13 @@ "parameters": [ "Object", "Tween", - "\"Turn\"", + "\"RotationZ\"", "0", - "\"linear\"", + "\"easeOutQuad\"", "1000", "" ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { "value": "Scene3D::Base3DBehavior::SetRotationX" @@ -33938,13 +36552,51 @@ "Object", "Object3D", "=", - "-20" + "-160" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenRotationX" + }, + "parameters": [ + "Object", + "Tween3D", + "\"ToBillboard\"", + "-20", + "1", + "\"easeOutQuad\"", + "" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationY" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "-90" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::TweenRotationY" + }, + "parameters": [ + "Object", + "Tween3D", + "\"RotationY\"", + "0", + "1", + "\"easeOutQuad\"", + "" ] } ] }, { - "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ @@ -33953,20 +36605,19 @@ "value": "Wait" }, "parameters": [ - "1000" + "0.75" ] }, { "type": { - "value": "Tween3D::Tween3D::TweenRotationX" + "value": "ShakeObject3D::ShakeModel3D::Shake" }, "parameters": [ "Object", - "Tween3D", - "\"Billboard\"", - "20", - "1000", - "\"linear\"", + "Shake3D", + "0.75", + "0", + "0.25", "" ] } @@ -34014,6 +36665,18 @@ ], "hidden": false, "name": "Tween" + }, + { + "value": "", + "type": "Behavior", + "label": "3D shake", + "description": "", + "group": "", + "extraInformation": [ + "ShakeObject3D::ShakeModel3D" + ], + "hidden": false, + "name": "Shake3D" } ], "sharedPropertyDescriptors": [] From 7b64231d78687a7528e013bf359d4334e085e6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 4 Sep 2023 00:44:44 +0200 Subject: [PATCH 37/53] Explosion optimization bug. --- examples/3d-bomberman/3d-bomberman.json | 539 ++++++++++++++++++------ 1 file changed, 420 insertions(+), 119 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index cd069e67b..be2ef9c57 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -1965,7 +1965,7 @@ "behaviors": [ { "name": "Explosion", - "type": "Bomb::Explosion" + "type": "Bomb::ExplosionBehavior" } ], "animations": [ @@ -3579,6 +3579,7 @@ "", "Bomb", "Explosion", + "Explosion", "Obstacle", "ExplosionParticleEmitter", "" @@ -3608,44 +3609,108 @@ "comment": "...or by chain reaction" }, { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Bomb", - "conditions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { - "value": "CollisionNP" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "Explosion", - "Bomb", - "", + "hasNewBombExploded", + "True" + ] + }, + { + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "\"------STEP-----\"", "", "" ] } + ] + }, + { + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "hasNewBombExploded", + "True" + ] + } ], + "conditions": [], "actions": [ { "type": { - "value": "Bomb::Explode" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "", - "Bomb", - "Explosion", - "Obstacle", - "ExplosionParticleEmitter", - "" + "hasNewBombExploded", + "False" ] } ], "events": [ { - "type": "BuiltinCommonInstructions::Link", - "include": { - "includeConfig": 0 - }, - "target": "Check explosion collision" + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Bomb", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Bomb::Explode" + }, + "parameters": [ + "", + "Bomb", + "Explosion", + "Explosion", + "Obstacle", + "ExplosionParticleEmitter", + "" + ] + }, + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "hasNewBombExploded", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Link", + "include": { + "includeConfig": 0 + }, + "target": "Check explosion collision" + } + ] } ] } @@ -4388,7 +4453,7 @@ }, { "name": "Explosion", - "type": "Bomb::Explosion" + "type": "Bomb::ExplosionBehavior" }, { "name": "Flash", @@ -34011,7 +34076,7 @@ "fullName": "Explode a bombe", "functionType": "Action", "name": "Explode", - "sentence": "_PARAM1_ explode into _PARAM2_ and _PARAM4_ and is stopped by _PARAM3_", + "sentence": "_PARAM1_ explode into _PARAM2_ and _PARAM5_ and is stopped by _PARAM4_", "events": [ { "type": "BuiltinCommonInstructions::Comment", @@ -34108,6 +34173,7 @@ "", "Bomb", "Explosion", + "ExplosionBehavior", "Obstacle", "ParticleEmitter", "0", @@ -34124,6 +34190,7 @@ "", "Bomb", "Explosion", + "ExplosionBehavior", "Obstacle", "ParticleEmitter", "180", @@ -34140,6 +34207,7 @@ "", "Bomb", "Explosion", + "ExplosionBehavior", "Obstacle", "ParticleEmitter", "90", @@ -34156,6 +34224,7 @@ "", "Bomb", "Explosion", + "ExplosionBehavior", "Obstacle", "ParticleEmitter", "-90", @@ -34194,6 +34263,12 @@ "supplementaryInformation": "Sprite", "type": "objectList" }, + { + "description": "Explosion", + "name": "ExplosionBehavior", + "supplementaryInformation": "Bomb::ExplosionBehavior", + "type": "behavior" + }, { "description": "Obstacle", "name": "Obstacle", @@ -34214,7 +34289,7 @@ "functionType": "Action", "name": "CreateExplosionArm", "private": true, - "sentence": "Creat an explosion arm with _PARAM2_ and _PARAM4_ from _PARAM1_ to _PARAM3_ in the direction _PARAM5_° (_PARAM6_ ; _PARAM7_)", + "sentence": "Create an explosion arm with _PARAM2_ and _PARAM5_ from _PARAM1_ to _PARAM4_ in the direction _PARAM6_° (_PARAM7_ ; _PARAM8_)", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -34251,127 +34326,183 @@ "actions": [ { "type": { - "value": "Create" - }, - "parameters": [ - "", - "Explosion", - "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)", - "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)", - "\"\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "ParticleEmitter", - "Explosion.CenterX()", - "Explosion.CenterY()", - "\"\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "ParticleEmitter", - "Explosion.CenterX() - GetArgumentAsNumber(\"ExplosionDirectionX\") * 30", - "Explosion.CenterY() - GetArgumentAsNumber(\"ExplosionDirectionY\") * 30", - "\"\"" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Explosion", - "PlayerNum", - "=", - "Bomb.Variable(PlayerNum)" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Explosion", - "DirectionX", - "=", - "GetArgumentAsNumber(\"ExplosionDirectionX\")" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Explosion", - "DirectionY", - "=", - "GetArgumentAsNumber(\"ExplosionDirectionY\")" - ] - }, - { - "type": { - "value": "Cache" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "Explosion" + "isExplosionAlreadyCreated", + "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "Bomb::IsExplosionAlreadyCreated" + }, + "parameters": [ + "", + "Explosion", + "ExplosionBehavior", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)", + "" + ] + } + ], "actions": [ { "type": { - "value": "ModVarScene" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "iteration", - "+", - "1" + "isExplosionAlreadyCreated", + "True" ] } ] }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "When an obstacle is reached, the loop is broken (by setting a big value in the iteration variable)." - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "CollisionNP" + "value": "SceneVariableAsBoolean" }, "parameters": [ + "isExplosionAlreadyCreated", + "=" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", "Explosion", - "Obstacle", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)", + "\"\"" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ "", + "ParticleEmitter", + "Explosion.CenterX()", + "Explosion.CenterY()", + "\"\"" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ "", - "" + "ParticleEmitter", + "Explosion.CenterX() - GetArgumentAsNumber(\"ExplosionDirectionX\") * 30", + "Explosion.CenterY() - GetArgumentAsNumber(\"ExplosionDirectionY\") * 30", + "\"\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "PlayerNum", + "=", + "Bomb.Variable(PlayerNum)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "=", + "GetArgumentAsNumber(\"ExplosionDirectionY\")" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Explosion" ] } ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "When an obstacle is reached, the loop is broken (by setting a big value in the iteration variable)." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Obstacle", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "iteration", + "=", + "666" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], "actions": [ { "type": { @@ -34379,8 +34510,8 @@ }, "parameters": [ "iteration", - "=", - "666" + "+", + "1" ] } ] @@ -34402,6 +34533,12 @@ "supplementaryInformation": "Sprite", "type": "objectList" }, + { + "description": "Explosion", + "name": "ExplosionBehavior", + "supplementaryInformation": "Bomb::ExplosionBehavior", + "type": "behavior" + }, { "description": "Obstacle", "name": "Obstacle", @@ -34430,6 +34567,111 @@ } ], "objectGroups": [] + }, + { + "fullName": "Explosion already created", + "functionType": "Condition", + "name": "IsExplosionAlreadyCreated", + "private": true, + "sentence": "_PARAM1_ already created at _PARAM3_ ; _PARAM4_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Bomb::ExplosionBehavior::HasJustBeenCreated" + }, + "parameters": [ + "Explosion", + "ExplosionBehavior", + "" + ] + }, + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Explosion", + "=", + "GetArgumentAsNumber(\"PositionX\")" + ] + }, + { + "type": { + "value": "PosY" + }, + "parameters": [ + "Explosion", + "=", + "GetArgumentAsNumber(\"PositionY\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + }, + { + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "\"Exists at: \" + GetArgumentAsString(\"PositionX\") + \" \" + GetArgumentAsString(\"PositionY\")", + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Explosion", + "conditions": [], + "actions": [ + { + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "GetArgumentAsString(\"PositionX\") + \" \" + GetArgumentAsString(\"PositionY\") + \" = \" + ToString(Explosion.X()) + \" \" + ToString(Explosion.Y())", + "", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Explosion", + "name": "Explosion", + "type": "objectList" + }, + { + "description": "Explosion", + "name": "ExplosionBehavior", + "supplementaryInformation": "Bomb::ExplosionBehavior", + "type": "behavior" + }, + { + "description": "Position on X axis", + "name": "PositionX", + "type": "expression" + }, + { + "description": "Position on Y axis", + "name": "PositionY", + "type": "expression" + } + ], + "objectGroups": [] } ], "eventsBasedBehaviors": [ @@ -34709,7 +34951,7 @@ { "description": "", "fullName": "", - "name": "Explosion", + "name": "ExplosionBehavior", "objectType": "", "eventsFunctions": [ { @@ -34743,7 +34985,7 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Bomb::Explosion", + "supplementaryInformation": "Bomb::ExplosionBehavior", "type": "behavior" } ], @@ -34792,7 +35034,66 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Bomb::Explosion", + "supplementaryInformation": "Bomb::ExplosionBehavior", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Has just been created", + "functionType": "Condition", + "name": "HasJustBeenCreated", + "sentence": "_PARAM0_ has just been created", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"LifeTime\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + }, + { + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "\"Just created\"", + "", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Bomb::ExplosionBehavior", "type": "behavior" } ], From 0bca12ed5f3ee48df57b88874c1bf6a33b30ffbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Mon, 4 Sep 2023 01:42:38 +0200 Subject: [PATCH 38/53] Fix explosion optimization. --- examples/3d-bomberman/3d-bomberman.json | 263 +++++++----------------- 1 file changed, 71 insertions(+), 192 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index be2ef9c57..8b681a8ad 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -3620,16 +3620,6 @@ "hasNewBombExploded", "True" ] - }, - { - "type": { - "value": "DebuggerTools::ConsoleLog" - }, - "parameters": [ - "\"------STEP-----\"", - "", - "" - ] } ] }, @@ -3678,6 +3668,15 @@ } ], "actions": [ + { + "type": { + "value": "AjoutObjConcern" + }, + "parameters": [ + "", + "Explosion" + ] + }, { "type": { "value": "Bomb::Explode" @@ -6843,34 +6842,6 @@ "lastChangeTimeStamp": 0, "name": "Check explosion collision", "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Wall", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" - ] - } - ] - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ @@ -34340,16 +34311,33 @@ "conditions": [ { "type": { - "value": "Bomb::IsExplosionAlreadyCreated" + "value": "Bomb::ExplosionBehavior::HasJustBeenCreated" }, "parameters": [ - "", "Explosion", "ExplosionBehavior", - "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)", - "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)", "" ] + }, + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Explosion", + "=", + "Bomb.X() + GetArgumentAsNumber(\"ExplosionDirectionX\") * 60 * Variable(iteration)" + ] + }, + { + "type": { + "value": "PosY" + }, + "parameters": [ + "Explosion", + "=", + "Bomb.Y() + GetArgumentAsNumber(\"ExplosionDirectionY\") * 60 * Variable(iteration)" + ] } ], "actions": [ @@ -34366,17 +34354,7 @@ }, { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SceneVariableAsBoolean" - }, - "parameters": [ - "isExplosionAlreadyCreated", - "=" - ] - } - ], + "conditions": [], "actions": [ { "type": { @@ -34390,30 +34368,6 @@ "\"\"" ] }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "ParticleEmitter", - "Explosion.CenterX()", - "Explosion.CenterY()", - "\"\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "ParticleEmitter", - "Explosion.CenterX() - GetArgumentAsNumber(\"ExplosionDirectionX\") * 30", - "Explosion.CenterY() - GetArgumentAsNumber(\"ExplosionDirectionY\") * 30", - "\"\"" - ] - }, { "type": { "value": "ModVarObjet" @@ -34457,6 +34411,46 @@ } ], "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "isExplosionAlreadyCreated", + "=" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "ParticleEmitter", + "Explosion.CenterX()", + "Explosion.CenterY()", + "\"\"" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "ParticleEmitter", + "Explosion.CenterX() - GetArgumentAsNumber(\"ExplosionDirectionX\") * 30", + "Explosion.CenterY() - GetArgumentAsNumber(\"ExplosionDirectionY\") * 30", + "\"\"" + ] + } + ] + }, { "type": "BuiltinCommonInstructions::Comment", "color": { @@ -34567,111 +34561,6 @@ } ], "objectGroups": [] - }, - { - "fullName": "Explosion already created", - "functionType": "Condition", - "name": "IsExplosionAlreadyCreated", - "private": true, - "sentence": "_PARAM1_ already created at _PARAM3_ ; _PARAM4_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Bomb::ExplosionBehavior::HasJustBeenCreated" - }, - "parameters": [ - "Explosion", - "ExplosionBehavior", - "" - ] - }, - { - "type": { - "value": "PosX" - }, - "parameters": [ - "Explosion", - "=", - "GetArgumentAsNumber(\"PositionX\")" - ] - }, - { - "type": { - "value": "PosY" - }, - "parameters": [ - "Explosion", - "=", - "GetArgumentAsNumber(\"PositionY\")" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - }, - { - "type": { - "value": "DebuggerTools::ConsoleLog" - }, - "parameters": [ - "\"Exists at: \" + GetArgumentAsString(\"PositionX\") + \" \" + GetArgumentAsString(\"PositionY\")", - "", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Explosion", - "conditions": [], - "actions": [ - { - "type": { - "value": "DebuggerTools::ConsoleLog" - }, - "parameters": [ - "GetArgumentAsString(\"PositionX\") + \" \" + GetArgumentAsString(\"PositionY\") + \" = \" + ToString(Explosion.X()) + \" \" + ToString(Explosion.Y())", - "", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Explosion", - "name": "Explosion", - "type": "objectList" - }, - { - "description": "Explosion", - "name": "ExplosionBehavior", - "supplementaryInformation": "Bomb::ExplosionBehavior", - "type": "behavior" - }, - { - "description": "Position on X axis", - "name": "PositionX", - "type": "expression" - }, - { - "description": "Position on Y axis", - "name": "PositionY", - "type": "expression" - } - ], - "objectGroups": [] } ], "eventsBasedBehaviors": [ @@ -35070,16 +34959,6 @@ "parameters": [ "True" ] - }, - { - "type": { - "value": "DebuggerTools::ConsoleLog" - }, - "parameters": [ - "\"Just created\"", - "", - "" - ] } ] } From 9486133c157f93585fbaabe69d019fba98ecad87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Tue, 5 Sep 2023 23:53:58 +0200 Subject: [PATCH 39/53] Update bonus asset. --- examples/3d-bomberman/3d-bomberman.json | 8 ++++---- examples/3d-bomberman/assets/BombeBonus-1.png | Bin 947 -> 0 bytes examples/3d-bomberman/assets/BombeBonus.png | Bin 0 -> 1206 bytes 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 examples/3d-bomberman/assets/BombeBonus-1.png create mode 100644 examples/3d-bomberman/assets/BombeBonus.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 8b681a8ad..004f56d9e 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -103,10 +103,10 @@ "resources": [ { "alwaysLoaded": false, - "file": "assets/BombeBonus-1.png", + "file": "assets/BombeBonus.png", "kind": "image", "metadata": "", - "name": "BombeBonus-1.png", + "name": "BombeBonus.png", "smoothed": true, "userAdded": true }, @@ -2075,7 +2075,7 @@ "depth": 0.01, "enableTextureTransparency": true, "facesOrientation": "Y", - "frontFaceResourceName": "BombeBonus-1.png", + "frontFaceResourceName": "BombeBonus.png", "backFaceResourceName": "", "backFaceUpThroughWhichAxisRotation": "X", "leftFaceResourceName": "", @@ -35069,7 +35069,7 @@ "parameters": [ "Bonus", "\"front\"", - "BombeBonus-1.png" + "BombeBonus.png" ] } ] diff --git a/examples/3d-bomberman/assets/BombeBonus-1.png b/examples/3d-bomberman/assets/BombeBonus-1.png deleted file mode 100644 index 4e01ff1068a5c672efc6de5502c93f3098d908c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947 zcmV;k15EshP)r zjIj$}2IjKg&-;GgoA+in0XoxREh`}oU?qTrHS&oA=xV0^SQ<14HBf3#g>ri_R2J-5 z698~0cRRF;E$~8^f>wJ3s>CS-Xs~PozK-;?(FYkN?yiiwiJoj1NCH3zMN#ijS49P? zg z!E^wpvp2=veYkR_HknTsPGa$NbmU(N5opG1t?&+RiFHt&lW1B3e*fTZpKs_U@jLq& z86lqTLt1r!47V{toV~uWff|RykvyM-*bUc(GPrCXgL2`9>CXYl>*!NBg{b5Jc%S8g z^yVzg-Qxs&p23beBTWT+ps_FsE(trKOsFy)!0&TBrsNAS;({O@g-~z|Ld*k?e)hiP|9sDqTM1Pr=P7YT=IgRhTqZ!t z$WPAcQA+_R3Oh4nP>R+hD(b@exFPsQeYC3vfr_=%WG0Y5`CWO##4FN7TW5 zRH_=-Z#V$dv9dI6w@v6AZy1Hg4ZPe=2=YZS~h3;-i9*BbyU zS!7%SoIcV$0ZyxpOu(ai0y2GWWC9bq18_QI2mpXHF$U%}5kmm*p_3XTfJuWA7~2#h zfS{3cU_1uP=m*09aLIcTgH_15w-UIKyP$spEY~oAa5%gLkA)!}0Y-2yw9(+*C@azL zDa=lqb)eB?981z^XtL2R;lo^Gjn%ge{VB$ zX3qC>&hIzp_d7F6KAb6xV$+Or8}$I@(1XIdoEiA9A3{aLkae1$>*5W84QgK!prvWJPh++;Jnqg+6c2*XqXEcNwPE z0AIBW^^VZ-E7*3nK5LnagD`9X769N)dV_{PEY|NX@$w_j)N~^3xHw#?&LDgQxdY?G>!UPF7va`U+wR=dTW*ojkCOkR>nCh&acBper)M< zHD=rH%1G2UAb;sxKA*++14?cMZ5*=wq%|5`CSw1|D~PdrxWrj^!>9 zQQLv+mDemQgH_$*@+fxNwtw%yfc0hKF621w?OVsJoi>CyVzIE z0FC3rr9fQ@xQ Date: Tue, 5 Sep 2023 21:56:56 +0000 Subject: [PATCH 40/53] Optimised images with calibre/image-actions --- examples/3d-bomberman/assets/BombeBonus.png | Bin 1206 -> 962 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/3d-bomberman/assets/BombeBonus.png b/examples/3d-bomberman/assets/BombeBonus.png index 614333ca7bc56db33ffca3e7031596bb58e5175f..79e0677a1eccd539bcbf77559516e3378ba92f05 100644 GIT binary patch delta 920 zcmV;J184lU3Bm`EIDZ3lNkl&x?6Lr6GTDr zMMax-178FO3gU}HVTg!houDtGc*EPAP7xIZTYM1Q!*mSADGt0nh+3zDI)!<6;y%CA z%e115VNTLQ3qNSn(C`1tcbc4&HV+~KWHWg=flLzcdcAqsKz~kvNvPJ=Nm(fX9ih3< zsrSIHU?a2z_dvM8lNADRKC~3B>QCUl4saPcjI`@VGPVPQk@ESmh^H$Sb>IEiy>J+Y zF!0+XcadZI2pkQr0LaVFIDuzTPg^YN8AX8dy?@!S@RT=5H*y>$Izy{7N&t`es$}rb zPb1}<1}}O=xPQ9*R9XifBiE55NH`dU)`o(N5O^7tr(*C|ae;`ZF)c(-a3CK3B{G1V zL=NgVpe;~qc?XJ$rWM=mGgcnl%w446`@3BCY&M%cEyT$N2lV2Qxf~pU(-?lY-V2?9 zW;nfMhGhZ{$4uEJ6kn;TEPE&UIOywe$H#nAhyZRIc7F>c*BqsV3&(<-2(;iSbR%pJ zbU|3}v-~>1Ig7fbTJDD`6QJza;DQ5NT#$N=QlmUK>-JcXLu)6)xrPFI=7Dga*-`;b zD=&1rN_wijcBm{bO;C{zb^$!@**EFF88elrsVSbO$)p93@GuRTI@6h-t|BA_UI2m^fjGh|JbJuzf3Xhmu$ zC5KZrzV{cgPpU+8Qw21MpNECNjW=8-zzB9?fhhu-=HykGA2Kj}iq}3L?_@53g)T4% zpF}vvQ~<}lhJ{Ai36N3EC)P6)z$0{)VfX|RIe)`MKorF(Sl~T#0jxo587|bkdbsUF9zA_Z}BFn_Vb~-JQ zU4P8Jyb{@I#)76mk;wo9fje}4ZOV#_E3>nDtN*W`9J9z`}&hIzp_d7F6KAb6xV$+Or8}$I@(1XIdoEiA9A3{aLkae1$>6H-yX9<|9J}wrIs6wGhMpO)Z(p=dTDcO%=HK- z&gBCtEdU5>maQ{(UA*%1>SF8cn<>aG_=5n)feHta=zoR6?xX!Roq_J|lT&(o&pp=m zP0tQsa`&H6=lnI@-(J?}lwQtH1azo?B5;8N*s_zE<acBper)MZ5*=wq%|5`CSw1|D~P zdrxWrj^!>9QQLv+mDemQgH_$*@+fxNwtw%yfc0hKF621S zPdxWlEW6lO%m9t!!=*r73gtsxLqoJAc7RZrm0GKNJMvf6QIt=KLg0Q^z=(t>;RFH_J8y|h>q9+4j(>w5a>!l{<%YkPJ9$+uq=NFtzr zELTdK(x{31!$=+kev5JJd(h^JFq~LQrKm5L^QV--65v=2>VH8SOI}QWLfZ^F+uK9~(Ii8OT00000Ne4wvM6N<$f};sM9smFU From 19d83765d6428b331ceaa5fe120740cd1c754fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 16:12:43 +0200 Subject: [PATCH 41/53] Update level selection assets. --- examples/3d-bomberman/3d-bomberman.json | 862 +++--------------- examples/3d-bomberman/assets/Bulle.png | Bin 144 -> 0 bytes examples/3d-bomberman/assets/ClassicLevel.png | Bin 0 -> 96008 bytes examples/3d-bomberman/assets/EmptyLevel.png | Bin 0 -> 68939 bytes examples/3d-bomberman/assets/Fleche.png | Bin 168 -> 0 bytes examples/3d-bomberman/assets/NewObject.png | Bin 0 -> 203 bytes 6 files changed, 134 insertions(+), 728 deletions(-) delete mode 100644 examples/3d-bomberman/assets/Bulle.png create mode 100644 examples/3d-bomberman/assets/ClassicLevel.png create mode 100644 examples/3d-bomberman/assets/EmptyLevel.png delete mode 100644 examples/3d-bomberman/assets/Fleche.png create mode 100644 examples/3d-bomberman/assets/NewObject.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 004f56d9e..f26d88cc4 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -112,40 +112,22 @@ }, { "alwaysLoaded": false, - "file": "assets/NiveauClassique.png", + "file": "assets/ClassicLevel.png", "kind": "image", "metadata": "", - "name": "NiveauClassique.png", + "name": "ClassicLevel.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/NiveauVide.png", + "file": "assets/EmptyLevel.png", "kind": "image", "metadata": "", - "name": "NiveauVide.png", + "name": "EmptyLevel.png", "smoothed": true, "userAdded": false }, - { - "alwaysLoaded": false, - "file": "assets/Bulle.png", - "kind": "image", - "metadata": "", - "name": "Bulle.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/Fleche.png", - "kind": "image", - "metadata": "", - "name": "Fleche.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/JoueurSelectionMask.png", @@ -391,6 +373,15 @@ "name": "assets\\SoilCorner.png", "smoothed": true, "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/NewObject.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "NewObject", + "smoothed": true, + "userAdded": false } ], "resourceFolders": [] @@ -4639,7 +4630,7 @@ "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", "width": 128, "x": 384, - "y": 192, + "y": 160, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4655,7 +4646,7 @@ "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", "width": 128, "x": 576, - "y": 192, + "y": 160, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4671,7 +4662,7 @@ "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", "width": 128, "x": 768, - "y": 192, + "y": 160, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4685,8 +4676,8 @@ "name": "ClassicLevel", "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", "width": 0, - "x": 384, - "y": 416, + "x": 122, + "y": 414, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -4700,7 +4691,7 @@ "name": "EmptyLevel", "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", "width": 0, - "x": 692, + "x": 800, "y": 416, "zOrder": 5, "numberProperties": [], @@ -4716,7 +4707,7 @@ "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", "width": 0, "x": 764, - "y": 240, + "y": 208, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4731,7 +4722,7 @@ "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", "width": 0, "x": 585, - "y": 240, + "y": 208, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4746,7 +4737,7 @@ "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", "width": 0, "x": 609, - "y": 228, + "y": 196, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4761,7 +4752,7 @@ "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", "width": 0, "x": 788, - "y": 228, + "y": 196, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4776,7 +4767,7 @@ "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", "width": 0, "x": 633, - "y": 216, + "y": 184, "zOrder": 13, "numberProperties": [], "stringProperties": [], @@ -4791,7 +4782,7 @@ "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", "width": 0, "x": 812, - "y": 216, + "y": 184, "zOrder": 13, "numberProperties": [], "stringProperties": [], @@ -4806,7 +4797,7 @@ "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", "width": 0, "x": 832, - "y": 204, + "y": 172, "zOrder": 12, "numberProperties": [], "stringProperties": [], @@ -4815,13 +4806,13 @@ { "angle": 0, "customSize": true, - "depth": 0, - "height": 160, + "depth": 1, + "height": 224, "layer": "", "name": "Controls", "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", - "width": 128, - "x": 992, + "width": 192, + "x": 544, "y": 416, "zOrder": 21, "numberProperties": [], @@ -4837,7 +4828,7 @@ "persistentUuid": "39330ce0-708f-400e-9cbe-93a810f37c84", "width": 0, "x": 406, - "y": 241, + "y": 209, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4852,7 +4843,7 @@ "persistentUuid": "2c6334f5-2b8d-41d3-853b-007a9df4bb6e", "width": 0, "x": 426, - "y": 229, + "y": 197, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4866,12 +4857,44 @@ "name": "Controls2", "persistentUuid": "2febaeab-ceed-4d24-9a94-9e5c97de2473", "width": 0, - "x": 1088, + "x": 654, "y": 416, "zOrder": 22, "numberProperties": [], "stringProperties": [], "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 1, + "height": 288, + "layer": "", + "name": "DarkBackground", + "persistentUuid": "8ea97105-1b13-4bd1-9d9b-c0bb7bd19c04", + "width": 416, + "x": 96, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 1, + "height": 288, + "layer": "", + "name": "DarkBackground", + "persistentUuid": "d8ab7ddb-21d1-4522-af28-890e7e65738e", + "width": 416, + "x": 768, + "y": 384, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] } ], "objects": [ @@ -5039,7 +5062,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "NiveauClassique.png", + "image": "ClassicLevel.png", "points": [], "originPoint": { "name": "origine", @@ -5097,7 +5120,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "NiveauVide.png", + "image": "EmptyLevel.png", "points": [], "originPoint": { "name": "origine", @@ -5182,6 +5205,49 @@ } ] }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "DarkBackground", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "NewObject", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "NewObject", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -5407,11 +5473,11 @@ "string": "arrows\nESDF\nIJKL\n8456\n\nor gamepads", "font": "", "textAlignment": "", - "characterSize": 20, + "characterSize": 30, "color": { - "b": 46, - "g": 56, - "r": 26 + "b": 194, + "g": 212, + "r": 157 } }, { @@ -5429,11 +5495,11 @@ "string": "RShift\nLShift\nH\n0", "font": "", "textAlignment": "", - "characterSize": 20, + "characterSize": 30, "color": { - "b": 46, - "g": 56, - "r": 26 + "b": 194, + "g": 212, + "r": 157 } } ], @@ -6148,692 +6214,32 @@ "effects": [] } ], - "behaviorsSharedData": [] - }, - { - "b": 0, - "disableInputWhenNotFocused": true, - "mangledName": "Capture", - "name": "Capture", - "r": 0, - "standardSortMethod": true, - "stopSoundsOnStartup": true, - "title": "", - "v": 255, - "uiSettings": { - "grid": false, - "gridType": "rectangular", - "gridWidth": 32, - "gridHeight": 32, - "gridOffsetX": 0, - "gridOffsetY": 0, - "gridColor": 10401023, - "gridAlpha": 0.8, - "snap": false, - "zoomFactor": 0.5653158055126306, - "windowMask": false - }, - "objectsGroups": [ + "behaviorsSharedData": [ { - "name": "Bunny", - "objects": [ - { - "name": "BlueBunny" - }, - { - "name": "PurpleBunny" - }, - { - "name": "OrangeBunny" - }, - { - "name": "PinkBunny" - } - ] - } - ], - "variables": [], - "instances": [ + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" + }, { - "angle": 0, - "customSize": false, - "height": 0, - "layer": "", - "name": "BlueBunny", - "persistentUuid": "1b15ce40-b157-434e-9991-7ee6a561992a", - "width": 0, - "x": 581, - "y": 355, - "zOrder": 1, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - } - ], - "objects": [ + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, { - "adaptCollisionMaskAutomatically": true, - "assetStoreId": "", - "name": "NewSprite", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [] + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" }, { - "assetStoreId": "", - "name": "BlueBunny", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "Basic", - "modelResourceName": "assets\\BlueBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } - }, - { - "assetStoreId": "", - "name": "PurpleBunny", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "Basic", - "modelResourceName": "assets\\PurpleBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" }, { - "assetStoreId": "", - "name": "OrangeBunny", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "Basic", - "modelResourceName": "assets\\OrangeBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" }, { - "assetStoreId": "", - "name": "PinkBunny", - "tags": "", - "type": "Scene3D::Model3DObject", - "variables": [], - "effects": [], - "behaviors": [], - "content": { - "centerLocation": "ObjectCenter", - "depth": 120, - "height": 120, - "keepAspectRatio": true, - "materialType": "Basic", - "modelResourceName": "assets\\PinkBunny.glb", - "originLocation": "ModelOrigin", - "rotationX": 90, - "rotationY": 0, - "rotationZ": 90, - "width": 120, - "animations": [ - { - "loop": true, - "name": "Idle", - "source": "Idle" - }, - { - "loop": true, - "name": "Run", - "source": "Run" - }, - { - "loop": false, - "name": "Death", - "source": "Death" - }, - { - "loop": false, - "name": "Duck", - "source": "Duck" - }, - { - "loop": false, - "name": "HitReact", - "source": "HitReact" - }, - { - "loop": false, - "name": "Idle_Gun", - "source": "Idle_Gun" - }, - { - "loop": false, - "name": "Idle_Shoot", - "source": "Idle_Shoot" - }, - { - "loop": false, - "name": "Jump", - "source": "Jump" - }, - { - "loop": false, - "name": "Jump_Idle", - "source": "Jump_Idle" - }, - { - "loop": false, - "name": "Jump_Land", - "source": "Jump_Land" - }, - { - "loop": false, - "name": "No", - "source": "No" - }, - { - "loop": false, - "name": "Punch", - "source": "Punch" - }, - { - "loop": false, - "name": "Run_Gun", - "source": "Run_Gun" - }, - { - "loop": false, - "name": "Run_Shoot", - "source": "Run_Shoot" - }, - { - "loop": false, - "name": "Walk", - "source": "Walk" - }, - { - "loop": false, - "name": "Walk_Gun", - "source": "Walk_Gun" - }, - { - "loop": false, - "name": "Wave", - "source": "Wave" - }, - { - "loop": false, - "name": "Yes", - "source": "Yes" - } - ] - } - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Bunny", - "=", - "90" - ] - } - ], - "events": [ - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationX" - }, - "parameters": [ - "Bunny", - "=", - "90" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::SetRotationY" - }, - "parameters": [ - "Bunny", - "=", - "-90" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Scene3D::Model3DObject::Scale" - }, - "parameters": [ - "Bunny", - "=", - "3" - ] - }, - { - "type": { - "value": "Scene3D::Model3DObject::SetScaleZ" - }, - "parameters": [ - "Bunny", - "=", - "3" - ] - }, - { - "type": { - "value": "SetCenter" - }, - "parameters": [ - "Bunny", - "=", - "SceneWindowWidth() / 2", - "=", - "SceneWindowHeight() / 2" - ] - }, - { - "type": { - "value": "Scene3D::PauseAnimation" - }, - "parameters": [ - "Bunny" - ] - } - ] - } - ] - } - ], - "layers": [ - { - "ambientLightColorB": 200, - "ambientLightColorG": 200, - "ambientLightColorR": 200, - "camera3DFarPlaneDistance": 10000, - "camera3DFieldOfView": 45, - "camera3DNearPlaneDistance": 0.1, - "followBaseLayerCamera": false, - "isLightingLayer": false, - "isLocked": false, - "name": "", - "renderingType": "", - "visibility": true, - "cameras": [ - { - "defaultSize": true, - "defaultViewport": true, - "height": 0, - "viewportBottom": 1, - "viewportLeft": 0, - "viewportRight": 1, - "viewportTop": 0, - "width": 0 - } - ], - "effects": [ - { - "effectType": "Scene3D::HemisphereLight", - "name": "3D Light", - "doubleParameters": { - "elevation": 45, - "intensity": 1, - "rotation": 0 - }, - "stringParameters": { - "groundColor": "64;64;64", - "skyColor": "255;255;255", - "top": "Y-" - }, - "booleanParameters": {} - } - ] + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" } - ], - "behaviorsSharedData": [] + ] } ], "externalEvents": [ diff --git a/examples/3d-bomberman/assets/Bulle.png b/examples/3d-bomberman/assets/Bulle.png deleted file mode 100644 index 78639240edb99e7dce135fae8d8d78b51868de87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oArNM~bhqvgP|(TK z#W5t~-rMtrybKH+%o~1wx0Fq2oW8`J)g<@%W)8w2Mt5_B{D*bBr}F_#WAJqKb6Mw< G&;$Tx5+4}= diff --git a/examples/3d-bomberman/assets/ClassicLevel.png b/examples/3d-bomberman/assets/ClassicLevel.png new file mode 100644 index 0000000000000000000000000000000000000000..1eea45a583d68afce6e844605c09dfb855a1afb9 GIT binary patch literal 96008 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/assets/EmptyLevel.png b/examples/3d-bomberman/assets/EmptyLevel.png new file mode 100644 index 0000000000000000000000000000000000000000..47a9c888d72bc6ea322b3ee7dc83bebe7872bbd5 GIT binary patch literal 68939 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ΞLX#%M8bcyoglZGaW5`ARjX#+z^p9 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 *=LrXGfj0^2pbc{;)eLWV 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

    bSY-Xk9lC8|8!sX^grX;=GI2ZT_gY= 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

    N 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 Mr>mdKI;Vst0KauL+W-In diff --git a/examples/3d-bomberman/assets/NewObject.png b/examples/3d-bomberman/assets/NewObject.png new file mode 100644 index 0000000000000000000000000000000000000000..5787e6df246447b625b346b86b2343e259deccab GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|T0LDHLn`9l zUS||!P~c%UOye}nIIy2l;FF_Mzv=ax-}i{tDKpp~;C#_gz^ Date: Sat, 9 Sep 2023 14:16:39 +0000 Subject: [PATCH 42/53] Optimised images with calibre/image-actions --- examples/3d-bomberman/assets/NewObject.png | Bin 203 -> 180 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/3d-bomberman/assets/NewObject.png b/examples/3d-bomberman/assets/NewObject.png index 5787e6df246447b625b346b86b2343e259deccab..e64659d07f1925dde552f139cea5dcb51a9b8baf 100644 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GGLLkg|>2BR0pkSJ( zi(^Q|t+y8(1sNDv7z}2%OmzIu^rYZhM5Alj*>pvR1_nkZ77hUgN*H&xU+eyO_{k16 QPoRwqp00i_>zopr01TrkWB>pF delta 175 zcmdnOc$#s7NGZx^prw85kH^JzX3_D&pQ=XB1>m;9)jQ<21}Tu%A)jlcQ6= z>Ghl6_lVXhGuR*Ce9=(AuBYn3$Q97QB*LNI;K-9C&@92DoWPR^q>m`D8A|vuKpAca zq(A~4Ks5$)7@&-v22+rLK(mI#kpv4yu=XPf5{%gb&82Mi+0HeL@==RCfi7b3boFyt I=akR{0IKsdrvLx| From 1f13bc0607291334140a6decd1a03e7d3954db1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 17:36:13 +0200 Subject: [PATCH 43/53] Remove useless things. --- examples/3d-bomberman/3d-bomberman.json | 5951 +++++++---------------- 1 file changed, 1858 insertions(+), 4093 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index f26d88cc4..26bb27c71 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -2797,25 +2797,6 @@ } ], "events": [ - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetCameraCenterY" - }, - "parameters": [ - "", - "=", - "685", - "", - "" - ] - } - ] - }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], @@ -4545,7 +4526,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": true, - "zoomFactor": 0.5625471506961698, + "zoomFactor": 0.6213954974393143, "windowMask": false }, "objectsGroups": [ @@ -4561,64 +4542,7 @@ ] } ], - "variables": [ - { - "name": "Messages", - "type": "structure", - "children": [ - { - "name": "0", - "type": "string", - "value": "Ça me gave.\nChoose a level." - }, - { - "name": "1", - "type": "string", - "value": "Hé ouais, 2 niveaux.\nÇa te cloue le bec !" - }, - { - "name": "2", - "type": "string", - "value": "Là, l'oie, c'est moi !\nChoose a level." - }, - { - "name": "3", - "type": "string", - "value": "Ça casse pas 3 pattes à un canard.\nChoose a level." - }, - { - "name": "4", - "type": "string", - "value": "Me vole pas dans les plumes.\nChoose a level." - }, - { - "name": "5", - "type": "string", - "value": "Prêt à canarder ?\nChoose a level." - }, - { - "name": "6", - "type": "string", - "value": "L'oisiveté, hein ?\nChoose a level." - }, - { - "name": "7", - "type": "string", - "value": "Dépêche, fait un froid de canard.\nChoose a level." - }, - { - "name": "8", - "type": "string", - "value": "What's up, duck?\nChoose a level." - }, - { - "name": "9", - "type": "string", - "value": "Fais-moi signe.\nChoose a level." - } - ] - } - ], + "variables": [], "instances": [ { "angle": 0, @@ -5141,70 +5065,6 @@ } ] }, - { - "assetStoreId": "", - "bold": false, - "italic": false, - "name": "Message", - "smoothed": true, - "tags": "", - "type": "TextObject::Text", - "underlined": false, - "variables": [], - "effects": [], - "behaviors": [], - "string": "Bla, bla.\nBla, bla.", - "font": "", - "textAlignment": "", - "characterSize": 32, - "color": { - "b": 0, - "g": 0, - "r": 0 - } - }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Bubble", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "NewObject", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "Bulle.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -5248,48 +5108,6 @@ } ] }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Arrow", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ - { - "name": "NewObject", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "Fleche.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", @@ -5896,466 +5714,179 @@ } ], "parameters": [] + } + ], + "layers": [ + { + "ambientLightColorB": 8099672, + "ambientLightColorG": 8127688, + "ambientLightColorR": 8867392, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "2d", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + } + ], + "behaviorsSharedData": [ + { + "name": "Animation", + "type": "AnimatableCapability::AnimatableBehavior" }, { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Bubble messages", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "name": "Effect", + "type": "EffectCapability::EffectBehavior" + }, + { + "name": "Flippable", + "type": "FlippableCapability::FlippableBehavior" + }, + { + "name": "Opacity", + "type": "OpacityCapability::OpacityBehavior" + }, + { + "name": "Resizable", + "type": "ResizableCapability::ResizableBehavior" + }, + { + "name": "Scale", + "type": "ScalableCapability::ScalableBehavior" + } + ] + } + ], + "externalEvents": [ + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Check explosion collision", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Explosion", + "Crate", + "", + "", + "" ] - }, + } + ], + "actions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Visible" - }, - "parameters": [ - "Message" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "Narrator", - "", - "", - "" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "Bubble", - "", - "", - "" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "10", - "\"ChangeBuble\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "Message" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "Bubble" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "Arrow" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"ShowBuble\"" - ] - }, - { - "type": { - "value": "UnPauseTimer" - }, - "parameters": [ - "", - "\"ShowBuble\"" - ] - } - ] - } + "type": { + "value": "Wait" + }, + "parameters": [ + "1" ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Random bonus creation" }, { - "type": "BuiltinCommonInstructions::Standard", + "type": "BuiltinCommonInstructions::ForEach", + "object": "Crate", "conditions": [ { "type": { - "value": "Timer" - }, - "parameters": [ - "", - "1", - "\"ShowBuble\"" - ] - }, - { - "type": { - "inverted": true, - "value": "TimerPaused" + "value": "Egal" }, "parameters": [ - "", - "\"ShowBuble\"" + "RandomInRange(1, 4)", + "<=", + "4" ] } ], "actions": [ { "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Message", - "=", - "VariableString(Messages[ToString(RandomInRange(0, VariableChildCount(Messages) - 1))])" - ] - }, - { - "type": { - "value": "Montre" + "value": "Player::CreateBonus" }, "parameters": [ - "Message", + "", + "Bonus", + "Crate.X()", + "Crate.Y()", + "RandomInRange(1,2)", "" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { - "value": "Montre" + "value": "Delete" }, "parameters": [ - "Bubble", + "Explosion", "" ] }, { "type": { - "value": "Montre" + "value": "Delete" }, "parameters": [ - "Arrow", + "Crate", "" ] - }, - { - "type": { - "value": "PauseTimer" - }, - "parameters": [ - "", - "\"ShowBuble\"" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"ChangeBuble\"" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "NeedToChangeMessage", - "=", - "0" - ] } ] } - ], - "parameters": [] - } - ], - "layers": [ - { - "ambientLightColorB": 8099672, - "ambientLightColorG": 8127688, - "ambientLightColorR": 8867392, - "camera3DFarPlaneDistance": 10000, - "camera3DFieldOfView": 45, - "camera3DNearPlaneDistance": 0.1, - "followBaseLayerCamera": false, - "isLightingLayer": false, - "isLocked": false, - "name": "", - "renderingType": "", - "visibility": true, - "cameras": [ - { - "defaultSize": true, - "defaultViewport": true, - "height": 0, - "viewportBottom": 1, - "viewportLeft": 0, - "viewportRight": 1, - "viewportTop": 0, - "width": 0 - } - ], - "effects": [] - } - ], - "behaviorsSharedData": [ - { - "name": "Animation", - "type": "AnimatableCapability::AnimatableBehavior" - }, - { - "name": "Effect", - "type": "EffectCapability::EffectBehavior" - }, - { - "name": "Flippable", - "type": "FlippableCapability::FlippableBehavior" - }, - { - "name": "Opacity", - "type": "OpacityCapability::OpacityBehavior" - }, - { - "name": "Resizable", - "type": "ResizableCapability::ResizableBehavior" - }, - { - "name": "Scale", - "type": "ScalableCapability::ScalableBehavior" - } - ] - } - ], - "externalEvents": [ - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Check explosion collision", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Explosion", - "Crate", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Wait" - }, - "parameters": [ - "1" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Random bonus creation" - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Crate", - "conditions": [ - { - "type": { - "value": "Egal" - }, - "parameters": [ - "RandomInRange(1, 4)", - "<=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::CreateBonus" - }, - "parameters": [ - "", - "Bonus", - "Crate.X()", - "Crate.Y()", - "RandomInRange(1,2)", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The crate is removed after because its location is used to create the bonus." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] - } - ] - } - ] - }, + ] + }, { "type": "BuiltinCommonInstructions::Comment", "color": { @@ -11732,133 +11263,306 @@ "eventsBasedObjects": [] }, { - "author": "", - "category": "Visual effect", + "author": "D8H", + "category": "Movement", "extensionNamespace": "", - "fullName": "3D Billboard", + "fullName": "Stick objects to others", "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXBpbmUtdHJlZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMCwyMVYxOEgzTDgsMTNINUwxMCw4SDdMMTIsM0wxNyw4SDE0TDE5LDEzSDE2TDIxLDE4SDE0VjIxSDEwWiIgLz48L3N2Zz4=", - "name": "Billboard", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/b46f9cf1fc6b0ef59a461c7831003d1fb091137cbedbae876774f40f8b7dea97_pine-tree.svg", - "shortDescription": "Rotate 3D objects to appear like 2D sprites.", - "version": "1.0.0", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN0aWNrZXItb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik01LjUgMkMzLjYgMiAyIDMuNiAyIDUuNVYxOC41QzIgMjAuNCAzLjYgMjIgNS41IDIySDE2TDIyIDE2VjUuNUMyMiAzLjYgMjAuNCAyIDE4LjUgMkg1LjVNNS44IDRIMTguM0MxOS4zIDQgMjAuMSA0LjggMjAuMSA1LjhWMTVIMTguNkMxNi43IDE1IDE1LjEgMTYuNiAxNS4xIDE4LjVWMjBINS44QzQuOCAyMCA0IDE5LjIgNCAxOC4yVjUuOEM0IDQuOCA0LjggNCA1LjggNCIgLz48L3N2Zz4=", + "name": "Sticker", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sticker-outline.svg", + "shortDescription": "Make objects follow the position and rotation of the object they are stuck to.", + "version": "0.4.0", "description": [ - "Rotate 3D objects to make them face the camera and appear like 2D sprite.", + "This extension can be useful to:", + "* Stick accessories to moving objects", + "* Animate a skeleton", + "* Delete an object with another one", "", - "The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game))." + "An example allows to check it out ([open the project online](https://editor.gdevelop.io/?project=example://stick-objects))." ], "origin": { - "identifier": "Billboard", + "identifier": "Sticker", "name": "gdevelop-extension-store" }, "tags": [ - "3d" + "sticker", + "stick", + "follow", + "skeleton", + "joint", + "pin", + "bind", + "glue", + "tie", + "attach", + "hold", + "paste", + "wear" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], - "eventsFunctions": [], + "eventsFunctions": [ + { + "description": "Check if the object is stuck to another object.", + "fullName": "Is stuck to another object", + "functionType": "Condition", + "name": "IsStuck", + "sentence": "_PARAM1_ is stuck to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const stickerBehaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "/** @type {Hashtable} */", + "const stickerObjectsLists = eventsFunctionContext.getObjectsLists(\"Object\");", + "/** @type {Hashtable} */", + "const basisObjectsLists = eventsFunctionContext.getObjectsLists(\"BasisObject\");", + "", + "eventsFunctionContext.returnValue = gdjs.evtTools.object.twoListsTest(", + " (stickerObject, basisObject, stickerBehaviorName) => {", + " const behavior = stickerObject.getBehavior(stickerBehaviorName);", + " return behavior.basisObject === basisObject;", + " },", + " stickerObjectsLists,", + " basisObjectsLists,", + " false,", + " stickerBehaviorName", + ");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Sticker", + "name": "Object", + "type": "objectList" + }, + { + "description": "Sticker behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + }, + { + "description": "Basis", + "name": "BasisObject", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], "eventsBasedBehaviors": [ { - "description": "Rotate to always face the camera (only the front face of the cube should be enabled).", - "fullName": "Billboard", - "name": "Billboard", - "objectType": "Scene3D::Cube3DObject", + "description": "Stick the object to another. Use the action to stick the object, or unstick it later.", + "fullName": "Sticker", + "name": "Sticker", + "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", - "name": "doStepPreEvents", + "name": "onCreated", "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::EnableTransparency" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "// Set up the scene sticker objects list - if not done already.", + "runtimeScene.__allStickers = runtimeScene.__allStickers || new Set();", + "", + "// Set up the behavior extra methods - if not done already.", + "const prototype = Object.getPrototypeOf(behavior);", + "if (!prototype.updateRelativeCoordinates) {", + " // Unstick from deleted objects.", + " gdjs.registerObjectDeletedFromSceneCallback(function (runtimeScene, deletedObject) {", + " const allStickers = runtimeScene.__allStickers;", + " if (!allStickers) return;", + "", + " for (const sticker of allStickers) {", + " if (sticker.basisObject === deletedObject) {", + " if (sticker._getIsDestroyedWithParent()) {", + " sticker.owner.deleteFromScene(runtimeScene);", + " }", + " sticker.basisObject = null;", + " }", + " }", + " });", + "", + " /**", + " * Update the coordinates in the basisObject basis.", + " * ", + " * It uses the basisObject coordinates from the previous frame.", + " * This way, the sticker can move relatively to it and still", + " * follow basisObject.", + " * ", + " * @param {gdjs.RuntimeObject} basisObject", + " */", + " prototype.updateRelativeCoordinates = function (basisObject) {", + " const object = this.owner;", + "", + " // Update relative coordinates", + " this.relativeX = object.getX() - this.basisOldX;", + " this.relativeY = object.getY() - this.basisOldY;", + " if (!this._getOnlyFollowPosition()) {", + " this.relativeAngle = object.getAngle() - this.basisOldAngle;", + " this.relativeWidth = object.getWidth() / this.basisOldWidth;", + " this.relativeHeight = object.getHeight() / this.basisOldHeight;", + " const deltaX = object.getCenterXInScene() - this.basisOldCenterXInScene;", + " const deltaY = object.getCenterYInScene() - this.basisOldCenterYInScene;", + " const angle = this.basisOldAngle * Math.PI / 180;", + " this.relativeRotatedX = (deltaX * Math.cos(angle) + deltaY * Math.sin(angle)) / this.basisOldWidth;", + " this.relativeRotatedY = (-deltaX * Math.sin(angle) + deltaY * Math.cos(angle)) / this.basisOldHeight;", + "", + " // Save initial values to avoid calculus and rounding errors", + " this.basisOriginalWidth = basisObject.getWidth();", + " this.basisOriginalHeight = basisObject.getHeight();", + " this.basisOriginalAngle = basisObject.getAngle();", + " }", + " }", + "", + " /**", + " * Copy the coordinates to use it the next frame.", + " * @param basisObject {gdjs.RuntimeObject}", + " */", + " prototype.updateOldCoordinates = function (basisObject) {", + " const object = this.owner;", + "", + " this.ownerOldX = object.getX();", + " this.ownerOldY = object.getY();", + "", + " this.basisOldX = basisObject.getX();", + " this.basisOldY = basisObject.getY();", + "", + " if (!this._getOnlyFollowPosition()) {", + " this.ownerOldAngle = object.getAngle();", + " this.ownerOldWidth = object.getWidth();", + " this.ownerOldHeight = object.getHeight();", + "", + " this.basisOldAngle = basisObject.getAngle();", + " this.basisOldWidth = basisObject.getWidth();", + " this.basisOldHeight = basisObject.getHeight();", + " this.basisOldCenterXInScene = basisObject.getCenterXInScene();", + " this.basisOldCenterYInScene = basisObject.getCenterYInScene();", + " }", + " }", + " /**", + " * Follow the basisObject (called in doStepPostEvents).", + " * ", + " * This method is also called by children to ensure", + " * parents are updated first.", + " */", + " prototype.followBasisObject = function () {", + " if (this.followingDoneThisFrame) {", + " return;", + " }", + " this.followingDoneThisFrame = true;", + " /** @type {gdjs.RuntimeObject} */", + " const basisObject = this.basisObject;", + " if (basisObject) {", + " // If the behavior on the basis object has a different name,", + " // the objects will still follow their basis objects", + " // but frame delays could happen.", + " if (basisObject.hasBehavior(behaviorName)) {", + " const basisBehavior = basisObject.getBehavior(behaviorName);", + " if (basisBehavior.type === this.type) {", + " // Follow parents 1st to avoid frame delays", + " basisBehavior.followBasisObject();", + " }", + " }", + "", + " const object = this.owner;", + "", + " if (this._getOnlyFollowPosition()) {", + " if (object.getX() !== this.ownerOldX", + " || object.getY() !== this.ownerOldY) {", + " this.updateRelativeCoordinates(basisObject);", + " }", + "", + " if (this.basisOldX !== basisObject.getX() ||", + " this.basisOldY !== basisObject.getY()) {", + " object.setPosition(", + " basisObject.getX() + this.relativeX,", + " basisObject.getY() + this.relativeY);", + " }", + " } else {", + " if (object.getX() !== this.ownerOldX", + " || object.getY() !== this.ownerOldY", + " || object.getAngle() !== this.ownerOldAngle", + " || object.getWidth() !== this.ownerOldWidth", + " || object.getHeight() !== this.ownerOldHeight) {", + " this.updateRelativeCoordinates(basisObject);", + " }", + "", + " // Follow basisObject", + " if (basisObject.getAngle() === this.basisOriginalAngle && this.basisOriginalAngle === 0) {", + " if (basisObject.getWidth() === this.basisOriginalWidth ||", + " basisObject.getHeight() === this.basisOriginalHeight) {", + " if (this.basisOldX !== basisObject.getX() ||", + " this.basisOldY !== basisObject.getY()) {", + " object.setPosition(", + " basisObject.getX() + this.relativeX,", + " basisObject.getY() + this.relativeY);", + " }", + " } else {", + " object.setPosition(", + " basisObject.getX() + this.relativeRotatedX * basisObject.getWidth(),", + " basisObject.getY() + this.relativeRotatedY * basisObject.getHeight());", + " }", + " } else {", + " object.setAngle(basisObject.getAngle() + this.relativeAngle);", + "", + " const deltaX = this.relativeRotatedX * basisObject.getWidth();", + " const deltaY = this.relativeRotatedY * basisObject.getHeight();", + " const angle = -basisObject.getAngle() * Math.PI / 180;", + " object.setX(basisObject.getCenterXInScene() + object.getX() - object.getCenterXInScene() + deltaX * Math.cos(angle) + deltaY * Math.sin(angle));", + " object.setY(basisObject.getCenterYInScene() + object.getY() - object.getCenterYInScene() - deltaX * Math.sin(angle) + deltaY * Math.cos(angle));", + " }", + " // Unproportional dimensions changes won't work as expected", + " // if the object angle is not null but nothing more can be done", + " // because there is no full affine transformation on objects.", + " if (basisObject.getWidth() !== this.basisOriginalWidth) {", + " object.setWidth(this.relativeWidth * basisObject.getWidth());", + " }", + " if (basisObject.getHeight() !== this.basisOriginalHeight) {", + " object.setHeight(this.relativeHeight * basisObject.getHeight());", + " }", + " }", + "", + " this.updateOldCoordinates(basisObject);", + " }", + " }", + "}", + "", + "// Register this object as a sticker.", + "runtimeScene.__allStickers.add(behavior);", + "" ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Make the instance bottom center seen in the scene editor at the same position in the game after the instance is rotated." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyOffsetPositionMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Standing on Z axis\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "MettreY" - }, - "parameters": [ - "Object", - "+", - "Object.Height() / 2" - ] - }, - { - "type": { - "value": "Scene3D::Cube3DObject::SetZ" - }, - "parameters": [ - "Object", - "+", - "Object.Height() / 2" - ] - } - ] - } - ] + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" } ], @@ -11867,557 +11571,173 @@ { "fullName": "", "functionType": "Action", - "name": "doStepPostEvents", + "name": "doStepPreEvents", "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::FaceCamera" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Rotate the object to the camera. This is also done automatically at the end of the scene events.", - "fullName": "Rotate to face the camera", - "functionType": "Action", - "name": "FaceCamera", - "sentence": "Rotate _PARAM0_ to the camera", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateX" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Cube3DObject::SetRotationX" - }, - "parameters": [ - "Object", - "=", - "-Scene3D::CameraRotationX(Object.Layer())" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateY" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Cube3DObject::SetRotationY" - }, - "parameters": [ - "Object", - "=", - "Scene3D::CameraRotationY(Object.Layer())" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateZ" - }, - "parameters": [ - "Object", - "Behavior" - ] - } + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.followingDoneThisFrame = false;" ], - "actions": [ - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "Object", - "=", - "CameraAngle(Object.Layer())" - ] - } - ] + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false } ], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" } ], "objectGroups": [] }, { - "description": "Check if the object should rotate on X axis.", - "fullName": "Should rotate on X axis", - "functionType": "Condition", - "group": "Billboard configuration", - "name": "ShouldRotateX", - "sentence": "_PARAM0_ should rotate on X axis", + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateX" - }, - "parameters": [ - "Object", - "Behavior" - ] - } + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const object = objects[0];", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.followBasisObject();" ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" } ], "objectGroups": [] }, { - "description": "Change if the object should rotate on X axis.", - "fullName": "Should rotate on X axis", + "description": "Stick on another object.", + "fullName": "Stick", "functionType": "Action", - "group": "Billboard configuration", - "name": "SetShouldRotateX", - "sentence": "_PARAM0_ should rotate on X axis: _PARAM2_", + "name": "Stick", + "sentence": "Stick _PARAM0_ to _PARAM2_", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateX" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const basisObjects = eventsFunctionContext.getObjects(\"BasisObject\");", + "", + "if (basisObjects.length === 0) return;", + "const basisObject = basisObjects[0];", + "", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.basisObject = basisObject;", + "behavior.updateOldCoordinates(basisObject);", + "behavior.updateRelativeCoordinates(basisObject);", + "" ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateX" - }, - "parameters": [ - "Object", - "Behavior", - "yes" - ] - } - ] + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" }, { - "defaultValue": "no", - "description": "ShouldRotateX", - "name": "Value", - "optional": true, - "type": "yesorno" + "description": "Object to stick to", + "name": "BasisObject", + "type": "objectList" } ], "objectGroups": [] }, { - "description": "Check if the object should rotate on Y axis.", - "fullName": "Should rotate on Y axis", - "functionType": "Condition", - "group": "Billboard configuration", - "name": "ShouldRotateY", - "sentence": "_PARAM0_ should rotate on Y axis", + "description": "Unstick from the object it was stuck to.", + "fullName": "Unstick", + "functionType": "Action", + "name": "Unstick", + "sentence": "Unstick _PARAM0_", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateY" - }, - "parameters": [ - "Object", - "Behavior" - ] - } + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "", + "behavior.basisObject = null;" ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" } ], "objectGroups": [] }, { - "description": "Change if the object should rotate on Y axis.", - "fullName": "Should rotate on Y axis", + "fullName": "", "functionType": "Action", - "group": "Billboard configuration", - "name": "SetShouldRotateY", - "sentence": "_PARAM0_ should rotate on Y axis: _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateY" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateY" - }, - "parameters": [ - "Object", - "Behavior", - "yes" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", - "type": "behavior" - }, - { - "defaultValue": "no", - "description": "ShouldRotateY", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - }, - { - "description": "Check if the object should rotate on Z axis.", - "fullName": "Should rotate on Z axis", - "functionType": "Condition", - "group": "Billboard configuration", - "name": "ShouldRotateZ", - "sentence": "_PARAM0_ should rotate on Z axis", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Billboard::Billboard::PropertyShouldRotateZ" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change if the object should rotate on Z axis.", - "fullName": "Should rotate on Z axis", - "functionType": "Action", - "group": "Billboard configuration", - "name": "SetShouldRotateZ", - "sentence": "_PARAM0_ should rotate on Z axis: _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateZ" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Billboard::Billboard::SetPropertyShouldRotateZ" - }, - "parameters": [ - "Object", - "Behavior", - "yes" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", - "type": "behavior" - }, - { - "defaultValue": "no", - "description": "ShouldRotateZ", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - }, - { - "description": "Enable texture transparency of the front face.", - "fullName": "Enable texture transparency", - "functionType": "Action", - "name": "EnableTransparency", - "private": true, - "sentence": "Enable texture transparency of _PARAM0_", + "name": "onDestroy", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ - "/** @type {gdjs.Cube3DRuntimeObject} */", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", "const object = objects[0];", - "object._shouldUseTransparentTexture = true;", - "/** @type {gdjs.Cube3DRuntimeObjectRenderer} */", - "const renderer = object.getRenderer();", - "renderer.updateFace(0);", + "const behavior = object.getBehavior(behaviorName);", + "", + "if (runtimeScene.__allStickers)", + " runtimeScene.__allStickers.delete(behavior);", "" ], "parameterObjects": "Object", @@ -12429,13 +11749,12 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Scene3D::Cube3DObject", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Billboard::Billboard", + "supplementaryInformation": "Sticker::Sticker", "type": "behavior" } ], @@ -12444,47 +11763,24 @@ ], "propertyDescriptors": [ { - "value": "true", - "type": "Boolean", - "label": "Should rotate on X axis", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "ShouldRotateX" - }, - { - "value": "true", + "value": "", "type": "Boolean", - "label": "Should rotate on Y axis", + "label": "Only follow the position", "description": "", "group": "", "extraInformation": [], - "hidden": true, - "name": "ShouldRotateY" + "hidden": false, + "name": "OnlyFollowPosition" }, { - "value": "true", + "value": "", "type": "Boolean", - "label": "Should rotate on Z axis", + "label": "Destroy when the object it's stuck on is destroyed", "description": "", "group": "", "extraInformation": [], - "hidden": true, - "name": "ShouldRotateZ" - }, - { - "value": "No change", - "type": "Choice", - "label": "Offset position", - "description": "", - "group": "", - "extraInformation": [ - "No change", - "Standing on Z axis" - ], "hidden": false, - "name": "OffsetPositionMode" + "name": "IsDestroyedWithParent" } ], "sharedPropertyDescriptors": [] @@ -12493,42 +11789,27 @@ "eventsBasedObjects": [] }, { - "author": "D8H", - "category": "Movement", + "author": "", + "category": "Visual effect", "extensionNamespace": "", - "fullName": "Stick objects to others", + "fullName": "3D tween (experimental)", "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN0aWNrZXItb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik01LjUgMkMzLjYgMiAyIDMuNiAyIDUuNVYxOC41QzIgMjAuNCAzLjYgMjIgNS41IDIySDE2TDIyIDE2VjUuNUMyMiAzLjYgMjAuNCAyIDE4LjUgMkg1LjVNNS44IDRIMTguM0MxOS4zIDQgMjAuMSA0LjggMjAuMSA1LjhWMTVIMTguNkMxNi43IDE1IDE1LjEgMTYuNiAxNS4xIDE4LjVWMjBINS44QzQuOCAyMCA0IDE5LjIgNCAxOC4yVjUuOEM0IDQuOCA0LjggNCA1LjggNCIgLz48L3N2Zz4=", - "name": "Sticker", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sticker-outline.svg", - "shortDescription": "Make objects follow the position and rotation of the object they are stuck to.", - "version": "0.4.0", - "description": [ - "This extension can be useful to:", - "* Stick accessories to moving objects", - "* Animate a skeleton", - "* Delete an object with another one", - "", - "An example allows to check it out ([open the project online](https://editor.gdevelop.io/?project=example://stick-objects))." - ], + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+", + "name": "Tween3D", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", + "shortDescription": "Smoothly animate scale and rotation of 3d models.", + "version": "0.0.2", + "description": "Change models proportions and orientation over time to make smooth animations.", "origin": { - "identifier": "Sticker", + "identifier": "Tween3D", "name": "gdevelop-extension-store" }, "tags": [ - "sticker", - "stick", - "follow", - "skeleton", - "joint", - "pin", - "bind", - "glue", - "tie", - "attach", - "hold", - "paste", - "wear" + "3d", + "tween", + "smooth", + "interpolation", + "wobble" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" @@ -12536,253 +11817,290 @@ "dependencies": [], "eventsFunctions": [ { - "description": "Check if the object is stuck to another object.", - "fullName": "Is stuck to another object", - "functionType": "Condition", - "name": "IsStuck", - "sentence": "_PARAM1_ is stuck to _PARAM3_", - "events": [ + "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ExpressionAndCondition", + "name": "StretchZ", + "private": true, + "sentence": "the stretch on Z axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], + "expressionType": { + "type": "expression" + }, + "parameters": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const stickerBehaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "/** @type {Hashtable} */", - "const stickerObjectsLists = eventsFunctionContext.getObjectsLists(\"Object\");", - "/** @type {Hashtable} */", - "const basisObjectsLists = eventsFunctionContext.getObjectsLists(\"BasisObject\");", - "", - "eventsFunctionContext.returnValue = gdjs.evtTools.object.twoListsTest(", - " (stickerObject, basisObject, stickerBehaviorName) => {", - " const behavior = stickerObject.getBehavior(stickerBehaviorName);", - " return behavior.basisObject === basisObject;", - " },", - " stickerObjectsLists,", - " basisObjectsLists,", - " false,", - " stickerBehaviorName", - ");" - ], - "parameterObjects": "", - "useStrict": true, - "eventsSheetExpanded": true + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" } ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchZ", + "name": "SetStretchZ", + "private": true, + "sentence": "Change the stretch on Z axis of ", + "events": [], "parameters": [ { - "description": "Sticker", + "description": "Object", "name": "Object", "type": "objectList" }, { - "description": "Sticker behavior", - "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", "type": "behavior" }, { - "description": "Basis", - "name": "BasisObject", + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", + "fullName": "Stretch on Y axis", + "functionType": "ExpressionAndCondition", + "name": "StretchY", + "private": true, + "sentence": "the stretch on Y axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" } ], "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ + }, { - "description": "Stick the object to another. Use the action to stick the object, or unstick it later.", - "fullName": "Sticker", - "name": "Sticker", - "objectType": "", - "eventsFunctions": [ + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchY", + "name": "SetStretchY", + "private": true, + "sentence": "Change the stretch on Z axis of ", + "events": [], + "parameters": [ { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the scale volume.", + "fullName": "Scale volume", + "functionType": "ExpressionAndCondition", + "name": "ScaleVolume", + "private": true, + "sentence": "the scale volume of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", + "events": [], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "ScaleVolume", + "name": "SetScaleVolume", + "private": true, + "sentence": "Change the stretch on Z axis of ", + "events": [], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "3D capability", + "name": "Object3D", + "supplementaryInformation": "Scene3D::Base3DBehavior", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Exponentially tween bewteen 2 values according to an easing function.", + "fullName": "Ease exponentially", + "functionType": "Expression", + "name": "EaseExp", + "private": true, + "sentence": "the exponent-tweened value of tween _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const object = objects[0];", - "const behavior = object.getBehavior(behaviorName);", - "", - "// Set up the scene sticker objects list - if not done already.", - "runtimeScene.__allStickers = runtimeScene.__allStickers || new Set();", - "", - "// Set up the behavior extra methods - if not done already.", - "const prototype = Object.getPrototypeOf(behavior);", - "if (!prototype.updateRelativeCoordinates) {", - " // Unstick from deleted objects.", - " gdjs.registerObjectDeletedFromSceneCallback(function (runtimeScene, deletedObject) {", - " const allStickers = runtimeScene.__allStickers;", - " if (!allStickers) return;", - "", - " for (const sticker of allStickers) {", - " if (sticker.basisObject === deletedObject) {", - " if (sticker._getIsDestroyedWithParent()) {", - " sticker.owner.deleteFromScene(runtimeScene);", - " }", - " sticker.basisObject = null;", - " }", - " }", - " });", - "", - " /**", - " * Update the coordinates in the basisObject basis.", - " * ", - " * It uses the basisObject coordinates from the previous frame.", - " * This way, the sticker can move relatively to it and still", - " * follow basisObject.", - " * ", - " * @param {gdjs.RuntimeObject} basisObject", - " */", - " prototype.updateRelativeCoordinates = function (basisObject) {", - " const object = this.owner;", - "", - " // Update relative coordinates", - " this.relativeX = object.getX() - this.basisOldX;", - " this.relativeY = object.getY() - this.basisOldY;", - " if (!this._getOnlyFollowPosition()) {", - " this.relativeAngle = object.getAngle() - this.basisOldAngle;", - " this.relativeWidth = object.getWidth() / this.basisOldWidth;", - " this.relativeHeight = object.getHeight() / this.basisOldHeight;", - " const deltaX = object.getCenterXInScene() - this.basisOldCenterXInScene;", - " const deltaY = object.getCenterYInScene() - this.basisOldCenterYInScene;", - " const angle = this.basisOldAngle * Math.PI / 180;", - " this.relativeRotatedX = (deltaX * Math.cos(angle) + deltaY * Math.sin(angle)) / this.basisOldWidth;", - " this.relativeRotatedY = (-deltaX * Math.sin(angle) + deltaY * Math.cos(angle)) / this.basisOldHeight;", - "", - " // Save initial values to avoid calculus and rounding errors", - " this.basisOriginalWidth = basisObject.getWidth();", - " this.basisOriginalHeight = basisObject.getHeight();", - " this.basisOriginalAngle = basisObject.getAngle();", - " }", - " }", - "", - " /**", - " * Copy the coordinates to use it the next frame.", - " * @param basisObject {gdjs.RuntimeObject}", - " */", - " prototype.updateOldCoordinates = function (basisObject) {", - " const object = this.owner;", - "", - " this.ownerOldX = object.getX();", - " this.ownerOldY = object.getY();", - "", - " this.basisOldX = basisObject.getX();", - " this.basisOldY = basisObject.getY();", - "", - " if (!this._getOnlyFollowPosition()) {", - " this.ownerOldAngle = object.getAngle();", - " this.ownerOldWidth = object.getWidth();", - " this.ownerOldHeight = object.getHeight();", - "", - " this.basisOldAngle = basisObject.getAngle();", - " this.basisOldWidth = basisObject.getWidth();", - " this.basisOldHeight = basisObject.getHeight();", - " this.basisOldCenterXInScene = basisObject.getCenterXInScene();", - " this.basisOldCenterYInScene = basisObject.getCenterYInScene();", - " }", - " }", - " /**", - " * Follow the basisObject (called in doStepPostEvents).", - " * ", - " * This method is also called by children to ensure", - " * parents are updated first.", - " */", - " prototype.followBasisObject = function () {", - " if (this.followingDoneThisFrame) {", - " return;", - " }", - " this.followingDoneThisFrame = true;", - " /** @type {gdjs.RuntimeObject} */", - " const basisObject = this.basisObject;", - " if (basisObject) {", - " // If the behavior on the basis object has a different name,", - " // the objects will still follow their basis objects", - " // but frame delays could happen.", - " if (basisObject.hasBehavior(behaviorName)) {", - " const basisBehavior = basisObject.getBehavior(behaviorName);", - " if (basisBehavior.type === this.type) {", - " // Follow parents 1st to avoid frame delays", - " basisBehavior.followBasisObject();", - " }", - " }", - "", - " const object = this.owner;", - "", - " if (this._getOnlyFollowPosition()) {", - " if (object.getX() !== this.ownerOldX", - " || object.getY() !== this.ownerOldY) {", - " this.updateRelativeCoordinates(basisObject);", - " }", - "", - " if (this.basisOldX !== basisObject.getX() ||", - " this.basisOldY !== basisObject.getY()) {", - " object.setPosition(", - " basisObject.getX() + this.relativeX,", - " basisObject.getY() + this.relativeY);", - " }", - " } else {", - " if (object.getX() !== this.ownerOldX", - " || object.getY() !== this.ownerOldY", - " || object.getAngle() !== this.ownerOldAngle", - " || object.getWidth() !== this.ownerOldWidth", - " || object.getHeight() !== this.ownerOldHeight) {", - " this.updateRelativeCoordinates(basisObject);", - " }", - "", - " // Follow basisObject", - " if (basisObject.getAngle() === this.basisOriginalAngle && this.basisOriginalAngle === 0) {", - " if (basisObject.getWidth() === this.basisOriginalWidth ||", - " basisObject.getHeight() === this.basisOriginalHeight) {", - " if (this.basisOldX !== basisObject.getX() ||", - " this.basisOldY !== basisObject.getY()) {", - " object.setPosition(", - " basisObject.getX() + this.relativeX,", - " basisObject.getY() + this.relativeY);", - " }", - " } else {", - " object.setPosition(", - " basisObject.getX() + this.relativeRotatedX * basisObject.getWidth(),", - " basisObject.getY() + this.relativeRotatedY * basisObject.getHeight());", - " }", - " } else {", - " object.setAngle(basisObject.getAngle() + this.relativeAngle);", - "", - " const deltaX = this.relativeRotatedX * basisObject.getWidth();", - " const deltaY = this.relativeRotatedY * basisObject.getHeight();", - " const angle = -basisObject.getAngle() * Math.PI / 180;", - " object.setX(basisObject.getCenterXInScene() + object.getX() - object.getCenterXInScene() + deltaX * Math.cos(angle) + deltaY * Math.sin(angle));", - " object.setY(basisObject.getCenterYInScene() + object.getY() - object.getCenterYInScene() - deltaX * Math.sin(angle) + deltaY * Math.cos(angle));", - " }", - " // Unproportional dimensions changes won't work as expected", - " // if the object angle is not null but nothing more can be done", - " // because there is no full affine transformation on objects.", - " if (basisObject.getWidth() !== this.basisOriginalWidth) {", - " object.setWidth(this.relativeWidth * basisObject.getWidth());", - " }", - " if (basisObject.getHeight() !== this.basisOriginalHeight) {", - " object.setHeight(this.relativeHeight * basisObject.getHeight());", - " }", - " }", - "", - " this.updateOldCoordinates(basisObject);", - " }", - " }", - "}", - "", - "// Register this object as a sticker.", - "runtimeScene.__allStickers.add(behavior);", - "" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "exp(Tween::Ease(GetArgumentAsString(\"Easing\"), log(GetArgumentAsNumber(\"InitialValue\")), log(GetArgumentAsNumber(\"TargetedValue\")), GetArgumentAsNumber(\"Weighting\")))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Easing", + "name": "Easing", + "type": "string" + }, + { + "description": "Initial value", + "name": "InitialValue", + "type": "expression" + }, + { + "description": "Targeted value", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Weighting", + "name": "Weighting", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Smoothly animate scale and rotation of 3d models.", + "fullName": "3D tween (experimental)", + "name": "Tween3D", + "objectType": "", + "eventsFunctions": [ + { + "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "StretchZ", + "sentence": "the stretch on Z axis", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Object3D::ScaleZ() / sqrt(Object.Scale::X() * Object.Scale::Y())" + ] + } + ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -12792,30 +12110,89 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchZ", + "name": "SetStretchZ", + "sentence": "Change the stretch on Z axis of ", "events": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const object = objects[0];", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.followingDoneThisFrame = false;" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": false + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Object.Behavior::ScaleVolume()" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] } ], "parameters": [ @@ -12827,32 +12204,49 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", + "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", + "fullName": "Stretch on Y axis", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "StretchY", + "sentence": "the stretch on Y axis", "events": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const object = objects[0];", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.followBasisObject();" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Scale::Y() / sqrt(Object.Scale::X() * Object.Object3D::ScaleZ())" + ] + } + ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -12862,39 +12256,89 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" } ], "objectGroups": [] }, { - "description": "Stick on another object.", - "fullName": "Stick", - "functionType": "Action", - "name": "Stick", - "sentence": "Stick _PARAM0_ to _PARAM2_", + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "StretchY", + "name": "SetStretchY", + "sentence": "Change the stretch on Z axis of ", "events": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const basisObjects = eventsFunctionContext.getObjects(\"BasisObject\");", - "", - "if (basisObjects.length === 0) return;", - "const basisObject = basisObjects[0];", - "", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.basisObject = basisObject;", - "behavior.updateOldCoordinates(basisObject);", - "behavior.updateRelativeCoordinates(basisObject);", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Volume", + "=", + "Object.Behavior::ScaleVolume()" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "=", + "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.SurfaceRatio", + "=", + "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "*", + "Variable(_Tween3D.SurfaceRatio)" + ] + } + ] } ], "parameters": [ @@ -12906,73 +12350,131 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" }, { - "description": "Object to stick to", - "name": "BasisObject", - "type": "objectList" + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", + "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Unstick from the object it was stuck to.", - "fullName": "Unstick", - "functionType": "Action", - "name": "Unstick", - "sentence": "Unstick _PARAM0_", + "description": "the scale volume.", + "fullName": "Scale volume", + "functionType": "ExpressionAndCondition", + "group": "Size", + "name": "ScaleVolume", + "sentence": "the scale volume", "events": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const object = objects[0];", - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const behavior = object.getBehavior(behaviorName);", - "", - "behavior.basisObject = null;" - ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true - } - ], - "parameters": [ - { - "description": "Object", + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Scale::X() * Object.Scale::Y() * Object.Object3D::ScaleZ()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "Action", - "name": "onDestroy", - "sentence": "", + "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", + "fullName": "Stretch on Z axis", + "functionType": "ActionWithOperator", + "getterName": "ScaleVolume", + "name": "SetScaleVolume", + "sentence": "Change the stretch on Z axis of ", "events": [ { - "type": "BuiltinCommonInstructions::JsCode", - "inlineCode": [ - "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", - "const object = objects[0];", - "const behavior = object.getBehavior(behaviorName);", - "", - "if (runtimeScene.__allStickers)", - " runtimeScene.__allStickers.delete(behavior);", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + ">", + "0" + ] + } ], - "parameterObjects": "Object", - "useStrict": true, - "eventsSheetExpanded": true + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Ratio", + "=", + "pow(GetArgumentAsNumber(\"Value\") / Object.Behavior::ScaleVolume(), 1 / 3)" + ] + }, + { + "type": { + "value": "Scene3D::Base3DBehavior::SetScaleZ" + }, + "parameters": [ + "Object", + "Object3D", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetY" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.Ratio)" + ] + }, + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetX" + }, + "parameters": [ + "Object", + "Scale", + "*", + "Variable(_Tween3D.Ratio)" + ] + } + ] } ], "parameters": [ @@ -12984,334 +12486,97 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "Sticker::Sticker", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Scalable capacity", + "name": "Scale", + "supplementaryInformation": "ScalableCapability::ScalableBehavior", "type": "behavior" + }, + { + "description": "Stretch ratio", + "name": "StretchRatio", + "type": "expression" } ], "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Boolean", - "label": "Only follow the position", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "OnlyFollowPosition" - }, - { - "value": "", - "type": "Boolean", - "label": "Destroy when the object it's stuck on is destroyed", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "IsDestroyedWithParent" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Visual effect", - "extensionNamespace": "", - "fullName": "3D tween (experimental)", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+", - "name": "Tween3D", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg", - "shortDescription": "Smoothly animate scale and rotation of 3d models.", - "version": "0.0.2", - "description": "Change models proportions and orientation over time to make smooth animations.", - "origin": { - "identifier": "Tween3D", - "name": "gdevelop-extension-store" - }, - "tags": [ - "3d", - "tween", - "smooth", - "interpolation", - "wobble" - ], - "authorIds": [ - "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" - ], - "dependencies": [], - "eventsFunctions": [ - { - "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ExpressionAndCondition", - "name": "StretchZ", - "private": true, - "sentence": "the stretch on Z axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", - "events": [], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" }, { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" + "description": "Tweens an object stretch Z from its current value to a new one. The stretch can never be 0 or less.", + "fullName": "Tween stretch Z", + "functionType": "Action", + "group": "Size", + "name": "TweenStretchZ", + "sentence": "Tween the stretch Z of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::StartTween" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"StretchZ\"", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch on Z axis", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] }, { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "StretchZ", - "name": "SetStretchZ", - "private": true, - "sentence": "Change the stretch on Z axis of ", - "events": [], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" - }, - { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", - "fullName": "Stretch on Y axis", - "functionType": "ExpressionAndCondition", - "name": "StretchY", - "private": true, - "sentence": "the stretch on Y axis of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", - "events": [], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" - }, - { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "StretchY", - "name": "SetStretchY", - "private": true, - "sentence": "Change the stretch on Z axis of ", - "events": [], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" - }, - { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "the scale volume.", - "fullName": "Scale volume", - "functionType": "ExpressionAndCondition", - "name": "ScaleVolume", - "private": true, - "sentence": "the scale volume of _PARAM1_ (it no longer does anything, use the one from 3D tween behavior instead)", - "events": [], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" - }, - { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "ScaleVolume", - "name": "SetScaleVolume", - "private": true, - "sentence": "Change the stretch on Z axis of ", - "events": [], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "objectList" - }, - { - "description": "3D capability", - "name": "Object3D", - "supplementaryInformation": "Scene3D::Base3DBehavior", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Exponentially tween bewteen 2 values according to an easing function.", - "fullName": "Ease exponentially", - "functionType": "Expression", - "name": "EaseExp", - "private": true, - "sentence": "the exponent-tweened value of tween _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "exp(Tween::Ease(GetArgumentAsString(\"Easing\"), log(GetArgumentAsNumber(\"InitialValue\")), log(GetArgumentAsNumber(\"TargetedValue\")), GetArgumentAsNumber(\"Weighting\")))" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Easing", - "name": "Easing", - "type": "string" - }, - { - "description": "Initial value", - "name": "InitialValue", - "type": "expression" - }, - { - "description": "Targeted value", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Weighting", - "name": "Weighting", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "eventsBasedBehaviors": [ - { - "description": "Smoothly animate scale and rotation of 3d models.", - "fullName": "3D tween (experimental)", - "name": "Tween3D", - "objectType": "", - "eventsFunctions": [ - { - "description": "the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ExpressionAndCondition", + "description": "Tweens an object stretch Y from its current value to a new one. The stretch can never be 0 or less.", + "fullName": "Tween stretch Y", + "functionType": "Action", "group": "Size", - "name": "StretchZ", - "sentence": "the stretch on Z axis", + "name": "TweenStretchY", + "sentence": "Tween the stretch Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13319,18 +12584,22 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "Tween3D::Tween3D::StartTween" }, "parameters": [ - "Object.Object3D::ScaleZ() / sqrt(Object.Scale::X() * Object.Scale::Y())" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"StretchY\"", + "" + ] + } + ] + } + ], "parameters": [ { "description": "Object", @@ -13342,84 +12611,124 @@ "name": "Behavior", "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Stretch on Y axis", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "StretchZ", - "name": "SetStretchZ", - "sentence": "Change the stretch on Z axis of ", + "description": "Tweens an object scale volume from its current value to a new one. The scale volume can never be 0 or less.", + "fullName": "Tween scale volume", + "functionType": "Action", + "group": "Size", + "name": "TweenScaleVolume", + "sentence": "Tween the scale volume of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsNumber" - }, - "parameters": [ - "\"Value\"", - ">", - "0" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Volume", - "=", - "Object.Behavior::ScaleVolume()" - ] - }, - { - "type": { - "value": "Scene3D::Base3DBehavior::SetScaleZ" - }, - "parameters": [ - "Object", - "Object3D", - "=", - "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.SurfaceRatio", - "=", - "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" - ] - }, - { - "type": { - "value": "ScalableCapability::ScalableBehavior::SetX" + "value": "Tween3D::Tween3D::StartTween" }, "parameters": [ "Object", - "Scale", - "*", - "Variable(_Tween3D.SurfaceRatio)" + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"ScaleVolume\"", + "" ] - }, + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Tween3D::Tween3D", + "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Scale volume", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Tweens an object rotation X from its current value to a new one.", + "fullName": "Tween rotation X", + "functionType": "Action", + "group": "Angle", + "name": "TweenRotationX", + "sentence": "Tween the rotation X of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { - "value": "ScalableCapability::ScalableBehavior::SetY" + "value": "Tween3D::Tween3D::StartTween" }, "parameters": [ "Object", - "Scale", - "*", - "Variable(_Tween3D.SurfaceRatio)" + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"RotationX\"", + "" ] } ] @@ -13438,26 +12747,37 @@ "type": "behavior" }, { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" }, { - "description": "Stretch ratio", - "name": "StretchRatio", + "description": "Rotation X in degree", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "the stretch on Y axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Y in proportion to the dimension on X and Z.", - "fullName": "Stretch on Y axis", - "functionType": "ExpressionAndCondition", - "group": "Size", - "name": "StretchY", - "sentence": "the stretch on Y axis", + "description": "Tweens an object rotation Y from its current value to a new one.", + "fullName": "Tween rotation Y", + "functionType": "Action", + "group": "Angle", + "name": "TweenRotationY", + "sentence": "Tween the rotation Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13465,18 +12785,22 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "Tween3D::Tween3D::StartTween" }, "parameters": [ - "Object.Scale::Y() / sqrt(Object.Scale::X() * Object.Object3D::ScaleZ())" + "Object", + "Behavior", + "GetArgumentAsString(\"TweenIdentifier\")", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"Easing\")", + "\"RotationY\"", + "" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -13488,343 +12812,276 @@ "name": "Behavior", "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" + }, + { + "description": "Tween identifier", + "name": "TweenIdentifier", + "supplementaryInformation": "objectTween3D", + "type": "identifier" + }, + { + "description": "Rotation Y in degree", + "name": "TargetedValue", + "type": "expression" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "StretchY", - "name": "SetStretchY", - "sentence": "Change the stretch on Z axis of ", + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "CompareArgumentAsNumber" + "value": "ModVarScene" }, "parameters": [ - "\"Value\"", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Volume", - "=", - "Object.Behavior::ScaleVolume()" - ] - }, - { - "type": { - "value": "ScalableCapability::ScalableBehavior::SetY" - }, - "parameters": [ - "Object", - "Scale", - "=", - "pow(Variable(_Tween3D.Volume) * GetArgumentAsNumber(\"Value\") * GetArgumentAsNumber(\"Value\"), 1/3)" - ] - }, - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.SurfaceRatio", + "_Tween3D.Index", "=", - "sqrt((Variable(_Tween3D.Volume) / Object.Object3D::ScaleZ()) / (Object.Scale::X() * Object.Scale::Y()))" - ] - }, - { - "type": { - "value": "ScalableCapability::ScalableBehavior::SetX" - }, - "parameters": [ - "Object", - "Scale", - "*", - "Variable(_Tween3D.SurfaceRatio)" - ] - }, - { - "type": { - "value": "Scene3D::Base3DBehavior::SetScaleZ" - }, - "parameters": [ - "Object", - "Object3D", - "*", - "Variable(_Tween3D.SurfaceRatio)" + "0" ] } ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" }, { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "the scale volume.", - "fullName": "Scale volume", - "functionType": "ExpressionAndCondition", - "group": "Size", - "name": "ScaleVolume", - "sentence": "the scale volume", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.VariableChildCount(_Tween3D.Tweens)", "conditions": [], "actions": [ { "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Scale::X() * Object.Scale::Y() * Object.Object3D::ScaleZ()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change the stretch on Z axis. The object volume is conseved. A stretch of 2 make the object apear 2 time longer on Z in proportion to the dimension on X and Y.", - "fullName": "Stretch on Z axis", - "functionType": "ActionWithOperator", - "getterName": "ScaleVolume", - "name": "SetScaleVolume", - "sentence": "Change the stretch on Z axis of ", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsNumber" - }, - "parameters": [ - "\"Value\"", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarScene" + "value": "ModVarSceneTxt" }, "parameters": [ - "_Tween3D.Ratio", + "_Tween3D.Identifier", "=", - "pow(GetArgumentAsNumber(\"Value\") / Object.Behavior::ScaleVolume(), 1 / 3)" - ] - }, - { - "type": { - "value": "Scene3D::Base3DBehavior::SetScaleZ" - }, - "parameters": [ - "Object", - "Object3D", - "*", - "Variable(_Tween3D.Ratio)" - ] - }, - { - "type": { - "value": "ScalableCapability::ScalableBehavior::SetY" - }, - "parameters": [ - "Object", - "Scale", - "*", - "Variable(_Tween3D.Ratio)" - ] - }, - { - "type": { - "value": "ScalableCapability::ScalableBehavior::SetX" - }, - "parameters": [ - "Object", - "Scale", - "*", - "Variable(_Tween3D.Ratio)" + "Object.Behavior::TweenIdentifier(Variable(_Tween3D.Index))" ] } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - }, - { - "description": "Scalable capacity", - "name": "Scale", - "supplementaryInformation": "ScalableCapability::ScalableBehavior", - "type": "behavior" - }, - { - "description": "Stretch ratio", - "name": "StretchRatio", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Tweens an object stretch Z from its current value to a new one. The stretch can never be 0 or less.", - "fullName": "Tween stretch Z", - "functionType": "Action", - "group": "Size", - "name": "TweenStretchZ", - "sentence": "Tween the stretch Z of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + ], + "events": [ { - "type": { - "value": "Tween3D::Tween3D::StartTween" - }, - "parameters": [ - "Object", - "Behavior", - "GetArgumentAsString(\"TweenIdentifier\")", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"Easing\")", - "\"StretchZ\"", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - }, - { - "description": "Tween identifier", - "name": "TweenIdentifier", - "supplementaryInformation": "objectTween3D", - "type": "identifier" - }, - { - "description": "Stretch on Z axis", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "description": "Tweens an object stretch Y from its current value to a new one. The stretch can never be 0 or less.", - "fullName": "Tween stretch Y", - "functionType": "Action", - "group": "Size", - "name": "TweenStretchY", - "sentence": "Tween the stretch Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::IsPlaying" + }, + "parameters": [ + "Object", + "Behavior", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::Time(VariableString(_Tween3D.Identifier)) + TimeDelta() * LayerTimeScale(Object.Layer()), Object.Behavior::Duration(VariableString(_Tween3D.Identifier)))", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"StretchZ\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetStretchZ" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object3D" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"StretchY\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetStretchY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object3D" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"ScaleVolume\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::SetScaleVolume" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", + "Object3D" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RotationX\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationX" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Tween3D::Tween3D::Type" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RotationY\"", + "VariableString(_Tween3D.Identifier)", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene3D::Base3DBehavior::SetRotationY" + }, + "parameters": [ + "Object", + "Object3D", + "=", + "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" + ] + } + ] + } + ] + }, { - "type": { - "value": "Tween3D::Tween3D::StartTween" - }, - "parameters": [ - "Object", - "Behavior", - "GetArgumentAsString(\"TweenIdentifier\")", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"Easing\")", - "\"StretchY\"", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "_Tween3D.Index", + "+", + "1" + ] + } ] } ] @@ -13841,39 +13098,17 @@ "name": "Behavior", "supplementaryInformation": "Tween3D::Tween3D", "type": "behavior" - }, - { - "description": "Tween identifier", - "name": "TweenIdentifier", - "supplementaryInformation": "objectTween3D", - "type": "identifier" - }, - { - "description": "Stretch on Y axis", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "Tweens an object scale volume from its current value to a new one. The scale volume can never be 0 or less.", - "fullName": "Tween scale volume", - "functionType": "Action", - "group": "Size", - "name": "TweenScaleVolume", - "sentence": "Tween the scale volume of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "description": "the tweened value", + "fullName": "Tweened value", + "functionType": "ExpressionAndCondition", + "name": "TweenedValue", + "private": true, + "sentence": "the value of tween _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13881,22 +13116,18 @@ "actions": [ { "type": { - "value": "Tween3D::Tween3D::StartTween" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "GetArgumentAsString(\"TweenIdentifier\")", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"Easing\")", - "\"ScaleVolume\"", - "" + "Tween::Ease(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -13914,33 +13145,17 @@ "name": "TweenIdentifier", "supplementaryInformation": "objectTween3D", "type": "identifier" - }, - { - "description": "Scale volume", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "Tweens an object rotation X from its current value to a new one.", - "fullName": "Tween rotation X", - "functionType": "Action", - "group": "Angle", - "name": "TweenRotationX", - "sentence": "Tween the rotation X of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "description": "the exponent-tweened value", + "fullName": "Tweened value (exponent)", + "functionType": "ExpressionAndCondition", + "name": "ExponentTweenedValue", + "private": true, + "sentence": "the exponent-tweened value of tween _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13948,22 +13163,18 @@ "actions": [ { "type": { - "value": "Tween3D::Tween3D::StartTween" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "GetArgumentAsString(\"TweenIdentifier\")", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"Easing\")", - "\"RotationX\"", - "" + "Tween3D::EaseExp(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -13981,599 +13192,158 @@ "name": "TweenIdentifier", "supplementaryInformation": "objectTween3D", "type": "identifier" - }, - { - "description": "Rotation X in degree", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" } ], "objectGroups": [] }, { - "description": "Tweens an object rotation Y from its current value to a new one.", - "fullName": "Tween rotation Y", + "fullName": "Start tween", "functionType": "Action", - "group": "Angle", - "name": "TweenRotationY", - "sentence": "Tween the rotation Y of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", + "name": "StartTween", + "private": true, + "sentence": "Tween the _PARAM6_ of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "conditions": [ { "type": { - "value": "Tween3D::Tween3D::StartTween" + "inverted": true, + "value": "Tween3D::Tween3D::Exists" }, "parameters": [ "Object", "Behavior", "GetArgumentAsString(\"TweenIdentifier\")", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"Easing\")", - "\"RotationY\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween3D::Tween3D::InvalidateTweenIdentifiers" + }, + "parameters": [ + "Object", + "Behavior", "" ] } ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - }, - { - "description": "Tween identifier", - "name": "TweenIdentifier", - "supplementaryInformation": "objectTween3D", - "type": "identifier" - }, - { - "description": "Rotation Y in degree", - "name": "TargetedValue", - "type": "expression" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { - "value": "ModVarScene" + "value": "Tween3D::Tween3D::SetTime" }, "parameters": [ - "_Tween3D.Index", + "Object", + "Behavior", "=", - "0" + "0", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Type\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Duration\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Easing\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" + ] + }, + { + "type": { + "value": "Tween3D::Tween3D::SetTargetedValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TargetedValue\")", + "GetArgumentAsString(\"TweenIdentifier\")", + "" ] } ] }, { - "type": "BuiltinCommonInstructions::Repeat", - "repeatExpression": "Object.VariableChildCount(_Tween3D.Tweens)", - "conditions": [], - "actions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "ModVarSceneTxt" + "value": "CompareArgumentAsString" }, "parameters": [ - "_Tween3D.Identifier", + "\"Type\"", "=", - "Object.Behavior::TweenIdentifier(Variable(_Tween3D.Index))" + "\"StretchZ\"" ] } ], - "events": [ + "actions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::IsPlaying" - }, - "parameters": [ - "Object", - "Behavior", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetTime" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "min(Object.Behavior::Time(VariableString(_Tween3D.Identifier)) + TimeDelta() * LayerTimeScale(Object.Layer()), Object.Behavior::Duration(VariableString(_Tween3D.Identifier)))", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::Type" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"StretchZ\"", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetStretchZ" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object3D" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::Type" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"StretchY\"", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetStretchY" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object3D" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::Type" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"ScaleVolume\"", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetScaleVolume" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::ExponentTweenedValue(VariableString(_Tween3D.Identifier))", - "Object3D" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::Type" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"RotationX\"", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Base3DBehavior::SetRotationX" - }, - "parameters": [ - "Object", - "Object3D", - "=", - "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Tween3D::Tween3D::Type" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"RotationY\"", - "VariableString(_Tween3D.Identifier)", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Scene3D::Base3DBehavior::SetRotationY" - }, - "parameters": [ - "Object", - "Object3D", - "=", - "Object.Behavior::TweenedValue(VariableString(_Tween3D.Identifier))" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "_Tween3D.Index", - "+", - "1" - ] - } + "type": { + "value": "Tween3D::Tween3D::SetInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::StretchZ()", + "GetArgumentAsString(\"TweenIdentifier\")", + "" ] } ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the tweened value", - "fullName": "Tweened value", - "functionType": "ExpressionAndCondition", - "name": "TweenedValue", - "private": true, - "sentence": "the value of tween _PARAM2_", - "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "conditions": [ { "type": { - "value": "SetReturnNumber" + "value": "CompareArgumentAsString" }, "parameters": [ - "Tween::Ease(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - }, - { - "description": "Tween identifier", - "name": "TweenIdentifier", - "supplementaryInformation": "objectTween3D", - "type": "identifier" - } - ], - "objectGroups": [] - }, - { - "description": "the exponent-tweened value", - "fullName": "Tweened value (exponent)", - "functionType": "ExpressionAndCondition", - "name": "ExponentTweenedValue", - "private": true, - "sentence": "the exponent-tweened value of tween _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Tween3D::EaseExp(Object.Behavior::Easing(VariableString(_Tween3D.Identifier)), Object.Behavior::InitialValue(VariableString(_Tween3D.Identifier)), Object.Behavior::TargetedValue(VariableString(_Tween3D.Identifier)), Object.Behavior::Progress(VariableString(_Tween3D.Identifier)))" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Tween3D::Tween3D", - "type": "behavior" - }, - { - "description": "Tween identifier", - "name": "TweenIdentifier", - "supplementaryInformation": "objectTween3D", - "type": "identifier" - } - ], - "objectGroups": [] - }, - { - "fullName": "Start tween", - "functionType": "Action", - "name": "StartTween", - "private": true, - "sentence": "Tween the _PARAM6_ of object _PARAM0_ to _PARAM3_ over _PARAM4_ seconds with _PARAM5_ easing as _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Tween3D::Tween3D::Exists" - }, - "parameters": [ - "Object", - "Behavior", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::InvalidateTweenIdentifiers" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetTime" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "0", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - }, - { - "type": { - "value": "Tween3D::Tween3D::SetType" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Type\")", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - }, - { - "type": { - "value": "Tween3D::Tween3D::SetDuration" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Duration\")", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - }, - { - "type": { - "value": "Tween3D::Tween3D::SetEasing" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Easing\")", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - }, - { - "type": { - "value": "Tween3D::Tween3D::SetTargetedValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"TargetedValue\")", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsString" - }, - "parameters": [ - "\"Type\"", - "=", - "\"StretchZ\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Tween3D::Tween3D::SetInitialValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::StretchZ()", - "GetArgumentAsString(\"TweenIdentifier\")", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CompareArgumentAsString" - }, - "parameters": [ - "\"Type\"", - "=", - "\"StretchY\"" + "\"Type\"", + "=", + "\"StretchY\"" ] } ], @@ -25631,127 +24401,18 @@ ] }, { - "author": "Gustavo Marciano", - "category": "Visual effect", + "author": "", + "category": "Input", "extensionNamespace": "", - "fullName": "YSort", + "fullName": "Behavior Remapper", "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNvcnQtYXNjZW5kaW5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5IDE3SDIyTDE4IDIxTDE0IDE3SDE3VjNIMTlNMiAxN0gxMlYxOUgyTTYgNVY3SDJWNU0yIDExSDlWMTNIMlYxMVoiIC8+PC9zdmc+", - "name": "YSort", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sort-ascending.svg", - "shortDescription": "Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a \"Top-Down\" view, RPG...", - "version": "0.1.0", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", + "name": "BehaviorRemapper", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", + "shortDescription": "Quickly remap Behavior controls to different keys. ", + "version": "1.0.0", "description": [ - "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", - "", - "This is useful for:", - "- isometric games ([open the project online](https://editor.gdevelop.io/?project=example://isometric-game))", - "- top-down games ([open the project online](https://editor.gdevelop.io/?project=example://top-down-grid-movement))" - ], - "origin": { - "identifier": "YSort", - "name": "gdevelop-extension-store" - }, - "tags": [ - "z-order", - "y-sort", - "depth", - "fake-depth", - "isometric", - "rpg" - ], - "authorIds": [], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Set the depth (Z-order) of the instance to the value of its Y position in the scene, creating an illusion of depth. The origin point of the object is used to determine the Z-order.", - "fullName": "YSort", - "name": "YSort", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "This is done in doStepPostEvents because the sort must happens right before the rendering to avoid a 1 frame delay." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Object", - "=", - "Object.Y() + Object.Behavior::PropertyOffset()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "YSort::YSort", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "0", - "type": "Number", - "unit": "Pixel", - "label": "Y offset", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "Offset" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Input", - "extensionNamespace": "", - "fullName": "Behavior Remapper", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", - "name": "BehaviorRemapper", - "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", - "shortDescription": "Quickly remap Behavior controls to different keys. ", - "version": "1.0.0", - "description": [ - "Make sure to disable default controls unless you want two keys to do the same action.", + "Make sure to disable default controls unless you want two keys to do the same action.", "", "Actions have two versions. `custom` allow the movement keys to be changed to what ever you would like. `presets` provide a common key-bindings that can be selected from a list.", "", @@ -31886,1056 +30547,185 @@ "parameters": [ "Object", "Behavior", - "=", - "\"Analog\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", - "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"360°\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateStick" - }, - "parameters": [ - "Object", - "TopDownMovement", - "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"8 Directions\"" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Left\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Right\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Up\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Gamepads::C_Axis_pushed" - }, - "parameters": [ - "", - "Object.Behavior::PropertyGamepadIdentifier()", - "\"Right\"", - "\"Down\"", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ] - } - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "Gamepads::TopDownGamepadMapper", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Top-down movement behavior", - "description": "", - "group": "", - "extraInformation": [ - "TopDownMovementBehavior::TopDownMovementBehavior" - ], - "hidden": false, - "name": "TopDownMovement" - }, - { - "value": "1", - "type": "Number", - "label": "Gamepad identifier (1, 2, 3 or 4)", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "GamepadIdentifier" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use directional pad", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseArrows" - }, - { - "value": "true", - "type": "Boolean", - "label": "Use left stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseLeftStick" - }, - { - "value": "", - "type": "Boolean", - "label": "Use right stick", - "description": "", - "group": "Controls", - "extraInformation": [], - "hidden": false, - "name": "UseRightStick" - }, - { - "value": "Analog", - "type": "Choice", - "label": "Stick mode", - "description": "", - "group": "Controls", - "extraInformation": [ - "Analog", - "360°", - "8 Directions" - ], - "hidden": false, - "name": "StickMode" - } - ], - "sharedPropertyDescriptors": [] - } - ], - "eventsBasedObjects": [] - }, - { - "author": "", - "category": "Movement", - "extensionNamespace": "", - "fullName": "Top-down movement animator", - "helpPath": "", - "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40bDQtNC4xYzAuNC0wLjQsMS0wLjQsMS40LDBzMC40LDEsMCwxLjRMMy40LDE2bDMuMywzLjMNCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDNi42LDIxLDYuMywyMS4xLDYsMjEuMXoiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0yNiwyMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNjLTAuNC0wLjQtMC40LTEsMC0xLjRsMy4zLTMuM2wtMy4zLTMuM2MtMC40LTAuNC0wLjQtMSwwLTEuNHMxLTAuNCwxLjQsMGw0LjEsNC4xDQoJCWMwLjIsMC4yLDAuMywwLjQsMC4zLDAuN3MtMC4xLDAuNS0wLjMsMC43bC00LjEsNC4xQzI2LjYsMjEsMjYuMywyMS4xLDI2LDIxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMTYsMzEuMUwxNiwzMS4xYy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNsLTQtNC4xYy0wLjQtMC40LTAuNC0xLDAtMS40czEtMC40LDEuNCwwbDMuMywzLjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwDQoJCXMwLjQsMSwwLDEuNGwtNC4xLDQuMUMxNi42LDMwLjksMTYuMywzMS4xLDE2LDMxLjF6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjAuMSw3Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjNMMTYsMy40bC0zLjMsMy4zYy0wLjQsMC40LTEsMC40LTEuNCwwcy0wLjQtMSwwLTEuNGw0LTQuMWMwLjQtMC40LDEtMC40LDEuNCwwbDQuMSw0LjENCgkJYzAuNCwwLjQsMC40LDEsMCwxLjRDMjAuNiw2LjksMjAuNCw3LDIwLjEsN3oiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIGQ9Ik0xNiwzMGMtMC42LDAtMS0wLjQtMS0xVjNjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXYyNkMxNywyOS42LDE2LjYsMzAsMTYsMzB6Ii8+DQo8L2c+DQo8Zz4NCgk8cGF0aCBkPSJNMjksMTdIMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMWgyN2MwLjYsMCwxLDAuNCwxLDFTMjkuNiwxNywyOSwxN3oiLz4NCjwvZz4NCjwvc3ZnPg0K", - "name": "TopDownMovementAnimator", - "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Arrows/a6026156355ae5f03613b03971e4ddb50d0c95b8901e7a21edc57f33f0032e42_Arrows_thin_arrows_all_directions_cross.svg", - "shortDescription": "Change the animation according to the movement direction.", - "version": "0.1.0", - "description": "Change the animation according to the movement direction.", - "tags": [ - "animation", - "direction" - ], - "authorIds": [ - "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" - ], - "dependencies": [], - "eventsFunctions": [], - "eventsBasedBehaviors": [ - { - "description": "Change the animation according to the movement direction.", - "fullName": "Top-down movement animator", - "name": "TopDownMovementAnimator", - "objectType": "Sprite", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "0" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::DiagonalsAllowed" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "8" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "TopDownMovementBehavior::DiagonalsAllowed" - }, - "parameters": [ - "Object", - "TopDownMovement" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyDirectionCount" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "4" - ] - } - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "onActivate", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::Direction()", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "Action", - "name": "doStepPostEvents", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::Speed" - }, - "parameters": [ - "Object", - "TopDownMovement", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "PauseAnimation" - }, - "parameters": [ - "Object" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementBehavior::Speed" - }, - "parameters": [ - "Object", - "TopDownMovement", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "PlayAnimation" - }, - "parameters": [ - "Object" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyNewAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::Direction()" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Use a small margin is used to avoid to flicker between 2 directions." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "BuiltinCommonInstructions::CompareNumbers" - }, - "parameters": [ - "abs(Object.Behavior:: DirectionDifference(Object.Behavior::SharedPropertyNewAnimationDirection(), Object.Behavior::PropertyAnimationDirection()))", - ">", - "0.5 + 0.03125" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::SharedPropertyNewAnimationDirection()", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name of the object.", - "fullName": "Animation name", - "functionType": "ExpressionAndCondition", - "name": "AnimationName", - "sentence": "the animation name", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyAnimationName()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "AnimationName", - "name": "SetAnimationName", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyAnimationName" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "GetArgumentAsString(\"Value\")" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationName" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - }, - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Check if the animation is scaled according to speed.", - "fullName": "Scale animation according to speed", - "functionType": "Condition", - "name": "IsScalingAnimation", - "sentence": "_PARAM0_ animation is scaled according to speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::PropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Change whether the animation is scaled according to speed or not.", - "fullName": "Scale animation according to speed", - "functionType": "Action", - "name": "SetIsScalingAnimation", - "sentence": "Scale the animation of _PARAM0_ according to speed: _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - }, - { - "type": { - "value": "ChangeAnimationSpeedScale" - }, - "parameters": [ - "Object", - "=", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyIsScalingAnimation" - }, - "parameters": [ - "Object", - "Behavior", - "yes" - ] - }, - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetAnimationSpeedScale" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - }, - { - "defaultValue": "yes", - "description": "IsScalingAnimation", - "name": "Value", - "optional": true, - "type": "yesorno" - } - ], - "objectGroups": [] - }, - { - "description": "Change the animation speed scale according to the object speed.", - "fullName": "Animation speed scale", - "functionType": "Action", - "name": "SetAnimationSpeedScale", - "private": true, - "sentence": "Change the animation speed scale according to _PARAM0_ speed", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ChangeAnimationSpeedScale" - }, - "parameters": [ - "Object", - "=", - "Object.TopDownMovement::Speed() / Object.TopDownMovement::MaxSpeed()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Return the object movement direction.", - "fullName": "Direction", - "functionType": "Expression", - "name": "Direction", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "(Object.TopDownMovement::Angle() + Object.Behavior::PropertyAngleOffset()) * Object.Behavior::PropertyDirectionCount() / 360" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "Return the difference between 2 directions.", - "fullName": "Direction dirrerence", - "functionType": "Expression", - "name": "DirectionDifference", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "mod(mod(GetArgumentAsNumber(\"Direction\") - GetArgumentAsNumber(\"OtherDirection\"), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount() / 2, Object.Behavior::PropertyDirectionCount()) - Object.Behavior::PropertyDirectionCount() / 2" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", - "type": "behavior" - }, - { - "description": "Direction", - "name": "Direction", - "type": "expression" - }, - { - "description": "Other direction", - "name": "OtherDirection", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "description": "Change the animation direction of the object.", - "fullName": "Animation direction", - "functionType": "Action", - "name": "SetAnimationDirection", - "private": true, - "sentence": "Change the animation direction of _PARAM0_ to _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change the animation but keep the current frame number." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetPropertyAnimationDirection" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "mod(mod(round(GetArgumentAsNumber(\"Value\")), Object.Behavior::PropertyDirectionCount()) + Object.Behavior::PropertyDirectionCount(), Object.Behavior::PropertyDirectionCount())" - ] - }, - { - "type": { - "value": "TopDownMovementAnimator::TopDownMovementAnimator::SetSharedPropertyAnimationFrame" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Sprite()" - ] - }, - { - "type": { - "value": "SetAnimationName" - }, - "parameters": [ - "Object", - "Object. Behavior::PropertyAnimationName() + ToString(Object.Behavior::PropertyAnimationDirection())" - ] - }, - { - "type": { - "value": "ChangeSprite" - }, - "parameters": [ - "Object", - "=", - "Object.Behavior::SharedPropertyAnimationFrame()" + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } ] } ] @@ -32945,19 +30735,13 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "TopDownMovementAnimator::TopDownMovementAnimator", + "supplementaryInformation": "Gamepads::TopDownGamepadMapper", "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" } ], "objectGroups": [] @@ -32967,7 +30751,7 @@ { "value": "", "type": "Behavior", - "label": "Top-down movement", + "label": "Top-down movement behavior", "description": "", "group": "", "extraInformation": [ @@ -32977,80 +30761,61 @@ "name": "TopDownMovement" }, { - "value": "true", - "type": "Boolean", - "label": "Scale animation according to speed", + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", "description": "", - "group": "Animation", + "group": "", "extraInformation": [], "hidden": false, - "name": "IsScalingAnimation" + "name": "GamepadIdentifier" }, { - "value": "Walk", - "type": "String", - "label": "Animation name", - "description": "Animations must be called \"Walk0\", \"Walk1\"... for left, down...", - "group": "Animation", + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", "extraInformation": [], "hidden": false, - "name": "AnimationName" + "name": "UseArrows" }, { - "value": "0", - "type": "Number", - "unit": "Dimensionless", - "label": "Number of directions", - "description": "Leave to 0 to automatically use 8 when diagonals are allowed and 4 otherwise.", - "group": "Direction", + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", "extraInformation": [], "hidden": false, - "name": "DirectionCount" + "name": "UseLeftStick" }, { - "value": "0", - "type": "Number", - "unit": "DegreeAngle", - "label": "Angle offset", - "description": "Setted to 90°, \"Walk0\" becomes the animation for down.", - "group": "Direction", + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", "extraInformation": [], "hidden": false, - "name": "AngleOffset" + "name": "UseRightStick" }, { - "value": "0", - "type": "Number", - "label": "", + "value": "Analog", + "type": "Choice", + "label": "Stick mode", "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "AnimationDirection" + "group": "Controls", + "extraInformation": [ + "Analog", + "360°", + "8 Directions" + ], + "hidden": false, + "name": "StickMode" } ], - "sharedPropertyDescriptors": [ - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "NewAnimationDirection" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "AnimationFrame" - } - ] + "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] From 22d48fe009622d7f6b9bd61691a4e4dd7a10bdb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 19:39:04 +0200 Subject: [PATCH 44/53] Move some event about bombs in the player behavior. --- examples/3d-bomberman/3d-bomberman.json | 817 +++++++++++++++--------- 1 file changed, 509 insertions(+), 308 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 26bb27c71..7804099db 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -830,8 +830,8 @@ "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -1108,8 +1108,8 @@ "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -1386,8 +1386,8 @@ "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -1664,8 +1664,8 @@ "points": [], "originPoint": { "name": "origine", - "x": 9, - "y": 6 + "x": 0, + "y": 0 }, "centerPoint": { "automatic": true, @@ -2391,8 +2391,8 @@ "GravityTop": "Z+", "StartSpeedMax": 100, "SpayConeAngle": 360, - "StartSizeMin": 125, - "StartSizeMax": 256, + "StartSizeMin": 42, + "StartSizeMax": 84, "EndScale": 0.25, "StartSpeedMin": 100, "LifespanMax": 0.5, @@ -2480,8 +2480,8 @@ "GravityTop": "Z+", "StartSpeedMax": 300, "SpayConeAngle": 360, - "StartSizeMin": 125, - "StartSizeMax": 256, + "StartSizeMin": 42, + "StartSizeMax": 84, "EndScale": 0.25, "StartSpeedMin": 300, "LifespanMax": 0.333, @@ -3138,126 +3138,73 @@ "textG": 0, "textR": 0 }, - "comment": "Check that no bomb is already on this square.\nThe negation of \"Is there at least one bomb on this square?\" is equivalent to \"Is there no bomb on this square?\".\nThis is not the same as having the negation directly on the condition because it would mean \"Is there a bomb that is not on this square?\"." + "comment": "canPutBomb variable is used to forget the bombs picked by the condition and be able to access the created one." }, { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "VarObjet" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "Player", - "BombPut", - "<", - "Player.Variable(BombCapacity)" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Not" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "CollisionPoint" - }, - "parameters": [ - "Bomb", - "10 + round((Player.X() - 10) / 60) * 60 + 30", - "round(Player.Y() / 60) * 60 + 30" - ] - } + "canPutBomb", + "False" ] } - ], - "actions": [ + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "Create" + "value": "Player::Player::CanPutBomb" }, "parameters": [ - "", + "Player", + "Player", "Bomb", - "10 + round((Player.X() - 10) / 60) * 60", - "round(Player.Y() / 60) * 60", "" ] - }, - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "Bomb", - "\"Detonator\"" - ] - }, + } + ], + "actions": [ { "type": { - "value": "ModVarObjet" + "value": "SetSceneVariableAsBoolean" }, "parameters": [ - "Player", - "BombPut", - "+", - "1" + "canPutBomb", + "True" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "ModVarObjet" + "value": "SceneVariableAsBoolean" }, "parameters": [ - "Bomb", - "Range", - "=", - "Player.Variable(Range)" + "canPutBomb", + "True" ] - }, + } + ], + "actions": [ { "type": { - "value": "ModVarObjet" + "value": "Player::Player::PutBomb" }, "parameters": [ "Player", - "BombX", - "=", - "Bomb.X()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ "Player", - "BombY", - "=", - "Bomb.Y()" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ "Bomb", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - }, - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "True" + "" ] }, { @@ -3303,90 +3250,68 @@ "Bomb" ] } - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "The variable IsNew allows to apply some actions on the created bombes without the player in the context.\nOtherwise, the loop on the players wouldn't work because GDevelop couldn't tell on which player to apply actions." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Bomb", - "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsNew", - "=" - ] - } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Other players can be on the square where the bomb is put." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bomb", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AjoutObjConcern" + }, + "parameters": [ + "", + "Player" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Other players can be on the square where the bomb is put." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Bomb", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::Player::AllowToWalkOnBomb" + }, + "parameters": [ + "Player", + "Player", + "Bomb", + "" + ] + } + ] + } + ] + } ] } ] @@ -3406,100 +3331,18 @@ "type": "BuiltinCommonInstructions::Group", "events": [ { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", + "type": "BuiltinCommonInstructions::Standard", "conditions": [], - "actions": [], - "events": [ + "actions": [ { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 + "type": { + "value": "Player::Player::SeparateFromBomb" }, - "comment": "The player no longer overlaps the bomb. It becomes solid for this player." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Distance" - }, - "parameters": [ - "Player", - "Bomb", - "59.9", - "" - ] - }, - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "ObjectVariableRemoveChild" - }, - "parameters": [ - "Bomb", - "IsOverlaping", - "Player.VariableString(Number)" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "Player", - "Bomb", - "", - "", - "" - ] - }, - { - "type": { - "inverted": true, - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Bomb", - "IsOverlaping[ToString(Player.Variable(Number))]", - "True" - ] - } - ], - "actions": [ - { - "type": { - "value": "SeparateFromObjects" - }, - "parameters": [ - "Player", - "Bomb", - "" - ] - } + "parameters": [ + "Player", + "Player", + "Bomb", + "" ] } ] @@ -5829,7 +5672,7 @@ "parameters": [ "RandomInRange(1, 4)", "<=", - "4" + "1" ] } ], @@ -16287,13 +16130,16 @@ "name": "ParticleEmitter3D", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", "shortDescription": "Display a large number of particles to create visual effects.", - "version": "0.0.2", + "version": "1.0.0", "description": [ "Particle emitters can be used to display:", "- Fire", "- Smoke", "- Splashes", - "- Lights" + "- Lights", + "", + "Breaking change from 1.0.0:", + "- Particles were 3 times too small" ], "origin": { "identifier": "ParticleEmitter3D", @@ -19070,7 +18916,7 @@ " }", " if (this.worldSpace) {", " particle.position.applyMatrix4(matrix);", - " particle.startSize = (particle.startSize * (scale.x + scale.y + scale.z)) / 3;", + " particle.startSize = (particle.startSize * (Math.abs(scale.x) + Math.abs(scale.y) + Math.abs(scale.z))) / 3;", " particle.size = particle.startSize;", " particle.velocity.multiply(scale).applyMatrix3(this.normalMatrix);", " if (particle.rotation && particle.rotation instanceof THREE.Quaternion) {", @@ -20118,7 +19964,7 @@ " this.sizeBuffer.setX(index, particle.size);", " }", " else {", - " this.sizeBuffer.setX(index, (particle.size * (scale.x + scale.y + scale.z)) / 3);", + " this.sizeBuffer.setX(index, (particle.size * (Math.abs(scale.x) + Math.abs(scale.y) + Math.abs(scale.z))) / 3);", " }", " }", " this.uvTileBuffer.setX(index, particle.uvTile);", @@ -20472,8 +20318,8 @@ " this.widthBuffer.setX(index + 1, current.size);", " }", " else {", - " this.widthBuffer.setX(index, (current.size * (scale.x + scale.y + scale.z)) / 3);", - " this.widthBuffer.setX(index + 1, (current.size * (scale.x + scale.y + scale.z)) / 3);", + " this.widthBuffer.setX(index, (current.size * (Math.abs(scale.x) + Math.abs(scale.y) + Math.abs(scale.z))) / 3);", + " this.widthBuffer.setX(index + 1, (current.size * (Math.abs(scale.x) + Math.abs(scale.y) + Math.abs(scale.z))) / 3);", " }", " }", " this.uvBuffer.setXY(index, (i / particle.previous.length + col) * tileWidth, (vTileCount - row - 1) * tileHeight);", @@ -21606,8 +21452,6 @@ "", "particleSystem.emitter.rotation.order = 'ZYX';", "particleSystem.emitter.name = object.getName() + object.getNameId();", - "particleSystem.emitter.position.x = object.getX();", - "particleSystem.emitter.position.y = -object.getY();", "batchSystem.addSystem(particleSystem);", "", "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", @@ -32690,6 +32534,363 @@ } ], "objectGroups": [] + }, + { + "description": "Separate players from bombs. Players can overlap a bomb when it's created but they cant walk on a bomb that is already there.", + "fullName": "Separate from bomb", + "functionType": "Action", + "name": "SeparateFromBomb", + "sentence": "Separate _PARAM0_ from _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "When the player no longer overlaps the bomb, it becomes solid for this player." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Distance" + }, + "parameters": [ + "Object", + "Bomb", + "59", + "" + ] + }, + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Object.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ObjectVariableRemoveChild" + }, + "parameters": [ + "Bomb", + "IsOverlaping", + "Object.VariableString(Number)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Object", + "Bomb", + "", + "", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Object.Variable(Number))]", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "SeparateFromObjects" + }, + "parameters": [ + "Object", + "Bomb", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a player can put a bomb.", + "fullName": "Can put a bomb", + "functionType": "Condition", + "name": "CanPutBomb", + "sentence": "_PARAM0_ can put a _PARAM2_ on the ground", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Check that no bomb is already on this square.\nThe negation of \"Is there at least one bomb on this square?\" is equivalent to \"Is there no bomb on this square?\".\nThis is not the same as having the negation directly on the condition because it would mean \"Is there a bomb that is not on this square?\"." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "BombPut", + "<", + "Object.Variable(BombCapacity)" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Not" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Bomb", + "10 + round((Object.X() - 10) / 60) * 60 + 30", + "round(Object.Y() / 60) * 60 + 30" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bomb", + "name": "Bomb", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "The player put a bomb in its curent square", + "fullName": "Put a bomb", + "functionType": "Action", + "name": "PutBomb", + "sentence": "_PARAM0_ put a _PARAM2_ on the ground", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "10 + round((Object.X() - 10) / 60) * 60", + "round(Object.Y() / 60) * 60", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Bomb", + "\"Detonator\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombPut", + "+", + "1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "Range", + "=", + "Object.Variable(Range)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombX", + "=", + "Bomb.X()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "BombY", + "=", + "Bomb.Y()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bomb", + "PlayerNum", + "=", + "Object.Variable(Number)" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "Bomb", + "name": "Bomb", + "type": "objectListOrEmptyIfJustDeclared" + } + ], + "objectGroups": [] + }, + { + "description": "Allow a player to walk on a bomb created under their foot.", + "fullName": "Allow to walk on a bomb", + "functionType": "Action", + "name": "AllowToWalkOnBomb", + "sentence": "Allow _PARAM0_ to walk on a _PARAM2_ created under their foot.", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Bomb", + "IsOverlaping[ToString(Object.Variable(Number))]", + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::Player", + "type": "behavior" + }, + { + "description": "", + "name": "Bomb", + "type": "objectList" + } + ], + "objectGroups": [] } ], "propertyDescriptors": [], @@ -34049,8 +34250,8 @@ "name": "Player1", "persistentUuid": "ec337b4f-25b3-464d-8aa2-e53d451b9e82", "width": 82, - "x": 1039, - "y": 606, + "x": 1030, + "y": 600, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -34064,8 +34265,8 @@ "name": "Player2", "persistentUuid": "0168e5a1-c6c6-4470-a8a9-31a2b47790e9", "width": 82, - "x": 199, - "y": 6, + "x": 190, + "y": 0, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -34079,8 +34280,8 @@ "name": "Player3", "persistentUuid": "dca8110e-8871-49a7-9d12-e00eaf0e8b53", "width": 82, - "x": 199, - "y": 606, + "x": 190, + "y": 600, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -34094,8 +34295,8 @@ "name": "Player4", "persistentUuid": "c39be22f-ce00-44f2-b33f-b70a864832df", "width": 82, - "x": 1039, - "y": 6, + "x": 1030, + "y": 0, "zOrder": 10, "numberProperties": [], "stringProperties": [], @@ -34714,7 +34915,7 @@ "persistentUuid": "a0917fc0-983f-44f6-8fe3-ae14f0398f39", "width": 0, "x": 244, - "y": 34, + "y": 24, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -34825,8 +35026,8 @@ "name": "Player1", "persistentUuid": "fb6afea8-f5bc-4b0e-bbc4-5900aed2ef63", "width": 82, - "x": 1039, - "y": 606, + "x": 1030, + "y": 600, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -34840,8 +35041,8 @@ "name": "Player2", "persistentUuid": "fef840da-ee13-4b0b-b471-204c1fc10718", "width": 82, - "x": 199, - "y": 6, + "x": 190, + "y": 0, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -34855,8 +35056,8 @@ "name": "Player3", "persistentUuid": "ef729714-8ec8-40c8-ae75-deba82602488", "width": 82, - "x": 199, - "y": 606, + "x": 190, + "y": 600, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -34870,8 +35071,8 @@ "name": "Player4", "persistentUuid": "8dc2fe23-d26b-4191-8ce6-da199392145c", "width": 82, - "x": 1039, - "y": 6, + "x": 1030, + "y": 0, "zOrder": 10, "numberProperties": [], "stringProperties": [], @@ -36033,8 +36234,8 @@ "name": "Player1", "persistentUuid": "6d8912b5-6de2-4cf4-926c-2952e708a590", "width": 82, - "x": 1039, - "y": 606, + "x": 1030, + "y": 600, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -36048,8 +36249,8 @@ "name": "Player2", "persistentUuid": "2b89c85e-e86a-48d5-ac4d-a90dcda0f833", "width": 82, - "x": 199, - "y": 6, + "x": 190, + "y": 0, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -36063,8 +36264,8 @@ "name": "Player3", "persistentUuid": "513d236d-ffbc-4367-917a-dd9eaa59ce66", "width": 82, - "x": 199, - "y": 606, + "x": 190, + "y": 600, "zOrder": 9, "numberProperties": [], "stringProperties": [], @@ -36078,8 +36279,8 @@ "name": "Player4", "persistentUuid": "7e397593-ecf8-4d95-b0c6-ea43b45731f2", "width": 82, - "x": 1039, - "y": 6, + "x": 1030, + "y": 0, "zOrder": 10, "numberProperties": [], "stringProperties": [], From 6bbce4b8eb023ae75deb9cb79c7a2db2f94ca0cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 21:28:42 +0200 Subject: [PATCH 45/53] Move some event about death animation in the player model behavior. --- examples/3d-bomberman/3d-bomberman.json | 335 +++++++++++++----------- 1 file changed, 182 insertions(+), 153 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 7804099db..3eb0cfa5f 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -3421,7 +3421,7 @@ "textG": 0, "textR": 0 }, - "comment": "...or by chain reaction" + "comment": "...or by chain reaction." }, { "type": "BuiltinCommonInstructions::Standard", @@ -3652,143 +3652,17 @@ ] } ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "DirectionX", - "=", - "0" - ] - }, - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "DirectionY", - "=", - "0" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::CompareNumbers" - }, - "parameters": [ - "abs(Player.CenterX() - Explosion.CenterX())", - ">", - "abs(Player.CenterY() - Explosion.CenterY())" - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::PlayerModel::PlayDeathAnimation" - }, - "parameters": [ - "PlayerModel", - "PlayerModel", - "sign(Player.CenterX() - Explosion.CenterX())", - "0", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::CompareNumbers" - }, - "parameters": [ - "abs(Player.CenterX() - Explosion.CenterX())", - "<", - "abs(Player.CenterY() - Explosion.CenterY())" - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::PlayerModel::PlayDeathAnimation" - }, - "parameters": [ - "PlayerModel", - "PlayerModel", - "0", - "sign(Player.CenterY() - Explosion.CenterY())", - "" - ] - } - ] - } - ] - }, + "actions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "DirectionX", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Explosion", - "DirectionY", - "!=", - "0" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "Player::PlayerModel::PlayDeathAnimation" - }, - "parameters": [ - "PlayerModel", - "PlayerModel", - "Explosion.Variable(DirectionX)", - "Explosion.Variable(DirectionY)", - "" - ] - } + "type": { + "value": "Player::PlayerModel::PlayDeathAnimationFromExplosion" + }, + "parameters": [ + "PlayerModel", + "PlayerModel", + "Explosion", + "Player", + "" ] } ] @@ -4117,22 +3991,6 @@ ] } ] - }, - { - "disabled": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ChangeTimeScale" - }, - "parameters": [ - "", - "0.1" - ] - } - ] } ] }, @@ -33282,10 +33140,181 @@ ], "objectGroups": [] }, + { + "fullName": "Play death animation from explosion", + "functionType": "Action", + "name": "PlayDeathAnimationFromExplosion", + "sentence": "Play death animation of _PARAM0_ according to _PARAM2_ and _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Player.CenterX() - Explosion.CenterX())", + ">", + "abs(Player.CenterY() - Explosion.CenterY())" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "sign(Object.CenterX() - Explosion.CenterX())", + "0", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "abs(Player.CenterX() - Explosion.CenterX())", + "<", + "abs(Player.CenterY() - Explosion.CenterY())" + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "0", + "sign(Player.CenterY() - Explosion.CenterY())", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Explosion", + "DirectionY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Player::PlayerModel::PlayDeathAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "Explosion.Variable(DirectionX)", + "Explosion.Variable(DirectionY)", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Scene3D::Model3DObject", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Player::PlayerModel", + "type": "behavior" + }, + { + "description": "Explosion", + "name": "Explosion", + "type": "objectList" + }, + { + "description": "Player", + "name": "Player", + "type": "objectList" + } + ], + "objectGroups": [] + }, { "fullName": "Play death animation", "functionType": "Action", "name": "PlayDeathAnimation", + "private": true, "sentence": "Play death animation of _PARAM0_ toward _PARAM2_ ; _PARAM3_", "events": [ { From fd7a9a6fe40ec9cf820f6650287ab3ec115ff96e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 21:49:42 +0200 Subject: [PATCH 46/53] Upgrade the 3D shake extension. --- examples/3d-bomberman/3d-bomberman.json | 68 +++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomberman/3d-bomberman.json index 3eb0cfa5f..7d59ea1f3 100644 --- a/examples/3d-bomberman/3d-bomberman.json +++ b/examples/3d-bomberman/3d-bomberman.json @@ -5691,11 +5691,14 @@ "name": "ShakeObject3D", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg", "shortDescription": "Shake 3D objects.", - "version": "1.0.0", + "version": "2.0.0", "description": [ "Shake 3D objects with translation and rotation.", "", - "The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game))." + "The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game)).", + "", + "Breaking changes from 2.0.0", + "- The behavior for 3D box has been removed. The other behavior can be used for both models and boxes." ], "origin": { "identifier": "ShakeObject3D", @@ -6974,11 +6977,60 @@ ], "eventsBasedBehaviors": [ { - "description": "Shake 3D models with translation and rotation.", + "description": "Shake 3D objects with translation and rotation.", "fullName": "3D shake", "name": "ShakeModel3D", "objectType": "", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::PropertyIsStartingAtCreation" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "ShakeObject3D::ShakeModel3D::StartShaking" + }, + "parameters": [ + "Object", + "Behavior", + "0", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject3D::ShakeModel3D", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -8253,6 +8305,16 @@ ], "hidden": false, "name": "Object3D" + }, + { + "value": "", + "type": "Boolean", + "label": "Start to shake at the object creation", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IsStartingAtCreation" } ], "sharedPropertyDescriptors": [ From 8063e213ab22590960e48be6f1bf87285edfc8b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 23:17:31 +0200 Subject: [PATCH 47/53] Rename the project. --- .../3d-bomber-bunny.json} | 0 .../README.md | 0 .../{3d-bomberman => 3d-bomber-bunny}/TAGS.md | 0 .../assets/BlueBunny.glb | Bin .../assets/BlueBunnyIcon.png | Bin .../assets/Bomb.glb | Bin .../assets/Bomb.png | Bin .../assets/BombeBonus.png | Bin .../assets/Cabbage.glb | Bin .../assets/ClassicLevel.png | Bin .../assets/EmptyLevel.png | Bin .../assets/ExplosionCentre-Anim5.png | Bin .../assets/FlammeBonus.png | Bin .../assets/FlashyRock.glb | Bin .../assets/GreyBlock.glb | Bin .../assets/JoueurSelectionMask.png | Bin .../assets/New image.png | Bin .../assets/NewObject.png | Bin .../assets/NewSprite.png | Bin .../assets/NiveauClassique.png | Bin .../assets/NiveauVide.png | Bin .../assets/Orange.png | Bin .../assets/OrangeBunny.glb | Bin .../assets/OrangeBunnyIcon.png | Bin .../assets/Pink.png | Bin .../assets/PinkBunny.glb | Bin .../assets/PinkBunnyIcon.png | Bin .../assets/Purple.png | Bin .../assets/PurpleBunny.glb | Bin .../assets/PurpleBunnyIcon.png | Bin .../assets/SmoothParticle.png | Bin .../assets/Soil2.png | Bin .../assets/SoilBorder.png | Bin .../assets/SoilCorner.png | Bin .../assets/blockRoundedLong.glb | Bin examples/3d-bomber-bunny/preview.png | Bin 0 -> 555829 bytes examples/3d-bomberman/preview.png | Bin 57493 -> 0 bytes examples/3d-bomberman/square-icon.png | Bin 2414 -> 0 bytes 38 files changed, 0 insertions(+), 0 deletions(-) rename examples/{3d-bomberman/3d-bomberman.json => 3d-bomber-bunny/3d-bomber-bunny.json} (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/README.md (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/TAGS.md (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/BlueBunny.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/BlueBunnyIcon.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Bomb.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Bomb.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/BombeBonus.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Cabbage.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/ClassicLevel.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/EmptyLevel.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/ExplosionCentre-Anim5.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/FlammeBonus.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/FlashyRock.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/GreyBlock.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/JoueurSelectionMask.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/New image.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/NewObject.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/NewSprite.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/NiveauClassique.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/NiveauVide.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Orange.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/OrangeBunny.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/OrangeBunnyIcon.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Pink.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/PinkBunny.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/PinkBunnyIcon.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Purple.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/PurpleBunny.glb (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/PurpleBunnyIcon.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/SmoothParticle.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/Soil2.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/SoilBorder.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/SoilCorner.png (100%) rename examples/{3d-bomberman => 3d-bomber-bunny}/assets/blockRoundedLong.glb (100%) create mode 100644 examples/3d-bomber-bunny/preview.png delete mode 100644 examples/3d-bomberman/preview.png delete mode 100644 examples/3d-bomberman/square-icon.png diff --git a/examples/3d-bomberman/3d-bomberman.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json similarity index 100% rename from examples/3d-bomberman/3d-bomberman.json rename to examples/3d-bomber-bunny/3d-bomber-bunny.json diff --git a/examples/3d-bomberman/README.md b/examples/3d-bomber-bunny/README.md similarity index 100% rename from examples/3d-bomberman/README.md rename to examples/3d-bomber-bunny/README.md diff --git a/examples/3d-bomberman/TAGS.md b/examples/3d-bomber-bunny/TAGS.md similarity index 100% rename from examples/3d-bomberman/TAGS.md rename to examples/3d-bomber-bunny/TAGS.md diff --git a/examples/3d-bomberman/assets/BlueBunny.glb b/examples/3d-bomber-bunny/assets/BlueBunny.glb similarity index 100% rename from examples/3d-bomberman/assets/BlueBunny.glb rename to examples/3d-bomber-bunny/assets/BlueBunny.glb diff --git a/examples/3d-bomberman/assets/BlueBunnyIcon.png b/examples/3d-bomber-bunny/assets/BlueBunnyIcon.png similarity index 100% rename from examples/3d-bomberman/assets/BlueBunnyIcon.png rename to examples/3d-bomber-bunny/assets/BlueBunnyIcon.png diff --git a/examples/3d-bomberman/assets/Bomb.glb b/examples/3d-bomber-bunny/assets/Bomb.glb similarity index 100% rename from examples/3d-bomberman/assets/Bomb.glb rename to examples/3d-bomber-bunny/assets/Bomb.glb diff --git a/examples/3d-bomberman/assets/Bomb.png b/examples/3d-bomber-bunny/assets/Bomb.png similarity index 100% rename from examples/3d-bomberman/assets/Bomb.png rename to examples/3d-bomber-bunny/assets/Bomb.png diff --git a/examples/3d-bomberman/assets/BombeBonus.png b/examples/3d-bomber-bunny/assets/BombeBonus.png similarity index 100% rename from examples/3d-bomberman/assets/BombeBonus.png rename to examples/3d-bomber-bunny/assets/BombeBonus.png diff --git a/examples/3d-bomberman/assets/Cabbage.glb b/examples/3d-bomber-bunny/assets/Cabbage.glb similarity index 100% rename from examples/3d-bomberman/assets/Cabbage.glb rename to examples/3d-bomber-bunny/assets/Cabbage.glb diff --git a/examples/3d-bomberman/assets/ClassicLevel.png b/examples/3d-bomber-bunny/assets/ClassicLevel.png similarity index 100% rename from examples/3d-bomberman/assets/ClassicLevel.png rename to examples/3d-bomber-bunny/assets/ClassicLevel.png diff --git a/examples/3d-bomberman/assets/EmptyLevel.png b/examples/3d-bomber-bunny/assets/EmptyLevel.png similarity index 100% rename from examples/3d-bomberman/assets/EmptyLevel.png rename to examples/3d-bomber-bunny/assets/EmptyLevel.png diff --git a/examples/3d-bomberman/assets/ExplosionCentre-Anim5.png b/examples/3d-bomber-bunny/assets/ExplosionCentre-Anim5.png similarity index 100% rename from examples/3d-bomberman/assets/ExplosionCentre-Anim5.png rename to examples/3d-bomber-bunny/assets/ExplosionCentre-Anim5.png diff --git a/examples/3d-bomberman/assets/FlammeBonus.png b/examples/3d-bomber-bunny/assets/FlammeBonus.png similarity index 100% rename from examples/3d-bomberman/assets/FlammeBonus.png rename to examples/3d-bomber-bunny/assets/FlammeBonus.png diff --git a/examples/3d-bomberman/assets/FlashyRock.glb b/examples/3d-bomber-bunny/assets/FlashyRock.glb similarity index 100% rename from examples/3d-bomberman/assets/FlashyRock.glb rename to examples/3d-bomber-bunny/assets/FlashyRock.glb diff --git a/examples/3d-bomberman/assets/GreyBlock.glb b/examples/3d-bomber-bunny/assets/GreyBlock.glb similarity index 100% rename from examples/3d-bomberman/assets/GreyBlock.glb rename to examples/3d-bomber-bunny/assets/GreyBlock.glb diff --git a/examples/3d-bomberman/assets/JoueurSelectionMask.png b/examples/3d-bomber-bunny/assets/JoueurSelectionMask.png similarity index 100% rename from examples/3d-bomberman/assets/JoueurSelectionMask.png rename to examples/3d-bomber-bunny/assets/JoueurSelectionMask.png diff --git a/examples/3d-bomberman/assets/New image.png b/examples/3d-bomber-bunny/assets/New image.png similarity index 100% rename from examples/3d-bomberman/assets/New image.png rename to examples/3d-bomber-bunny/assets/New image.png diff --git a/examples/3d-bomberman/assets/NewObject.png b/examples/3d-bomber-bunny/assets/NewObject.png similarity index 100% rename from examples/3d-bomberman/assets/NewObject.png rename to examples/3d-bomber-bunny/assets/NewObject.png diff --git a/examples/3d-bomberman/assets/NewSprite.png b/examples/3d-bomber-bunny/assets/NewSprite.png similarity index 100% rename from examples/3d-bomberman/assets/NewSprite.png rename to examples/3d-bomber-bunny/assets/NewSprite.png diff --git a/examples/3d-bomberman/assets/NiveauClassique.png b/examples/3d-bomber-bunny/assets/NiveauClassique.png similarity index 100% rename from examples/3d-bomberman/assets/NiveauClassique.png rename to examples/3d-bomber-bunny/assets/NiveauClassique.png diff --git a/examples/3d-bomberman/assets/NiveauVide.png b/examples/3d-bomber-bunny/assets/NiveauVide.png similarity index 100% rename from examples/3d-bomberman/assets/NiveauVide.png rename to examples/3d-bomber-bunny/assets/NiveauVide.png diff --git a/examples/3d-bomberman/assets/Orange.png b/examples/3d-bomber-bunny/assets/Orange.png similarity index 100% rename from examples/3d-bomberman/assets/Orange.png rename to examples/3d-bomber-bunny/assets/Orange.png diff --git a/examples/3d-bomberman/assets/OrangeBunny.glb b/examples/3d-bomber-bunny/assets/OrangeBunny.glb similarity index 100% rename from examples/3d-bomberman/assets/OrangeBunny.glb rename to examples/3d-bomber-bunny/assets/OrangeBunny.glb diff --git a/examples/3d-bomberman/assets/OrangeBunnyIcon.png b/examples/3d-bomber-bunny/assets/OrangeBunnyIcon.png similarity index 100% rename from examples/3d-bomberman/assets/OrangeBunnyIcon.png rename to examples/3d-bomber-bunny/assets/OrangeBunnyIcon.png diff --git a/examples/3d-bomberman/assets/Pink.png b/examples/3d-bomber-bunny/assets/Pink.png similarity index 100% rename from examples/3d-bomberman/assets/Pink.png rename to examples/3d-bomber-bunny/assets/Pink.png diff --git a/examples/3d-bomberman/assets/PinkBunny.glb b/examples/3d-bomber-bunny/assets/PinkBunny.glb similarity index 100% rename from examples/3d-bomberman/assets/PinkBunny.glb rename to examples/3d-bomber-bunny/assets/PinkBunny.glb diff --git a/examples/3d-bomberman/assets/PinkBunnyIcon.png b/examples/3d-bomber-bunny/assets/PinkBunnyIcon.png similarity index 100% rename from examples/3d-bomberman/assets/PinkBunnyIcon.png rename to examples/3d-bomber-bunny/assets/PinkBunnyIcon.png diff --git a/examples/3d-bomberman/assets/Purple.png b/examples/3d-bomber-bunny/assets/Purple.png similarity index 100% rename from examples/3d-bomberman/assets/Purple.png rename to examples/3d-bomber-bunny/assets/Purple.png diff --git a/examples/3d-bomberman/assets/PurpleBunny.glb b/examples/3d-bomber-bunny/assets/PurpleBunny.glb similarity index 100% rename from examples/3d-bomberman/assets/PurpleBunny.glb rename to examples/3d-bomber-bunny/assets/PurpleBunny.glb diff --git a/examples/3d-bomberman/assets/PurpleBunnyIcon.png b/examples/3d-bomber-bunny/assets/PurpleBunnyIcon.png similarity index 100% rename from examples/3d-bomberman/assets/PurpleBunnyIcon.png rename to examples/3d-bomber-bunny/assets/PurpleBunnyIcon.png diff --git a/examples/3d-bomberman/assets/SmoothParticle.png b/examples/3d-bomber-bunny/assets/SmoothParticle.png similarity index 100% rename from examples/3d-bomberman/assets/SmoothParticle.png rename to examples/3d-bomber-bunny/assets/SmoothParticle.png diff --git a/examples/3d-bomberman/assets/Soil2.png b/examples/3d-bomber-bunny/assets/Soil2.png similarity index 100% rename from examples/3d-bomberman/assets/Soil2.png rename to examples/3d-bomber-bunny/assets/Soil2.png diff --git a/examples/3d-bomberman/assets/SoilBorder.png b/examples/3d-bomber-bunny/assets/SoilBorder.png similarity index 100% rename from examples/3d-bomberman/assets/SoilBorder.png rename to examples/3d-bomber-bunny/assets/SoilBorder.png diff --git a/examples/3d-bomberman/assets/SoilCorner.png b/examples/3d-bomber-bunny/assets/SoilCorner.png similarity index 100% rename from examples/3d-bomberman/assets/SoilCorner.png rename to examples/3d-bomber-bunny/assets/SoilCorner.png diff --git a/examples/3d-bomberman/assets/blockRoundedLong.glb b/examples/3d-bomber-bunny/assets/blockRoundedLong.glb similarity index 100% rename from examples/3d-bomberman/assets/blockRoundedLong.glb rename to examples/3d-bomber-bunny/assets/blockRoundedLong.glb diff --git a/examples/3d-bomber-bunny/preview.png b/examples/3d-bomber-bunny/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..833ff9202acaae7155363f5c86b812e511c5915d GIT binary patch literal 555829 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
    lUXqsjZqVtwrNXq+`=R!!agx62EU&M| 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%0D>Vi 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 literal 0 HcmV?d00001 diff --git a/examples/3d-bomberman/preview.png b/examples/3d-bomberman/preview.png deleted file mode 100644 index f5186186e402384756488d7eb9fd80bd1830f1bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57493 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�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 diff --git a/examples/3d-bomberman/square-icon.png b/examples/3d-bomberman/square-icon.png deleted file mode 100644 index 7815081447c1eefc439b06911385fd058dfdf332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2414 zcmb7G`8U-28-IUh?AutItWD)w@-^Wyw#CYbZ+-L&xZujRygNZhn$48zWISnh^VBj-;wn zGn^Awc8rVPAC(P9ItHD(B{*7?kC*-Qr1(UTw=_J+E+-Ni%R<{Yuj=VF)p`fEV0>)G z(O2GRM%4bjJo~x#kGRyjdfE3WrwjCXB=ucJ4S=H(~D{91O>j3ZH#Q z`f@yjxi0!cln4Ac!2>iPyaMRw0J#7q27F*-0?6R~zeHN@qgd7L+EvN&qEr|yg=K&A z#q8?tp4ax-ZY@buwJdy`LQ1$oQr|s7g^1;Anpk0CAJS+)hnx8m1H-F?G>)y^hv^8G zNo3OMt?-&c>0;na>-d+ha1Bl^@hq^OkwB4a75D;GYPb>+W_AKLHX}t56P7@H@K~Pt zzt8HYE-j}nE2uz4jO#Qo zJZ8T?KJ7I=ynW=n ztTIUw*@!@#kP93PBV-shzBL3&i@`7d)O#3nctvKu(bsS@ce2hC(Kwx!|1Mtg;Yt)L zQ^1$mmh0$RSSt!*&|B3{U->bnQUYo_mP7$2aEfdppQsh^j*i5&i+HRT*HCnohg?qG z>EWPR8EA?){#r<%IvJK$o*zF&2YyOp&WrvkNr{Y6UAH+O!Bnq$0W^2g-2 zarIJBjPfcvCLXn7ShmnA4_?nV=#Nc>rh(?E3a*z$5oPcuUnu9=VZEaLbg(@57`XM< z69m5ht`>M*+ZobVRW1c1tL|4D?5XeouP9saT2S~xfL+k)o72G0yg=A+tul%eyuQ9f zJ5o?Za-)DLnAdU8-wRXWA`Ulc%b6H^-$?*OZmfwv%NHzV#=zAkRRv_{QV?!Zz1;LP zUzrl6-wn!y0rCmY;en*9t&E{*g(U&FVE$GE@?tUEXQ+NB-A|JQJ315M7Z(`M1-(N8 zjT!r$<^glZtMV(&?i3sE0~1}nwfsXRwOnlwe>NUkIo58}v^Fr(!+c|7jgTAs@}fT< z(X+=wYhv26cf%U1!9=b(DoY~|b=K^Vdd&WSQVs0l$4jbS#EGO~*ope9QDNZ57IXi3> z>lhKf%}pDCq)jG1+<4v$BStQ-@v?yM<3m3OTJ*Aq=?jn?IzI3)4kGds_#_Vc>o-&w z>z;G+cjg&c`+>V%v5UG?)4ch3Bck1kq75VT`e<7=eFYoDzMePYvcbmNK4Q6O}9>ZRnDgte#I3t+WnBt zD@nNS(74W>mZ*<@kf6=eqY3-jl~);PEKqg2847wwIVyYs)*{v3JjBw}~EvW+adhf-p zE-n|skWR2#sO)M93^l7F3!VRHrYn)=gal4Lce&#=eJaREIFP#xYED-Wkr2T6zpAuj2I$s1-AcU3 z0bFDg9|< zYYwAtVfd%{xG>>IHh4p4UZ8R_8RhR_VG5$BxjI}v>*?{e@d0XTL5%qG&^%Zj478Oe zrgL_S?-{{S6gXY$;mvn&J_P=O=EBDdidVcVsX$ZceG3;k$iZQgpNH0BkDLV5i&lII z5JYd6;*qA@x-NSL337DYIon(UtMY)7Flduc8vPb}7mOMi6glcWoPLjO;U-V|(o_4; zwd~y4v^#Wk7Xzc!#2aALiXDl{HM_w@C_p8+KdwB#GDltl)I3^l+T|rgtQr9*xr$Mp z-LxR)yr7cMuR!&;xo#_EF9TFPcmoh-JfLj0w5!BUxkZ{P46IxpJxgqmCBX1d<5f4; ziDuj9P#?59y4ok)7z;lFLwWA%w2fBJgio=Dk+W2i8a1dK_(Hh?9{(d`M}?D<7zMy# z%{yp%-CBmdqN%Uix24B{1CNdTt0a$$d|rHf{DyrWv}qBN@$Rh_))3T8%v%t)*`}$( z@H@-I!75wDe|^N+=RVnVFU#Ih?}LcvbxiCmV7Wke5ATn;RQ833EF+t5$pA1GjHYHLz!L`?h- DiG)l& From c4f421b20b9a4d8896eb8e3d9c1779f6d0a16475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 9 Sep 2023 23:22:26 +0200 Subject: [PATCH 48/53] Add back GDevelop logo. --- examples/3d-bomber-bunny/3d-bomber-bunny.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/3d-bomber-bunny/3d-bomber-bunny.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json index 7d59ea1f3..990ea7083 100644 --- a/examples/3d-bomber-bunny/3d-bomber-bunny.json +++ b/examples/3d-bomber-bunny/3d-bomber-bunny.json @@ -72,7 +72,7 @@ "progressBarMaxWidth": 200, "progressBarMinWidth": 40, "progressBarWidthPercent": 30, - "showGDevelopSplash": false, + "showGDevelopSplash": true, "showProgressBar": false }, "watermark": { From 5d6f980e5387019719293861d2c241860e7af9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 10 Sep 2023 22:11:26 +0200 Subject: [PATCH 49/53] Update description. --- examples/3d-bomber-bunny/3d-bomber-bunny.json | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/3d-bomber-bunny/3d-bomber-bunny.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json index 990ea7083..4febbfe2e 100644 --- a/examples/3d-bomber-bunny/3d-bomber-bunny.json +++ b/examples/3d-bomber-bunny/3d-bomber-bunny.json @@ -21,7 +21,7 @@ "useExternalSourceFiles": false, "version": "1.0.0", "name": "Bomber Bunny", - "description": "This is a game example to show how to do a Bomberman clone with GDevelop. The source can be found directly in GDevelop in the examples list.\n\nControls are:\n\n- arrows and RShift\n- ESDF and LShift\n- IJKL and H\n- 8456 and 0\n- or gamepads", + "description": "This is a game example to show how to do a Bomberman clone with GDevelop. The source can be found directly in GDevelop in the examples list.\n\nControls are:\n\n- arrows and RShift\n- ESDF and LShift\n- IJKL and H\n- 8456 and 0\n- or gamepads\n\nAsset sources:\n\n- Bunnies, bombs and rocks are from Quaternius\n- Cabbages and walls are from Kenney", "author": "", "windowWidth": 1280, "windowHeight": 720, @@ -4255,7 +4255,7 @@ "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", "width": 128, "x": 384, - "y": 160, + "y": 96, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4271,7 +4271,7 @@ "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", "width": 128, "x": 576, - "y": 160, + "y": 96, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4287,7 +4287,7 @@ "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", "width": 128, "x": 768, - "y": 160, + "y": 96, "zOrder": 20, "numberProperties": [], "stringProperties": [], @@ -4302,7 +4302,7 @@ "persistentUuid": "c0dfb158-0c70-4190-8054-75e1b1b1519a", "width": 0, "x": 122, - "y": 414, + "y": 350, "zOrder": 4, "numberProperties": [], "stringProperties": [], @@ -4317,7 +4317,7 @@ "persistentUuid": "0affdf6e-c1d7-4ce5-9127-58bcf4c6332f", "width": 0, "x": 800, - "y": 416, + "y": 352, "zOrder": 5, "numberProperties": [], "stringProperties": [], @@ -4332,7 +4332,7 @@ "persistentUuid": "0bf817cd-1d90-4559-aa65-58ef521467f7", "width": 0, "x": 764, - "y": 208, + "y": 144, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4347,7 +4347,7 @@ "persistentUuid": "632fdf20-f66d-41db-83e0-f396192ba2a7", "width": 0, "x": 585, - "y": 208, + "y": 144, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4362,7 +4362,7 @@ "persistentUuid": "92d0f636-73f4-403e-be06-77090c45d50f", "width": 0, "x": 609, - "y": 196, + "y": 132, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4377,7 +4377,7 @@ "persistentUuid": "d5c2c919-f98f-4d5d-b53f-8f8d0b7996b8", "width": 0, "x": 788, - "y": 196, + "y": 132, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4392,7 +4392,7 @@ "persistentUuid": "89bb8063-0ffa-4ee3-b4eb-7ed589a16dfb", "width": 0, "x": 633, - "y": 184, + "y": 120, "zOrder": 13, "numberProperties": [], "stringProperties": [], @@ -4407,7 +4407,7 @@ "persistentUuid": "ee365d7f-282c-4746-9b01-cefdcee6cb7c", "width": 0, "x": 812, - "y": 184, + "y": 120, "zOrder": 13, "numberProperties": [], "stringProperties": [], @@ -4422,7 +4422,7 @@ "persistentUuid": "988cd659-15ed-43a1-b191-1722f5590994", "width": 0, "x": 832, - "y": 172, + "y": 108, "zOrder": 12, "numberProperties": [], "stringProperties": [], @@ -4438,7 +4438,7 @@ "persistentUuid": "e3d6399e-afd4-45f3-89b0-e5e32647d0c7", "width": 192, "x": 544, - "y": 416, + "y": 352, "zOrder": 21, "numberProperties": [], "stringProperties": [], @@ -4453,7 +4453,7 @@ "persistentUuid": "39330ce0-708f-400e-9cbe-93a810f37c84", "width": 0, "x": 406, - "y": 209, + "y": 145, "zOrder": 15, "numberProperties": [], "stringProperties": [], @@ -4468,7 +4468,7 @@ "persistentUuid": "2c6334f5-2b8d-41d3-853b-007a9df4bb6e", "width": 0, "x": 426, - "y": 197, + "y": 133, "zOrder": 14, "numberProperties": [], "stringProperties": [], @@ -4483,7 +4483,7 @@ "persistentUuid": "2febaeab-ceed-4d24-9a94-9e5c97de2473", "width": 0, "x": 654, - "y": 416, + "y": 352, "zOrder": 22, "numberProperties": [], "stringProperties": [], @@ -4499,7 +4499,7 @@ "persistentUuid": "8ea97105-1b13-4bd1-9d9b-c0bb7bd19c04", "width": 416, "x": 96, - "y": 384, + "y": 320, "zOrder": 0, "numberProperties": [], "stringProperties": [], @@ -4515,7 +4515,7 @@ "persistentUuid": "d8ab7ddb-21d1-4522-af28-890e7e65738e", "width": 416, "x": 768, - "y": 384, + "y": 320, "zOrder": 0, "numberProperties": [], "stringProperties": [], From f80e26fcdc6806331b1868e8c19e15f4de2cf884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sat, 16 Sep 2023 22:59:39 +0200 Subject: [PATCH 50/53] Button effect --- examples/3d-bomber-bunny/3d-bomber-bunny.json | 8129 ++++++++++++++++- 1 file changed, 7999 insertions(+), 130 deletions(-) diff --git a/examples/3d-bomber-bunny/3d-bomber-bunny.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json index 4febbfe2e..ccb6b0bda 100644 --- a/examples/3d-bomber-bunny/3d-bomber-bunny.json +++ b/examples/3d-bomber-bunny/3d-bomber-bunny.json @@ -694,12 +694,12 @@ { "angle": 0, "customSize": true, - "depth": 0, + "depth": 1, "height": 252, "layer": "UI", "name": "Panel", "persistentUuid": "197982e1-0bc8-4cb6-8531-23bc9d79bed2", - "width": 120, + "width": 144, "x": 0, "y": 0, "zOrder": 0, @@ -4027,6 +4027,33 @@ } ], "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyReleased" + }, + "parameters": [ + "", + "Space" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetSpeedScale" + }, + "parameters": [ + "BlueBunny", + "Animation", + "*", + "-1" + ] + } + ] } ], "layers": [ @@ -4674,8 +4701,58 @@ "value": "2" } ], - "effects": [], - "behaviors": [], + "effects": [ + { + "effectType": "Adjustment", + "name": "Adjustment", + "doubleParameters": { + "alpha": 1, + "blue": 1, + "brightness": 1, + "contrast": 1, + "gamma": 1, + "green": 1, + "red": 1, + "saturation": 1 + }, + "stringParameters": {}, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + }, + { + "name": "ButtonObjectEffects", + "type": "ButtonStates::ButtonObjectEffectTween", + "ButtonStatesBehavior": "ButtonFSM", + "ObjectEffectCapability": "Effect", + "HoverEffect": "Effect", + "PressedEffect": "", + "HeldOutsideEffect": "", + "IdleEffect": "", + "FocusedEffect": "", + "Effect": "Effect", + "EffectProperty": "brightness", + "FocusedValue": 1.1, + "IdleValue": 1, + "PressedValue": 1.3, + "ButtonFSM": "ButtonFSM", + "EffectCapability": "Effect", + "Effect2": "Effect", + "EffectName": "Adjustment", + "FadeOutDuration": 0.5, + "FadeInDuration": 0.125 + } + ], "animations": [ { "name": "", @@ -4732,8 +4809,58 @@ "value": "6" } ], - "effects": [], - "behaviors": [], + "effects": [ + { + "effectType": "Adjustment", + "name": "Adjustment", + "doubleParameters": { + "alpha": 1, + "blue": 1, + "brightness": 1, + "contrast": 1, + "gamma": 1, + "green": 1, + "red": 1, + "saturation": 1 + }, + "stringParameters": {}, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + }, + { + "name": "ButtonObjectEffects", + "type": "ButtonStates::ButtonObjectEffectTween", + "ButtonStatesBehavior": "ButtonFSM", + "ObjectEffectCapability": "Effect", + "HoverEffect": "Effect", + "PressedEffect": "", + "HeldOutsideEffect": "", + "IdleEffect": "", + "FocusedEffect": "", + "Effect": "Effect", + "EffectProperty": "brightness", + "FocusedValue": 1.1, + "IdleValue": 1, + "PressedValue": 1.3, + "ButtonFSM": "ButtonFSM", + "EffectCapability": "Effect", + "Effect2": "Effect", + "EffectName": "Adjustment", + "FadeOutDuration": 0.5, + "FadeInDuration": 0.125 + } + ], "animations": [ { "name": "", @@ -5451,6 +5578,14 @@ "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM" + }, + { + "name": "ButtonObjectEffects", + "type": "ButtonStates::ButtonObjectEffectTween" + }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" @@ -5560,127 +5695,7801 @@ "textG": 0, "textR": 0 }, - "comment": "The crate is removed after because its location is used to create the bonus." + "comment": "The crate is removed after because its location is used to create the bonus." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Explosion", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Crate", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Give the player its bomb back." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Player", + "Number", + "=", + "Bomb.Variable(PlayerNum)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Player", + "BombPut", + "-", + "1" + ] + } + ] + } + ] + }, + { + "associatedLayout": "Game", + "lastChangeTimeStamp": 0, + "name": "Print score", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Called in \"Game\" and \"Death\"." + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Player", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Score", + "PlayerNum", + "=", + "Player.Variable(Number)" + ] + } + ], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Score", + "=", + "GlobalVariableString(Score[Player.VariableString(Number)])" + ] + } + ] + } + ] + } + ], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "User interface", + "extensionNamespace": "", + "fullName": "Button States and Effects", + "helpPath": "/objects/button", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdlc3R1cmUtdGFwLWJ1dHRvbiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMyA1QzE1LjIxIDUgMTcgNi43OSAxNyA5QzE3IDEwLjUgMTYuMiAxMS43NyAxNSAxMi40NlYxMS4yNEMxNS42MSAxMC42OSAxNiA5Ljg5IDE2IDlDMTYgNy4zNCAxNC42NiA2IDEzIDZTMTAgNy4zNCAxMCA5QzEwIDkuODkgMTAuMzkgMTAuNjkgMTEgMTEuMjRWMTIuNDZDOS44IDExLjc3IDkgMTAuNSA5IDlDOSA2Ljc5IDEwLjc5IDUgMTMgNU0yMCAyMC41QzE5Ljk3IDIxLjMyIDE5LjMyIDIxLjk3IDE4LjUgMjJIMTNDMTIuNjIgMjIgMTIuMjYgMjEuODUgMTIgMjEuNTdMOCAxNy4zN0w4Ljc0IDE2LjZDOC45MyAxNi4zOSA5LjIgMTYuMjggOS41IDE2LjI4SDkuN0wxMiAxOFY5QzEyIDguNDUgMTIuNDUgOCAxMyA4UzE0IDguNDUgMTQgOVYxMy40N0wxNS4yMSAxMy42TDE5LjE1IDE1Ljc5QzE5LjY4IDE2LjAzIDIwIDE2LjU2IDIwIDE3LjE0VjIwLjVNMjAgMkg0QzIuOSAyIDIgMi45IDIgNFYxMkMyIDEzLjExIDIuOSAxNCA0IDE0SDhWMTJMNCAxMkw0IDRIMjBMMjAgMTJIMThWMTRIMjBWMTMuOTZMMjAuMDQgMTRDMjEuMTMgMTQgMjIgMTMuMDkgMjIgMTJWNEMyMiAyLjkgMjEuMTEgMiAyMCAyWiIgLz48L3N2Zz4=", + "name": "ButtonStates", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/753a9a794bd885058159b7509f06f5a8f67f72decfccb9a1b0efee26f41c3c4c_gesture-tap-button.svg", + "shortDescription": "Use any object as a button and change appearance during user interaction.", + "version": "1.1.0", + "description": [ + "Use the \"Button states\" behavior to track user interaction with an object, including:", + "", + "- Hovered", + "- Pressed", + "- Clicked", + "- Idle", + "", + "Add additional behaviors to make a juicy button with animated responses to user input:", + "", + "- Size", + "- Color", + "- Angle", + "- Opacity", + "- Animation", + "- Object effects" + ], + "origin": { + "identifier": "ButtonStates", + "name": "gdevelop-extension-store" + }, + "tags": [ + "ui", + "button", + "fsm", + "effect", + "size", + "scale", + "color", + "tint", + "animation", + "opacity", + "angle" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Use any object as a button.", + "fullName": "Button states", + "name": "ButtonFSM", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Finite state machine", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The \"Validated\" state only last one frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check position", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the cursor position is only checked once per frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyShouldCheckHovering" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "MouseOnlyCursorX(Object.Layer(), 0)", + "MouseOnlyCursorY(Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Touches are always pressed, so ShouldCheckHovering doesn't matter." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)", + "TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch start", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyIndex())" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply position changes", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch end", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + }, + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::ResetState" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset the state of the button.", + "fullName": "Reset state", + "functionType": "Action", + "name": "ResetState", + "private": true, + "sentence": "Reset the button state of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is not used.", + "fullName": "Is idle", + "functionType": "Condition", + "name": "IsIdle", + "sentence": "_PARAM0_ is idle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button was just clicked.", + "fullName": "Is clicked", + "functionType": "Condition", + "name": "IsClicked", + "sentence": "_PARAM0_ is clicked", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the cursor is hovered over the button.", + "fullName": "Is hovered", + "functionType": "Condition", + "name": "IsHovered", + "sentence": "_PARAM0_ is hovered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is either hovered or pressed but not hovered.", + "fullName": "Is focused", + "functionType": "Condition", + "name": "IsFocused", + "sentence": "_PARAM0_ is focused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed with mouse or touch.", + "fullName": "Is pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "_PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed outside with mouse or touch.", + "fullName": "Is held outside", + "functionType": "Condition", + "name": "IsPressedOutside", + "sentence": "_PARAM0_ is held outside", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the touch id that is using the button or 0 if none.", + "fullName": "Touch id", + "functionType": "ExpressionAndCondition", + "name": "TouchId", + "sentence": "the touch id", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTouchId()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "Should check hovering", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldCheckHovering" + }, + { + "value": "Idle", + "type": "Choice", + "label": "State", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Hovered", + "PressedInside", + "PressedOutside", + "Validated" + ], + "hidden": true, + "name": "State" + }, + { + "value": "0", + "type": "Number", + "label": "Touch id", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Boolean", + "label": "Touch is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIsInside" + }, + { + "value": "", + "type": "Boolean", + "label": "Mouse is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseIsInside" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Index" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change effects of a button based on its state.", + "fullName": "Button object effect tween", + "name": "ButtonObjectEffectTween", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyIdleValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "States", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyIdleValue()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedValue()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedValue()", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyPressedValue()", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tween", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"FadeIn\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFadeInDuration()", + "Object.Behavior::PropertyFadeInEasing()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"FadeOut\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFadeOutDuration()", + "Object.Behavior::PropertyFadeOutEasing()", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Time delta", + "functionType": "Expression", + "name": "TimeDelta", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "TimeDelta() * LayerTimeScale(Object.Layer())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"FadeIn\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyEffectValue()" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"FadeOut\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyEffectValue()" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "Play tween", + "functionType": "Action", + "name": "PlayTween", + "private": true, + "sentence": "Tween the effect property of object _PARAM0_ over _PARAM2_ seconds with _PARAM3_ easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "GetArgumentAsNumber(\"Duration\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::TimeDelta()" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Tween::Ease(GetArgumentAsString(\"Easing\"), Object.Behavior::PropertyTweenInitialValue(), Object.Behavior::PropertyTweenTargetedValue(), Object.Behavior::PropertyTweenTime() / GetArgumentAsNumber(\"Duration\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "GetArgumentAsNumber(\"Duration\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NoTween\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTweenTargetedValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" + }, + "parameters": [ + "Object", + "Effect", + "Object.Behavior::PropertyEffectName()", + "Object.Behavior::PropertyEffectProperty()", + "Object.Behavior::PropertyEffectValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "type": "behavior" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[]", + "type": "string" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonFSM" + }, + { + "value": "", + "type": "Behavior", + "label": "Effect capability", + "description": "", + "group": "", + "extraInformation": [ + "EffectCapability::EffectBehavior" + ], + "hidden": false, + "name": "Effect" + }, + { + "value": "Effect", + "type": "String", + "label": "Effect name", + "description": "", + "group": "Effect", + "extraInformation": [], + "hidden": false, + "name": "EffectName" + }, + { + "value": "", + "type": "String", + "label": "Effect property", + "description": "", + "group": "Effect", + "extraInformation": [], + "hidden": false, + "name": "EffectProperty" + }, + { + "value": "0", + "type": "Number", + "label": "Idle effect property value", + "description": "", + "group": "Values", + "extraInformation": [], + "hidden": false, + "name": "IdleValue" + }, + { + "value": "0", + "type": "Number", + "label": "Focused effect property value", + "description": "The Focused state is when the button is hovered or held outside.", + "group": "Values", + "extraInformation": [], + "hidden": false, + "name": "FocusedValue" + }, + { + "value": "0", + "type": "Number", + "label": "Pressed effect property value", + "description": "", + "group": "Values", + "extraInformation": [], + "hidden": false, + "name": "PressedValue" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeOutEasing" + }, + { + "value": "0.125", + "type": "Number", + "label": "Fade in duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.5", + "type": "Number", + "label": "Fade out duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeOutDuration" + }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenInitialValue" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenTargetedValue" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenTime" + }, + { + "value": "NoTween", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "NoTween", + "FadeIn", + "FadeOut" + ], + "hidden": true, + "name": "TweenState" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "EffectValue" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Enable and disable the object effects of a button based on its state.", + "fullName": "Button object effects", + "name": "ButtonObjectEffects", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyFocusedEffect()", + "no" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyHeldOutsideEffect()", + "no" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyHoverEffect()", + "no" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyIdleEffect()", + "no" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyPressedEffect()", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::PropertyFocusedEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"0\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyFocusedEffect()", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::PropertyHeldOutsideEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"0\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyHeldOutsideEffect()", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::PropertyHoverEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"0\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyHoverEffect()", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::PropertyIdleEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"0\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyIdleEffect()", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::PropertyPressedEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"0\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "ObjectEffectCapability", + "Object.Behavior::PropertyPressedEffect()", + "yes" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the object effect used during \"Hover\" of the object.", + "fullName": "Object effect used during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button object effects configuration", + "name": "HoverEffect", + "sentence": "the object effect used during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHoverEffect()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverEffect", + "name": "SetHoverEffect", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::SetPropertyHoverEffect" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the object effect used during \"Pressed\" of the object.", + "fullName": "Object effect used during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button object effects configuration", + "name": "PressedEffect", + "sentence": "the object effect used during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyPressedEffect()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedEffect", + "name": "SetPressedEffect", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::SetPropertyPressedEffect" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the object effect used during \"Held Outside\" of the object.", + "fullName": "Object effect used during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button object effects configuration", + "name": "HeldOutsideEffect", + "sentence": "the object effect used during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideEffect()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideEffect", + "name": "SetHeldOutsideEffect", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::SetPropertyHeldOutsideEffect" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the object effect used during \"Idle\" of the object.", + "fullName": "Object effect used during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button object effects configuration", + "name": "IdleEffect", + "sentence": "the object effect used during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyIdleEffect()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleEffect", + "name": "SetIdleEffect", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::SetPropertyIdleEffect" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the object effect used during \"Focused\" of the object.", + "fullName": "Object effect used during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button object effects configuration", + "name": "FocusedEffect", + "sentence": "the object effect used during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedEffect()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedEffect", + "name": "SetFocusedEffect", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffects::SetPropertyFocusedEffect" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, + { + "value": "", + "type": "Behavior", + "label": "Object effect capability required)", + "description": "", + "group": "", + "extraInformation": [ + "EffectCapability::EffectBehavior" + ], + "hidden": false, + "name": "ObjectEffectCapability" + }, + { + "value": "Effect", + "type": "String", + "label": "Object effect used during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverEffect" + }, + { + "value": "", + "type": "String", + "label": "Object effect used during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedEffect" + }, + { + "value": "", + "type": "String", + "label": "Object effect used during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideEffect" + }, + { + "value": "", + "type": "String", + "label": "Object effect used during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleEffect" + }, + { + "value": "", + "type": "String", + "label": "Object effect used during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedEffect" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change the size (scale) of a button based on its state.", + "fullName": "Button scale", + "name": "ButtonScaleTween", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.FocusedScale\"", + "Object.Behavior::PropertyFocusedScale()", + "Object.Behavior::PropertyFocusedScale()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HeldOutsideScale\"", + "Object.Behavior::PropertyHeldOutsideScale()", + "Object.Behavior::PropertyHeldOutsideScale()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HoveredScale\"", + "Object.Behavior::PropertyHoverScale()", + "Object.Behavior::PropertyHoverScale()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.IdleScale\"", + "Object.Behavior::PropertyIdleScale()", + "Object.Behavior::PropertyIdleScale()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.PressedScale\"", + "Object.Behavior::PropertyPressedScale()", + "Object.Behavior::PropertyPressedScale()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the tween duration (seconds) of the object.", + "fullName": "Tween duration (seconds)", + "functionType": "ExpressionAndCondition", + "group": "Button scale speed configuration", + "name": "TweenDuration", + "sentence": "the tween duration (seconds)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTweenDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "TweenDuration", + "name": "SetTweenDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyTweenDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the size scale during \"Hover\" of the object.", + "fullName": "Size scale during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button scale configuration", + "name": "HoverScale", + "sentence": "the size scale during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHoverScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverScale", + "name": "SetHoverScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyHoverScale" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the size scale during \"Pressed\" of the object.", + "fullName": "Size scale during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button scale configuration", + "name": "PressedScale", + "sentence": "the size scale during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPressedScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedScale", + "name": "SetPressedScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyPressedScale" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the size scale during \"Held Outside\" of the object.", + "fullName": "Size scale during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button scale configuration", + "name": "HeldOutsideScale", + "sentence": "the size scale during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideScale", + "name": "SetHeldOutsideScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyHeldOutsideScale" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the size scale during \"Idle\" of the object.", + "fullName": "Size scale during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button scale configuration", + "name": "IdleScale", + "sentence": "the size scale during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyIdleScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleScale", + "name": "SetIdleScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyIdleScale" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the size scale during \"Focused\" of the object.", + "fullName": "Size scale during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button scale configuration", + "name": "FocusedScale", + "sentence": "the size scale during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedScale()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedScale", + "name": "SetFocusedScale", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyFocusedScale" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the easing of the object.", + "fullName": "Easing", + "functionType": "ExpressionAndCondition", + "group": "Button scale speed configuration", + "name": "Easing", + "sentence": "the easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyEasing()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Easing", + "name": "SetEasing", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, + { + "value": "", + "type": "Behavior", + "label": "Tween behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "TweenBehavior" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Tween duration (seconds)", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "TweenDuration" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Size scale during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverScale" + }, + { + "value": "0.95", + "type": "Number", + "unit": "Dimensionless", + "label": "Size scale during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedScale" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Size scale during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideScale" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Size scale during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleScale" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Size scale during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedScale" + }, + { + "value": "easeInOutSine", + "type": "Choice", + "label": "Easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "Easing" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change the angle of a button based on its state.", + "fullName": "Button angle tween", + "name": "ButtonAngleTween", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "States", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyIdleAngle()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedAngle()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedAngle()", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyPressedAngle()", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween::AddObjectAngleTween" + }, + "parameters": [ + "Object", + "Tween", + "\"__ButtonEffects.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeInEasing()", + "1000 * Object.Behavior::PropertyFadeInDuration()", + "no" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Tween::AddObjectAngleTween" + }, + "parameters": [ + "Object", + "Tween", + "\"__ButtonEffects.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeOutEasing()", + "1000 * Object.Behavior::PropertyFadeOutDuration()", + "no" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonFSM" + }, + { + "value": "", + "type": "Behavior", + "label": "Tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Idle state angle", + "description": "", + "group": "Rotation", + "extraInformation": [], + "hidden": false, + "name": "IdleAngle" + }, + { + "value": "20", + "type": "Number", + "unit": "DegreeAngle", + "label": "Focussed state angle", + "description": "", + "group": "Rotation", + "extraInformation": [], + "hidden": false, + "name": "FocusedAngle" + }, + { + "value": "180", + "type": "Number", + "unit": "DegreeAngle", + "label": "Pressed state angle", + "description": "", + "group": "Rotation", + "extraInformation": [], + "hidden": false, + "name": "PressedAngle" + }, + { + "value": "0.3", + "type": "Number", + "unit": "Second", + "label": "Fade in duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.6", + "type": "Number", + "unit": "Second", + "label": "Fade out duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeOutDuration" + }, + { + "value": "easeOutBounce", + "type": "Choice", + "label": "Fade in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeOutBounce", + "type": "Choice", + "label": "Fade out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeOutEasing" + }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change the opacity of a button based on its state.", + "fullName": "Button opacity tween", + "name": "ButtonOpacityTween", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.FocusedOpacity\"", + "Object.Behavior::PropertyFocusedOpacity()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HeldOutsideOpacity\"", + "Object.Behavior::PropertyHeldOutsideOpacity()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HoveredOpacity\"", + "Object.Behavior::PropertyHoverOpacity()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.IdleOpacity\"", + "Object.Behavior::PropertyIdleOpacity()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.PressedOpacity\"", + "Object.Behavior::PropertyPressedOpacity()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the tween duration (seconds) of the object.", + "fullName": "Tween duration (seconds)", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween speed configuration", + "name": "TweenDuration", + "sentence": "the tween duration (seconds)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTweenDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "TweenDuration", + "name": "SetTweenDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyTweenDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the opacity during \"Hover\" of the object.", + "fullName": "Opacity during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween configuration", + "name": "HoverOpacity", + "sentence": "the opacity during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHoverOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverOpacity", + "name": "SetHoverOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyHoverOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the opacity during \"Pressed\" of the object.", + "fullName": "Opacity during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween configuration", + "name": "PressedOpacity", + "sentence": "the opacity during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPressedOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedOpacity", + "name": "SetPressedOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyPressedOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the opacity during \"Held Outside\" of the object.", + "fullName": "Opacity during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween configuration", + "name": "HeldOutsideOpacity", + "sentence": "the opacity during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideOpacity", + "name": "SetHeldOutsideOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyHeldOutsideOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the opacity during \"Idle\" of the object.", + "fullName": "Opacity during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween configuration", + "name": "IdleOpacity", + "sentence": "the opacity during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyIdleOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleOpacity", + "name": "SetIdleOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyIdleOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the opacity during \"Focused\" of the object.", + "fullName": "Opacity during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween configuration", + "name": "FocusedOpacity", + "sentence": "the opacity during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedOpacity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedOpacity", + "name": "SetFocusedOpacity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyFocusedOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the easing of the object.", + "fullName": "Easing", + "functionType": "ExpressionAndCondition", + "group": "Button opacity tween speed configuration", + "name": "Easing", + "sentence": "the easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyEasing()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Easing", + "name": "SetEasing", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, + { + "value": "", + "type": "Behavior", + "label": "Tween behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "TweenBehavior" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Tween duration (seconds)", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "TweenDuration" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Opacity during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverOpacity" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Opacity during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedOpacity" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Opacity during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideOpacity" + }, + { + "value": "200", + "type": "Number", + "unit": "Dimensionless", + "label": "Opacity during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleOpacity" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Opacity during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedOpacity" + }, + { + "value": "easeInOutSine", + "type": "Choice", + "label": "Easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "Easing" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change the color tint of a button based on its state.", + "fullName": "Button color tint tween", + "name": "ButtonColorTintTween", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectColorTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.FocusedColorTint\"", + "Object.Behavior::PropertyFocusedColorTint()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectColorTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HeldOutsideColorTint\"", + "Object.Behavior::PropertyHeldOutsideColorTint()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectColorTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.HoveredColorTint\"", + "Object.Behavior::PropertyHoverColorTint()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectColorTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.IdleColorTint\"", + "Object.Behavior::PropertyIdleColorTint()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectColorTween" + }, + "parameters": [ + "Object", + "TweenBehavior", + "\"__ButtonEffects.PressedColorTint\"", + "Object.Behavior::PropertyPressedColorTint()", + "Object.Behavior::PropertyEasing()", + "1000 * Object.Behavior::PropertyTweenDuration()", + "no", + "yes" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the tween duration (seconds) of the object.", + "fullName": "Tween duration (seconds)", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween speed configuration", + "name": "TweenDuration", + "sentence": "the tween duration (seconds)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTweenDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "TweenDuration", + "name": "SetTweenDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyTweenDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the color tint during \"Hover\" of the object.", + "fullName": "Color tint during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween configuration", + "name": "HoverColorTint", + "sentence": "the color tint during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHoverColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverColorTint", + "name": "SetHoverColorTint", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyHoverColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the color tint during \"Pressed\" of the object.", + "fullName": "Color tint during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween configuration", + "name": "PressedColorTint", + "sentence": "the color tint during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyPressedColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedColorTint", + "name": "SetPressedColorTint", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyPressedColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the color tint during \"Held Outside\" of the object.", + "fullName": "Color tint during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween configuration", + "name": "HeldOutsideColorTint", + "sentence": "the color tint during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideColorTint", + "name": "SetHeldOutsideColorTint", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyHeldOutsideColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the color tint during \"Idle\" of the object.", + "fullName": "Color tint during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween configuration", + "name": "IdleColorTint", + "sentence": "the color tint during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyIdleColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleColorTint", + "name": "SetIdleColorTint", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyIdleColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the color tint during \"Focused\" of the object.", + "fullName": "Color tint during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween configuration", + "name": "FocusedColorTint", + "sentence": "the color tint during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedColorTint", + "name": "SetFocusedColorTint", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyFocusedColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the easing of the object.", + "fullName": "Easing", + "functionType": "ExpressionAndCondition", + "group": "Button color tint tween speed configuration", + "name": "Easing", + "sentence": "the easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyEasing()" + ] + } + ] + } + ], + "expressionType": { + "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", + "type": "stringWithSelector" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Easing", + "name": "SetEasing", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyEasing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, + { + "value": "", + "type": "Behavior", + "label": "Tween behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "TweenBehavior" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Tween duration (seconds)", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "TweenDuration" + }, + { + "value": "192;192;192", + "type": "Color", + "label": "Color tint during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverColorTint" + }, + { + "value": "64;64;64", + "type": "Color", + "label": "Color tint during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedColorTint" + }, + { + "value": "255;255;255", + "type": "Color", + "label": "Color tint during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideColorTint" + }, + { + "value": "255;255;255", + "type": "Color", + "label": "Color tint during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleColorTint" + }, + { + "value": "255;255;255", + "type": "Color", + "label": "Color tint during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedColorTint" + }, + { + "value": "easeInOutSine", + "type": "Choice", + "label": "Easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "Easing" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Change the current animation number of a button based on its state.", + "fullName": "Button animation (number)", + "name": "ButtonAnimationNumber", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyFocusedAnimation()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyHeldOutsideAnimation()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyHoverAnimation()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimation()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyPressedAnimation()" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation number during \"Hover\" of the object.", + "fullName": "Animation number during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (number) configuration", + "name": "HoverAnimation", + "sentence": "the animation number during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHoverAnimation()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverAnimation", + "name": "SetHoverAnimation", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationNumber::SetPropertyHoverAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation number during \"Pressed\" of the object.", + "fullName": "Animation number during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (number) configuration", + "name": "PressedAnimation", + "sentence": "the animation number during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPressedAnimation()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedAnimation", + "name": "SetPressedAnimation", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationNumber::SetPropertyPressedAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation number during \"Held Outside\" of the object.", + "fullName": "Animation number during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (number) configuration", + "name": "HeldOutsideAnimation", + "sentence": "the animation number during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideAnimation()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideAnimation", + "name": "SetHeldOutsideAnimation", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationNumber::SetPropertyHeldOutsideAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation number during \"Idle\" of the object.", + "fullName": "Animation number during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (number) configuration", + "name": "IdleAnimation", + "sentence": "the animation number during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyIdleAnimation()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleAnimation", + "name": "SetIdleAnimation", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationNumber::SetPropertyIdleAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation number during \"Focused\" of the object.", + "fullName": "Animation number during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (number) configuration", + "name": "FocusedAnimation", + "sentence": "the animation number during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedAnimation()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedAnimation", + "name": "SetFocusedAnimation", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationNumber::SetPropertyFocusedAnimation" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Animation number during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverAnimation" + }, + { + "value": "2", + "type": "Number", + "unit": "Dimensionless", + "label": "Animation number during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedAnimation" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Animation number during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideAnimation" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Animation number during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleAnimation" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Animation number during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedAnimation" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Change the current animation name of a button based on its state.", + "fullName": "Button animation (name)", + "name": "ButtonAnimationName", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyFocusedAnimationName()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyHeldOutsideAnimationName()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyHoverAnimationName()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimationName()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonStatesBehavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyPressedAnimationName()" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name during \"Hover\" of the object.", + "fullName": "Animation name during \"Hover\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (name) configuration", + "name": "HoverAnimationName", + "sentence": "the animation name during \"Hover\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHoverAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HoverAnimationName", + "name": "SetHoverAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationName::SetPropertyHoverAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name during \"Pressed\" of the object.", + "fullName": "Animation name during \"Pressed\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (name) configuration", + "name": "PressedAnimationName", + "sentence": "the animation name during \"Pressed\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyPressedAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PressedAnimationName", + "name": "SetPressedAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationName::SetPropertyPressedAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name during \"Held Outside\" of the object.", + "fullName": "Animation name during \"Held Outside\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (name) configuration", + "name": "HeldOutsideAnimationName", + "sentence": "the animation name during \"Held Outside\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyHeldOutsideAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeldOutsideAnimationName", + "name": "SetHeldOutsideAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationName::SetPropertyHeldOutsideAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name during \"Idle\" of the object.", + "fullName": "Animation name during \"Idle\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (name) configuration", + "name": "IdleAnimationName", + "sentence": "the animation name during \"Idle\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyIdleAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "IdleAnimationName", + "name": "SetIdleAnimationName", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationName::SetPropertyIdleAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the animation name during \"Focused\" of the object.", + "fullName": "Animation name during \"Focused\"", + "functionType": "ExpressionAndCondition", + "group": "Button animation (name) configuration", + "name": "FocusedAnimationName", + "sentence": "the animation name during \"Focused\"", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyFocusedAnimationName()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FocusedAnimationName", + "name": "SetFocusedAnimationName", + "sentence": "", + "events": [ { - "type": { - "value": "Delete" - }, - "parameters": [ - "Explosion", - "" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAnimationName::SetPropertyFocusedAnimationName" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" }, { - "type": { - "value": "Delete" - }, - "parameters": [ - "Crate", - "" - ] + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Give the player its bomb back." - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Player", - "Number", - "=", - "Bomb.Variable(PlayerNum)" - ] + ], + "objectGroups": [] } ], - "actions": [ + "propertyDescriptors": [ { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "Player", - "BombPut", - "-", - "1" - ] - } - ] - } - ] - }, - { - "associatedLayout": "Game", - "lastChangeTimeStamp": 0, - "name": "Print score", - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Called in \"Game\" and \"Death\"." - }, - { - "type": "BuiltinCommonInstructions::ForEach", - "object": "Player", - "conditions": [ + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" + }, { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "Score", - "PlayerNum", - "=", - "Player.Variable(Number)" - ] - } - ], - "actions": [ + "value": "", + "type": "String", + "label": "Animation name during \"Hover\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoverAnimationName" + }, { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Score", - "=", - "GlobalVariableString(Score[Player.VariableString(Number)])" - ] + "value": "", + "type": "String", + "label": "Animation name during \"Pressed\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedAnimationName" + }, + { + "value": "", + "type": "String", + "label": "Animation name during \"Held Outside\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HeldOutsideAnimationName" + }, + { + "value": "", + "type": "String", + "label": "Animation name during \"Idle\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleAnimationName" + }, + { + "value": "", + "type": "String", + "label": "Animation name during \"Focused\"", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedAnimationName" } - ] + ], + "sharedPropertyDescriptors": [] } - ] - } - ], - "eventsFunctionsExtensions": [ + ], + "eventsBasedObjects": [] + }, { "author": "", "category": "Visual effect", @@ -16050,7 +23859,7 @@ "name": "ParticleEmitter3D", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/f2e5a34bf465f781866677762d385d6c8e9e8d203383f2df9a3b7e0fad6a2cb5_fire.svg", "shortDescription": "Display a large number of particles to create visual effects.", - "version": "1.0.0", + "version": "1.1.0", "description": [ "Particle emitters can be used to display:", "- Fire", @@ -21233,7 +29042,7 @@ ], "parameterObjects": "", "useStrict": true, - "eventsSheetExpanded": false + "eventsSheetExpanded": true } ], "parameters": [], @@ -21295,15 +29104,6 @@ "", "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", "const gameScene = object.getRuntimeScene();", - "const layer = gameScene.getLayer(object.getLayer());", - "", - "gameScene.__particleEmmiter3DExtension = gameScene.__particleEmmiter3DExtension || {};", - "if (!gameScene.__particleEmmiter3DExtension.batchSystem) {", - " const batchSystem = new BatchedRenderer();", - " layer.getRenderer().getThreeScene().add(batchSystem);", - " gameScene.__particleEmmiter3DExtension.batchSystem = batchSystem;", - "}", - "const batchSystem = gameScene.__particleEmmiter3DExtension.batchSystem;", "", "/** @type {SpriteObjectDataType} */", "const particleSpriteData = object._instanceContainer._objects.get(\"Particle\");", @@ -21359,7 +29159,6 @@ " renderMode: RenderMode.BillBoard", "};", "const particleSystem = new ParticleSystem(muzzle);", - "object.__particleSystem = particleSystem;", "", "const colorOverLife = new ColorOverLife(new ColorRange(", " new THREE.Vector4(1, 0.3882312, 0.125, 1),", @@ -21372,18 +29171,22 @@ "", "particleSystem.emitter.rotation.order = 'ZYX';", "particleSystem.emitter.name = object.getName() + object.getNameId();", - "batchSystem.addSystem(particleSystem);", "", "object.__particleEmitterAdapter = new ParticleEmitterAdapter(particleSystem, colorOverLife, sizeOverLife, applyForce);", + "object.__particleSystem = particleSystem;", "", - "layer.get3DRendererObject().add(particleSystem.emitter);", + "const layer = gameScene.getLayer(object.getLayer());", + "layer.getRenderer().add3DRendererObject(particleSystem.emitter);", "const ParticleEmitter3D = Object.getPrototypeOf(object);", "if (!ParticleEmitter3D.__isDefined) {", " ParticleEmitter3D.__isDefined = true;", - " ParticleEmitter3D.get3DRendererObject = () => this.__emitter;", + " ParticleEmitter3D.get3DRendererObject = function() {", + " return this.__particleSystem.emitter;", + " };", "}", "", "// See doStepPostEvents", + "gameScene.__particleEmmiter3DExtension = gameScene.__particleEmmiter3DExtension || {};", "gameScene.__particleEmmiter3DExtension.emittersCount = gameScene.__particleEmmiter3DExtension.emittersCount || 0;", "gameScene.__particleEmmiter3DExtension.emittersCount++;", "", @@ -21847,7 +29650,17 @@ ] } ], - "actions": [], + "actions": [ + { + "type": { + "value": "ParticleEmitter3D::ParticleEmitter3D::RegisterInLayer" + }, + "parameters": [ + "Object", + "" + ] + } + ], "events": [ { "type": "BuiltinCommonInstructions::JsCode", @@ -21855,6 +29668,7 @@ "const object = objects[0];", "// Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", "const gameScene = object.getRuntimeScene();", + "const layer = gameScene.getLayer(object.getLayer());", "", "const emitter = object.__particleSystem.emitter;", "emitter.position.x = object.getX();", @@ -21866,7 +29680,15 @@ "// See onScenePreEvents", "gameScene.__particleEmmiter3DExtension.emittersStepped++;", "if (gameScene.__particleEmmiter3DExtension.emittersStepped === gameScene.__particleEmmiter3DExtension.emittersCount) {", - " gameScene.__particleEmmiter3DExtension.batchSystem.update(object.getElapsedTime() / 1000);", + " gameScene.__particleEmmiter3DExtension.layerNames = gameScene.__particleEmmiter3DExtension.layerNames || [];", + " const layerNames = gameScene.__particleEmmiter3DExtension.layerNames;", + " gameScene.getAllLayerNames(layerNames);", + " for (const layerName of layerNames) {", + " const layer = gameScene.getLayer(layerName);", + " if (layer.__particleEmmiter3DExtension) {", + " layer.__particleEmmiter3DExtension.batchSystem.update(object.getElapsedTime() / 1000);", + " }", + " }", "}" ], "parameterObjects": "Object", @@ -21886,6 +29708,53 @@ ], "objectGroups": [] }, + { + "fullName": "Register in layer", + "functionType": "Action", + "name": "RegisterInLayer", + "private": true, + "sentence": "Register _PARAM0_ in layer", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {gdjs.CustomRuntimeObject} */", + "const object = objects[0];", + "", + "// TODO Handle layer changes?", + "if (object.__emitterLayerName === undefined) {", + " // Here runtimeScene is the gdjs.CustomRuntimeObjectInstanceContainer inside the custom object.", + " const gameScene = object.getRuntimeScene();", + "", + " const layer = gameScene.getLayer(object.getLayer());", + " layer.__particleEmmiter3DExtension = layer.__particleEmmiter3DExtension || {};", + " if (!layer.__particleEmmiter3DExtension.batchSystem) {", + " const batchSystem = new gdjs.__particleEmmiter3DExtension.BatchedRenderer();", + " const threeScene = layer.getRenderer().getThreeScene();", + " if (threeScene) {", + " threeScene.add(batchSystem);", + " }", + " layer.__particleEmmiter3DExtension.batchSystem = batchSystem;", + " }", + " layer.__particleEmmiter3DExtension.batchSystem.addSystem(object.__particleSystem);", + " object.__emitterLayerName = layer.getName();", + "}" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "ParticleEmitter3D::ParticleEmitter3D", + "type": "object" + } + ], + "objectGroups": [] + }, { "description": "Delete itself", "fullName": "Delete itself", From c1fbb748cb36689f3fa27a99457e84f8b050ae5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 17 Sep 2023 14:01:56 +0200 Subject: [PATCH 51/53] Button extension improvements. --- examples/3d-bomber-bunny/3d-bomber-bunny.json | 7637 ++++++----------- 1 file changed, 2403 insertions(+), 5234 deletions(-) diff --git a/examples/3d-bomber-bunny/3d-bomber-bunny.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json index ccb6b0bda..38e4a3143 100644 --- a/examples/3d-bomber-bunny/3d-bomber-bunny.json +++ b/examples/3d-bomber-bunny/3d-bomber-bunny.json @@ -5820,7 +5820,7 @@ "author": "", "category": "User interface", "extensionNamespace": "", - "fullName": "Button States and Effects", + "fullName": "Button states and effects", "helpPath": "/objects/button", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdlc3R1cmUtdGFwLWJ1dHRvbiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMyA1QzE1LjIxIDUgMTcgNi43OSAxNyA5QzE3IDEwLjUgMTYuMiAxMS43NyAxNSAxMi40NlYxMS4yNEMxNS42MSAxMC42OSAxNiA5Ljg5IDE2IDlDMTYgNy4zNCAxNC42NiA2IDEzIDZTMTAgNy4zNCAxMCA5QzEwIDkuODkgMTAuMzkgMTAuNjkgMTEgMTEuMjRWMTIuNDZDOS44IDExLjc3IDkgMTAuNSA5IDlDOSA2Ljc5IDEwLjc5IDUgMTMgNU0yMCAyMC41QzE5Ljk3IDIxLjMyIDE5LjMyIDIxLjk3IDE4LjUgMjJIMTNDMTIuNjIgMjIgMTIuMjYgMjEuODUgMTIgMjEuNTdMOCAxNy4zN0w4Ljc0IDE2LjZDOC45MyAxNi4zOSA5LjIgMTYuMjggOS41IDE2LjI4SDkuN0wxMiAxOFY5QzEyIDguNDUgMTIuNDUgOCAxMyA4UzE0IDguNDUgMTQgOVYxMy40N0wxNS4yMSAxMy42TDE5LjE1IDE1Ljc5QzE5LjY4IDE2LjAzIDIwIDE2LjU2IDIwIDE3LjE0VjIwLjVNMjAgMkg0QzIuOSAyIDIgMi45IDIgNFYxMkMyIDEzLjExIDIuOSAxNCA0IDE0SDhWMTJMNCAxMkw0IDRIMjBMMjAgMTJIMThWMTRIMjBWMTMuOTZMMjAuMDQgMTRDMjEuMTMgMTQgMjIgMTMuMDkgMjIgMTJWNEMyMiAyLjkgMjEuMTEgMiAyMCAyWiIgLz48L3N2Zz4=", "name": "ButtonStates", @@ -5850,16 +5850,7 @@ }, "tags": [ "ui", - "button", - "fsm", - "effect", - "size", - "scale", - "color", - "tint", - "animation", - "opacity", - "angle" + "button" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", @@ -7044,50 +7035,11 @@ "sharedPropertyDescriptors": [] }, { - "description": "Smoothly change effects of a button based on its state.", - "fullName": "Button object effect tween", - "name": "ButtonObjectEffectTween", + "description": "Enable effects on buttons based on their state.", + "fullName": "Button object effects", + "name": "ButtonObjectEffects", "objectType": "", "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "onCreated", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::PropertyIdleValue()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, { "fullName": "", "functionType": "Action", @@ -7105,50 +7057,39 @@ "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" + "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "Object", - "ButtonFSM", - "" + "Effect", + "Object.Behavior::PropertyIdleEffect()", + "no" ] }, { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"Idle\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "Object", - "Behavior", - "=", - "\"Idle\"" + "Effect", + "Object.Behavior::PropertyFocusedEffect()", + "no" ] }, { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" + "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "Object", - "Behavior", - "Object.Behavior::PropertyIdleValue()", - "" + "Effect", + "Object.Behavior::PropertyPressedEffect()", + "no" ] } ] @@ -7158,7 +7099,18 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" + "value": "ButtonStates::ButtonObjectEffects::PropertyIdleEffect" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" }, "parameters": [ "Object", @@ -7167,86 +7119,16 @@ ] } ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Idle\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Focused\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyFocusedValue()", - "" - ] - } - ] - }, + "actions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Pressed\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Focused\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyFocusedValue()", - "" - ] - } + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "Effect", + "Object.Behavior::PropertyIdleEffect()", + "yes" ] } ] @@ -7256,119 +7138,75 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" + "value": "ButtonStates::ButtonObjectEffects::PropertyFocusedEffect" }, "parameters": [ "Object", - "ButtonFSM", - "" + "Behavior", + "!=", + "\"\"" ] }, { "type": { - "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + "value": "ButtonStates::ButtonFSM::IsFocused" }, "parameters": [ "Object", - "Behavior", - "!=", - "\"Pressed\"" + "ButtonFSM", + "" ] } ], "actions": [ { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Pressed\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" + "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "Object", - "Behavior", - "Object.Behavior::PropertyPressedValue()", - "" + "Effect", + "Object.Behavior::PropertyFocusedEffect()", + "yes" ] } ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Tween", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" + "value": "ButtonStates::ButtonObjectEffects::PropertyPressedEffect" }, "parameters": [ "Object", "Behavior", - "=", - "\"FadeIn\"" + "!=", + "\"\"" ] - } - ], - "actions": [ + }, { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" + "value": "ButtonStates::ButtonFSM::IsPressed" }, "parameters": [ "Object", - "Behavior", - "Object.Behavior::PropertyFadeInDuration()", - "Object.Behavior::PropertyFadeInEasing()", + "ButtonFSM", "" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" + "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "Object", - "Behavior", - "=", - "\"FadeOut\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyFadeOutDuration()", - "Object.Behavior::PropertyFadeOutEasing()", - "" + "Effect", + "Object.Behavior::PropertyPressedEffect()", + "yes" ] } ] @@ -7386,183 +7224,443 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", "type": "behavior" } ], "objectGroups": [] - }, + } + ], + "propertyDescriptors": [ { - "fullName": "Time delta", - "functionType": "Expression", - "name": "TimeDelta", - "private": true, - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "TimeDelta() * LayerTimeScale(Object.Layer())" - ] - } - ] - } + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", - "type": "behavior" - } + "hidden": false, + "name": "ButtonFSM" + }, + { + "value": "", + "type": "Behavior", + "label": "Effect capability", + "description": "", + "group": "", + "extraInformation": [ + "EffectCapability::EffectBehavior" ], - "objectGroups": [] + "hidden": false, + "name": "Effect" }, { - "fullName": "Fade in", + "value": "Effects", + "type": "String", + "label": "Idle state effect", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "IdleEffect" + }, + { + "value": "Effects", + "type": "String", + "label": "Focused state effect", + "description": "The state is Focused when the button is hovered or held outside.", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FocusedEffect" + }, + { + "value": "Effects", + "type": "String", + "label": "Pressed state effect", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedEffect" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Change the current animation number of a button according to their state.", + "fullName": "Button animation (number)", + "name": "ButtonAnimationNumber", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", "functionType": "Action", - "name": "FadeIn", - "private": true, - "sentence": "_PARAM0_ fade in to _PARAM2_", + "name": "doStepPreEvents", + "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "0" - ] - }, + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "States", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"FadeIn\"" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimation()" + ] + } ] }, { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::PropertyEffectValue()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyFocusedAnimation()" + ] + } ] }, { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyPressedAnimation()" + ] + } ] } - ] + ], + "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" } ], "objectGroups": [] - }, + } + ], + "propertyDescriptors": [ { - "fullName": "Fade out", - "functionType": "Action", - "name": "FadeOut", - "private": true, - "sentence": "_PARAM0_ fade out to _PARAM2_", + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonFSM" + }, + { + "value": "0", + "type": "Number", + "unit": "Dimensionless", + "label": "Idle state animation number", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "IdleAnimation" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Focused state animation number", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "FocusedAnimation" + }, + { + "value": "2", + "type": "Number", + "unit": "Dimensionless", + "label": "Pressed state animation number", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "PressedAnimation" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Change the animation of buttons according to their state.", + "fullName": "Button animation (name)", + "name": "ButtonAnimationName", + "objectType": "Sprite", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Change based on state", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "0" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimationName()" + ] + } ] }, { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"FadeOut\"" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyFocusedAnimationName()" + ] + } ] }, { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::PropertyEffectValue()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyPressedAnimationName()" + ] + } ] - }, + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonFSM" + }, + { + "value": "Idle", + "type": "String", + "label": "Idle state animation name", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "IdleAnimationName" + }, + { + "value": "Focused", + "type": "String", + "label": "Focused state animation name", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "FocusedAnimationName" + }, + { + "value": "Pressed", + "type": "String", + "label": "Pressed state animation name", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "PressedAnimationName" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change an effect on buttons according to their state.", + "fullName": "Button object effect tween", + "name": "ButtonObjectEffectTween", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsNumber(\"Value\")" + "Object.Behavior::PropertyIdleValue()" ] } ] @@ -7579,3609 +7677,22 @@ "name": "Behavior", "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" } ], "objectGroups": [] }, { - "fullName": "Play tween", + "fullName": "", "functionType": "Action", - "name": "PlayTween", - "private": true, - "sentence": "Tween the effect property of object _PARAM0_ over _PARAM2_ seconds with _PARAM3_ easing", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" - }, - "parameters": [ - "Object", - "Behavior", - "<", - "GetArgumentAsNumber(\"Duration\")" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" - }, - "parameters": [ - "Object", - "Behavior", - "+", - "Object.Behavior::TimeDelta()" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Tween::Ease(GetArgumentAsString(\"Easing\"), Object.Behavior::PropertyTweenInitialValue(), Object.Behavior::PropertyTweenTargetedValue(), Object.Behavior::PropertyTweenTime() / GetArgumentAsNumber(\"Duration\"))" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" - }, - "parameters": [ - "Object", - "Behavior", - ">=", - "GetArgumentAsNumber(\"Duration\")" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"NoTween\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "Object.Behavior::PropertyTweenTargetedValue()" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" - }, - "parameters": [ - "Object", - "Effect", - "Object.Behavior::PropertyEffectName()", - "Object.Behavior::PropertyEffectProperty()", - "Object.Behavior::PropertyEffectValue()" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", - "type": "behavior" - }, - { - "description": "Duration (in seconds)", - "name": "Duration", - "type": "expression" - }, - { - "description": "Easing", - "name": "Easing", - "supplementaryInformation": "[]", - "type": "string" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Button states", - "description": "", - "group": "", - "extraInformation": [ - "ButtonStates::ButtonFSM" - ], - "hidden": false, - "name": "ButtonFSM" - }, - { - "value": "", - "type": "Behavior", - "label": "Effect capability", - "description": "", - "group": "", - "extraInformation": [ - "EffectCapability::EffectBehavior" - ], - "hidden": false, - "name": "Effect" - }, - { - "value": "Effect", - "type": "String", - "label": "Effect name", - "description": "", - "group": "Effect", - "extraInformation": [], - "hidden": false, - "name": "EffectName" - }, - { - "value": "", - "type": "String", - "label": "Effect property", - "description": "", - "group": "Effect", - "extraInformation": [], - "hidden": false, - "name": "EffectProperty" - }, - { - "value": "0", - "type": "Number", - "label": "Idle effect property value", - "description": "", - "group": "Values", - "extraInformation": [], - "hidden": false, - "name": "IdleValue" - }, - { - "value": "0", - "type": "Number", - "label": "Focused effect property value", - "description": "The Focused state is when the button is hovered or held outside.", - "group": "Values", - "extraInformation": [], - "hidden": false, - "name": "FocusedValue" - }, - { - "value": "0", - "type": "Number", - "label": "Pressed effect property value", - "description": "", - "group": "Values", - "extraInformation": [], - "hidden": false, - "name": "PressedValue" - }, - { - "value": "easeInOutQuad", - "type": "Choice", - "label": "Fade in easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "FadeInEasing" - }, - { - "value": "easeInOutQuad", - "type": "Choice", - "label": "Fade out easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "FadeOutEasing" - }, - { - "value": "0.125", - "type": "Number", - "label": "Fade in duration", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "FadeInDuration" - }, - { - "value": "0.5", - "type": "Number", - "label": "Fade out duration", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "FadeOutDuration" - }, - { - "value": "Idle", - "type": "Choice", - "label": "", - "description": "", - "group": "", - "extraInformation": [ - "Idle", - "Focused", - "Pressed" - ], - "hidden": true, - "name": "PreviousState" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "TweenInitialValue" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "TweenTargetedValue" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "TweenTime" - }, - { - "value": "NoTween", - "type": "Choice", - "label": "", - "description": "", - "group": "", - "extraInformation": [ - "NoTween", - "FadeIn", - "FadeOut" - ], - "hidden": true, - "name": "TweenState" - }, - { - "value": "0", - "type": "Number", - "label": "", - "description": "", - "group": "", - "extraInformation": [], - "hidden": true, - "name": "EffectValue" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Enable and disable the object effects of a button based on its state.", - "fullName": "Button object effects", - "name": "ButtonObjectEffects", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Change based on state", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyFocusedEffect()", - "no" - ] - }, - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyHeldOutsideEffect()", - "no" - ] - }, - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyHoverEffect()", - "no" - ] - }, - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyIdleEffect()", - "no" - ] - }, - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyPressedEffect()", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::PropertyFocusedEffect" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"0\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyFocusedEffect()", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::PropertyHeldOutsideEffect" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"0\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyHeldOutsideEffect()", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::PropertyHoverEffect" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"0\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyHoverEffect()", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::PropertyIdleEffect" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"0\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyIdleEffect()", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::PropertyPressedEffect" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"0\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "EffectCapability::EffectBehavior::EnableEffect" - }, - "parameters": [ - "Object", - "ObjectEffectCapability", - "Object.Behavior::PropertyPressedEffect()", - "yes" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the object effect used during \"Hover\" of the object.", - "fullName": "Object effect used during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button object effects configuration", - "name": "HoverEffect", - "sentence": "the object effect used during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyHoverEffect()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverEffect", - "name": "SetHoverEffect", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::SetPropertyHoverEffect" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the object effect used during \"Pressed\" of the object.", - "fullName": "Object effect used during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button object effects configuration", - "name": "PressedEffect", - "sentence": "the object effect used during \"Pressed\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyPressedEffect()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedEffect", - "name": "SetPressedEffect", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::SetPropertyPressedEffect" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the object effect used during \"Held Outside\" of the object.", - "fullName": "Object effect used during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button object effects configuration", - "name": "HeldOutsideEffect", - "sentence": "the object effect used during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyHeldOutsideEffect()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideEffect", - "name": "SetHeldOutsideEffect", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::SetPropertyHeldOutsideEffect" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the object effect used during \"Idle\" of the object.", - "fullName": "Object effect used during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button object effects configuration", - "name": "IdleEffect", - "sentence": "the object effect used during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyIdleEffect()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleEffect", - "name": "SetIdleEffect", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::SetPropertyIdleEffect" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the object effect used during \"Focused\" of the object.", - "fullName": "Object effect used during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button object effects configuration", - "name": "FocusedEffect", - "sentence": "the object effect used during \"Focused\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyFocusedEffect()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedEffect", - "name": "SetFocusedEffect", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonObjectEffects::SetPropertyFocusedEffect" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonObjectEffects", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Button states behavior (required)", - "description": "", - "group": "", - "extraInformation": [ - "ButtonStates::ButtonFSM" - ], - "hidden": false, - "name": "ButtonStatesBehavior" - }, - { - "value": "", - "type": "Behavior", - "label": "Object effect capability required)", - "description": "", - "group": "", - "extraInformation": [ - "EffectCapability::EffectBehavior" - ], - "hidden": false, - "name": "ObjectEffectCapability" - }, - { - "value": "Effect", - "type": "String", - "label": "Object effect used during \"Hover\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HoverEffect" - }, - { - "value": "", - "type": "String", - "label": "Object effect used during \"Pressed\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "PressedEffect" - }, - { - "value": "", - "type": "String", - "label": "Object effect used during \"Held Outside\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HeldOutsideEffect" - }, - { - "value": "", - "type": "String", - "label": "Object effect used during \"Idle\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "IdleEffect" - }, - { - "value": "", - "type": "String", - "label": "Object effect used during \"Focused\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "FocusedEffect" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Smoothly change the size (scale) of a button based on its state.", - "fullName": "Button scale", - "name": "ButtonScaleTween", - "objectType": "Sprite", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Change based on state", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectScaleTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.FocusedScale\"", - "Object.Behavior::PropertyFocusedScale()", - "Object.Behavior::PropertyFocusedScale()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectScaleTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.HeldOutsideScale\"", - "Object.Behavior::PropertyHeldOutsideScale()", - "Object.Behavior::PropertyHeldOutsideScale()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectScaleTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.HoveredScale\"", - "Object.Behavior::PropertyHoverScale()", - "Object.Behavior::PropertyHoverScale()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectScaleTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.IdleScale\"", - "Object.Behavior::PropertyIdleScale()", - "Object.Behavior::PropertyIdleScale()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectScaleTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.PressedScale\"", - "Object.Behavior::PropertyPressedScale()", - "Object.Behavior::PropertyPressedScale()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the tween duration (seconds) of the object.", - "fullName": "Tween duration (seconds)", - "functionType": "ExpressionAndCondition", - "group": "Button scale speed configuration", - "name": "TweenDuration", - "sentence": "the tween duration (seconds)", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyTweenDuration()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "TweenDuration", - "name": "SetTweenDuration", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyTweenDuration" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the size scale during \"Hover\" of the object.", - "fullName": "Size scale during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button scale configuration", - "name": "HoverScale", - "sentence": "the size scale during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHoverScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverScale", - "name": "SetHoverScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyHoverScale" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the size scale during \"Pressed\" of the object.", - "fullName": "Size scale during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button scale configuration", - "name": "PressedScale", - "sentence": "the size scale during \"Pressed\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyPressedScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedScale", - "name": "SetPressedScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyPressedScale" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the size scale during \"Held Outside\" of the object.", - "fullName": "Size scale during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button scale configuration", - "name": "HeldOutsideScale", - "sentence": "the size scale during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHeldOutsideScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideScale", - "name": "SetHeldOutsideScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyHeldOutsideScale" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the size scale during \"Idle\" of the object.", - "fullName": "Size scale during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button scale configuration", - "name": "IdleScale", - "sentence": "the size scale during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyIdleScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleScale", - "name": "SetIdleScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyIdleScale" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the size scale during \"Focused\" of the object.", - "fullName": "Size scale during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button scale configuration", - "name": "FocusedScale", - "sentence": "the size scale during \"Focused\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyFocusedScale()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedScale", - "name": "SetFocusedScale", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyFocusedScale" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the easing of the object.", - "fullName": "Easing", - "functionType": "ExpressionAndCondition", - "group": "Button scale speed configuration", - "name": "Easing", - "sentence": "the easing", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyEasing()" - ] - } - ] - } - ], - "expressionType": { - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Easing", - "name": "SetEasing", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonScaleTween::SetPropertyEasing" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonScaleTween", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Button states behavior (required)", - "description": "", - "group": "", - "extraInformation": [ - "ButtonStates::ButtonFSM" - ], - "hidden": false, - "name": "ButtonStatesBehavior" - }, - { - "value": "", - "type": "Behavior", - "label": "Tween behavior (required)", - "description": "", - "group": "", - "extraInformation": [ - "Tween::TweenBehavior" - ], - "hidden": false, - "name": "TweenBehavior" - }, - { - "value": "0.1", - "type": "Number", - "unit": "Second", - "label": "Tween duration (seconds)", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "TweenDuration" - }, - { - "value": "1", - "type": "Number", - "unit": "Dimensionless", - "label": "Size scale during \"Hover\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HoverScale" - }, - { - "value": "0.95", - "type": "Number", - "unit": "Dimensionless", - "label": "Size scale during \"Pressed\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "PressedScale" - }, - { - "value": "1", - "type": "Number", - "unit": "Dimensionless", - "label": "Size scale during \"Held Outside\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HeldOutsideScale" - }, - { - "value": "1", - "type": "Number", - "unit": "Dimensionless", - "label": "Size scale during \"Idle\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "IdleScale" - }, - { - "value": "1", - "type": "Number", - "unit": "Dimensionless", - "label": "Size scale during \"Focused\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "FocusedScale" - }, - { - "value": "easeInOutSine", - "type": "Choice", - "label": "Easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "Easing" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Smoothly change the angle of a button based on its state.", - "fullName": "Button angle tween", - "name": "ButtonAngleTween", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "States", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" - }, - "parameters": [ - "Object", - "ButtonFSM", - "" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"Idle\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Idle\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::FadeOut" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyIdleAngle()", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" - }, - "parameters": [ - "Object", - "ButtonFSM", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Idle\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Focused\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::FadeIn" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyFocusedAngle()", - "" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Pressed\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Focused\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::FadeOut" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyFocusedAngle()", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" - }, - "parameters": [ - "Object", - "ButtonFSM", - "" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "!=", - "\"Pressed\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "\"Pressed\"" - ] - }, - { - "type": { - "value": "ButtonStates::ButtonAngleTween::FadeIn" - }, - "parameters": [ - "Object", - "Behavior", - "Object.Behavior::PropertyPressedAngle()", - "" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAngleTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "Fade in", - "functionType": "Action", - "name": "FadeIn", - "private": true, - "sentence": "_PARAM0_ fade in to _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Tween::AddObjectAngleTween" - }, - "parameters": [ - "Object", - "Tween", - "\"__ButtonEffects.Fade\"", - "GetArgumentAsNumber(\"Value\")", - "Object.Behavior::PropertyFadeInEasing()", - "1000 * Object.Behavior::PropertyFadeInDuration()", - "no" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAngleTween", - "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" - } - ], - "objectGroups": [] - }, - { - "fullName": "Fade out", - "functionType": "Action", - "name": "FadeOut", - "private": true, - "sentence": "_PARAM0_ fade out to _PARAM2_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "Tween::AddObjectAngleTween" - }, - "parameters": [ - "Object", - "Tween", - "\"__ButtonEffects.Fade\"", - "GetArgumentAsNumber(\"Value\")", - "Object.Behavior::PropertyFadeOutEasing()", - "1000 * Object.Behavior::PropertyFadeOutDuration()", - "no" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAngleTween", - "type": "behavior" - }, - { - "description": "Value", - "name": "Value", - "type": "expression" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Button states", - "description": "", - "group": "", - "extraInformation": [ - "ButtonStates::ButtonFSM" - ], - "hidden": false, - "name": "ButtonFSM" - }, - { - "value": "", - "type": "Behavior", - "label": "Tween", - "description": "", - "group": "", - "extraInformation": [ - "Tween::TweenBehavior" - ], - "hidden": false, - "name": "Tween" - }, - { - "value": "0", - "type": "Number", - "unit": "DegreeAngle", - "label": "Idle state angle", - "description": "", - "group": "Rotation", - "extraInformation": [], - "hidden": false, - "name": "IdleAngle" - }, - { - "value": "20", - "type": "Number", - "unit": "DegreeAngle", - "label": "Focussed state angle", - "description": "", - "group": "Rotation", - "extraInformation": [], - "hidden": false, - "name": "FocusedAngle" - }, - { - "value": "180", - "type": "Number", - "unit": "DegreeAngle", - "label": "Pressed state angle", - "description": "", - "group": "Rotation", - "extraInformation": [], - "hidden": false, - "name": "PressedAngle" - }, - { - "value": "0.3", - "type": "Number", - "unit": "Second", - "label": "Fade in duration", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "FadeInDuration" - }, - { - "value": "0.6", - "type": "Number", - "unit": "Second", - "label": "Fade out duration", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "FadeOutDuration" - }, - { - "value": "easeOutBounce", - "type": "Choice", - "label": "Fade in easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "FadeInEasing" - }, - { - "value": "easeOutBounce", - "type": "Choice", - "label": "Fade out easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "FadeOutEasing" - }, - { - "value": "Idle", - "type": "Choice", - "label": "", - "description": "", - "group": "", - "extraInformation": [ - "Idle", - "Focused", - "Pressed" - ], - "hidden": true, - "name": "PreviousState" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Smoothly change the opacity of a button based on its state.", - "fullName": "Button opacity tween", - "name": "ButtonOpacityTween", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", - "events": [ - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Change based on state", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectOpacityTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.FocusedOpacity\"", - "Object.Behavior::PropertyFocusedOpacity()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectOpacityTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.HeldOutsideOpacity\"", - "Object.Behavior::PropertyHeldOutsideOpacity()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectOpacityTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.HoveredOpacity\"", - "Object.Behavior::PropertyHoverOpacity()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectOpacityTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.IdleOpacity\"", - "Object.Behavior::PropertyIdleOpacity()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectOpacityTween" - }, - "parameters": [ - "Object", - "TweenBehavior", - "\"__ButtonEffects.PressedOpacity\"", - "Object.Behavior::PropertyPressedOpacity()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the tween duration (seconds) of the object.", - "fullName": "Tween duration (seconds)", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween speed configuration", - "name": "TweenDuration", - "sentence": "the tween duration (seconds)", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyTweenDuration()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "TweenDuration", - "name": "SetTweenDuration", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyTweenDuration" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the opacity during \"Hover\" of the object.", - "fullName": "Opacity during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween configuration", - "name": "HoverOpacity", - "sentence": "the opacity during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHoverOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverOpacity", - "name": "SetHoverOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyHoverOpacity" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the opacity during \"Pressed\" of the object.", - "fullName": "Opacity during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween configuration", - "name": "PressedOpacity", - "sentence": "the opacity during \"Pressed\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyPressedOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedOpacity", - "name": "SetPressedOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyPressedOpacity" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the opacity during \"Held Outside\" of the object.", - "fullName": "Opacity during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween configuration", - "name": "HeldOutsideOpacity", - "sentence": "the opacity during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHeldOutsideOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideOpacity", - "name": "SetHeldOutsideOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyHeldOutsideOpacity" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the opacity during \"Idle\" of the object.", - "fullName": "Opacity during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween configuration", - "name": "IdleOpacity", - "sentence": "the opacity during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyIdleOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleOpacity", - "name": "SetIdleOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyIdleOpacity" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the opacity during \"Focused\" of the object.", - "fullName": "Opacity during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween configuration", - "name": "FocusedOpacity", - "sentence": "the opacity during \"Focused\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyFocusedOpacity()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedOpacity", - "name": "SetFocusedOpacity", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyFocusedOpacity" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the easing of the object.", - "fullName": "Easing", - "functionType": "ExpressionAndCondition", - "group": "Button opacity tween speed configuration", - "name": "Easing", - "sentence": "the easing", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyEasing()" - ] - } - ] - } - ], - "expressionType": { - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Easing", - "name": "SetEasing", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonOpacityTween::SetPropertyEasing" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonOpacityTween", - "type": "behavior" - } - ], - "objectGroups": [] - } - ], - "propertyDescriptors": [ - { - "value": "", - "type": "Behavior", - "label": "Button states behavior (required)", - "description": "", - "group": "", - "extraInformation": [ - "ButtonStates::ButtonFSM" - ], - "hidden": false, - "name": "ButtonStatesBehavior" - }, - { - "value": "", - "type": "Behavior", - "label": "Tween behavior (required)", - "description": "", - "group": "", - "extraInformation": [ - "Tween::TweenBehavior" - ], - "hidden": false, - "name": "TweenBehavior" - }, - { - "value": "0.1", - "type": "Number", - "unit": "Second", - "label": "Tween duration (seconds)", - "description": "", - "group": "Speed", - "extraInformation": [], - "hidden": false, - "name": "TweenDuration" - }, - { - "value": "255", - "type": "Number", - "unit": "Dimensionless", - "label": "Opacity during \"Hover\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HoverOpacity" - }, - { - "value": "255", - "type": "Number", - "unit": "Dimensionless", - "label": "Opacity during \"Pressed\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "PressedOpacity" - }, - { - "value": "255", - "type": "Number", - "unit": "Dimensionless", - "label": "Opacity during \"Held Outside\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "HeldOutsideOpacity" - }, - { - "value": "200", - "type": "Number", - "unit": "Dimensionless", - "label": "Opacity during \"Idle\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "IdleOpacity" - }, - { - "value": "255", - "type": "Number", - "unit": "Dimensionless", - "label": "Opacity during \"Focused\"", - "description": "", - "group": "", - "extraInformation": [], - "hidden": false, - "name": "FocusedOpacity" - }, - { - "value": "easeInOutSine", - "type": "Choice", - "label": "Easing", - "description": "", - "group": "Speed", - "extraInformation": [ - "linear", - "easeInQuad", - "easeOutQuad", - "easeInOutQuad", - "easeInCubic", - "easeOutCubic", - "easeInOutCubic", - "easeInQuart", - "easeOutQuart", - "easeInOutQuart", - "easeInQuint", - "easeOutQuint", - "easeInOutQuint", - "easeInOutSine", - "easeInExpo", - "easeOutExpo", - "easeInOutExpo", - "easeInCirc", - "easeOutCirc", - "easeInOutCirc", - "easeOutBounce", - "easeInBack", - "easeOutBack", - "easeInOutBack", - "elastic", - "swingFromTo", - "swingFrom", - "swingTo", - "bounce", - "bouncePast", - "easeFromTo", - "easeFrom", - "easeTo" - ], - "hidden": false, - "name": "Easing" - } - ], - "sharedPropertyDescriptors": [] - }, - { - "description": "Smoothly change the color tint of a button based on its state.", - "fullName": "Button color tint tween", - "name": "ButtonColorTintTween", - "objectType": "", - "eventsFunctions": [ - { - "fullName": "", - "functionType": "Action", - "name": "doStepPreEvents", - "sentence": "", + "name": "doStepPreEvents", + "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, - "name": "Change based on state", + "name": "States", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ @@ -11190,35 +7701,145 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" + "value": "ButtonStates::ButtonFSM::IsIdle" }, "parameters": [ "Object", - "ButtonStatesBehavior", + "ButtonFSM", "" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" }, - "parameters": [] + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Idle\"" + ] } ], "actions": [ { "type": { - "value": "Tween::AddObjectColorTween" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "TweenBehavior", - "\"__ButtonEffects.FocusedColorTint\"", - "Object.Behavior::PropertyFocusedColorTint()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyIdleValue()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedValue()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedValue()", + "" + ] + } ] } ] @@ -11228,111 +7849,89 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" + "value": "ButtonStates::ButtonFSM::IsPressed" }, "parameters": [ "Object", - "ButtonStatesBehavior", + "ButtonFSM", "" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectColorTween" + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" }, "parameters": [ "Object", - "TweenBehavior", - "\"__ButtonEffects.HeldOutsideColorTint\"", - "Object.Behavior::PropertyHeldOutsideColorTint()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" + "Behavior", + "!=", + "\"Pressed\"" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"Pressed\"" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectColorTween" + "value": "ButtonStates::ButtonObjectEffectTween::FadeIn" }, "parameters": [ "Object", - "TweenBehavior", - "\"__ButtonEffects.HoveredColorTint\"", - "Object.Behavior::PropertyHoverColorTint()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" + "Behavior", + "Object.Behavior::PropertyPressedValue()", + "" ] } ] - }, + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tween", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"FadeIn\"" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], "actions": [ { "type": { - "value": "Tween::AddObjectColorTween" + "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" }, "parameters": [ "Object", - "TweenBehavior", - "\"__ButtonEffects.IdleColorTint\"", - "Object.Behavior::PropertyIdleColorTint()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" + "Behavior", + "Object.Behavior::PropertyFadeInDuration()", + "Object.Behavior::PropertyFadeInEasing()", + "" ] } ] @@ -11342,203 +7941,33 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" - }, - "parameters": [ - "Object", - "ButtonStatesBehavior", - "" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Tween::AddObjectColorTween" + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenState" }, "parameters": [ "Object", - "TweenBehavior", - "\"__ButtonEffects.PressedColorTint\"", - "Object.Behavior::PropertyPressedColorTint()", - "Object.Behavior::PropertyEasing()", - "1000 * Object.Behavior::PropertyTweenDuration()", - "no", - "yes" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the tween duration (seconds) of the object.", - "fullName": "Tween duration (seconds)", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween speed configuration", - "name": "TweenDuration", - "sentence": "the tween duration (seconds)", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyTweenDuration()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "TweenDuration", - "name": "SetTweenDuration", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyTweenDuration" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" - ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the color tint during \"Hover\" of the object.", - "fullName": "Color tint during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween configuration", - "name": "HoverColorTint", - "sentence": "the color tint during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyHoverColorTint()" - ] - } - ] - } - ], - "expressionType": { - "type": "color" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverColorTint", - "name": "SetHoverColorTint", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyHoverColorTint" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Behavior", + "=", + "\"FadeOut\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PlayTween" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFadeOutDuration()", + "Object.Behavior::PropertyFadeOutEasing()", + "" + ] + } ] } - ] + ], + "parameters": [] } ], "parameters": [ @@ -11550,19 +7979,18 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" } ], "objectGroups": [] }, { - "description": "the color tint during \"Pressed\" of the object.", - "fullName": "Color tint during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween configuration", - "name": "PressedColorTint", - "sentence": "the color tint during \"Pressed\"", + "fullName": "Time delta", + "functionType": "Expression", + "name": "TimeDelta", + "private": true, + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -11570,17 +7998,17 @@ "actions": [ { "type": { - "value": "SetReturnString" + "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyPressedColorTint()" + "TimeDelta() * LayerTimeScale(Object.Layer())" ] } ] } ], "expressionType": { - "type": "color" + "type": "expression" }, "parameters": [ { @@ -11591,18 +8019,18 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedColorTint", - "name": "SetPressedColorTint", - "sentence": "", + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -11610,140 +8038,51 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyPressedColorTint" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsString(\"Value\")" + "0" ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the color tint during \"Held Outside\" of the object.", - "fullName": "Color tint during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween configuration", - "name": "HeldOutsideColorTint", - "sentence": "the color tint during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "SetReturnString" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" }, "parameters": [ - "Object.Behavior::PropertyHeldOutsideColorTint()" + "Object", + "Behavior", + "=", + "\"FadeIn\"" ] - } - ] - } - ], - "expressionType": { - "type": "color" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideColorTint", - "name": "SetHeldOutsideColorTint", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyHeldOutsideColorTint" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsString(\"Value\")" + "Object.Behavior::PropertyEffectValue()" ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the color tint during \"Idle\" of the object.", - "fullName": "Color tint during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween configuration", - "name": "IdleColorTint", - "sentence": "the color tint during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "SetReturnString" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" }, "parameters": [ - "Object.Behavior::PropertyIdleColorTint()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" ] } ] } ], - "expressionType": { - "type": "color" - }, "parameters": [ { "description": "Object", @@ -11753,18 +8092,23 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleColorTint", - "name": "SetIdleColorTint", - "sentence": "", + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -11772,13 +8116,46 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyIdleColorTint" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsString(\"Value\")" + "0" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"FadeOut\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenInitialValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyEffectValue()" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTargetedValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" ] } ] @@ -11793,155 +8170,118 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "the color tint during \"Focused\" of the object.", - "fullName": "Color tint during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween configuration", - "name": "FocusedColorTint", - "sentence": "the color tint during \"Focused\"", + "fullName": "Play tween", + "functionType": "Action", + "name": "PlayTween", + "private": true, + "sentence": "Tween the effect property of object _PARAM0_ over _PARAM2_ seconds with _PARAM3_ easing", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "conditions": [ { "type": { - "value": "SetReturnString" + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" }, "parameters": [ - "Object.Behavior::PropertyFocusedColorTint()" + "Object", + "Behavior", + "<", + "GetArgumentAsNumber(\"Duration\")" ] } - ] - } - ], - "expressionType": { - "type": "color" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedColorTint", - "name": "SetFocusedColorTint", - "sentence": "", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + ], "actions": [ { "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyFocusedColorTint" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::TimeDelta()" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsString(\"Value\")" + "Tween::Ease(GetArgumentAsString(\"Easing\"), Object.Behavior::PropertyTweenInitialValue(), Object.Behavior::PropertyTweenTargetedValue(), Object.Behavior::PropertyTweenTime() / GetArgumentAsNumber(\"Duration\"))" ] } ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the easing of the object.", - "fullName": "Easing", - "functionType": "ExpressionAndCondition", - "group": "Button color tint tween speed configuration", - "name": "Easing", - "sentence": "the easing", - "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::PropertyTweenTime" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "GetArgumentAsNumber(\"Duration\")" + ] + } + ], "actions": [ { "type": { - "value": "SetReturnString" + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyTweenState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"NoTween\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonObjectEffectTween::SetPropertyEffectValue" }, "parameters": [ - "Object.Behavior::PropertyEasing()" + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTweenTargetedValue()" ] } ] - } - ], - "expressionType": { - "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", - "type": "stringWithSelector" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "type": "object" }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "Easing", - "name": "SetEasing", - "sentence": "", - "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { - "value": "ButtonStates::ButtonColorTintTween::SetPropertyEasing" + "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Effect", + "Object.Behavior::PropertyEffectName()", + "Object.Behavior::PropertyEffectProperty()", + "Object.Behavior::PropertyEffectValue()" ] } ] @@ -11956,8 +8296,19 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "supplementaryInformation": "ButtonStates::ButtonObjectEffectTween", "type": "behavior" + }, + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Easing", + "name": "Easing", + "supplementaryInformation": "[]", + "type": "string" } ], "objectGroups": [] @@ -11967,92 +8318,125 @@ { "value": "", "type": "Behavior", - "label": "Button states behavior (required)", + "label": "Button states", "description": "", "group": "", "extraInformation": [ "ButtonStates::ButtonFSM" ], "hidden": false, - "name": "ButtonStatesBehavior" + "name": "ButtonFSM" }, { "value": "", "type": "Behavior", - "label": "Tween behavior (required)", + "label": "Effect capability", "description": "", "group": "", "extraInformation": [ - "Tween::TweenBehavior" + "EffectCapability::EffectBehavior" ], "hidden": false, - "name": "TweenBehavior" + "name": "Effect" }, { - "value": "0.1", - "type": "Number", - "unit": "Second", - "label": "Tween duration (seconds)", + "value": "Effect", + "type": "String", + "label": "Effect name", "description": "", - "group": "Speed", + "group": "Effect", "extraInformation": [], "hidden": false, - "name": "TweenDuration" + "name": "EffectName" }, { - "value": "192;192;192", - "type": "Color", - "label": "Color tint during \"Hover\"", + "value": "", + "type": "String", + "label": "Effect property", "description": "", - "group": "", + "group": "Effect", "extraInformation": [], "hidden": false, - "name": "HoverColorTint" + "name": "EffectProperty" }, { - "value": "64;64;64", - "type": "Color", - "label": "Color tint during \"Pressed\"", + "value": "0", + "type": "Number", + "label": "Idle effect property value", "description": "", - "group": "", + "group": "Value", "extraInformation": [], "hidden": false, - "name": "PressedColorTint" + "name": "IdleValue" }, { - "value": "255;255;255", - "type": "Color", - "label": "Color tint during \"Held Outside\"", - "description": "", - "group": "", + "value": "0", + "type": "Number", + "label": "Focused effect property value", + "description": "The state is Focused when the button is hovered or held outside.", + "group": "Value", "extraInformation": [], "hidden": false, - "name": "HeldOutsideColorTint" + "name": "FocusedValue" }, { - "value": "255;255;255", - "type": "Color", - "label": "Color tint during \"Idle\"", + "value": "0", + "type": "Number", + "label": "Pressed effect property value", "description": "", - "group": "", + "group": "Value", "extraInformation": [], "hidden": false, - "name": "IdleColorTint" + "name": "PressedValue" }, { - "value": "255;255;255", - "type": "Color", - "label": "Color tint during \"Focused\"", + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade-in easing", "description": "", - "group": "", - "extraInformation": [], + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], "hidden": false, - "name": "FocusedColorTint" + "name": "FadeInEasing" }, { - "value": "easeInOutSine", + "value": "easeInOutQuad", "type": "Choice", - "label": "Easing", + "label": "Fade-out easing", "description": "", "group": "Speed", "extraInformation": [ @@ -12090,16 +8474,106 @@ "easeFrom", "easeTo" ], - "hidden": false, - "name": "Easing" + "hidden": false, + "name": "FadeOutEasing" + }, + { + "value": "0.125", + "type": "Number", + "unit": "Second", + "label": "Fade-in duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.5", + "type": "Number", + "unit": "Second", + "label": "Fade-out duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeOutDuration" + }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenInitialValue" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenTargetedValue" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TweenTime" + }, + { + "value": "NoTween", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "NoTween", + "FadeIn", + "FadeOut" + ], + "hidden": true, + "name": "TweenState" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "EffectValue" } ], "sharedPropertyDescriptors": [] }, { - "description": "Change the current animation number of a button based on its state.", - "fullName": "Button animation (number)", - "name": "ButtonAnimationNumber", + "description": "Smoothly resize buttons according to their state.", + "fullName": "Button scale", + "name": "ButtonScaleTween", "objectType": "Sprite", "eventsFunctions": [ { @@ -12122,7 +8596,7 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" + "value": "ButtonStates::ButtonFSM::IsIdle" }, "parameters": [ "Object", @@ -12132,55 +8606,37 @@ }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + "value": "ButtonStates::ButtonScaleTween::PropertyPreviousState" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyFocusedAnimation()" + "Behavior", + "!=", + "\"Idle\"" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" + "value": "ButtonStates::ButtonScaleTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"Idle\"" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + "value": "ButtonStates::ButtonScaleTween::FadeOut" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyHeldOutsideAnimation()" + "Behavior", + "Object.Behavior::PropertyIdleScale()", + "" ] } ] @@ -12190,31 +8646,95 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" + "value": "ButtonStates::ButtonFSM::IsFocused" }, "parameters": [ "Object", "ButtonStatesBehavior", "" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetIndex" - }, - "parameters": [ - "Object", - "Animation", - "=", - "Object.Behavior::PropertyHoverAnimation()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonScaleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedScale()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonScaleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonScaleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedScale()", + "" + ] + } ] } ] @@ -12224,7 +8744,7 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" + "value": "ButtonStates::ButtonFSM::IsPressed" }, "parameters": [ "Object", @@ -12234,105 +8754,45 @@ }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + "value": "ButtonStates::ButtonScaleTween::PropertyPreviousState" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyIdleAnimation()" + "Behavior", + "!=", + "\"Pressed\"" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" + "value": "ButtonStates::ButtonScaleTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"Pressed\"" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + "value": "ButtonStates::ButtonScaleTween::FadeIn" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyPressedAnimation()" + "Behavior", + "Object.Behavior::PropertyPressedScale()", + "" ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation number during \"Hover\" of the object.", - "fullName": "Animation number during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (number) configuration", - "name": "HoverAnimation", - "sentence": "the animation number during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHoverAnimation()" + } ] } - ] + ], + "parameters": [] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -12343,18 +8803,18 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverAnimation", - "name": "SetHoverAnimation", - "sentence": "", + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -12362,13 +8822,18 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationNumber::SetPropertyHoverAnimation" + "value": "Tween::AddObjectScaleTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "TweenBehavior", + "\"__ButtonScaleTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeInEasing()", + "1000 * Object.Behavior::PropertyFadeInDuration()", + "no", + "yes" ] } ] @@ -12384,60 +8849,23 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation number during \"Pressed\" of the object.", - "fullName": "Animation number during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (number) configuration", - "name": "PressedAnimation", - "sentence": "the animation number during \"Pressed\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyPressedAnimation()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" }, { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", - "type": "behavior" + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedAnimation", - "name": "SetPressedAnimation", - "sentence": "", + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -12445,13 +8873,18 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationNumber::SetPropertyPressedAnimation" + "value": "Tween::AddObjectScaleTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "TweenBehavior", + "\"__ButtonScaleTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeOutEasing()", + "1000 * Object.Behavior::PropertyFadeOutDuration()", + "no", + "yes" ] } ] @@ -12467,143 +8900,447 @@ { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonStatesBehavior" }, { - "description": "the animation number during \"Held Outside\" of the object.", - "fullName": "Animation number during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (number) configuration", - "name": "HeldOutsideAnimation", - "sentence": "the animation number during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyHeldOutsideAnimation()" - ] - } - ] - } + "value": "", + "type": "Behavior", + "label": "Tween behavior (required)", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", - "type": "behavior" - } + "hidden": false, + "name": "TweenBehavior" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Fade-in duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.2", + "type": "Number", + "unit": "Second", + "label": "Fade-out duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeOutDuration" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Idle state size scale", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "IdleScale" + }, + { + "value": "1", + "type": "Number", + "unit": "Dimensionless", + "label": "Focused state size scale", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "FocusedScale" + }, + { + "value": "0.95", + "type": "Number", + "unit": "Dimensionless", + "label": "Pressed state size scale", + "description": "", + "group": "Size", + "extraInformation": [], + "hidden": false, + "name": "PressedScale" + }, + { + "value": "easeInOutSine", + "type": "Choice", + "label": "Fade-in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeInOutSine", + "type": "Choice", + "label": "Fade-out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" ], - "objectGroups": [] + "hidden": false, + "name": "FadeOutEasing" }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly rotate buttons according to their state.", + "fullName": "Button angle tween", + "name": "ButtonAngleTween", + "objectType": "", + "eventsFunctions": [ { "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideAnimation", - "name": "SetHeldOutsideAnimation", + "functionType": "Action", + "name": "doStepPreEvents", "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "States", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "ButtonStates::ButtonAnimationNumber::SetPropertyHeldOutsideAnimation" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyIdleAngle()", + "" + ] + } ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation number during \"Idle\" of the object.", - "fullName": "Animation number during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (number) configuration", - "name": "IdleAnimation", - "sentence": "the animation number during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyIdleAnimation()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedAngle()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedAngle()", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyPressedAngle()", + "" + ] + } ] } - ] + ], + "parameters": [] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleAnimation", - "name": "SetIdleAnimation", - "sentence": "", + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -12611,13 +9348,16 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationNumber::SetPropertyIdleAnimation" + "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "Tween", + "\"__ButtonAngleTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeInEasing()", + "1000 * Object.Behavior::PropertyFadeInDuration()", + "no" ] } ] @@ -12627,66 +9367,28 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation number during \"Focused\" of the object.", - "fullName": "Animation number during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (number) configuration", - "name": "FocusedAnimation", - "sentence": "the animation number during \"Focused\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnNumber" - }, - "parameters": [ - "Object.Behavior::PropertyFocusedAnimation()" - ] - } - ] - } - ], - "expressionType": { - "type": "expression" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" }, { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", - "type": "behavior" + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedAnimation", - "name": "SetFocusedAnimation", - "sentence": "", + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -12694,13 +9396,16 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationNumber::SetPropertyFocusedAnimation" + "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "Tween", + "\"__ButtonAngleTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeOutEasing()", + "1000 * Object.Behavior::PropertyFadeOutDuration()", + "no" ] } ] @@ -12710,14 +9415,18 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] @@ -12727,78 +9436,192 @@ { "value": "", "type": "Behavior", - "label": "Button states behavior (required)", + "label": "Button states", "description": "", "group": "", "extraInformation": [ "ButtonStates::ButtonFSM" ], "hidden": false, - "name": "ButtonStatesBehavior" + "name": "ButtonFSM" }, { - "value": "1", - "type": "Number", - "unit": "Dimensionless", - "label": "Animation number during \"Hover\"", + "value": "", + "type": "Behavior", + "label": "Tween", "description": "", "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Idle state angle", + "description": "", + "group": "Rotation", "extraInformation": [], "hidden": false, - "name": "HoverAnimation" + "name": "IdleAngle" }, { - "value": "2", + "value": "20", "type": "Number", - "unit": "Dimensionless", - "label": "Animation number during \"Pressed\"", + "unit": "DegreeAngle", + "label": "Focussed state angle", "description": "", - "group": "", + "group": "Rotation", "extraInformation": [], "hidden": false, - "name": "PressedAnimation" + "name": "FocusedAngle" }, { - "value": "0", + "value": "180", "type": "Number", - "unit": "Dimensionless", - "label": "Animation number during \"Held Outside\"", + "unit": "DegreeAngle", + "label": "Pressed state angle", "description": "", - "group": "", + "group": "Rotation", "extraInformation": [], "hidden": false, - "name": "HeldOutsideAnimation" + "name": "PressedAngle" }, { - "value": "0", + "value": "0.3", "type": "Number", - "unit": "Dimensionless", - "label": "Animation number during \"Idle\"", + "unit": "Second", + "label": "Fade-in duration", "description": "", - "group": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.6", + "type": "Number", + "unit": "Second", + "label": "Fade-out duration", + "description": "", + "group": "Speed", "extraInformation": [], "hidden": false, - "name": "IdleAnimation" + "name": "FadeOutDuration" + }, + { + "value": "easeOutBounce", + "type": "Choice", + "label": "Fade-in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeOutBounce", + "type": "Choice", + "label": "Fade-out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeOutEasing" }, { - "value": "0", - "type": "Number", - "unit": "Dimensionless", - "label": "Animation number during \"Focused\"", + "value": "Idle", + "type": "Choice", + "label": "", "description": "", "group": "", - "extraInformation": [], - "hidden": false, - "name": "FocusedAnimation" + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" } ], "sharedPropertyDescriptors": [] }, { - "description": "Change the current animation name of a button based on its state.", - "fullName": "Button animation (name)", - "name": "ButtonAnimationName", - "objectType": "Sprite", + "description": "Smoothly change the opacity of buttons according to their state.", + "fullName": "Button opacity tween", + "name": "ButtonOpacityTween", + "objectType": "", "eventsFunctions": [ { "fullName": "", @@ -12811,7 +9634,7 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "name": "Change based on state", + "name": "States", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ @@ -12820,65 +9643,47 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsFocused" + "value": "ButtonStates::ButtonFSM::IsIdle" }, "parameters": [ "Object", - "ButtonStatesBehavior", + "ButtonFSM", "" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetName" + "value": "ButtonStates::ButtonOpacityTween::PropertyPreviousState" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyFocusedAnimationName()" + "Behavior", + "!=", + "\"Idle\"" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressedOutside" + "value": "ButtonStates::ButtonOpacityTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"Idle\"" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetName" + "value": "ButtonStates::ButtonAngleTween::FadeOut" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyHeldOutsideAnimationName()" + "Behavior", + "Object.Behavior::PropertyIdleOpacity()", + "" ] } ] @@ -12888,31 +9693,95 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsHovered" + "value": "ButtonStates::ButtonFSM::IsFocused" }, "parameters": [ "Object", - "ButtonStatesBehavior", + "ButtonFSM", "" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetName" - }, - "parameters": [ - "Object", - "Animation", - "=", - "Object.Behavior::PropertyHoverAnimationName()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedOpacity()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonOpacityTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonAngleTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedOpacity()", + "" + ] + } ] } ] @@ -12922,65 +9791,47 @@ "conditions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsIdle" + "value": "ButtonStates::ButtonFSM::IsPressed" }, "parameters": [ "Object", - "ButtonStatesBehavior", + "ButtonFSM", "" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetName" + "value": "ButtonStates::ButtonOpacityTween::PropertyPreviousState" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyIdleAnimationName()" + "Behavior", + "!=", + "\"Pressed\"" ] } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ { "type": { - "value": "ButtonStates::ButtonFSM::IsPressed" + "value": "ButtonStates::ButtonOpacityTween::SetPropertyPreviousState" }, "parameters": [ "Object", - "ButtonStatesBehavior", - "" + "Behavior", + "=", + "\"Pressed\"" ] }, { "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "AnimatableCapability::AnimatableBehavior::SetName" + "value": "ButtonStates::ButtonAngleTween::FadeIn" }, "parameters": [ "Object", - "Animation", - "=", - "Object.Behavior::PropertyPressedAnimationName()" + "Behavior", + "Object.Behavior::PropertyPressedOpacity()", + "" ] } ] @@ -12993,66 +9844,23 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name during \"Hover\" of the object.", - "fullName": "Animation name during \"Hover\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (name) configuration", - "name": "HoverAnimationName", - "sentence": "the animation name during \"Hover\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyHoverAnimationName()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HoverAnimationName", - "name": "SetHoverAnimationName", - "sentence": "", + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13060,13 +9868,16 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationName::SetPropertyHoverAnimationName" + "value": "Tween::AddObjectOpacityTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Tween", + "\"__ButtonOpacityTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeInEasing()", + "1000 * Object.Behavior::PropertyFadeInDuration()", + "no" ] } ] @@ -13076,66 +9887,28 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name during \"Pressed\" of the object.", - "fullName": "Animation name during \"Pressed\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (name) configuration", - "name": "PressedAnimationName", - "sentence": "the animation name during \"Pressed\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyPressedAnimationName()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" }, { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", - "type": "behavior" + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "PressedAnimationName", - "name": "SetPressedAnimationName", - "sentence": "", + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13143,13 +9916,16 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationName::SetPropertyPressedAnimationName" + "value": "Tween::AddObjectOpacityTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Tween", + "\"__ButtonOpacityTween.Fade\"", + "GetArgumentAsNumber(\"Value\")", + "Object.Behavior::PropertyFadeOutEasing()", + "1000 * Object.Behavior::PropertyFadeOutDuration()", + "no" ] } ] @@ -13159,149 +9935,452 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" } ], "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Button states", + "description": "", + "group": "", + "extraInformation": [ + "ButtonStates::ButtonFSM" + ], + "hidden": false, + "name": "ButtonFSM" }, { - "description": "the animation name during \"Held Outside\" of the object.", - "fullName": "Animation name during \"Held Outside\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (name) configuration", - "name": "HeldOutsideAnimationName", - "sentence": "the animation name during \"Held Outside\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyHeldOutsideAnimationName()" - ] - } - ] - } + "value": "", + "type": "Behavior", + "label": "Tween", + "description": "", + "group": "", + "extraInformation": [ + "Tween::TweenBehavior" ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", - "type": "behavior" - } + "hidden": false, + "name": "Tween" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Fade-in duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeInDuration" + }, + { + "value": "0.2", + "type": "Number", + "unit": "Second", + "label": "Fade-out duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "hidden": false, + "name": "FadeOutDuration" + }, + { + "value": "200", + "type": "Number", + "unit": "Dimensionless", + "label": "Idle state opacity", + "description": "", + "group": "Opacity", + "extraInformation": [], + "hidden": false, + "name": "IdleOpacity" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Focused state opacity", + "description": "", + "group": "Opacity", + "extraInformation": [], + "hidden": false, + "name": "FocusedOpacity" + }, + { + "value": "255", + "type": "Number", + "unit": "Dimensionless", + "label": "Pressed state opacity", + "description": "", + "group": "Opacity", + "extraInformation": [], + "hidden": false, + "name": "PressedOpacity" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade-in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade-out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" ], - "objectGroups": [] + "hidden": false, + "name": "FadeOutEasing" }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Smoothly change the color tint of buttons according to their state.", + "fullName": "Button color tint tween", + "name": "ButtonColorTintTween", + "objectType": "", + "eventsFunctions": [ { "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "HeldOutsideAnimationName", - "name": "SetHeldOutsideAnimationName", + "functionType": "Action", + "name": "doStepPreEvents", "sentence": "", "events": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "States", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "ButtonStates::ButtonAnimationName::SetPropertyHeldOutsideAnimationName" - }, - "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyIdleColorTint()", + "" + ] + } ] - } - ] - } - ], - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" - }, - { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", - "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name during \"Idle\" of the object.", - "fullName": "Animation name during \"Idle\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (name) configuration", - "name": "IdleAnimationName", - "sentence": "the animation name during \"Idle\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyIdleAnimationName()" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedColorTint()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Focused\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::FadeOut" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyFocusedColorTint()", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::PropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::SetPropertyPreviousState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Pressed\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonColorTintTween::FadeIn" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyPressedColorTint()", + "" + ] + } ] } - ] + ], + "parameters": [] } ], - "expressionType": { - "type": "string" - }, "parameters": [ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", "type": "behavior" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "IdleAnimationName", - "name": "SetIdleAnimationName", - "sentence": "", + "fullName": "Fade in", + "functionType": "Action", + "name": "FadeIn", + "private": true, + "sentence": "_PARAM0_ fade in to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13309,13 +10388,17 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationName::SetPropertyIdleAnimationName" + "value": "Tween::AddObjectColorTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Tween", + "\"__ButtonColorTintTween.Fade\"", + "GetArgumentAsString(\"Value\")", + "Object.Behavior::PropertyFadeInEasing()", + "1000 * Object.Behavior::PropertyFadeInDuration()", + "no", + "yes" ] } ] @@ -13325,66 +10408,28 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", "type": "behavior" - } - ], - "objectGroups": [] - }, - { - "description": "the animation name during \"Focused\" of the object.", - "fullName": "Animation name during \"Focused\"", - "functionType": "ExpressionAndCondition", - "group": "Button animation (name) configuration", - "name": "FocusedAnimationName", - "sentence": "the animation name during \"Focused\"", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "SetReturnString" - }, - "parameters": [ - "Object.Behavior::PropertyFocusedAnimationName()" - ] - } - ] - } - ], - "expressionType": { - "type": "string" - }, - "parameters": [ - { - "description": "Object", - "name": "Object", - "supplementaryInformation": "Sprite", - "type": "object" }, { - "description": "Behavior", - "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", - "type": "behavior" + "description": "Value", + "name": "Value", + "type": "color" } ], "objectGroups": [] }, { - "fullName": "", - "functionType": "ActionWithOperator", - "getterName": "FocusedAnimationName", - "name": "SetFocusedAnimationName", - "sentence": "", + "fullName": "Fade out", + "functionType": "Action", + "name": "FadeOut", + "private": true, + "sentence": "_PARAM0_ fade out to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -13392,13 +10437,17 @@ "actions": [ { "type": { - "value": "ButtonStates::ButtonAnimationName::SetPropertyFocusedAnimationName" + "value": "Tween::AddObjectColorTween" }, "parameters": [ "Object", - "Behavior", - "=", - "GetArgumentAsString(\"Value\")" + "Tween", + "\"__ButtonColorTintTween.Fade\"", + "GetArgumentAsString(\"Value\")", + "Object.Behavior::PropertyFadeOutEasing()", + "1000 * Object.Behavior::PropertyFadeOutDuration()", + "no", + "yes" ] } ] @@ -13408,14 +10457,18 @@ { "description": "Object", "name": "Object", - "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", - "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "color" } ], "objectGroups": [] @@ -13425,64 +10478,180 @@ { "value": "", "type": "Behavior", - "label": "Button states behavior (required)", + "label": "Button states", "description": "", "group": "", "extraInformation": [ "ButtonStates::ButtonFSM" ], "hidden": false, - "name": "ButtonStatesBehavior" + "name": "ButtonFSM" }, { "value": "", - "type": "String", - "label": "Animation name during \"Hover\"", + "type": "Behavior", + "label": "Tween", "description": "", "group": "", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "hidden": false, + "name": "Tween" + }, + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Fade-in duration", + "description": "", + "group": "Speed", "extraInformation": [], "hidden": false, - "name": "HoverAnimationName" + "name": "FadeInDuration" }, { - "value": "", - "type": "String", - "label": "Animation name during \"Pressed\"", + "value": "0.2", + "type": "Number", + "unit": "Second", + "label": "Fade-out duration", "description": "", - "group": "", + "group": "Speed", "extraInformation": [], "hidden": false, - "name": "PressedAnimationName" + "name": "FadeOutDuration" }, { - "value": "", - "type": "String", - "label": "Animation name during \"Held Outside\"", + "value": "255;255;255", + "type": "Color", + "label": "Idle state color tint", "description": "", - "group": "", + "group": "Color", "extraInformation": [], "hidden": false, - "name": "HeldOutsideAnimationName" + "name": "IdleColorTint" }, { - "value": "", - "type": "String", - "label": "Animation name during \"Idle\"", + "value": "255;255;255", + "type": "Color", + "label": "Focused state color tint", "description": "", - "group": "", + "group": "Color", "extraInformation": [], "hidden": false, - "name": "IdleAnimationName" + "name": "FocusedColorTint" }, { - "value": "", - "type": "String", - "label": "Animation name during \"Focused\"", + "value": "64;64;64", + "type": "Color", + "label": "Pressed state color tint", "description": "", - "group": "", + "group": "Color", "extraInformation": [], "hidden": false, - "name": "FocusedAnimationName" + "name": "PressedColorTint" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade-in easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeInEasing" + }, + { + "value": "easeInOutQuad", + "type": "Choice", + "label": "Fade-out easing", + "description": "", + "group": "Speed", + "extraInformation": [ + "linear", + "easeInQuad", + "easeOutQuad", + "easeInOutQuad", + "easeInCubic", + "easeOutCubic", + "easeInOutCubic", + "easeInQuart", + "easeOutQuart", + "easeInOutQuart", + "easeInQuint", + "easeOutQuint", + "easeInOutQuint", + "easeInOutSine", + "easeInExpo", + "easeOutExpo", + "easeInOutExpo", + "easeInCirc", + "easeOutCirc", + "easeInOutCirc", + "easeOutBounce", + "easeInBack", + "easeOutBack", + "easeInOutBack", + "elastic", + "swingFromTo", + "swingFrom", + "swingTo", + "bounce", + "bouncePast", + "easeFromTo", + "easeFrom", + "easeTo" + ], + "hidden": false, + "name": "FadeOutEasing" + }, + { + "value": "Idle", + "type": "Choice", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Focused", + "Pressed" + ], + "hidden": true, + "name": "PreviousState" } ], "sharedPropertyDescriptors": [] From 0d111c860d340817d2abca9984eed9fa6a9b09e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 17 Sep 2023 18:54:22 +0200 Subject: [PATCH 52/53] Simplify button handling. --- examples/3d-bomber-bunny/3d-bomber-bunny.json | 886 ++++++++++-------- 1 file changed, 502 insertions(+), 384 deletions(-) diff --git a/examples/3d-bomber-bunny/3d-bomber-bunny.json b/examples/3d-bomber-bunny/3d-bomber-bunny.json index 38e4a3143..b3bf283a1 100644 --- a/examples/3d-bomber-bunny/3d-bomber-bunny.json +++ b/examples/3d-bomber-bunny/3d-bomber-bunny.json @@ -4259,7 +4259,7 @@ }, "objectsGroups": [ { - "name": "Level", + "name": "LevelButton", "objects": [ { "name": "ClassicLevel" @@ -4278,7 +4278,7 @@ "depth": 0, "height": 128, "layer": "", - "name": "PlayerX2", + "name": "PlayerButton", "persistentUuid": "2cfd5749-461c-49c7-aa2c-ed96d18ff8fa", "width": 128, "x": 384, @@ -4286,39 +4286,14 @@ "zOrder": 20, "numberProperties": [], "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 0, - "height": 128, - "layer": "", - "name": "PlayerX3", - "persistentUuid": "097572b5-ed3a-413b-9414-6680d3b49700", - "width": 128, - "x": 576, - "y": 96, - "zOrder": 20, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] - }, - { - "angle": 0, - "customSize": true, - "depth": 0, - "height": 128, - "layer": "", - "name": "PlayerX4", - "persistentUuid": "5e16d213-aeff-4e2c-a891-49982552e0e0", - "width": 128, - "x": 768, - "y": 96, - "zOrder": 20, - "numberProperties": [], - "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "folded": true, + "name": "PlayerCount", + "type": "number", + "value": 2 + } + ] }, { "angle": 0, @@ -4547,111 +4522,90 @@ "numberProperties": [], "stringProperties": [], "initialVariables": [] - } - ], - "objects": [ + }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "PlayerX2", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + "angle": 0, + "customSize": true, + "depth": 0, + "height": 128, + "layer": "", + "name": "PlayerButton", + "persistentUuid": "4512ec27-3766-449b-9474-40ca30c1073e", + "width": 128, + "x": 576, + "y": 96, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "JoueurSelectionMask.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] + "folded": true, + "name": "PlayerCount", + "type": "number", + "value": 3 } ] }, { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "PlayerX3", - "tags": "", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [], - "effects": [], - "behaviors": [], - "animations": [ + "angle": 0, + "customSize": true, + "depth": 0, + "height": 128, + "layer": "", + "name": "PlayerButton", + "persistentUuid": "fd56520c-eac7-4977-a95c-f5c1beb0a154", + "width": 128, + "x": 768, + "y": 96, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "JoueurSelectionMask.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] + "folded": true, + "name": "PlayerCount", + "type": "number", + "value": 4 } ] - }, + } + ], + "objects": [ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", - "name": "PlayerX4", + "name": "PlayerButton", "tags": "", "type": "Sprite", "updateIfNotVisible": false, - "variables": [], + "variables": [ + { + "folded": true, + "name": "PlayerCount", + "type": "number", + "value": 0 + } + ], "effects": [], - "behaviors": [], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], "animations": [ { - "name": "4P", + "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, - "metadata": "{\"pskl\":{}}", "timeBetweenFrames": 0.08, "sprites": [ { @@ -5174,69 +5128,15 @@ "actions": [ { "type": { - "value": "ModVarGlobal" + "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ - "PlayerCount", - "=", - "2" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX2" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", + "PlayerButton", + "Opacity", "=", "127" ] }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX2", - "", - "", - "" - ] - } - ], - "actions": [ { "type": { "value": "ModVarGlobal" @@ -5246,134 +5146,33 @@ "=", "2" ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX2" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX3", - "" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX4", - "" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", - "=", - "127" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX3", - "", - "", - "" - ] } ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "PlayerCount", - "=", - "3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX2", - "" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX4", - "" - ] - }, - { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX2", - "=", - "127" - ] - }, + "events": [ { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX4", - "=", - "127" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "PlayerButton", + "PlayerCount", + "=", + "2" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerButton" + ] + } ] } ] @@ -5383,21 +5182,11 @@ "conditions": [ { "type": { - "value": "MouseButtonReleased" + "value": "ButtonStates::ButtonFSM::IsClicked" }, "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "PlayerX4", - "", - "", + "PlayerButton", + "ButtonFSM", "" ] } @@ -5410,53 +5199,47 @@ "parameters": [ "PlayerCount", "=", - "4" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX2", - "" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "PlayerX3", - "" + "PlayerButton.Variable(PlayerCount)" ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "PlayerX4" - ] - }, + } + ], + "events": [ { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX2", - "=", - "127" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AjoutObjConcern" + }, + "parameters": [ + "", + "PlayerButton" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "PlayerButton", + "" + ] + } ] }, { - "type": { - "value": "Opacity" - }, - "parameters": [ - "PlayerX3", - "=", - "127" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "PlayerButton" + ] + } ] } ] @@ -5478,21 +5261,11 @@ "conditions": [ { "type": { - "value": "MouseButtonReleased" + "value": "ButtonStates::ButtonFSM::IsClicked" }, "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "SourisSurObjet" - }, - "parameters": [ - "Level", - "", - "", + "LevelButton", + "ButtonFSM", "" ] } @@ -5505,7 +5278,7 @@ "parameters": [ "Level", "=", - "Level.VariableString(Name)" + "LevelButton.VariableString(Name)" ] }, { @@ -5515,7 +5288,7 @@ "parameters": [ "Bomb", "=", - "Level.Variable(Bomb)" + "LevelButton.Variable(Bomb)" ] }, { @@ -5525,7 +5298,7 @@ "parameters": [ "Flame", "=", - "Level.Variable(Flame)" + "LevelButton.Variable(Flame)" ] }, { @@ -7040,6 +6813,67 @@ "name": "ButtonObjectEffects", "objectType": "", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "Effect", + "Object.Behavior::PropertyIdleEffect()", + "yes" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "Effect", + "Object.Behavior::PropertyFocusedEffect()", + "no" + ] + }, + { + "type": { + "value": "EffectCapability::EffectBehavior::EnableEffect" + }, + "parameters": [ + "Object", + "Effect", + "Object.Behavior::PropertyPressedEffect()", + "no" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonObjectEffects", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -7257,31 +7091,31 @@ "name": "Effect" }, { - "value": "Effects", + "value": "", "type": "String", "label": "Idle state effect", "description": "", - "group": "", + "group": "Effects", "extraInformation": [], "hidden": false, "name": "IdleEffect" }, { - "value": "Effects", + "value": "", "type": "String", "label": "Focused state effect", "description": "The state is Focused when the button is hovered or held outside.", - "group": "", + "group": "Effects", "extraInformation": [], "hidden": false, "name": "FocusedEffect" }, { - "value": "Effects", + "value": "", "type": "String", "label": "Pressed state effect", "description": "", - "group": "", + "group": "Effects", "extraInformation": [], "hidden": false, "name": "PressedEffect" @@ -7295,6 +7129,46 @@ "name": "ButtonAnimationNumber", "objectType": "Sprite", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimation()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationNumber", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -7470,6 +7344,46 @@ "name": "ButtonAnimationName", "objectType": "Sprite", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetName" + }, + "parameters": [ + "Object", + "Animation", + "=", + "Object.Behavior::PropertyIdleAnimationName()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAnimationName", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -8576,6 +8490,46 @@ "name": "ButtonScaleTween", "objectType": "Sprite", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ScalableCapability::ScalableBehavior::SetValue" + }, + "parameters": [ + "Object", + "Scale", + "=", + "Object.Behavior::PropertyIdleScale()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonScaleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -8993,7 +8947,7 @@ "name": "PressedScale" }, { - "value": "easeInOutSine", + "value": "easeInOutQuad", "type": "Choice", "label": "Fade-in easing", "description": "", @@ -9037,7 +8991,7 @@ "name": "FadeInEasing" }, { - "value": "easeInOutSine", + "value": "easeInOutQuad", "type": "Choice", "label": "Fade-out easing", "description": "", @@ -9103,6 +9057,76 @@ "name": "ButtonAngleTween", "objectType": "", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Angle can't be changed in onCreate." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::PropertyHasJustBeenCreated" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonAngleTween::SetPropertyHasJustBeenCreated" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyIdleAngle()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonAngleTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -9458,7 +9482,7 @@ "name": "Tween" }, { - "value": "0", + "value": "20", "type": "Number", "unit": "DegreeAngle", "label": "Idle state angle", @@ -9469,7 +9493,7 @@ "name": "IdleAngle" }, { - "value": "20", + "value": "0", "type": "Number", "unit": "DegreeAngle", "label": "Focussed state angle", @@ -9613,6 +9637,16 @@ ], "hidden": true, "name": "PreviousState" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HasJustBeenCreated" } ], "sharedPropertyDescriptors": [] @@ -9621,8 +9655,48 @@ "description": "Smoothly change the opacity of buttons according to their state.", "fullName": "Button opacity tween", "name": "ButtonOpacityTween", - "objectType": "", + "objectType": "Sprite", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "OpacityCapability::OpacityBehavior::SetValue" + }, + "parameters": [ + "Object", + "Opacity", + "=", + "Object.Behavior::PropertyIdleOpacity()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonOpacityTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -9844,6 +9918,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -9887,6 +9962,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -9935,6 +10011,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -10141,8 +10218,46 @@ "description": "Smoothly change the color tint of buttons according to their state.", "fullName": "Button color tint tween", "name": "ButtonColorTintTween", - "objectType": "", + "objectType": "Sprite", "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyIdleColorTint()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonColorTintTween", + "type": "behavior" + } + ], + "objectGroups": [] + }, { "fullName": "", "functionType": "Action", @@ -10364,6 +10479,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -10408,6 +10524,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -10457,6 +10574,7 @@ { "description": "Object", "name": "Object", + "supplementaryInformation": "Sprite", "type": "object" }, { @@ -10532,7 +10650,7 @@ "name": "IdleColorTint" }, { - "value": "255;255;255", + "value": "192;192;192", "type": "Color", "label": "Focused state color tint", "description": "", From 416d1d535d31814073dd9ee77cfb09ff1177501c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 17 Sep 2023 19:33:21 +0200 Subject: [PATCH 53/53] Update the readme. --- examples/3d-bomber-bunny/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/3d-bomber-bunny/README.md b/examples/3d-bomber-bunny/README.md index f28e11ace..44e3a8aae 100644 --- a/examples/3d-bomber-bunny/README.md +++ b/examples/3d-bomber-bunny/README.md @@ -1 +1 @@ -A bomberman-like game where each player controls a goose. Includes a title screen where you can choose the map and between 2 to 4 players, and bonuses. +A bomberman-like game for up to 4 players with procedural animations and particles. \ No newline at end of file

    cMUvD`l0m1=Eh7C;%S63)w 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

    YB4g^eK|TGjokFON?xi%x)~>j$iNQAAc*7m` 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%0A0w5a?|!>+39zK5tlU4TKih%G zOrUxUGrrIA5p#iZW_yeIPkuLfOg+>8Cv}vejcAVzG5Pb13if?<$i}z-N3>mJx$#X| zBh9k3rP@Tpbu7^V!}gIz;dF&)vh;RVD59f?jn|F-b1*RR_cc6uVEb+yh|Oz-(DoW8t#0MI+K zy!*LsY+qGD$yVwfPbzc&uXl};$)(|s1Kup$(S4@b>-oXOI{QW_^x2@P7JM`wmO=<`f~sj{ke z@MlVEDru15OR;}D$$DGOitLZ4^M!qM1J-(Oe;vr9Brt{VxU1oQ`d9oexodHziGC zR+w%wD3@vRCH_(P^3p+fEh(@AmS`vdzaa!F97#c*92T&=RrjI+bn3F8d<+PFdOzgb^AaL6?%}Y}aLZJ^Ka_>jj5kGZCsO`Q4 zpQJ(@coZgvMyPqkWzC7vvat495*_yG`e6jxHMo}=XqSvdSrB+eks@1_rEs6UHFA30 zuF+fP)PuXxbS0mfCk1>9XL+87W<55Y8X|AFtOn#|Zq6SwD&uN18eepHk;JR^oi~gk zi@I>=SMqQk4mzY2=Q8?X{mWHT%2;paeWtzLGm%J>%TrgIogh;q()5eqQ;kxY zcoLsr1PYo`T4FL1F`x>efoPWB2F+R^Kyd4X*np~I#zlj3ne}VX4C(S|m~oZU%67fw zjRB2;WN8$nN8nu6^co&Ni;QRaq!53=DY65_)0jH}LcnvOm3HRD1)oFUI-!}(p(JOF zj&}O22Bp|5*rmEwyt~uNFcm(e0j=|zt zrwSQ6QkCL;^rJvl93L8|OeUGhV!}*qFPRq0;5+D)`I|Mtf%wwWv$fn2vFM9=js>`J zS?dNyy@9*37F53~a<+Mh!k{<2F!pTM*{71RkKJQ~Ln8mCPukwGSdH_3mqNvC#0ZYCs?0q?K4lO{q1?V zHM)oh?nLaMy*grV3<87M&KOPKAAOCZP96ORdPgbQU@qc6z!`Z!cgb9X6=HLeTC=-b zRUlKA3!{3$IuHb^JL-P#lAnQx-H1sm<=pOr!bw~v0>o8eTA0Mq@XyyM`5-0M_{R&x zIc@;-;~JoA*FF84b+XD2@I(w1i{VKl;Eql&Aa zsp)Gu8tBQ&AqaEYk5={y${xF&#-1Zk=PN_Xjr?g4kOPXCNAiH5E$%Ihv3uZ~&onZB zY_0ZWHkkOrGw#`1%AE5^{zT_QooqZFhz~7cFVov zsVop3_lTol#^y->O<72sVA+9q5@u#cGsxGa_DV~Yb)}J@o})@ z#GNs{=sIl4p5|T@LF>hZiavx|W5h_07jy=y~eL>^r~m z`C9dSHph$bn-oMAlkMN7G|5pXc@!z_Xf)PL_1?F2&z#vgP zX2lUx>+LgmL3epN1*PBZ0k;l@FAoL?jEZMOgrdwMDQhSWtm}~`?|jeSGj5#k6H`6y zqK)2q^N^jH*9!Jqf-8W??KhtjEnMmOU2QtN^fT)pc-PC?>ibD)V84K1-2JjS^$txW)l(}?7!msm$8^eZsfGJ3gc_%@NZhpq*bJh+a<2h@O$<4X-q_-|>h!K&`A|@u0r1W`sx()*6K(Qgdg!=h* z!XQlhRUk@^UITDkC9&b;11i%Vx3s-;-9l7$`&qszLBVb7FAwW1Ew!`0d(zi=C+|f6 zTyFFFYi1W~KaAT*zqP^CSJ=56*8-6WU5k#|f|;H#g0}FzKPTZOku;6@O7UKgp)D7w zw!CcFjTcWxAUK4>u^$oeCtA>dHq9$-G>5ByzJg0yjq9QiNbUJZT!9dPXU@ynNLzA+ zNx>s+*^mQ(gmJbb?k|OpCf&(hXL(e3oZFH>d_vG9r04DCEWVZ97Jq9i|eMSVdy zh62i^q=+rhIfuf0#P&TYk^9@xy$S}PYwz=Zd!D7(E(tQ#W2(f})jQP9l8p1X8T+|? zC!09W#SZqHD) z^whLdu>Y;%=V5}BMd{3mJhqw=wTA-hq=MFR<^Hxk+`j!M@uxJ2_H+J53^oWQy6UI` z$L)j}!Z-K{fuF*|oCbTv+ImEJAm@JV@9y}079Ih?Sg$*`2jnSXGI)R8F2#Fs=u*#m zpOTHsz7G&&%L>$mZf^24#>RG=to{ygA&L`!!A|4twWbVR@(SX-Nvu{A54w+| zrRVSTaH~X1MAS;tN35!QHb*a$35~;9I17sLK3m6&`z+^3!KasJX6FdRCuTtVScxhr zwtx}vUfslaVDhSiTNk^aLVKR_j5*}1I6MSt$ns+L^zk(rB#iK?5#0aLl z-mCiVMJ0=(jKb!awa$BE+F5trop+8 zf#n$i1!R`r*-#H8{I7{*i4Ct-ZofuE1;3hQ%+;~43=)>^T>;*0T?x3F7=mm?`VZRS zju6#av;V#lH4rdOBQBZhK@-lqRFy17Xt-*>7)#V#RX9-K9~%T>z`19G#C2wiLDBwR z(s_NEa9`&a47(j_4p&n7mUQ%zl>uz{5JU5b>H3gJm(K}KXY1tw^6!`D5qA0V^MK_} z+rSp`)Upe1 z{^2&pYPw1+kU=Q@EAe@!1B+>U^Th8<4gB}t^@gn@z&Wn?YV zx9U#V$xON-7RDWxrVLeL6MRtLab1?Zj!Zr>{Dc`L2WzmJ4U^Hw-mMgssSFNZ8+s-4 zsPbT+-U;&?@im|A_o=g4vDyUqRZ5Za_JB%w`p_ni6S%;ESZQ6I5szm^15IaLabaAO z-AAOC=(uKCWS)QZ0qIB?GWLk%e5}tocAI!~=MR-D&3;Gf<~&Orvsu|gk4BjjZnSI5 z{d%WE3@+|Ayxpf=FTmR>lis4+^$<4lL4TpMT(aB~)23?VBwkk+#e+vG5t>=_1n2(mYm+uNv?H?>tNwcS`Z}OSJ7v2pyFn#&@ z{Kelv-dAiuieWBx5)t7O39{)s8dgoHW|9mZI=Yqi_6B(YE4j4glLt81L}I|-uxa2h z563blB<1gu(;1p`u%y5i0s89_`041iK^PNVv4HlV+k> z;~0@^bbZqxT|X!LnpMw_P8`I}AWxWlp)AA+^nGDz<$q@_N~Sr*aJZR`{0N!RWQac* zGuXF#jE<0fQ@wY9ZJ0xI9U8 zbF=%)l=z%O(5kAb`MLMV$~*jDhCV>*=7Vy-Ioq0o z9;5*ZSzIBMCNKpos*MgLEV=PL3dG`&+vI=`D4>gA#XPA%Mgl_}E%R2e*4I};PW})6 zUHA1YSwOQL02r>$e$L9 z5E9KWz1vniP5Iot!@lJGTVob`;?iLhTa&k!47)En?6x`R2-EqgSHjH0r=9*1L$49> zGIxBjXq!Z7ZKm$m`tTX4kD0^x&Tss=ZXCjKi%qnQBcB*P&g$<&`V8sc@G>MUh#r1P zM`4(t>RLPv7!Z?FZg#8(K&Pg@n7G(ZH4Xbs1p2I}Zn_CqFL!Ofdj~2wS6@J2gWyzP} z^tm0kHm_+2{rBa4wPr9c z0I*Ir!;HJU?J|+yQjQP(Z#zqteIh;iWZ>J`g@^XjgsmpaTRGphKS9yAcMhF4UhH} zg~XSiOR!>U1m$Pz%D+D${g9Pj zmFF`u=n%`=a*JU~V4VPLbX!#;v?QYv>FS-fSd(8B<*LWes4?GORT+2B6HXc*zxDdJ zU4)fN4DDpsaKXZ9qmF?zA|NdJh@44{(|8$SeXF#3x*lz2TmJ(GYxX>-y6E{?d*G%1_GkEM)12K*`6eX_a&+_? z@Khk8TLa%=Z<#^$-m4Ny!Qzg8yzpKCf zBm~sG$VzTrpA`Y{kd!&3BcjwKLc~5SiVJs7yxej9FMq_+n+QonL}-<&T!NeqH$*zr z#te{3&69u@Ee(h8-kN;_W`smUH%we3A=3YHjK6Ruf$uu`6`zXLfdL}|IUz}xj_sVF z=xzu@xkpuBkO?DX!xc5(fp`jsF#!iH*rp#QmB@{HdSGxf)xL}7SwWR_Y=O%EPX-l` z!N+|7kME$DKJ^h{i1zC(rASY^-13t=;(J=5Gu+3)OfbB%Lnoc|NOmTrlPOT5y@HDZ znKCpftU{BINy4N7XB?Qq^v*~pM)Pc4mk1Llx@8`1e$b2%PC;kaT$>=6DSz&I9M^Bh z_ftMc$@KR#k~gV|M9$wgLKNBsU$R2?r|Siiaf?TKvs;d)n;07gHab{@bHl`xvaFFM z2740Kb8hrE-6kNZtTbR>^2R>o|9VRu;NhqAQ=?ST$fVjORZO0pObeUn0&_jNfNF=!6hBg;tpB}^h+ z4RP%=|IpT7XF(8Q_;^kBE}GijJ`UEgXR^sW#+UoB>kt`T=RurGiPHhTDRYZN`$5$W z`;IYW-{;>`#_HON99UTrQ~5LgwI*s<-R2_&H|>m;li9_BG?_p@bHl9_4RLNCB`|?o zzb}ZwRq-Xb<+gx@$oP@8pG|6R$&c*9m6OoFa9Bi%Gj19GCK=W`z_kxzjj7ke|4TTJmt$75(07%7zkbVAZSy{)z^ zF6>pJ4c_N{W9?%;ma1MIm)dl#+fSu0U!%EX9kEQ1WL!CA_~{$*;t7XuSHI!c_ydSx z{f5?E2^x#Y-6!EP1wlG8#VtDV1_MFbU&X6YvfI5f)rl3>l+5%Jzw3_hBZMCk(IN1e zY4~~YFuMB8%S9_MJo;)fqFNSM}!=Po0`sXFe6D36KVmDMTF)$?EcI;cwL6h)FA(z75@o@ zhnzH@9F_S5pv_=&x;g7iv|pupHGp5DC5FBwGgre;2U}!zSU@=4C^|c>G<|<69XoQmd{3d} ztnmJVHC0T|ndcycN{YTS;=%VPRjOje$ZIzIQ^yz zN>wZ(r|J>W5dc!1wSp%3Mud&)#)#7u)3FDKhxkUQ{4xwVSx#54OFczLW!L7w?k;2F znurmwu1H`U)#@lM9AwQ=CI%+ZL=4)dbhO|%W>~#K_`KSc98Y|s5!>xL+(myYFoAn4 z-}PBKkTJE1q#vIFL;RM+8675x`G(}esk9gG_asbTPn#kEUU!c2s(q+!TupeIgjz`guK+cKsRh?tqk_BLdHnAK`NK78iTUb@n%pmB0T`DBdz49J&ILr@4J`c!9c85 z^Zb$Ch|bp**^wp{%WJPsjIBm^d9WqQ!Q|F4Qrx=EPsWwnv_)3^&R?R1IlC6g#jVr17lE^a8pq^^JS`u8*ZX}k9Iefrfd8Uoro7V-kR zE-=H+OtSP*nI1{pRVmJMpxiKs;Vx>j`gV9dqjfYW#a3f|%6r(HN2#!*{B7f|z$f8_ zimuGF#PpjdDxsAJ?Kx92<}NcA^D|1QKBnP!M;V!e+n8=mY$dawrfd0HyScj7%KP0j zjNJAJjx*tNIAxONpJu~q&>~W}J2E+gH){4lh{X|1^sbXQX5RE+76<-6_VSZ!kcIL& zJ!j-FqZ)64KT&%Op)*ba8*Y-X_cWX^ za6-62ZN6|OX|8fmF98z}pgQ1^BOU5+OC>tvIU*?QtL6YHWw0bGAKWeoNz`f*mj!-~ z+ar;g5fH>V@6Wa}y}g1jdaE0fu&p?8n4@U_)imX>8AdEat8d8S*Y<@p2J`4hC&i8R zN32r|@Aussmcg1VWUJ|VaG>-Rf5FLB;U4vqFT7`=zrM4h!Yxr0fcu$~l4H98S>BCV-!le3**FM1Hv*(R9C1(~Z z=a%l>WB5h=d(Lhcsh+?F0KV@NX;t95|I)TsUt|s-t7@7W-O8_D>jfHz`;O;pXlppV zPI|aU)kYrFwR#zARazo;vh-EG?l!?|H_=t}mh`+}R6*&*id|d406%oF$CijoETbuX zhq9WjM^sjO{B8gGE~nJO4RrP%c7Ui|6LRbP_itDzT8 z56HvIr-8~ywTJ2N-J2e}4%W&dq?y0@Fxp4a8(c(;PhvQ)RZvDAzkIy$1B48r_YR@! zQi}Ffc0Hk3uN3iNeKL_BZs!*j?}>Q5Z~A)DwB6z$0K9p!@g+maroK$#?=LK#a0j_X zqo~V@;jtcd;=c#ag#jW#tQlAML+f7N0=*x)I%5W5Q>KyC)rP+h#xWJUCHH>wVULIB?I)+Al+*u{EYj_AA6@Ev(vY^K*7$}BkAa9t)3na-zoTwq!~PPq`)b>St1r5b`Q8k z#H8}b@3kM3m4h0eGL0E>C~PjY3w7TzFOre1e_J*lRHL!{6iGF2)J!FmVrXC9G*X^M zDB^~*7Au)nF*EW*QqZdTnydh0tInEG?`Gz4i!DRTlbn+qD4V-PVD&9h?U$jKMByu9 zpeLyT#6-95cYnUj;xP@@sx5=b91C(Xe!QwWvo8I4NB{>u;zqq(MpNokRl)t7L?(}H zYa{OO6c4JN>(i*7@Y_N0JaB!FWd~=#94RAySsu#GAd2(;o9i|%_h4%V$DC^G1?N3) zh9emu-9rW&cqZh8+hiXhfb2dGGb^QYQpfr~Er6nRWREiWCrp~M&@8zd#LJ=Ckh807 zp%g>e^Ng4T0JKZRWa7q4ih7hQrnb2O>jJahKKUuTGp#R87xwwEV84eB3YG*@jDbr( zD&>t4^+OhQRDiSzj#&ytN~bKS7Iu2Vp~!|UfkY{o$oYYJ3QnZBXe!IjJ* zd@Au~EbIP=II5m>=1#XV6<~k?A>m446bd(GDs7;lM`B;I#*kMuEgml;EAr6gXvUOZ z9Z*BYEtd7|BA|h|OBW{N#(UnFj<{gO4C9V<2DTzp)Mc+>%xgbB(nXR&!?U0C=tB&4 zZ4nUfB*x%&z_nGe^qWBSi!>l_Y7^x~oeB2r?<2Yh8i;hM>IhK?q3BC>-RfSr>l@Rc z%Igu4)=aV81&-sCL_zw4ne`wQKj}jmORi2~(Na58;pqXo23A0C*3wJV&WZPCGqTni z2k#itYE4c5LTe``zbl$E51>Ac(V(~Mq5!;5pLU>BF)v;HFLaSaW^fuP%{m~lLO4Q< zqB%&6051sH2?^aE$l_${RK*{styl(G5>w0uqp2KUok0zJK`050IRWC=&R@7`4-Hep+t> zMk$YBuAmMEoWA@mO+Sg@8^Qi;PrbL^c2&C4Q6X5*|J7@K<a+{1KXzHZN(SbLc6ZMx7Z_W+9GjQaY@HQJUF;XqoH}0(5TfB4nG=i9pF3YMqm-x$VZ2g;Jdx9ZofH#iUT1ow595&oAE5e#vs!=H! zIEgTHj{fuNDEzA9hb(HN&x7&<+x?%U^w=M$kxOwW8$aq8Z1nw%WQ}7bm`#M=puD5I z;45Gg6b1ZwjEGV_Qlo4=;bBi(jPiy)rk?Haq8^U<~Kth4vanN7)HkuP6Hsp=*H zx0@SQG;4xLW5Q+!yP+pbfzU3+B4Ue6cyVt9iWpohNm~fWD7xnqd4EYMVV)7z((3}#BW_k`A7 zpT=ooG;uHb6U~TprCNx!AVD;AF?*Gz5Iejy@c;@6OaKT~UJy-CmT`J|2RlCTkK=gB zeQA8|>2x!I7t(JnR*xe2BSx#rY#(XTK^LvUo_b!X93L{=Zk95;@GXJ$PsNbjAvWwi zlcux|`Rxuae+dZjM`~anmb?K9c|}oTAS`z#lAx+X4slHfBL3RrlEJKOeP!S z*ZW?Q9JdWh$Cfx6iK8un=BQ+?EWqMtf2%0pYE{*1MoRo?pOeCO+9hcE z3UH9s19ULYGit;&pzV@`^;dlj*uc;3H1oESVKml0jkGPQ3TY&`j!0>u9>GMfr;_Kr zJ4z|fa2Tuvy*uUd?(I6c=$&Hw&4ac`5+_+wQf0X2xudpHS$Imw3LMuaHK|^$Z5U95 znY^7YdsO6Ye4N(YHM2vx0RargSj79HpQWHbl)pKh8rVML6as<>Ck3%^E(K7}tJwdj zCk43W{f`AOa|+PVYoz9BESZCk)^$Kgi&)3zfSdFJ3%htW%o0O|bJC#hN-?tt4z|LT zTtAwClgr}r{cS}M1+KeJnVBBlVu5e>ASFos)fY6urT-6ZN@DC?6ry9f3;~Lqm10rf z#klU8D6sI#tirOwd>T?O$b>QgT*bdYk;-{Z7|z-mvUnEu*;&c|tXzV=&Sw*G(98TB z)?Y$Hk6XhkLzkBg9!`H>dt3#St^yX*H?ig3qhRcQl1kj+NI z9StpsLDx@ETiOHX2xCmQDSM^zOj1V(uZj^UBa?ZhA&0C>*5IU|^MVIp+Wx4HbxOI8 z2iSXY`QpkevqXNSijUxFZt0;3BU`Z*PH7XevFi=|!B^4lanmAb%XKY=#VU=nLvmo= z^_w0+8T!uq)nNUP&51Tu(L#?PCv2Tm`|h=bM#BhXpTU5?b@h2UG9uNYOn$F4^wM zl41{+FofGg{M+k-ZG_~76!|EnSokv10q2Iq&?&mbo)jE)(USjR&-hA8!pi}R)%S4T z3T%=u)2+(V1P*+{i}aojT46f7`GsyJzh?baXpw%zzcNWn(|P#OR%Ysohw}Nb;C*-@ zoTDTw_tVK|=4GHuw*HYt-eAQx6Jgj7!t2l2 zJ0$il&bfC2OXI^C6C3uWY>ehdHMD$IQARZw%%Db#igVs8ItNPMKo&)5&uQ{LA{La6 zOosvasUkfy^k@3u2tMaL7!)_o@rXX)F5N$#lp=n=O-CN|fHOZ7umA)DxP9E3Z>}$d zg{-GF((cJqjU}%U&;TneviX{p2U z9tGFzP^jcV*b?l)1hWzw}ehB!^Z?pok;VTPZcw3{wz1)*W@~v z=bBAoE0Ymxqba`p+RqPTnul5L)#UK+?6y$P7sJ-*NL$4X7SUNAGis0P9mix5w+_|6 z3JeBlzh`ofW)%r97G)9%p*32Wl$(7|ga^@3rl|RZ=Fo@%EI=Tnu<+l|6f$+tFr5$8 zenoULZXgZ+L?i|$et5k!y}iC1MP-`g8<2(G!fAAo#h(3cOvP!RpXNa6p~NmA43f`d zf3h@sLrADMi%<@%aGpLF{e{GQwM%yx=!jGtFd;I{-4%%qY6p9{FI0L;QU6)t$Kf=` zjtq5FKXVKK2>vIc6F5|98?^t{M0&S1hsyV8TY5?4cVBh%uDglrv^5rQPP{LDy4PAw zkzE*0@M7FMT8xj=(`ReuL6OT4@4LIDQU&9EopT+N($DBt+pyRaGX{WUH2Q%0Gr)hn zCBq9R2k%C=7=Xmno1v|+qc9)Huk`yy5{@}DQp${spuauo*6M9|MBz|Y*BDg zyYLJ#bk_jV4MR6lQqmyZoe!yW4-L}YUD6HGLr9k(-AG7x*WsM^d%yp%uC@2NGn;LI z!@GulT3=6x8v$(Bk?Y2HMh(j4h?DL9mO^qB$1@Is$Ui#RAwhqDPSqCMD&LDNWJv3t6Cl}l>F+4!A^R5=~kdQtNqu% z9qteCnuhK;$OZ4UBq$&N2{1QjSML3zTs`BlvfL#vb}#Bpzil|n3Y~Jw#WbR+g6pWP zIeRUyQ%QX5>9dw*u^vZ-hSbhqHV3ngMIU56F4ypN($QG49wYXb_Kbi%d3j#X2mh~2 zXS$2dhH8o5vhWxA2GabmSpQ-Nkr0+8>)Z8@>+L`#%I4G6M{CD~( z+EyX5Q=M>*AKic;a~$xB(9ntRGm8f5^HMWUYU_hyTaHI@LX#gEf{C}c%ITAnKYXmX zk2lsk1-8rq(oEp1Od!5`e}ZHjxKN@-O)GB&G7yh3L;dKhiXzxhXG_t<@ep<>lD`=S zIkw2Dxohwp0utq1t^d{QxB}p>l(Rr3i)b9SmWMk3^sMgZZI=7d6DK>K676EZzmC`& zhW&!w_w)!sCOe`ri+Hir?;fUh%1fhqqG<~K;M#M*XDTcikl~vGzGi6e=N_qO9O=nT zeJ{S3$&ZUm2YGU$U2!cA*yJzVVNv1#sQ*4XhK3JeEMqr+q26D{sr!geY3HGukAjoC z)2;)M(ER?ZH~)Hs#Z4S$L3MfdgCikSX6XY;N>^&=#ICg++TPVs%)=`(Ks0HRQ0+XkyYHEtFcxcw_Z5RjGbg%SS4Q_To(c= z9DUAsuukf~&X0Dx@|-QM2Z4ZF2wR(rpX zTIxL)8V{Fw2OEd}u-gV1p+XBpDr7|1sZwS>l*!{{toELa^+0# zmhCXe4MrFmcdDLjmvX!yaqdjh(7I{I2IZYiMjt_MdQ&@A9M7kxvmJ z!Q-l(uqQ3y@0)5`&nt&kJ~QS9B95$Rkbs;t><$5 z%$65L;ETRs5t8vwO6>ggjWqzq|D07A9SQC-iSa2;1{+og=jhqtnCddU=%o3KM?_-|G!YnnTiTH&+7 zj0jU8g5;XB&VL27O6-lpG@w!P#@L!05wr~=RRsCt(wybL7sb*Cvb|zVs)rDf+3`yZ zaXMTR_6pHfH0oZt+)wURv8oND#nTM`gbH^O%mDg^HsXkKfi0RHw4szKs=A3}mZfiz z$1wK&?-}6~T+Y0A@n{)N1@_P0Bgw8gG`Eh=sK1`XKF>l_HF@cM$cuspg}m_!%7rd%i7d(fXSc*B)bcfhajaK(tD-Qi`wY{vEfHTgfq3kN$;7+F zC=@;g6c;WnGz4PwV7|G<*5#v&W;{dqiP8QLk=k8u^ATL6c_88VKApMFZDu;4;Qi40f?xS*JELxBF`?+K&; zoQ(KEL*GqxUiD$(Wr=M+C{;~NuXEXiJTaUuMv)gaQMU834{V~*%_IyZ@SJnJ`9@@p zH9onSBHiVx6i=GOYr8O*}DEOS1m4w#EM1f8i!(xWkD%D=-k25@-w8tt5O; z`N@;U%ASOmY0myz9k^hv7F!S5S&IGwpnLCwg3^{5BMiDrr?&vLJ(xcz>7~Tsk*f$D zYh#jq{*$XJk-nnsA#4_LP6nSs&-X|E;{l~&r`{(RF6{g%mBdS79M|HSH%3bjoHKtz zdXgp9JXh-Ftr3UE0K*(e1U42VNTVs?BH2v>!%nF53Q8r7LWAM6{$< z%8U<^myj|`%)sYf^7(OsDE9Z!?Myo$^vvvOH;LLZpmjm)=fzeV2L9F6ijdIY`MGTR zU91{SithZO7f}+Vo%Y=uC|@$lTVTAwda@3nx*)V_{(&r)v-v@7aqd)=wrIhf+1Ia5 z+)&NzybaQ}?yHx>Hrnj*4%v3V$MxGngMW|`diTlo7F^`Z<{y`^%H^M2KO!Pllqw~+ z@eXR_C3x=(G4!&@734GU-$DF#As$93Z{oS}u_Yu6;Ng}Qow`WvsI-bY4dcF4P6tgH zrBJH0WD3Twv;U3F{IO24LxKc84X6TSq6Dh}urbmi8wCSL9t1 zkbg3ADwXEs&y~<{t;)P-0*Rv`(1y&S43--c=+0PTewyf-M*M@h@5g028{DBD-|eR* zp)YiZ>$VGIdx6wBr)vc&wJeulrJkxCgJT&}dWSi3EM>h5F&3r_Q_>D6jW&zTHN=E1 z*5!P3GQqcCiSM7U!Y@$kq(I91aNe@t%Z3$17~SFo;jJC)@Tq4&5<&X18G+2z4NpgO zzj?e6(`9AO>=ju*Qot1=18B069M3+3*Y0b-Bomk+|2P5yHY?xch2n}BSY?pNT5=-> zFKsDtDItV_^Sn17UFS?t{~jRev$5$Sd4b?7VKdQm(Zu)X>@`!hSuh>r0GJGPNSK>s zzYcqsx@A>q^7s`O5KRIZxPipFDymxoFBG__5)qS$xIS`3L!ub$yhujzrm0zfuTY`p zQ@L_`Xg6UEv}^J&?GQzzQ4X6sQAxKGP?)w8C9}T$&63}B5f1$mqKr3Lt-qjtdv4_d zm*Eh_*gh^m`7D^>Zi@j6#<0Q6A_?YsT0x}0qJ;hoy6K-Og6#NC5?)s6ZI^p#3BmbN z$s8Ho$doi73L)~x5PaZ0|DN;iC5eT8xTE(xfSNWnu-pkeNT7$})1W(jeIW zb0x!$tP^2WmD>CXAJ+bR&3nI0T-Wre-x&2@e>Avn+3VZQL$(p~*CXu}m7d&{g=tiqtkwtm;m;V|(Ohj8xeKaZad9_hkjAB>emj^4Fg#@@bAl@w< zUN#FQAuZs_nW9#KbheeZ-~F)p0dw@YqBU zK=D*+nv%-ZHjuJ$31J0Z9*D&BqA0?P>cnKl$=Ww7Eqmb5QkU^uJfY(-NIf6nCcQ(SFd zjS}MPh7PCQhDl#a9!W_3aj_KrSV9y)bd>CKvyxGcFtuZ+M8x^WLO^ZW*$47=>PcS5 z&rCZv4-B8BL=RHq)1#tvh(~1)%{XE2`b+C4K3}d>5t=sb*1Aw%7tt39(JStze@faQ zOT~2CQWfYs@0tQ4zS*nuEuE!B9+cqDD$tSp&2z`)5=g;88!DiOLM<(|XeQ_hEx&4d zH%EHj6K(#+EPp;n810R?5mBoNWM- zB$Ln57sr2quMDQw!n+awFE^R==EF8(2`m}$YUg0Ag~5FU+JQBL@?}Q2sKJ^h%5`nA z>HVyk2N^tW4lxd$VPUYz zXR3Bs;%z1AN=~4*q>u7=c0M#$Hl3_6%0@ylk;?oumKp0a>>_)1H6yEZ$Rg$Z(jIG) zl&M_jjiHfdI0J`s^jUz>GPiur$w|0knwh1NE!vW9p>DY??6AlfC|yu>b)S>}JIX+1 zJ<&Qr?1eN#A9z3e^e=Z6#2@}cK|(Nq@!J`Ud4%u5f<4L3wI+uL=VNo)O%Ni%`AVw-9s6L<~I>>IuqyuPNJc5KgI}L`mJJR*n zcS%?baVK!_yC6bzqR-A$;Pn`ehC40q?ZiIa{0@lxht^CU0rigE7W5X`a1$Yhr5dSZ z>6Zz$P6F=_;5Dw0z!T(!wjX~kNsjBI^rZ80K4dTPnBD^EudHQZh~*mvMX%WpeI-zM z>WdCT55;!}$?40X^%U)uA>ymIllUmCCr(W#x|Z2BYR`bfxrKl5?DcVDD=FX+?y0OS z0((h>vKKKIq0^2)gIU;g4CS(un=#qpL(1IoQ)Xq-Lm6AwJodJ+5aWl@p!1z3$*sVX zKz{=je3cq4H{h}`iH4qq9VS~ z<7I^Axpcd$WpEG||6QQE;eW%TB_LnT&9M2FNvcrArKfZr9Q~C3I#;IjB4^Cdnw1!D zYo|G75z3T$5;_3OK>B|Z@Aw48tW1)ZxdlRM9Su+!5rJsX1nqN3^|IYCnVL@01$p*7 zwz$UBA4-UA3LM3RP&ol_7iqlRUKdAsoHbd6y!sXyN5(IFQ8gm+{_pR6Fsfby*Tv)G zy809$trFiUwHhpgL-e8T6U>4vSX6j&y~uO=-X1>Y zBo14O%c@WA%U-6)0y{|@Q(fnr2sEb8LuUFgA#P7$5JMAIw1zA13&(} z)ke)ckk5s#o=tf*3Qy6yojk2|$HD>5{E#_{%m)*IMR=UTv9Zt*_=H?ma#J4s4Nft? zh<6lKVWkAz(U@N1WM^&k40s1OJ`q%nqj}X38V)EM4iApv5E?R=G;<*!Q%5x(sd<{< zm?|G`_yi{x4>TFrFcdk&#PV+NB-LvonikkMu)#4zVSaQgkX!igxyQ|o)f_@0_~WUe z#u{u056F(LVMV0p1c-HEnX4<8VyW`RZOZLcIJD>KWF-*0Sn7K2H+xXbVL~}{Wi!iZ zP`c_&vuv-zs*<~|N98Xe=_BACPT(`b*eaxRl~T##4>OX4&HrivO6o{h&Q!f5KGkeA z)erZf4n=7D7Y^a)J?TDoFU)pN_O9s#7E4E`ACdek!ic3cp znK;}jHL&h8(XVIs*@8>XGEs=SWD*0LR+^cZ_#^f0^2Q?@7#&@~M}4Ph0~hk7IpVYg z|E$M>=j^=ppL>ZBF#wE<6g%D<39AN9;`T&lV*I5?+!BThMKt0)X1H}oau&Y!tiQuk zj0+eggil`Nqcxn+isI}}d3cunWb_~!OK!q;M+cj_l|slAmHrgM;e*O=&K8p+Vrk5l zP}_nUi!37YWgOyg_)x_50AE9_;(w!HI-s^bX@-b?j1=fPHE??L5^(R}-=!_~C|WTB zo)c9UlUzG@dp!JL`lVK6s^{flisR*F;r`#<8-m@vA6cyMB;hKU8FKC|EaU5!sxIGU zx#VE#kP2G}{A7^yGt$OH)!U+WBNbPeI9h(JI{@z64=Dj!2{JrP5cw5f??6cJbkQZ@ zeiRJd^WtB1r>7ZiI3$D?NN-k;jXTC%*(t+$q!gIhq68j(V*kajl7hyOqxNY5mpb81 zBF}u-o$f{NzS@cGkC8eFGbhd-lbm1W5W71TcBIpRIDn9q|FecISG8`e2(HtdL}E(J zpZG|0%&wKA5v%K8q7G{PbL&GlN%+a$*pq-! zK8ZLwijS%^q=G~62g4WK^Y{f;J1Ebl-Jv}WC%I0ifE_0zSw)a;*j2JlJG&dag2NJX zgdOhe1B05jhoeE3jeL`9Y5Br6*G%5lQPPf{r52s8$!`wxdQ23g#ApMgzE@T81@ZUt zwOyr%^U3Yk{54d-pDyhUq&mSobI+Z|@wec>k#DUwL3b!j8d3C5IJzR=vRhBfA&(+ z-U!$Hk&L0EF+T&>VLRK;OQlvvbkY@vyZ{v(PtQ^!BAty~E|jq2>ZHd-bxS-F6^8;o zf7~q^jr`h};$lH7&ALnb`+&MnDA*?n*DXT8SPBfknw7j%>trC<6xgxh1CO;L1(a(; zKJr1_i>;Nl&feWdqE>)NF9XKJsYj$Z|FT(%qnOZVfi!+N$@lzyorj{#%JKaH8%DuS zoyx6?WVKA@80m)@(XRoo0n{k({JA1WzAa^v67{aoWcC7Y_*c3RXwzu zdq0}sAa2s_nfY<@Lu609u-_foQ{8zP!1#fv*a&RUUE?!8;9T`}D%z4Y7s}%|x_S1j zpWJ|^m}ny8L=)Y4*2k&7DCkhk!Ci#G#NCw4bl;K|x{5F|(&KB&A&F?_K6!Uv{4HGr zbDx(xl&G(6#yYU#oMZLuEX>s%*YX1dqZ(PD@!a+ zOy&C%-VM0M5&H0T2S zougIx(GhA)5k+4v(O`fLpXUfCO^&BESpGSvte?}LBX4*Am&K;Ze~x{gcH+441h@sP zSSGREo14ME;ic>@vhvb6IMRjv(cw2YQEEkap?}L%OnR&OuB2g|k?H8dfLobreXA-v zNk_`@`apicu$O|nSyC6qhg~95oeBT8)|;xeOB%b>hfp`DD6KzN(OAw z`i!~^)A@(?E+vHN>)aCMAWKTSu-4K4{$6cJVK$b-2iMi^0aIGRspD`KVrn~jr75)D zEP>2MI@Zd>32=#r%QG^#OCG~^N8*cNN|YLXlViOqh4d(#d-NXEm~d3}#R4A$1%}+( zYqa|tV1+T;<+iHcRzZZ)WgrqQ%*L=KS4kj6+#n+A5Fr}#f_rQXqU4TvY2O8JBXUUJ zg;i(Yw5yNF+FqXLy{u7$vp2AmZTQfp>puyfoOU@gIu79&^-Yh3(4q&Ve7T%$^!Ui`Qu(WD_X-qVY4hs{!Q@U5 zq8GOPMl7KpWWBg`E9S_1SJe4x$iUxc{bX+llV0gd>KevxK8$kzX|#`L(wPB_@Ji)! z6G$4a`M}NEbALIh#&C*O`$L-rHQh7>Pyq4*wdS`!W}xx%w88C|)1SpA8jN+G!k*ST zuO2>#I3cXarobOAjiFd;D@?hN{0QJE|u`9AYl00au$oU z1L>g3a@dOn0J;>A_-_>7%vG^B=1fYHb@B8UX76KL=$4~oj)1SlKj;qB1@6O^fNr)P zCBpW3VNu*y|Fg2~jFiQsS`udoSEs+7LM^6mU2_k#edp3E@Mb%?AH+-uu6L-8`y;OT z-_Rl;dk$vw$p?!8nAylm%<4y7J=y{1emoRpQB!GLV}i#~jJ-NTn-LiBDd$)MNuqx+tTuAp5Ap%I{uhW=NJ#hVBQ*C*f}M@HoS;rHXVE#9v0oHV zdz>J81r5n%8^YY=tGU3zNSP^MCBtb@BCyQ^~Kf2v>ACNBodg@3{IuzHmc@~D0)gKpxC89zk0XVin-pu#EFHvVSZLo z2GjaqBd?SAUSA`)QTje_GZ8vSXr6O_W#n3<1RPbx))6iR*I%xVJHov=Sn+(rV;R}^ z%E`C5{W7AcarObO#9+*;KHhl}#vnnOz{-2g)XMzUbtt{nufSk}7Cgi=N%ztUnXkqm{L1O8T(ULw>8yUh5V-9fx5 zDXa4X7xY!qV3_$y7XR?mX56&ozI#g$*WqjRvuE>yb!G`FrNC*+Csu-kf5o2Ev!5Tt zrWR(F%JO#11)r|fh4loxUxwmb%6#4zN_4kZ2zJ|wkMkvXz2TVVd#6sYxcq|LT$$Uz z*5bZv<0$F)0O^4*PKkJ7%}0vztBfStHr@W58zEKY+e#XR_hyU0sr2^balmLGQbrM_ zsNbmQN)yKs1J6EYHU7e+j`d)Q78$RjwsBUUzN*d?Q4X1($5@D?n)MJOWp_{! z5v#=7PF>E((ajLAKLL*9d$N^ubQ-sn%`@P>w@1SBvGsf^00S+n%Qt&fwrEtY-3(VO zpDjlJ50QcW$6%puvZU+d7lu0|No;%hTF92nX}xZLG$%B0pOPv5xROZFRAnY-rPNfc zP9K~Wh&kb!+hd$Fby0~dA9Co`nlf`_^7c-Zw;kZF8 z?VWi&3IS7BIAzrwxZMvq2gc{Vk@WW!#-A(|yXNzmIqg9CU@58Uj>0+$VYzapoZ<@N z@cGlKm>iOIht)1$@c_;#4`s$Hr$BGx^Z*kS(P030zhXZe4A%SpC27(T$gc<04p9`i zij(1?Vkh3m3m!tnzT5_%-uvR>46@Ty?6V&J6_fG4Y!&38l2^qIT(lkss}`1cn|}3; zXcT)+;0VW6BfZqCh>=Ri6z%~$qu`+r!U%sguUFQ}qhsFId3w$BN=I_6Z4A}k-CaZl z-1`XYD7qjcmsyF4UybxgMB_{fLY4_jgcVj4_!RvpU$+*3f3;Cmy3f-X^As#vdyvSaNrJ6SwD1!HwF z#Yj8u=FCVb*#xmGAq$hL;t~1kLZw5r@`i<)s)Pk?JE7euF3gy^tH)laM`7MNu%`v3 z(r!iQ{WzknJK=ghzRvHF5>0-l;Nnnzn~JA&!feqM^wXl6Q+BeWBz81KEJ!I*&Bxbd z=g0W{)7_!x2Z~+m0Gd236=g0MpVu{VI0FN6!rSfZUp!BRbaYmTfI}CvPJ^(M+AX&R z)B$43`?#}A>WQfo#m7P{<&Jk_oVxtE*9RUUG^NN0;NBnfD85gpS1`l$hK_c7O zJb3)L3FRaX%a2!&fg|=Z7Far#!6@7U35sP)4e?(%4%lLD# zgFp#F1#Yf$pKiv=gS46D4zuS`?&#@AOrL?!=InSK*~`pP)}nhr=r9$!kwrvGtBsks zEV>kj^Qg2dwjgG5HN&O})#cU^w8_gH1@gdEPL$?;jfPchq59w$eDjU4PV8FH_Ou~p zqT_?otclPm-_8-A+I#h*u;^1+cx zfq0ZM#!)l~ze}l*RH4OX->_Q;Q-wdV0SOrWfQ5k;HCn$TXW0`8rS-5oLW|q7jhf0eun5rG7eFw-2F#W9hzmTBg0|7JUIeC=X`=~~GCV@q zem!&)0&sC$1?#>|5!1XHQd2a7mYkSz&tTCw&P#Q-vAb)A4Zr9CCeb+S8_ExSAK9iS z`kekM!`M~qYbi*!M{}&lp&*gg_de76zdwY{|w;w27#V%?W?gP6s21obY)BR`1@$y*v#oLOB zP7e2!h5oU3Wa@QW`@t(Ib5R!;JUfRkPpWqbDKZcAlm!*c2-oF(~@4ZH^F;t91X{n-XeW^7XwXj!qxV z@q5^n7jc2RI!39KKtERrg5(9f>fR>!od>+p$ruN~+o6MU2{42EERBWi+6EyXe6}X_ zFw?-_+k15>=}kRGT-a*8HhOVqn6wbi3FeKleUd*F6yQ{yPJ53c^H{>DAhb;5B#DK+ zV8B?@O0OR+b+#r^U^joDf0lvu!^=R3cAo$8Txp*FcPHoH`d-Gx+u?om!v5ZH@K$K2 zeiJ9Bp|V|Fo;IHkvw0LyjAn#-^^ng?TcZOT5991o6E|&-9ukUo(AU2Y6^wqTDM+9P zU+dunII-Wg^6m3x*EnlA`Way%om^GpuCZgm^(HzbaUPL~o>9D7hqNur^|+h!y8|{I zS8s=bloX5qSZOIG>>c;stfT2YzgjEfbugneM@R{VDg|b>bRm!1@W*Q|fI^xYhBRq5 zj~slJoT{5zvwMw~ZGGOb!k1Nr45U4e? zhAz=hNj|c=y1{a>-8o_VOQr+@au(dpm}+hSEd)uC!pRe(Co8iLoXNn`;mclPzQ=Yl z+86h^a0=dqi(uDu^Fj+AYyjhX{M}x2XQ(eR3$JCeQ*X+BcJWF>UA*bdoW_Ttf9o(< znR7U)8Mb|HDtz{pW=pR!y*GQj5e|I4oi4v7C$@WQeLlt@^ASQ+o+Z~Nr=sUc*j;xx z;0%C|cx4k0ZB@(0N6dEddi|GVY*yzPyL3=gb*O#>unJ>jDTk+13z(I35+hE3botK< zUWkn>8gW@%cb&BN)v($#g??oT;QTXMS6MI)IJq(5C9f~56|>8MXbp9KBT5&36id%A zg{X1W4OqRAkIR#Y3lT*jqq8bFu|msFg@F-o%&2BExu1tX#Y)!WRlYsn$@OkuR%kY9 zkfhKcxJdB`+XI_nT|j2)4;T;$phoJ#EdZ)E-XO;!kV-IB^?D`p%h~$ulR3oq3oPJG zo3RqL%=iTNN^s>(Iu_Oe=Nh-miCb0 zsP58M2>2C(|2L6>2L1fMhVZGr=ojLcPsfJvOmrY7{)!{E*l=Scp1k)?fJ=wygS+m5 zYae4H49b=_Jo+s$N|9HUI+Re;Wb8S8o@e*Tn1v)~+aC0Qh*N8*k(Qi_j?Yvz^~XRi)+rcf6S7Vqp&x z3vknyH~Qu5mWnzEH9+cm;}*VrHPG9isdPR)`1f#*XJcwO;>M=b!w3X{{wR~enwCi1 z(p0HZGQ8eY!jhCa64Mu4Xi?$dUs5B5dfTnhpg01GT)M8~Q&sYlvmo*RIo(g<4m|@x z8D4>afXh(##LVjkGBInldoqJYfotu0YOMTcIQiHB*K~R;;?O|Q`YXF9I>I-co9H~!(7O4 zVpnc-YDo`@q$%wQM%(NBMfUzl83$@%0RY5JTZC+w<=- z`DO=pe}F=W5bmjp{5Xjt#9kh1RqpEcnV(V3poSwidv{RI6eE+*)C2JT=s%^FzLbaC(L=-C_l?2KIVz zi9XO}1GkgjqWixDE<^#$(L15iM$kq+TvtM7r$B@zDI4>{&h_Zh;f8?yl?IrOf2x}Q zEe@?IpM1PDwPNVO;FLb{SSDSs0TG^+o5TU@_u#3ox4+(?$+$ker6J%xL`rAU>9fA} z9Ng$;#=MCyq8+s%FJK)xK({^yyg2P!I^|C26nO*{Os89m>_Bhb3vhV##0B-ej-`dI zWV0*h(_xOvuj0#X|K$}E?K{eQ{nX7TxkkzNsb(RC>}T7D`+nT}p`I$}*bNC1h!C?I zg7cgD*Wv@VJg)G9*4RwDlErP>TKMCcQ_@T81NSIp2ter7Tm%1$@EdP7En?#otFgyt znmD3H7*mxAy*KSBYJWU(iB1|VFp+TUq<_AJ0jN!yt*3K0Pm&B;tQ6+w3gw&vx_r1V zptAOX4=+{9k9$RMn1$rLS6A`ttM`o%z3Sy}2w_j>DQ<{h_uO&bo&|(0Op(_UQRqyr z4Gt?E1TBbHD+KdkO&!rT$Bk@xH}&GFA+40xomI1i$uyO(yZ2Hm_l-vvW4q|YjPxW$ z1OuvvCvQefVtN^chYW;?`H6`Vq0-ILFR&ymUSx}a=-V6oj(XAs|I}mUUdPpE(6a^8_L1&Z5grWp^TJ++w<#Cj%d{y@&vgU9tN&|2 zE_-0WLxBzJ;Wl_9RSa7z_7m;x9!V<1V?UWM$iuL{>QxZH0b!MQ;;i|Q8UJn6KK0YE zpj(XsXA8^7SQenU^7X6VxejRo?q&GsMg7ol_K!wH(#E4fXm>xtrbAf3Rrd)9q3IDE-K7I30&EH&8Y99sA? zN`JbnWL+1zKE`lbsyO-WYtRU6mp&qBb$tAIPlG>&cA){mWFx(K=IxD7;kT#y4tiFe z2mPrQxcdX3ue*GBCYVtz>%s=~4nu{|te`@5p2S-QP$U`FIn?%VtTXC{9WM{1q1 z4!Q^j1lj zhBvM)5P_jbC!hG%cLatg^BbKlfh~|DH z)qER@ep6Iqsnj$(q~PWw&(!!9fh)1H`p+}2Cv*EB#iSFhQqSq|&EonHIE8Rf{=@_$ zRt7OF^w-ZOLuAEGZ_5IVgWO-t4qrt`%`Y>TYgv*QC7Sp>ijj4^7`9^asog+0(%Sm|M)4#`OH8s+BL znLH%Xw8@iZYJ%AdoZLicC}dJ~)be&G3lYd0!X36^VJ+m{e}6B6u+ zY9}O780vlF9`{{z(1$1@J1tbbO4JxFYk-jEf_}aJ&WR~EI@rm0$A$C|#EIa#RC4$w zVI_rQzOM%0@3&b?gc^-cW40!n$>HD|7a~0&9)l1~Y`yh8XenfH)3qVbZx;7rc?}6r zdmX1wqjDM$pg*ULk5W$$rly%-VbEUSMh^o2%K?90PzHGNVu1+>pJ>8oTxM@7u1>RuF0>cm|KH4S z8T&^)dtgLU`K+V9WVbu{+wg+yJsCN|(-JmS~2fsS};C*9S_+#}CP5KyJxY7K%gN zM{4vPa50W`tHeL1Qo$!aplA6Z>B7fh^pHq(p|SFBl;b_m&szIzVKry2K&PB-)ro zqub6J`H=RQllNj%dTh{SVGPP7C$b2$;jPQ60{bqpJ3p}dMBJdq-IO?$a2>8uXxjvK zMkW;z*d7xjkCDXY+s=rBy$`b&Lox}8MZ6!>JgJz{jSiy=5LXz#W{G@LMzMm^Dm6zW z^o4|b_RA4CTPvWgC)>%Ji>b>-HhSH=0j%?)$Z%fRE37CcIWKQg{8@AEsNNiUU~6n1<<}*l zo@7ywyO1O0zsZVf-9RTJo8$Y3q(4wzEkLh7kKc5kBA_{Ebo0KFNgS3G@D=N-XnTJD zC&BbMGIV}$;FDSd;ej{NueeP34V&_oGK?~-HOuO!gvBd0KC;0$zONINPdT(VXPt7Z zJSxv`b||adxHbYd#`bRH^C!J#YivG%?uDwJu{{2yvw-$~ivRD*jXCtJU3jlGhl=Zg zfVLxww~w0?fYsV2&%Fh8v99Eomk>Dy#Dt^}6W;B)UyIk`p~>xa+q?ZeOpvh#EI89m z)@3Q(%ZgtMol0%0U~M)J!k(kA1W#v5fIiFd!ZC4^&{@NE zY9uM#v5!8{prY8Sj2|IR@?ZmRCt%)`3Mr8#c) zi&rt-BWtu-JLzgUxmcAbqh-#7f=ZA;(a=t!Post*qf9(EMI!)>)${swWZ5X^@xZhpL$;?{OdAjt$h9Khn`f7^vqcH5{?U7)4 z$?W7wZ&ZgcOk}?9QugRfXyk$^=0D*_)bIFPgcSp@)VKAA#)@1(h0!s13d@9}>W z@k}_XEo$zH*w+?SKP#lzzlK>7QnC;%-qkUKRj;-g#+W*MPqf#+C#R+pEEZKXXrgfa zRp{v^j;IHD^V?f;+uq9( zk68RC@BGHH3;%<_0(|KH-bV{&2KaEf-EV5na4eem1xGb2N_oljNCgMs`WN7y{Aj2* z`?4bK^hWJU2tECu!0Ko-i%Us7T+El-%j3B&9sA7PbD8PK&u>0auOkc{!A}1(<*YGg z0iDm--gy^2b215RALO%~R!F;^-=$p55J0@=!wo;8l8K-#E!)pYLSUni`x@UtVY!oz zVxMf`n95sA)@qHMite5|(kPGL&Fr^Sctzx6n!nY(KflR}Jzvh3aT)Xhn)IOofH9^n zST!&O(Cg!4F&(J_9ESBCRd5skPrfu%|2Fzt444Fx&I} zRdH>tSl!O_k3Cv6A06FOs*=XTGm7HT+y81y6W>0tF{+QRm5AaazM_@p%|866JiLtO zt43;zwxG^=SQc?F6MW;7Bs)YswM&R)UGGm|Qj%-?(!+%ZcTY7t=}F@dApab59SpwM z%}h?!?4;v|h-Ti??Xm_z9TJ4*jTLi_@33L7^qa;3iDapCJ%3i_ms1iK-OuUl&K`Qw z;GQ)R&?DZu_v5IH3a@<^*8$0JRrdqT&Sv9#qO~41iqxr%t$k*3k>|%(Q|H%FQ>K9A zxV(J9yq@1X(?UJ81rsoGEf|a(+w-73*`|v^zbDB`C{JG=CE#htqi($qRmmui00gVd zMYu;)`kFae>sh+drCW98GAkX-cKA21h#4I5`!OL{%=4sf(^^GS=NO|cHH#moe}?On zt-K?$y)EKk&rYdlazwEno$=yjMoMC-GU+E3TO2anBq2^CpXu+?ngkF3hTj`K@~Bm? zjSFq=&ik!@YUj0WVxDC#ACvahRw-NymPLAG;BzZwk{RJ`u`3egjy^R8Qn1~KchEgU zHrSsjql!gGl24-l5K=}4G*p;0U1Y)=4#Y~wm7njaAx>GEJAlpCd$z39esn~`>jj$y z?8E>3e>z1+a~BVe*LOj{KWgwIKdxhc7Eun1%t{M~2q>N#R%gNO<5%)!cS%S8d-kVZ z+k{b`-)<0jD(mT4Xy)t3{OZ{NC6zR(0dks>Mr0I$4_+Ff92?$MDMdIGXH~n7x%6-w z(&uMfs#L*S>4^l!#~~#!=B|mP_z3KQ4y$=u{Js`a*}JZ52+&>vX^$;| zYJAVdN(+F67_Y6#5jrf1Py0Jav1ACKivOzwalZrnYVoLrdN{V%cHV7%JhCVGDbtqB zr7pyyFD&^yhSrF`@(%xoEs=lCQP24o7SfW!F?N&h_> zai?OVx)J_o!Vz8Ou~+VGxba8x92wAg_pp97Y2viW$?R|||Hr2QC7C~}U#*WHx6wYP z4eZ%CfosY;r|m1=#bK5yp3aA(E~j_Bj;uduk%g36D~-R6vnXR*bq%ofP!ivIr{-#o z#L~?M3S%h2iXie?K2x=}?CcM72LByH=_CHkH*~gez+eEMR545#MG*!=%|}$o0VX@8 z2J_3@6pjsIi~yq$1xyVLHD{p!oriFVeBOo5z=!&`kd0~gIbIpJ{~w~h`k(H&@Bf^G zqmDM+)7{-nGc(=YIZV$nF`d(<8PnYy&E$0FFnM&x*L~gB{rLWN{($p%e_qcXaU7qe zNAC~+u%qr1^Pd*yMNJba2D#E?u{5Wj{7*Qc!O}YD4w*6X^j$6XInB zC=l!A+<+{QulKP8CeS6^{Bcym3a&FtRTZrD=PumgM?OVdIsfMO6EaE0(yPpcAuCA7 zVBs{N4Fb77FsJEsCUC+XAuV-48|kKMyg=d2chxvDCbio3sJo|Yp!O@S!f<_5|0-E7 z<;J-P#A&NR0C;V$#+|#q7tW?lsA=Qj7sQm(S>bynp2wG96X; zBRT(m?ydD!eZ6rjagq^9lOuJbu<^=~+P!ydONJF_jR2FpR~0Kh{ruBe0_H90`{k{C*A=;fsfa_k_? z1Vzzfj}Kb-UuM2dVyLuC5CSDZ2F?H}#-a9owhbsw;@>(6WgW zsJx2p%GkNud%eA1f0)7fHv6&UZ+CT&y?WsA+C0ah_~v4=6n_(T&~kdoaX(B%6Ib2l zB0H$h&l9hCnDzJ~e4#bWx4frQ_$#TQd4Iy8)mv`AFRT3Y*f`^aI7BW z*b4F-MvY$H@Cc}Kw5=Zl@zDSN&AX5Qr?!+{Q$EiF*ru^9`s-3X*A&p3-=X;Y-zk@p z1zHeBq;P3*`OXk%O^taJN(AhcIsm9rRN7A=Gt`H|=O&q|IX)If${X@;*I1^7YrVAS zHYtB=vkF0W|Kz+}82o7S4JU&zm z+3q^Y?z6TJl^(`7f?v4*%_AhUs<69i=I2GLumy(otdZ&PD=TJ73L5mSecAu~xb>LC zh6}Bt22wPvn{&H5ve0j`9*8A{BzTIl*A}j#PD>J_p^f`E5Pd)NBXXkpxnBq1>la}| zdi01G+w&X}PY6BqSi9g?1T_qgHk$2o;`3apR^}}JSxt;{7EPUtSQN>Ln>s80$=o`l zfXg9oI`3}JFq`_aq0GNK)*Ia8W{X4NW zK8>xSc92Z->zF8D+HVWk?5qF7U8tfp9`QULcS+Wk#5yK7VziovmZ>YH8-_4a+J@H) z*m(Ag9VjPD2L;;g+=SdAqtAf7QB5&TN$zwER`;drJNs%kzV=Ge@8WNx5hY9R&?sSj zue5ksq=24x91y-V%~bf0uT5aAYjoD7K1nN@Ba9ylzc`2L zG3pvQZjfBdn7T4w#gL3m1PJW*-JQpi_ElVk4zto!pS}cgbExr!a;Y?AFf)*5Ygau?%OU%Q2=0W`B9$ zvsV56!(}-?Z5lll@HCfO$&&7>QgTE|}} z)WK6C^A*q9K*jOdNk_wJ{;bBuo#$XZA30Y{1g3GyOJ z;UBq9#pr1=peVnk+%IPE)7GG5i-q8x4l~ZQg$pTk?!aUJ90NNR6T1h!Sm!y1zjKnqIXjRs;n&j3@Tih4AK?CAJ zkVQun(trmEafvHv(;GWGZ@mcA|4h?_Sprm;O*Mg5-K>%}Z4y?KHA4Hb6M2<9y;I#n zjldR@iIjAHSw^%R2Lf!iqN2ljiN!!hc%Tq&3l=z|>FS6ZT!W#Isux_Y8!9DgV)6if zfp=SE-GK-6+r#(LCSKuQpck03x)ELY?oMJm#K(n`SP&c95j0p`O+>&i;Ef#Gzd5taf#uT92RS z>eM<8tHe7VDC>k*2Y)-jjHt%ZG7h@Uu3ZAum^!c~*i+27fG`Wl6das%xDe@P(c z<2wuCi#aT$mqVRUwC4}4C;;QVD~i}wX_Kc%^R0d!uRhBU&NLB-!L@r4bpdvytu$@O zFlHjte{hfIG2E3_6vZ25-qJEO&JT?Tkfbn z0QC5Az`SsU++6sR=)%rlL8s^z?iegnJG}6z9 zYT@p(!Rdl${#TkyPJHg2TQelB!{VjOX`m4m22f8%0wV=itD0I@@UUWd5(tvKDM16< zF3GMIOQY>9DCcN#&?aBnowZ@OmXX?UXlyVB@&xVd9C+g6=6wP`ytaQN$gk21jwps7 zToqI~9IyIdKP2rhs{#o&K6b>FTZR2tr(NKc9#RaZ9WE|x*5KwF3_CKa)1 z3gGbe&^8StO~sh!1E>>p9R~YDv`_`22LT8=2@z=mH5Rj;W5Zfm-+vh;J@6q-g_EYo z?sq@`F7^-#ofiJqb$Msg`dDeGq zCB8ICLG)9TX92RKpLH5Dy}*MO6B`vsm|@wA=ZW`O`1sQX!X0*FMx7?wIp2$Kumb!L zKsy8c%7Y)BC-)yY^tB1Df=x9*;w1G366+lFz$PCougwh!M#MqW%e!E5s+#{`$F)^P zO!}5dKX{FV{#n>R2KkOqK)j-FvViE*j1GT7DpC~6Tg403jyLI4UIJQ}H(( zuJlw$0r01sIyjYphNkgKAEJ#QRDL?308#g!m{_HMiYzf;FKXyn4Tg(w*$6B+tbNPg zW)fqC;D<3@GhnJN+}9T|C%fVIM`0s|^OMiE*{ep1Hh)vKCA6}e&2yJ+b%#G$WeMWT4j52!aF5r}kb%*f z8rUsv{Hl%4wg*6QqEP8Fd4IV+RW84HLclQ( zSD?-{nz6NZ4|x~hgO|eIbQ zm+F|CbJC;gO82GKijUN@H-H!6_|4gmslJX^UtE8@u@?D27+&-x*l9!9eeG0OzSbCF zG@CtZAE?(JOAuv4`A8A%JKUB`H#QQn=eT7vL!sE0~Q_QrX?{U)GKAf1C;zbzws ztl7)x_QxBoC?dnZlCAu>1gd@Yu`~=i6J3?v`aTQle`(1#=3y`&{(7AhYA_j10X1g~_PK*()x?3LplVI@M!mn-UDgW~bt^vhdn)@sfO1sCu1oZ4!>ihh54 zdVIb1tgnR6*Xf{Yt>sdZBo=86`5KLScptu@IJC_y^ytkv_4tr){`IW-zS&zhws9_fOCt&AN7w~s&80onAGcZK3$t4rX%hyXb`(oqEgVac~I6^McD zseb(1w5912+rgh}MsxA7Z(R91F6$qFRsA*23FfkqI5ik3s!{3!C>T7~g4G2D4E_9$ zMSTifG^__!8(2EPKs5YGBp11D*72iHoO4F08(7&U-~g74I*x z+*Avz&c;jPzZhb~QBl1}fAk>_1&d@tiBFje)lP_fnak_21hmC@P7?9bvha ze1or$b0dgV2QuSSMH%vNCcqT+;rs1lOzkk?%y2)6e zrd-jOgF7|GdF-2Upb1rv__(u2tOg3`*|VG5w+}8xWSi2f_q(9u|3AJZmw6Y|VCW^f zbiTmv>@{A@QR103He70;F0UObHq}{;#(}6Z7G8T@3kykT%wNB5%n!J-?mt*qyPZ}m z@M&E&EZOuGWg1wo#-6EZ%zpKGytHEqQV+IArPk1}qXQO0fJF1Jna$x) zYy61NT25*TOGP3%?FICe7BxYG*F_#0^n+DK$%HilDaov~+tvjFHF#lRjOLoe|9Jt( zW6alFffxxN1-Sw#@JC-CFa&+6X-gy(Vthi8h-oh}f*K|Zm9f_O@hdt&eP(tza%Kp7 zE+J=x^V?0j*Jd62<8Zm8jcNF( zCD3xUGkgVnfQ8>VUEo$}!1R%o|=D?{E{)aHTg$ zblB_3G(Z-Dk4s(Z(dMe4*3KWpd87}(;JV#|Bwa8MI>K0*N?ckW{zbNFAV|tCwS_;v zMTV07l^TogvO^r-IYdc8?LD7oV?h3hzza;9rLLNdI9XeBpDzB9yl1h=hURjXYs8Aj zh?+)zve)n_RJZBU>-hry0>sB-EQ|@dT>uxR@jtG9w%B-2moW3@gRb==QP!K~x^cMv z0xn?kpEx-59cf~@-}lTc>N6fs?Vs#as6SNdU4J0`_LOw2+w~>!{z5<+Y$#9M8(4N} zh=Y{O78Phu)6=flLhTSU?06T{#DZ~_DKU7m^p6&nywKtL#N~pUkyfj3rddnqxr+WC zHGzBb7vF@I#)(#4Xs1raJ`(Z%x>=a@O&erL!&%f_b<}vTXgik>m!&{^2R4vf+Jt^# zkcy}hp{@J7-rCc5;v4W+LBP?#{{laT?O+H%PyehHL%*EkvqlpJkSTLddB0qB!>Y>p zqxHEPa*~w5YB@ooco`t5*nk;kqaDeae{6B`@FeLV8$ef85cKBYM>1_gA%;E_C~tAC z^|rce!ie-FY_PABdz5u*Jd;5AK;F7vwC$8YYjYC(d^5E)s+n(0^bLsMa`3I^Vu?lB zwvD(xY zr%@!6G5!gcRgO#UlUnkHPt;FIaJ3N75Huc2Tx$MPm-XG&BmuR zJu?hOw~mkD9MyAz8U7S_pCSb+&3e-_oolU$dnewxh;((i_0JpP5#{PDaE3Hxsg;{r z?Gr^DuoJd2O=lJq%Uw+MH|8ur>o(FF+VnXbjy;^H_>^q_qE{fk zmVv%AQZ#X)wZ0-AUgmDE^&ziwsIko5d_p5Mcpv|@7$ssegr3~IM=;yjlYQ=Z_+E<2 zMTtJpq+3Gr;9CdIf4!~#HxuLmt$_-+CRMnF*${6}`7X9w8^B805^J8izNi;>Y5;Kd zJ!^#2r?PBENo%sJxKwSm7k(+kCxp?`zMl9DO$vlFt0{LJT$kckqXd18U_W->6OVDMu9O%L+L4+|i(nMC08=E2vcr@hJWc zB)OHI!BMXCl2F9`WmY|bCa5upxYw#4j*V*LX)4Ky%jhNuyqa171Q+k~>v|=00}NO5 zx>P`-B{?+o;eR_>ycfMQI9bUV4AIKeeo7TJDx&Ev!+rO*rcCh+s%DwSRXFcl2R7Pc zTR3&#U1r^b(~%xR2qy$-0w2C|2%pxzd~^QD{mNz_HXDkLd`6Ap&%;;zu&LK72Y5wm zdwXnPx?m;Ned~=-%Swx__##ySiC4D3vb0ej)Vx-Av(}7l!VF$@dSyha-u~*@^2e!l ztmqoG{dA)WXl~=Y6hGq7TT<76E$apQ;9V4p|IFv@DKFcpt0C)@3fpPKm;?AMvtQPO z@$vC`gwKLR0Cd3YTZc>l2bPz^owxoOkQT^B3Mxj8nojk;C-D|XGR{I~1=(aw9xOSX z>~?yr2Bh~rXgDPB(~^xAD`)pk1U|l1iNoY@YRMRCNe*$Hm*U{ zs=c~?BdYyg(b@5gZB|Y@vt%c-32Y4L?IHdjSiGSqTIwT0b5)~j?H}G<^~5E1Uh)f= z5&ycIVieyV8W6KdnA9dYVzmW#~UG+pp0&pFkHQ zi+GJ5Vt6HQ${OD<0B`LbN(0G0Z}e?dRKNHIT0jVE8Rre z^k@U}*-a&bMVA&rZT^m@-cIO_Jo}BR@9Wwe9D;+0y5O<5!nN?+Ja6 z*XA?h_kOHKpp?yBzkag|NmX`~l{=~9Q@hoAOBzb>6ws7jmik=#DcwD5rh+0#In)&b zf6Bm<9&%jHLwp-LG;kV4Z$=$Nf-Dm^e*wLCx8X;{4b}H~-Gdt^kv)L6J5gl*w%ov| zBT9>6DCGW-raD5pK$WRSmt5*!dETx_{&$1ntX^rgSft(Ng5Up-G0OA5b*$${uJ)#I z(3khj-+J^|rKR)29e)Vh7a0$c)N(UKk-LGcdA%MB-a5jUGYprd_eo7n&v^} zk!fZh%o5!cIJyTrL~?Be?6RphK>%`#B|kkLzQhg~KGg{SnkqmYm35Yu&P3_FY|*aG z?+|?&j!UI&Ld+$@IB(!upfovMX#;?bySWR}Dz6a?e;OP;Rg^)yAWoOFY`BQ$OCAjy zehEwM*3ny0xF07c*!J)lL>=Rdx1W`-8}x{8oWRjCzDL!H(1M z^<1Se3QZD6F6QL1iD++(d`7ZwOhOLNnZxgL&w6+K^oTsyNcx6UYd&n&K1KY37*^R8 zIl|ZkD_37<9q;Xu#+2MOeQ4%9@;qJ>mpvOUb>wn7O-m~6YwTk_PJ$Ns==?~OC`a=F zow47|{#&4NRY~%&35J%qhM?4kMYz2Tr$lLZk3)o+vhh_S75T%afL3#q9N$}C{vfqZ z;BM57C*s5VWK@l{W|Nt&g#0D=JnuEfke@PT#bhv8?R4tO~9AA zAXgHr^<|nb+OYDh#q+E_6Zqyfm?&qsw6lo z>!;yk=1o)QK3J5cJa6`fbd1<+*g#S26O}4}!Fm@`TbH%(L1Jpg{ZM^M@AX*LvrCo1 z2z?ZO=~@POJ`H>Dpq`RQdXYy>zp>&MsapO{XAkLQVAV%8<2rg8)F@CpP{wWiV`J#P zRMaw;4V_fnl0K>oo)TFr@eMZHua-C$@@c&!@cj2x>bu@*eaN((X%(!eN5qt)qdl|i z?;DM$XTx9X27&N?IA4A>_?6Y*Lsg}j393dBb1haIeRjab_G4`$7zOwvp(3^@Vn{pu z-uTjt!nLr6>WV7Z_=7U{S;bC3n?Icm;VV8=7_f&i2?oC$pwuT+4I{D|1vk}r8KAW^ zBR(3e>KxQf8AMI#L9+V0%jSIu${QxzhRcWE_-oZJQ56@t#)+TH1Oz{OmczvB?jqIW zX9~(Hu5J#2fqKU^=S}4|Bc_dhU5!eIv0k_N@3gebcd@N{qU!klL}Ejby0E*%;LQV? z@a-vLvtK;oUyf}Q;@;^Bp{6E{lH0_1q!wRfEnQMUpwxrk8G4hhDV(#`ge8jIt*h9{SU25w;zOF8O)|7t` zDC>X=qb#uCyO6wc7Gv0kgrj*7+_zI7tPoqX-^*c3aPmza>p~%YW6Oxs7WFJpx5fN` zS$fGJ84gk_mQWL#9!ZrnbOe>mG(8qos)SDZ`ne5(u3Nk{xef#@*dGEQl|b?fh*j}V z?5BMvHD`>74L<|9#J{h_1@X8DZV0J(R~hjeSyH4x2gM!(Mg*MurOb+#uthWTkTF~| zq&Pu!Dpc2HBL<^L6YTg@T7OvthVP4Qx}$EFa5cBWJujr(!$6aD%F3r3Re3k=cNc^= z0{5$)*>0Km*E?H!;!QCGun0I8(jPtRKB|qnI({B}VfD3K4AdwEp|LjsOdowOj;_+b zf`>M^c`(_+ka%!2(@e95OUFaa<}!Zgn+hrn?RhvW{&`#Xg@@ImCT;uTebr{u`<#1?6aC`a^uk=fmdyCo4+H7{LT7l zjC-?7#qH8cAeFdS+GevPX=?$kgHU9R$$)LqX>=X9hy_&+8E-OuDY>T8d?l|ae&i4I z^2J1Y2L<3u13JZf_qqbEe@q;bUeh{s3HYulp(jc*IRHpe2e{%--f|kz;wup8dk8ns zb3Ig1TfZP7jG}s5LHz`D_c#RK9N3^!0cCtzNw+T7_h=!K2!cR>SwC-+{2)QRi{wv~ zYvdBV>Rc2NY;L8O^s_Lrf972BS2{m$AFEF1cCSFE^O*(W5B_gZ5P|q_2a1v`Jy;y) z)a)Jnk%fgE63qY3HxMu(>h3jX9}w?nJWCB%W_g^r%M{EnPVQxzVaI18{1~)DbL;q3 z@WL^Jj?@A`EWbhHAwKi&Vp%yoAdT*KnGp%z?g0IqCU`Y@+|igX^&P3IAcg=sk*UU* zyVv$J_N0C;p#t=LGc!%OxOpwQRV%SkUpb!#nVgsB!*@`ifEY%rhq==wEl7j*b|01V zez;*``n10Pv84IpViA)vKSOM6kB{CICyAH!wPawCqWF>^=23;Njh3}T!0M2QRe-f* zFqc82IOmo}*qV}L3&0Lfa~kq=NA6CJC4O?EBARgcM6Piyx=xv85gW%ZPPomK2Y)P? z_}V!Lrc7wDB=?pGk_42*dP!0JuY@i_(ZA;1kA2rG1$=-};!v0GbG{ZI-1Z&_8FFt` z4QlAyG(Qw&22H(Aq?jtT-xt#Ux&8GsjBm-PfEDlUahjDLr;}5ZbEr>Wrh0%Am`n+X zz!O6`TFn*KR&hqs{T7Zzrm|SaOvf6EQQaNO!;j-y~(@mH4ffx~2D^HTPV(+Ky_!NgyOaFo}N+dwssm>XT>G~FW7dRji)dK@W5 z@Y%YuPLm1k0~cw#od-Go@@LD|*(^gQU?(eZp~Y%9)lqh7p@ziqea5OBcrhBkJR&?w zGr<>^>%sX?v16>7!BKd$BV$A>;y*<@JxrM};&)*PY)kQJR?OX8+JO9?v${UC_@Zp6 z8&ZgeShcP1m(Nnnfp_i3bPt_ zfJ^>HJO!ir)@;cjvN`j%+;hWVc4F6QgE#>12izXNiD0FLfY9x25eh#<&_UQD?}JQS z`t8e`@!h?q+A0=@lydT;jL9I+#6O-l2VO!|$F?G;?@dO8kP(7wt2rY!hQBg$8Suyw z*>Ij?vRhU`@_q*`Lf_R`u)kM4}G@S>Uk)pdJVt zaqKO!Dp+g*COch#`HXDHLCX4cd&Dbi>sL<)dJTXKs0fzzbN*vsD47sdGSCbp&mB!+ z0vigvt2@don|N)@$a6-m3nO;a>c&`b+u?qgSd1mlp=B9*dO7OQbN{RGnf;dB1kl&R zm-@?I>ndNntVo2UVSkCQ4eLTY(3fJ@XTb4D=|;cIz`mi-*naG{igOLX^@ay)uNeUc z!X2z)ZKXw$AorGMC|nW-96W>jN72Fjy*~58-y+gJ@YrYs=?v_ZH~!n63?axl$>TB< zsc=gSSuXNxVT4eTxbWf@GLaX|BnzE&9=<#N9;9F3kdcCSUvij3K^0k&HN!KGn=*pr zifrgGzvLKvH~1)J`bDIQ&0+(~<{t-v_Xm%grt7ZFeW)eap=psQ>LCjs!hn1 zDWv<~*|~4KwCU9u-sg=)?yoSxY+s@z*ExiwrCf9fy6FMNQd*?S7l*M{o4O$M!}6W3Gd^4PMma{wFpwMqueJ`mFZfdWfyL9oWZbnjl<0JHtgd zm77r-MpVEud^`tbG@Dgs-X5OWwkNN)$2(9Oxc1&U^Ia_Cjg;ivS}#REazs5VKBkZV zXB2zb|8jSLK*}dmDC#kWTt`YFrwdc@tLi+XzB(d zkt_;-RyVk=>z;V>3KlktlnSPgW0Y&t4f+Z^u|_IRGyNWrX5P+oIw%5_T*CR}WhX*5 z(4_OG{ZQZbUU=gQqiM$O<=1V_`OxQLj4c)si>MJTStH{5fSJ~$sCC{rn1rI_Pm$Rl zyv+HZF8WGZdw!9t?Sy%3YTZB%QfsW1zm6kO(s@iD;zd7l!eT8|LbJM7=g5NmCF0p056mCdz>5~3uqP)gYH zFrtG8k|)%emM82Zv$Y}|!q3yqqo+KdFa<2wmVSO=;QS5@4G8MWq=k8E5mwXDGR5-P zX2vbIz7N&&6RbfAa_dC1=N|tD`t3=ow~+HWn&h|zOhP!RZNgClz5k&U#Uf9Kbhh6Y z^#VA9gJKkqgj44|k&M4dgd+``W!qS9Tbg5-Rm*iDRIi^P+O0o=NOD50 zNRxw@=9gM2+eye#{pf6|Y{lmwEo-*C@@wxFQ*||S%T0Y#uqW(U!tMiRd_E8u?}$>% zMThj326MsAG#OjQ8E?hU-=E70s#KkMhQEa#3g0#vS9MKujU_f8J9wP8c4=cYe?a48 zf*wMG9zpdm}@qwp5fMO8cEptap#3$h;$F{ zn6+2~Dp9WA zmfPJ3vH1NB9bn_~W@HM*qce;vviCqzjzE1*-z*L_De42??7+&d{kLZ4P3E6eNLU+w zcaw!_oGz1ZeNtt03E|O)<&q-jZOQ=)J?GwoOx25{qzHin`Y>$sPU z&p{pni)o`Lx3?7+Gd7rI+vL#jxt#Gy#vw+t)uJBfDzfCTfp#w4dOL*<%30aMswQ|q zoZJwO)ULZrUT1)0$msfEwwq`JO2i*;v-fq`!Ba#(X+)56^He@zU4nlpCDr3K3CbL*^v^ zn}bTo6M=`Q{$EIGBkWGtTsxh{6JI+Yz_2*2zVJgc%{C7XcR9HrSl$HP-oD&lug)r_ z2BuV#zWtK2rdJ<;>;4Q2wVFgibr^nE!z$;|UG_=i=ND*tLMlh6NJ-N-qy!Q_U)7@I zEknsXJ13lv%=0uslbRp`A9-)zjhZ7`v4*ooz#x|svT1Gfp;!ADJ59FOMw;+meBw~s zeLVhT%7xD?9hs`wDDyv2^uMlC{1BMku_aFZA9%~o(h`{J0)~`q|Ff_E;h*E18A|o& zgQ(SD>hgzf_{FC;k*U8zS|Ia|Du#bu(%*=FX8A4kE?~VN5X(Xd@o|=Xkay$|k5*y+ z7p11Yyr6uVV2^#msfY7s;@Sozj6>kw$DB4fwV)dA9o>m{J+ZNN)qb{ZCU~yWBaR3( z!j_P92*FX%);877$?QPu2-+uN@DFo2R*X<7!ZDDjnm@(@5uSA6cL(0Ny zoGck0{v@dz$MwdPV?@QS*PAt1US=$@ThiyKOY{l<<#sTzZQ!~9s8D9)++Um9ntRoE3zLdz}simqK4p< z!(iI7e0l%Lb-hgOOh4_~@YO%Z?m&eiCx&RzVZ%=+|fT{X=Hz!psbx}UYLJ(^O&d;rp( z{^2{6U0?bbDVm-(vj$~On^&#M-b?fWu-OH&AkW9=mlg!ta!YRVCaPe~jGg-9hEdyQ>4nHHd&km(2!_w4Nr9a!9w=pnDzp>MzMssCg zRsfvTiee+q&NX87oLSRqDWfY7@nzBAPAWgE;5Tcp(Y2{rLIqO~d)&3bLgNg>N5KN_ zkK9~5BXi6QQNP6_k#Ua!_lcTWo47nZP3nX;4MerY3b=iK1WjgjYad1jc%2k;y zffR0+A`C(%X{DU#!D;({vh7a?@{kyRzhEHT)UGY5y>tvC#{*@lz!)zIl0`a|2%G}2 ztRNw1gi5M15l=Us<*SOLJ;Y$$GfvW1ZY z4CRmr8qg20jyFaCCb z7~ynt3K->QU;jDA(bdylQ&Ns|i28O9R-ZB$P0jkC>qwAAN2XGK3vW3x5kvI;>zBT` z?M{H|W`?6-)=kNqU+gNEA(B8`CZ4aej{kLZwS|5}mB{AXX%RLq%9dX$Q9t@!z#J{y z*C0!Hn8xWcZ2P-nTGXpG{@QjQK+Xudm{gw(k--or0!tvk_+|L%?}Yk+2o}qNjBct znoFq;P^iRo$4Ofg2YOF+u|iE!=1GiZ46HQhugcKuS2A6)LD)>oA=SX!o#NeUsvWn< z*)OOtAJC*ogLi`Bo~OQExt~u`<$ELreNRy0-zviQIf2*~l+Hk<^RLC9i-|OE(3WWG zZUMZ;v@A9w6jAJ(pV(B!73nnWY%E9Jhh)L@-0ED{IxUBvQko`^$k&s9WBo|RbeM{* zsFSn$O|yCO)qA_+J?!7=oP6P0Myl{1U^+GaG3s`e_i~S&f~*h@y=iP zfJe>+ED*)MVQJ|Y%}DBn|C+Aq6korLeXvzBw@i@IMgJrf^(fWp^?cG*V-MceT4H4M=1xr#hsl^Jzq;)`+?efHV{`1K{#5wz?~v z#bth#BQ`tpk|nj@7m@7m2q-OnD9{E`g-T)qLmikVts6uDWgs$F={*E#?&vfWybKam z@n|>`=NL&?OT8sXl@#lDB}N1o6s6Y_%hvAZjzJwJs>zbEJpy zJN(?6CkGRj`_;2g2G3d&AD_w;X4*GH{P1ea_?Q{R0h4&%^rF*^xbz&DAblhtmcxs# zXmCybHU={RqbB$gyfrR&(r^z4t?O-t|2 z#Dj_JsWqxSy8z{*WR@M2d$gae()Y?QuW|)DplM?3j$lvB$6Q&(Q7@y;38z^x;yqYAm`KRbegygFR`Ck_oUKt8Wr zK|qr{>gjglYxf&33la>O5Rhm^=bIFc6%P=Nt1=a{(_yh2Oq|72hlY}&C3q{~@f`@I z21_$4^Vy=vuMii=|e&t95@?Ou;DCvx;olZ>nS;3G>lIQB#?=k znD;Gx46^UN#6y;!t+94rnlOr)+bUUS_;_guvwT*Lnh};zH(rM!d7`5l3Qx3BPS2Sc zsq*@h=<3g$_jFTs0HBSzSh*j@(%bKrGIZPfbqAZ=w68_DFc~mewq391k;C6kw)xB& zo5;2wb*84esd26exoBZF;?}3tlzQM#PQ-J%<00U^*Y$uP=Y9mJ6XEin z_ia9j0qSl{$R6FKaTUpDmM0RSqsB>>pHkb;2#hRw(dfI{kLpX1i<5(>>;8;MJoG=# zo%!on-0?@P8==<`y_Httq~F8(y~R$vwRHh%S#9o5wms z1lxN#Mj0Ea%(71+-?nqsom=rrmk}B8@bh*dJ?^2ZBT&Q9>Xk%6B_|rr1j&)BJi(ep zI3>x0EZ&Z`At0zEesxt`4BCD#*DQiE|H8oGzttXgyK;I0m*1Ec`uYTj?qdwz(Q}>_pAqXqivcTBn(<*^yN$G> z1phWp07m;XQWrmO67}O#Srq{Md`c)WAV@tUjJ~A_0D*$a)7%H*VOeO~KMg}fM@<$< zs{sTC#zA^mqFDuUKv~C7ZN?~drkEWu9&}d-t|sQBPs*mW-+fg8|0Sg|n?GUIZwAbbI|z&6n#Owk&ffyx_SaRsv}9h3+Ym zv7xuVR@Vb33=;bjGpEaWvz+s7TbkTp*okE}XJ;NKYF65ww{NXT#iJWgOz)qdKJWY*BmvE2veitkC#n9!OU*RY;71J}$)EkzBEj_0Zq*(2 zT|F%;tR^dTCgdpA$B|je@``s`1AF&U*FoXwm*bhao}KyrECbEUj~@)84{?~1Q9nu1 z`^PRU4awN*Ia`&x>y@9|SXN--)s)o9>PTi(TH~fIn60p)Eg9`=CVIn$8d_%gtIqQ< z&NFZnyLl;vf-!L@O;xAJtqlem-tW@O>d)YyBJ7c{(Zv_Kl<#(T%lx#XS#PeV>|*-Q zZWmUKefT(Bz~9#hL`Q=V0M#Tv@XB!6|7^bEV=(|7deW*#m2ss* za0eTFXz*8ParIgLy;KS|1;niA;TEtP>#gQDPT?xFFi4UB@8k785=6S{+m=VSMsc;1 zL(j&>BP#X|?`%)$d3YXlpV!TP{^I7qsj%7!r9&u2w3toBf!2iNPF45es?`6ZX@%)F zqSh_tVu7;hjd*wAYBFX6Dq*5cxJKW?KQa3En3`wjqz>-clbf<_4vCxvU_@i%Y5&g7 z@HQY4Y~(EdUZIh`wV7TMAM63%P}uE%8+EN1bFFA}eJnkg}B&I&8qiVd;>(#TvLq$v+Af7d>)X2_*jQ3 zh{zdJFztP`?v>g)W+Z9Ct;drkkX*As3z+~muJP&O<3DLltNY-D?T%5-#81RN9% z=w|iknKD!U9Wtt_8w^xuY|sN9)Ukbo`dVNaIyBNoih9q~c+ou~v#P+zaHaJx-UXXU`?SIE|-63)s79AZ)gI!wiWg+S9wmmQ~rw0`(W>axsIL7I3l~FJ8B<% zp|unr{^nHmRpCRR4ZG9Y6`mTfaMr#`;5sW_30?#+aVOGcRTQ@Lj_NifsvXsHSvUAl zSV+?_=lME+=Y3#rihIWA6nUR!LW|umz~9s8uifmDh>;RGIN(d}0R0w>mNW>K^kg@SPhHQ;!uo)Ct6QoHy3 zSB5T1CIAhRNAa3P?Mh;nP37(Q&*l&xa=i7S%P3KC`L$wv-a3 z4;~-k2+#cng=>2JnMEtIps)H4;E6Y2>zMw2W>_Y*-MpRrvL11rW266qVEJq&2jQPG zaXYkAa_2{@ml96g2iR$Hx2)d#3hwu9u(Wv^a?j5Sz${IW(uzD=>lcmn^OvV?`tiYy z@zrwy1gPgjeuxL{l@zaU$FT6shU1@Jy^qnSZB$gIAd6L&)1QMa^0;>=b6dOY6tQ-Y zrMDwr6{qiLixvz(#CM7K5(d{|Jk!E#8!XE2xRI3(=>vAg5L-z~V((06A=n2oQjI3QuQ0B;^&jYZUd*BHKzR+~ogf6H#A<^>I z^b~m}K$ylf??YiX;L!LvOfSvqZa^qMVGb-9TlMEW0y@~L>yGIEko1d;aNJQO#cSPCcS1#cp1Xj93ROUe`k zhh))5Qw!44SuJavp{@KsqR#p+%Bb7oGsDnBcQ;6PH`3i5LzhUYfYi|4T>^r1BPBI7 z(jWrT-6qrDG_CeeIn4*aS{H9ozbB$RWZUSt zJk^M_oh5C|DDoi|Q}h)H3U;C4>84m*zOlV`S9hX1w5Z=J%Qf87jYoTHp-ap&zbF5O zD>RBY+4p58uZ#EmtVl8}&e)6WyuJE)e5tFeVyWpI$!$Nsu*YCPz~PVl2kH2M9TBw5 zilG#e{a@=u4j44y|6($Z?-l7#T}k<6Jbz`S9VhBBAHkvY-uByHkYh6oto-R=SAboU zBI?aAsLMN4 z{?ZAU8X0j?m}NSUR9)C6q(^mMr`LF=H%_qC)YCG^&T-6au%THu_zeWu^xH;^E8Smq ztGNA;oyLu$CMZPNFwgv-hm~sG917gyX@x;Jq37Eb!2F}2&qFc($Dkx#b=EOp(cgzm zdSTZUm2(B%T^sYz{x>{DR$^3w463(4Ag?u7H;hdnOvy&^$88h_Dd%PAo%%?C2brUfmWTr8nWGc9 zC26q-9o&&xy9N_M)xuHuwAMWIt?|FNT;l{xyoovWukA6dG!#KXWeL3vF|RRStJrJ> zW3s(J$1LkHg|dZo^+7Tn{7#>+5(${S?O+D0U$Iap7B}nV0p`!ei?LPI%V@)vvPgAB zc1UquXCUm$Ip$W`engu;D3o8-+}^CE4_ac|T^V*hp&^0ZU?U*&M!d&ak2A!58VE|s zgd!BgjDYBq{!P%VTfCLZbMtCD<8X*|6US-YPK}p>C&~NOXhZci>*y@mZWd&tieNwD zNlJzKSUrP@={n}OAgH-Y$@7(V#RkP%Z+c;|8=IH}w%z1(ZuZ8Av?%m?1{YUy4fiYrFaGOm^z0QG`YY@Osflrq6}Yyt=jIsd002al_O{H64FOhQOs z5nZ;8`a=3k`V@|x>7Qm(&!wA?t_tYau!vCh9p8oazh*0ll&7D?5TcKMp?Pe?0?I}p ztHp~S4y{>er;J>t5w(P0Zv#x1uQ+lsBMrBNNYzw$Xy4vrJ&2gh9?s6wLAkd(N9iP zZq5d;SsX$HkJPA4DMwawhHU)R?RwvU(oQ|~`+^lNa$d+sBzE$o%#nX>m54jUeI^vweW%9B(;@EPy{s(q|gr-@*{>Q%JDvLDKc`Cq~yF64dyRjI-O zi9wOqg8ZMU9XtmN>u~&i@iq*g5CiDc>Tm%Jd$@<$w9(($@xI_UDulCLg?!?xrcq^y z`Is+Y1E(pWMUHLjBSg07YHvso2-oQOQCtPq59}SmA$8rrsKbN|fkgPwNW)UkcLM(* z`(2g7?&TJZsE?QG+tI0oo*#3bPic0#k^S_eXJ55`BP1XELj~ni6j3KYE@a=}+J8d4 zXnmYSl^&`)nSq@Csl8?Hp|8sxyjNM&MI%uvMMO1uy>7~BUhWmdejCi;nQIznW46?Y zQvMfV8!l!?zap@!r$>|^s{;6=cIukmfMeAE5&Nc+p=!2OBt*6CjZ24O6G_fpj~V6~ z2Ub(VotAb|3y6;wHi)LfIGSE4&5qy=r)s#J%U~cTEx8cJ?{v181~SE4|nV z@ZDQdDO^JA38`H}{n~DPEx;q2FWUy?%-Wk7A4{E)mvI#EF&*~b3?3!CP(;gA?givF zLT6WKHIF++ov}h9==;RiVGJxrLYm>_#BWMXs=aQq4w0JD{bi^uB$O*&yrS)J!w#SK z)0j|)BBY+Ctg>(HX=TeVPKuKNYOiW&TGlQwf{#N4sm9gAb&M!840`GB9t=(VfHV&fv z{*@0Tge2fMl?lo1ab-GE0pFQkKU{(;u%g~zhaWpp&@=8=O~RLiV9P<{YU)D-dN^}PSbbOPj1 zjp@^MjSafpWJ*61Z9kQ)2Lzu{k}o%PJ`eQ7FDhkQWDP*l;Vq;1nnodwwz>l8v%;0? zH}gilRn6XQ`^wNPngR`}lxmfm)~ms$L!l}*rt+9r-G3>bo8RZ@9g7Hw7a@~u4csO< zR~9$+oz;CdsQH{|cwIDjSBU?21OnbaVw)qX%i_lVYf581xrjZ6w%|LgzBhnty1LyF*CefWEc%# zi6d&`JnCJqYgR;kz4VI(61-=3I<*e()QI>10mX~1W1alVP>YtEVXbT^kW*UzYnJ;P zGXk%7w33n;l{h2QeJZlQ`NY=p$_Zx#%B_RS%ci|0nrqj5H~bUyCc*@Nk^|7Fj8>zZ zl9LiFr|8qWX7r}66MO@(FRy(utU{YwciT2?50FHTddN6FK2}-^hDJ% z$oA*#VDLjc^^<^M$`B8MQUxq9Wu$k>(lY;666nw|h7}{Q?#AN{+$ruKn8v~abVLpO z)GBtg`DThZSQj=`*Q@j6yTL4a!LE-nA>D_u& zs;{o=Zi2~?r}AJ?6~F+jT(Dr+4dOj4_T!We6QW6y{2ii?b8HKak3D{u6Z&rtw!*V& z23^lN4OprTV%Kzg@*nH@wdczUq~61!u058MoASVA1eRVvnvi9v)(PtFeoeBd;^Q9^ zE9y(Njy-!~pTS`ps{rVS=Y&%&x?!GtbhzRVi3c9~n8UH`Cbssx**&_rt04i@);wt` z1b9EnsMPlB;(NR?av5&MWTsWY#f<_;qY}NOA%r;J-*0?)kB22uZvQnHmKC%WsiNGX zS1Z8-u3#faDL)Hh6CEh-X|)>hTS21R@vkHcl(>8#?keln*O zCiy=8bB-BPq6aCslYQgb*nCl&yu-e z$3iImew=v2RR2wjJpx^SUzjqbV?{r-Xyu+0$N8Y2V*y?Ty;{Z_H}YBbCvK>Y;5Qn{L}8c8UWE0UXYE2OZt1yv*-);1(*KNUYg zPg^1i7I0$PK={+nS$b?ok|_w&ODwE_kPazwZyfYn{ZYts#>=I%EG8+qk=lXzV5qVH z5gt*hjG-1`eQ^krz+`cHYa~u_Ypw`!?2sfT*}X!v zv&Y?fc?H?c0O+QZ?1uDmd`o9E`r`4idk6+X5}1=uzDpw)7RY#b zea6N0@6xCCHdpqq2T~5~i1=xRddk*K@TW6@e8Fe^__T4x1MiX`l96m5E54M0{k9F% zOko*Sq`FwWe5mlohf_^aXgy&`96u7#<=dx=+JGqKTQ=q;&M5SPhvRbMB;sc9Uq~}^ zf6+fs5B8D$nEsp4A|wa4bKBBs_S}Jgf5m%kemrTaxTT|4=JUje-JMNz4+ffa%0dTS zF$06++&1$@PaXwCK81u>W1qXgdwye{YplAKp?_s8&98m1s-(U~u{6%nZqx*G=v!`2 zm#Ecw)Lg6zH!MXR3U6bwo#pT;tyJa;mIYR}AQ>D*mf&hgaiXe!{Yveat{1ONt=g?tQ^8V|iE4!_Rz(5yK$0JH~4NM zG3(XqsP<4^oGE3IbcgGQ*n|?o5f2H?zWwmQZ`a0w8e~r$Mat0EtO9VEI%eI|uOh7f zh0n0Q|1OOn{-7)QVck^}V3YXF!)vwHeQhG<@*|lvD=RQ7I6rMrIEhn+Bq$w?tF^GX zq^CaE3zpF$_Q9Gay@5Vi6NK5|-bG{iUDi&CLeDXKwh)r>nOU8At^Yujvg7)eMWHc^>A$xGzz!+A@Z4;w!z@uvXi&DO zW#wxfy&(nqft?&~7nWm%WJE`iE;&_99JJK5G>o#l2Q z9P`3bGEXM};8q?ed*bKwN3>w})fDiZS+1PXjYDK=Pk*ba0=e42-f*(Fj4;B&NC7%- zl`J+h7gIQsJeE8e9RziMm%XPlbWFJ56TAuulXM*l;#1!pjA3x=(&Y*cibvt#`hha0 z8!*glX@~g1t-sY+?t@GJcL8q^F9*ofEFn1_TR+|heWiPTJqz^vZwD8g zNU~Pb1Yc4gP!%&9zqIdh?up253nV!!i9M>7FmOR>Rf^Z#)F0p zWTEii)T%}Vj|H(5OC>W|nrc}A=^%ZK;RmxJU%CI%QXpg~9oRq6fTDFhb(WQ}z~k=( z1$m3@>S=)CICY$WecU=5YT-XGzZWtP!hXECEdL)1@I&-AOPr)mqB@9)kQX2U6u12d z;{xtbe)Z|!O0W*+?jN?`j+07*JP@`Hk2uFAygqI6P|wQW(N5^xsV2;ykhGYHe$FB^LU&T(6nUfnFCF&!@*^ z#BU9qiNk(h3g^H6`vN;Ju|S|zB*-cf<|zWCM&pQV@?5%$83NxbSEz&>>aj{x9+@9@ zr4pwJX8xKwH@#J=mMeBYiRCJ|J;AWOG5l#Ue_l~Q^8r=+EfB7Xt~+titOVc0Mr`FN zqTiI@St$F4tkURe(EHcT&(-3Ak{vP@*sNIeaPv4=wTV+Up0Zb$VL{YAC>Br^6f(*| zAm7q5LxGZ{+~;5cNt8b`>!@torcC?3XF9npGU}8vQL$&O$aCAcy3G4JbIK*>KOZCM z9r^`pM>Ed%Pdne-VxPNF1jQoLYWq?3z#q2Haq3r4+E`tzZHr{GL z_^d0*>1q;CNW*>;IU_Xvj4f(=P?4y^K)K7~BFwBb?+@Rr7m^B2n)I<%t-ZjqS+urY zD&JTl*t?3HfaEKeQ@@RHJRg_*S?MqDpi4-x9oIDy*Lk5K%#~%6lJseGNWkSj{+cEZ zjg341RLJs=azr*t<}A`tqFa6PW!VLiJ*&GO(Lu~-%5oz8j-nT;IHJcNLOI?^4|a|` zK<~~-p)WY`C4>{&N{eKVUPfw&&)9MZ-14eFhzy;2NJ7~BIv)0t7~44JQ0Jogx)ZFz z1HKiky`rUhN&}(h+IWprxN8U~W7ZjJqn^__vukeBM>B#!j44ksV3ny zB;kpQ5X9~)Aa{-(Rw!E$YFTK$YTy+~l4%H?b3o(5T3_$@hequfoTyYcGUCLxQ80~O zHAPxY9Q!d57WaM9>V$?m%gj|K`sUAu_#B!xqc}DNI{$YA1X)T3U)f%rj=?P9plVp9 zJz<2pdAHg2$@JCvTWw! zLy9aVU|fst{xW?laRuLywaH0K^Zc3stA(&wnaawaFeEJz_x3!XDZD&$8s4DV|3dJ4 zCJGF?yifARV8!E#utCK3OGmXY&Ox0UzCNaNGejT!aoWmtDe(p9jNXCNC+Zk5#*(E# zR89Vk9Ps)b3YnR2ZUscWcwAsWaORwfjVd`g}vSDerwcGdSxPi(~<$b>#{6+7KbhRh>TUt7Lpr0Q&udPZ0*L_VuJ zJyXj>C)qB;EST3rBS7RflDjZQ*wh8Z+1Tl`J0IB9>;e#b_{-Y>=^Hl^BT;*irW7SG zs71+RP2p`WpWpjA!vYE?UuTrnqfF0WK_mk+w&N4;1nizcspBK8NrMX2^tGhMp$7_-#?MVa%g6F0&IfHKia>$wj%f@* zvX7;8mSC3ThUZ9_UIu-&)@}VKI%MWFF8lC5>aJ-N&~@ShKQHP6eDB-zm+&Qj2(q3K z5m()>)QSFB^*`2483Vp2vNfCRh3-f$s&%qLWkE3?-%u-p=C1Y1@BRRwWuxsz)U9XwtBm7>})ZUm39qSFqF4EAQLj0wGGGsNN40QFZt zL~a?A>vc}p4=Mw*1(5z^eUp{HdP zybVX|X~W*3Ml?m*Xufc+OQdi)ke*L3%WxYJsv>uxwA5$D*!tq*&PbYnv$prupbzGI zp2YWgWc=tdx<+LUFWQ*?k)T~_6*U5g)$mbbgGC(3z{jd^+Dm`T?l6c137_SWP#}C- z6(bT)Cb^EVA6)d#IJ7ub7O930k$4KL4ANtmo==zQj9}~yBhXDJNe~D81_+QA@CM8D z0QS%xn!brruVU4`LFKk_Q?!SAf#jt;tuAKK!xtC};s7j&FTuLo(iY7#eO75FN=~@L zfA-=9Zh1mrVF-LYL%xFhX4t;- zZ~ZDlb?UX=!bx?;LTkB zR8bkT`a6g*HDd2{uKOnJ<(_>jO5<)nbmNWXH1`}k9SK6E=ZDhg0Lj1$#47%~-@nmi z>E@+WAz0U)o}{!v<0zRz*^MnJwQFA8wh&Bx)`FL}5v~E+Ct~f56?BiM)$PTU<>jVR zxcGK%^_ZF7uR~l|V`yJVuL%7sNw6HDdtg4%*?BaX6!*TKTdKKxIKZ8UbM6ZtTLgFc zJIgOk(ubLjF5DM{{;Cd-C}*+ss+?UN87-S}V?Eqk?{)XOT7I8Z*tB6^*=U2m_@b_ol8=+? zo5@fOeBP=1g!o$i_#O);H%aDh4*mh**a}CYly3uD_yPk8a=0@C9>_*Z1CRN7MZ;d_X6eG04|*fw0wPDD&MS1j{hY)zq*e@ z{pfXH@#c*l$?$PNwjfdn_w}JT~AM9Z95fwRZpt6!Wv?!AS{ua&kMug>E zXFnZPQ45}0ds3-cBrf4E7Ot$xFb5lHW0NFP0up?LS|agy#u{Qf!ByJ9s}Ng2d=@*| z#+x}Sa}&1qVx@!LW6ufNC>flHiFLX8z98;v`sDs-sVYz7)Pi6Rls=|!p(8q$2u7lS z0OWX0?xGnRUF3own9nqz8Huo35!0v~%S<4Dl8q*^bYU4Jpp3@l1^iXs7t2-5u+gQc@Ozig@Vsp|r#(k;Y=e z97^}RY~ym5=GKKe2iwG%rS!h!`RycWFS;c>Nx)!RC-+qJtDnfg$H5Op#z~g6uVevB z!Cxer$lCLJ7MK-Flcn8{Zqq9kTOt@^gbH!+aLcV2TAO~8tVo27okZHhPp7J?d8s@B zdex4w-#Kr)YC~W(8v75SjxHN{%;R3P%UM8&YKnzGUp7hsIJ|oI)~iWx@#!W_jtCE8 z8_rI&Yo@4_Ad1!WMWE=cp}oyf3XR-Ol)P~Oi`(wphR^1MINfc*AbO;4Jp_uRzSjlD zXSeE?wpQuWJ2V=M>g>&U?OyvmUpIq^i|E&@QLjQ4UO}y;(7d6O|KWvO4&L}p0jY^W zQkxWbuv)(apYA{0ew*`BGkglymnyPltT8nS`*_YHHTdMqa!COPU50OGEbUnwi>1H4 z+XDY`zxe6PGdy^USTr*{=FBqlmVLNEjGCti1H^$15ECV&N)RPfs{Gx6uQ2y>Hl@9K zVkMBJVXg}gwT?!HYDWHou8QlT&=N4p@hWp4@DnC7JW5sW<3{e<=1#1Pf{S%bm=RTK z{maf|__#n4;^;CR7D_}U{^L~wDI#R;)`m8K^24KqSTZFo41mMs^V{;Hu|HQvYps)^ zN?0eUUI10HsmcUt)dNa?|ELp%9I16R+k0Hzk~Exze)3fv`jkzRw9~e~F(SxUIOp-H zh0HL`(wJIfyjG?(;9J1mpo!tz*G?TV;(HQ6M6sNZrOzgp4?_(6%tMTdcG{=?eUtH& zF&$Jk(qo0K9Z*Z!`H|@2ps;U8hO#l8i$7G4NYf~PmL;KP4s`*h>SXV;$&A~vYwzf#iOtn08j|LIn3hM1 zTQskkQ{0~0Fv1-&JOXVZ6#5I-sikf}YA3&yTCp`V2Z>o)Q6ps^x`@_(=)kqCk8Is1 z=7)W>(X9qd7yvWXQ6f$d)t~R@_u~`J$L;es|E^=(pnL(JTVs>|6eGjkD7W<TV=wq46Wmj$Zt=TMHk;{zXsIR|QjN9F-WE+ko z2Fq9rK=-@))gq!_PnHaes4Kv-QTu<9TKhtD`F;c?Ao(;M@budzs$uLPr+h{rb@3}%X%g6gEmMMvVi^i>U%GRi{FD+G6! zub%O27y8ylmW$>V4!TFRuVa!6EFQq&A{=+ag8&M5gStgKh`AZ!sV4gzds|J{(y22x zoLhXrowdx0#vk5ye)WYsV_~wELHkaRayRpa>lZ2X1okoUUPu@8CK-g}4 zx5MP%E{W&LHx#nU^h?NkGn1H1&4v@axeWyaB%k|0m$eho+g|r$eHENbhmK*_QAF7B zJH*DeylT1NpR@9RqOnCgKZ0ti5*K7R4;p=N)C7>lnHyDad5!p^BkqRe(r<@nERVtm zb}mW1R|~i#Vkw8V+6W}!Q6;h9PJl96m^OYP+YeGW5KuX67|aC}g#U;LHg`ZbWjk%p z={}-C{#f`NYEJ>+943EzJrO;8%>t}JEtr?O=3S`in|A$74bn&xC&m=Vh3#mC5yL92 z6HuV{#khOY0}8BkoH-%wu}Cx9V0XJ7ZQIqvw|{=Y!SABv?5c3B31ih8^kQQ>J<)=F z*Z)KfB{7UU2Kcf)YJt_Dio}F6Q$BgyZy9{N_Bt=->xZ`N3kF}=bVXarFE60Fq zQ_O3Q*i<6w)Jh(eN8<=-xs_*r8VXnT#5+EqQ0dbkJzN`@EN@_sc|*#3g@IFXjb8P1 zKpDsMnKhxUJr>!MKu!+L8>74nqBC2eJ|qj z&sB`IRI9*9l@>$b5CmD0}c)j{RQj3-Ar*12@-S0ra z-|uadNPi2fTohUw|Nlkt`4U-&o8aF%NJ>5>(6NR0;rHj-(pB&?5N>dNylB0qzPq#F zFDeeN4Y)PwXG_t8VbKq`+=S@}=4#JkmwiyXq`SqVP3{t?tWE8ZE^y3$;c4+Ny zNfCZ-f(7O*kyO_N#oF5;!p@O91~q0-1G3d)bZJ6h?aiiaVc4sNTr25+o6iWXTCc(7 z6mf8)5D8g&dPK)u(0f<5xUnf;GM3T z2PI%AAhW7lzEr8LVWFTQQPhE)I2q3J#dj)Hq=@2!rIuP}k1d(|Zx80&6LFi{cGz7R zN)$~K)s+8L_|#yiKqM!0=4i_3LcF3=nhLk7zL)-c$#4p*g7@k(nYl(_y>NgR@o3yj zAhNX*ScqwN$NF5u#u8Jy1bs4dHDA^Swn=Wii~g!;BE}%9f%CrL|qWLDNPCgg*E{a znsfFvry*YV_)2ZZ3ed^Wfetm-@*QK6+>g;5oJO4#cT`hWj-c&-m;q=oA$X6Ba0sZN zc-zpx%;}}eP(UTN%34zK=#((&h@N!LIID;?5ukU@5I+(@i}{j?&zddv)h|G%en_|= zS(fb#v}7L#5WxN=oY5B*V!iu=5=H9cDgu)CUty#?euR}MPESI~YM2g|AzZv1z@TF1 zTUqucSR9?KG7f}xgS!8@KnGit`FXKEmhQ-VUR`3h82CjLDnLd-TKb5EMEWgfRyckk z=8G^1lt6C646hEV8qdb)EX}>7=-sKDsR|ZD1G?e${`mc2b=dnyD}3$gbiP$gsQ+kE zqHpII8xw5R>#2Nal(x>!mG_w#3og>1QJZLoaEso&e_1aV8)?A zur+wssga)D!k?`!P^|ukkoolTn)n;GxVR7|~zrR_w z&(0%RPqzsX$-~ysJWcO^fO zI3iAu(JGi9sd1#hfO-b|d^|yN>G2ZRC16!@ffo>(UxKHr=g$i8&IooiWfMM|=1ckO zNisT}xvKXyQ#!j0QJpCCU_PS9d(E+@?eJ@8sW&i{F^#~75rZc@(Z;kREjbOV-s`O$JkB#H+hB!4f!?C)d1MzI}*ds83i-P zV()#f2c82A9%ara?K}(!e(u-t?=h8Y{+Mk__pjoj4?0TVov90zwpC1s$Eai%(56 z+i@8&B12_ieIFqAE3!D)Rmwy7=Z zkrk}%-BdkI38&TJX`wpD% z`q0Lc=A}Vyx`jIY*Q9LH0}sDngGDB7+4545;|Wo(@y~VWU@j789)sz0@J8y6xWR-_ zzNdh%4f|>48d;3M#p#ul45!b>!)@H=7~7bLb^Ijo+%Lq( zHUxS>w}@Ab#2s9X5Ydf)u1ke>G)S$kFpcN@G?1AGmFn2}f4qD&?QLO5DLX3643C)=K}V(^7$|28_4Ox!mDX4h0ITu|C#KMs%y6<9PSAd#f701ypnzdaLrE z3??otbvWt|KTl(gKl|>xEaR^sp&rfRKjs`>@qT~FLc8RA1PZFBLh@+elQpi09}+DF zrR~gf4R1tfkJ{`$FQiWpCm{^InXecn%C7N(XkDyMK>EOgd>#EW;%&F?sx+x3o$Ezg zQrHi5im>qio(KMS@A3U>@39D1_^t;L1_k3X1MW%yiL7f|YnYR+X4+F2aEp5k;2v_s zokjPP$=GuBDBWOC;AtsBH#UH3p0G zxn#hzO71w;DcB=kk`?eY-8twk*~2YZR&lsWy&fm0y|z{Hs#`+=r2PE;)PZ_@ff7<^ z5+r~fl=%&>#<9A}BV33_qcll%$*A{-itPq`9ha^CFy+(Rh(y%XO6Tq*)gl|TQcBh; zDJV5C7W^hj?ssuRCjO_=(?&vQJZ!XSI28j}TDi9Idz%Q0hw%}nJSReIT?6#>`t#1r z!sO1-*^Xw6EH+?-$FRF%%A(unKDmlzqJwe6wz(;VG zM7Yt1G8*4I@ujQd@O;`btUpW z&OM`^+#;Z+re|cB|MM5h{&~50rv{@A8f>O9#?WXs7A`03SS6u4sjVPp+ULNV)ek?D zw?*(C<9%h9*)u8*zg0|A!+=r{Kr&Zi?uLWV*Esp3g{P#fFK@954W`M4RhKjwv*b%i z;*pD@@SMe+8$R86b?tmW z^wyq2g|HFm26Jbip(QX@?M4q1EF|hc8RMl$4Y}G`hR6pq1b6! z!LP1qC4wq42zr ze5h_`7;b0QlB-wh)eyPqn;&YpeoX56u&T2N|0)O*Z&H~2o6B(oECNU#vqx+E=PG(= zd|pHv4OaQUNJ`gR*V?`?(fh10ih$}=l9M|S&NU~`!h_<$2S@#G4Renb zR_PZGK74s#dB#(S(5F42fWHX+ZlGmJDw0A^(w=i;oV~CwePxcq6fl7bAKFk3BcHJl z)#8|MeLmF3xKrFc^Re-$o~0R|f;RL8Y-H~%l<=^3K*3IoE}qi$0T3B zb&dFS9MIXN;oXSBRubJB%BF6#s)gm-3C{Y9Gyy90jrD-&VK&_LB2j}=KoYoF-0OTu z=k;k|@=Ic}xl3rsufE@^E%nEz0OSteP#^Jdq?;gaFbNTDx!E}KxmFhM$NXpH> z;hsOuzlBHCxJRUY^bKep`R2__?JjY2oe3}BNcJE$dj|mAnk<*s5CGOVU>+pNc>ZDg zJdmMOV{<{rpZCpVfO9+F4R&N$hyL)|T@&EN%F74DDGsOwy$mXaV!ruyFe5W>H`=(R z<9ACHfM@Y?M1|t3AdPxqL;LM~^d0ftU;D1v3s%FX6FL^&P1}N+9luFuAW_%tl11M= z_^BQ2Au&`Bf_vp)omX#AEIaKgMl}`PAIkAc2f<@Dl#swGTy-5^vPdR`i&HVb%om5* z?Z`#{Vey>Q_OiArrZ?NiCZS<~h&z|&>Tc3D%y8frsC}u`yZHxV;;X=GMl_(;7LFtA z=1rdP*$HL0qqsF@Zz89R_7ONh30+6fTbVB)bIYFG8x`M08?zK6UQr`lv-aHv0%; zDg{~Lx=yq+eY}}+?5HCq6Lo!Pmj%i2!bF$y1Dy8U#WDyg4hIOei}&iwor|%dJ_P{y zVY&SY=IaN7NF6hlIUb~kn9CPxI}SqA<#RHAZGOrt(@8JFXQNyS*G1vt^}wop;Fxj|I6P~0V zeQl6frz`tk+x`u+pNLbaP~hybssnuYY%CIegDkR8y%;SkP2JL76#8o?76a!Bx#*&a zOoBEKFyCOJEPDt}R72NhFwBi)M9ZvNDKM`3Kxx9c+5zW)8+Wv8Qcq#!O@RRC zpm+`s3$?>>H#2%2*s~lEq}8D?bGsjNG-G}XXcm`Jo_3BtDg^su*nA<%-!pWM2WVG}|pnrtf+^sO=|E<5glCbV`GYKnUQt;(gpq6&Pre$mo9D zH8r1v7@h=+B;RJ|JSXmSEZ=~L4b+LVtN)RKBO{POZpDRS< zQamxdG^C|@2RM-tckT#)UbR*++?%K8==9f_6sbP%F~%1~-z}!51cf|+mzEn(KVN4c zB4IRDvPKBV&aMW17pC}itqT$G`kn2OeFU~ZL-EIVXjnB1Q4JLr}T&2)Lvt}HYX$Da^eU;PtNY0G($>oZ5!L+9Df_pZSh=}(HZM_2Dt&HHCOOZGR-oN-IJ>)fC)n$e_3y3I1$EWMJV{TW&3yqq8y@p%96@@M z=$VEhPO81iWk=jA)fb!fJhiAUibB~wY1+}UZ8a!M92*~uEF)2)27GJ&V!C=s_Jy_o zGu{2e*(rp&vGY2^)zo`6siql-OvSZZ@izj4Npjvtx~X^k?Ke^X=f-!BPkkI7IVgH1 zEi#$rDYO(`pLJ++Ay@~Nm&LH8VWEGR_aRrK6ox=6AM45xi&s8@?p%JrI8f-kgfC}k zG?KNCb3ab)Je@qCoRRPTL+CG>w7g5rM4cDU;PX*+gB1Lb(K9F@4*S#UPc^zo6B;^< zGqf5NLB&mqOg!a5!tBk>l%%Ze_s!3((#|I@I3tf1Yn0T168JlBlp3l>K8gQb z7I+m3+UEB0tfo%d6uobfyZ9&!jD7%_e%-v~0+O~~BPHRxh z0;PlzZ|!WPY<^p*HN) zq`J%`>z6hN#vb*~uVi{b>rD6)yokCapKboD^?D= z11I~Q8+YCQ&^L?JKeZgqH_lf(-e*y-`$;Gay_u!L%;B(mIWH3+6}U+n(#$wwD{=@% z8sxjl&?Y6zd5aHincF__Gxt~^p<|HQ8sE#<7^Vrj{)|6Y@frd5h+@xaQgqcviQuMM z?-MsA)zI{KfdO-GTmirYmttJ5f1=5rN(DXrkpuXMq!6&dg-lnn{vG_pt2zQACsvn+ z1Z0HAagg9yEQ<_ibX~LiZ6U8Ayp=-3mvEJi^Bu3Iy|_#T8-!q%_&JO1gmNii+31=_ zSDxXouc-v(en7qM$4a2wAUhKE1?=hs?lI4=ef(L@EnCIOvHeiv+)te9$PicsMN*9y zuj!A3MJvvkX^G6x@GMGfIGk$v3O`E>XQH)h7ZVr0iOx+nI?iJ^x)aG+tQ!8j80Yaj zC2X>gL5%@%_2=>)Hr`PeuJ9~@?Y--)^SgQEWz4`3YqheI9KrhX_jGJ)(vnyEyIvN; z1^B(^Gt^K`>?t44FW;mm;>^s_dG?~}D8716(O<~t8mJFx(l4TBhdXrzj>Iays@N(u z@?nvMt%2s-KBS#f+Es#S^`IaY23=X9r4eCgrwEsfbrhj&12lE?qCT7r zl_g1q6=7lfw+SvEk^43&Ii5~5F!24pgh74mBe17t3H)}X-OBvJ7MQSkchlHr638M3 z8O9>rO@RvhQ)9$J3_x_k3bjgn3corBHw~Pa__<2Zmv5L?*FCEz^;gE9yfb^>Cr@>+xx#k+%}<{u z&z!7i$zPJUSN+RLXZ93a?M!>_Xh_;X`N``ac~lE}2+z#}ZAyqx^p?P`2T&C|N%$oy zN-GTJqY%y4VxG`c%$>eR6NkM(A^6$3St~QpbNH5bC8Dh1(D=4`8rfOzI0X2h@bEDl zM~V?;%3;WaDT&Nr1mzt;lb3q0i4)d4klXyI;Yq50CHyhA*ymM_g_UqY2{a*@~tI!onHN%0S9oG-Gp$ zKzH#-uRv_;y>C0x*p{^&Ve9gnPvSZqCrfYt`o?&R)RCs46%$P@TwNQMBema|juBpvt?>hoO$4GIb3uKXr}u64*OKT~X< zQJa-X+>(PyW$H<__Q19A+=|B=Ki3)1_^Bw@tIboop4O_VUhz8h5x@MBY zrc(pJzwrP9J^q4oMAlh;9>stxcd%U4H7@$r?#2C{IlCHLa+Fjm-!)WfBL@V@@IFGE z{*o>&roiw?KC(k%yE|_=CK5FAskS?I>uZiEyR&L9-uqsSZ65qa!1|6%`bTQ%h!I)9 z&f(tIF@ZuTo>@4l>^RkE{=h&X)Qn2bxO(O94_Ym_@IkJLvP-KSIob67z?PUTmM}U& zc`kmScri>pDv7+WaX7f0#!~pQS8VoQCUXIwtLf?D#67qE3fPyCV=Sl4O`;nB-Yp7Wx<+&v>u_Yk8CT|1|d(h2C8W|oJ z)VPsUd(!tj&XWDXC<-fd1&`$&lTVZ~`_q$W8(OBF$(MJu{{_oHG{0bORw0_Hd<<}P z1@9e>AAb*Y@f$1_9t1{(Bm^rYR4HLu18=RA6?Oz*9wnh;k$_v3q;w1#Sg;@gpqvI4 z7*=843K9DfOJ4wi7S^y+kfkrcL1>W0Tv7SJ;{kCRnQluzdh#7Bi^|jfC>%p1mgkl# zTWAeE0hRgzx_?)&=gc7R@sV+TCX1lPMm_vrLHzjP&@|kp}zJQz|V_0^e!;(f!UYk`kLQXdAT0*{3*LV zFaB7fvdMv40LhPlaG1PTD6W-x@pY!>xi-(h`+)ln_Nj^GP7K&Ln+yVep9dM6js+w) zU{2Gqajw_jEt236WB1uTy#R2c;PY+$J-c29-G{DV@SG~!FDjVW>F3oDiFukoL!L|Yav^f z&tT2)MeQ{;R*uWFe6CYf#wB!fT*Jlq(muXdg$I7R&9rgw z&mVq(#K3tQGfQ&Qr`!u;9mA;pi7!{X@ZREL4-aHu-U#s557OXlJdN`_Gl*&Q1k`lt zrl#yYY2%wT5RGW!JNN=y8p5UE$I)DbBxC9`z0Mt0^acRD*=_*9o9zX*)fexL zRHN5!IUZ^O0ACgeoBR?@z_HD(Tlm%Qe+yvd85lXXh~X znR(LLUz{@No_7*wRm@n08Z<~CCh447@WJ}z&$B6I`ibiFPx-dNSy>(Qy{izVJxnsPg<9k#ugBew$y zC`iU`OK{FBFr|x&1g!WG0N|^`{|oPhHr3AWq3=4J-~Ki>>x*lFNh!S=FRvH^?reUH z<>T*yYKP;+I?J7$deOwhI9m~yjN^IC*TJ}dMS7wcj`RM4@5KstH7rm2 zEQoRu_Op*?V3KY+J76_;0@!LQV@ix6F`C*5na7S-{T~4d4XM;O(Dr-Ti#H7I&hQol z)T|t#o!!IQ-^RHUmf))Z1+Oz61Yq8MjOF?vP9Fb%a1CJy5z9)Rd92La)tqqBK$uyT z%6-AYRyuJ4TsQ`f-3VHl_a3GcY6So+1mr43*bMurx+bBF#j~)303hB0Gp~|J4J247 zlWY+r=p&o7>1wwo@!Ok|_@X6-R z)B)AEAs575T#^tUx;`-h_0``WR{eAh`3yc$B& z+Zb4{(%>_edu*ok-$+=nSg$nZ&#I}<14|H5tr%y|qY}Gh0lr8g@Cgfmca$Eh9SCr$ zudU)^W!;U*t)?1?#oRF+oy22cm9gQR6Pc}rXfOj^pG4i@WS%))REUXjz6&`lqz%Y{ z8&*R|axXO0?CJO8G-zVc2$1Ns0m%@;Xj0Ip_Abj++g_Rm@(6TD`h!HH@8Crn)lGqr z9A%4?s;&@*;Sxv}hT)~bKLe=#zHGCzAA>dV*XjojYB6g{1u!ZnHN;|*usuP z+FUsTJIYd0OEI=Rv|^G-Sccva{Q3hNd&2R<|1)0(7w!(284p+AK;QRhpCTW=4s&cd zJOBfjcMrf|EQg1n^+&>*qtTb>Uw!+%&-`=hzy0s;!NH-fDa(TgJ>QjcSTqim7f+_+ zd4*2Xs>P;^^Y^?AGw zn{&}Wz@ob^^5@7{^!Kso?@RuJm*AXPO`5XJm{r33IGz!XD$OStf(8SqtaJz?wX)*E zKQ0|upz;XXRL^n$HIuc$4*R4r3w(fnW~~XTRUEzBD5)d6p@um*1X)KrCjkw67F2;0 zbgHI+73~9v`Lz$_d-s9f)M{eJcYyjHFn>dUrTX5}0j1~N`uoBVivTV@1X}%`yns3e zHn}7Klm$LG2z$#e!TCmrISu}JRXnSwE&43Xg@j$UEkG+z;`x`)9VQn9 z4gh77`EY+`7{B$(7W4q{Z;JOZ5b&;|V*S&BL1RrWF#^Ed1Ozn6E#C*|f$qkA01qbD z)ijp4biGRxfKy?xnS!?$8o<*Vh^qJNym;%1#w6cb0l?b;-o)q&co48HCsPI17rIXh zKnMd;*`!hZEgA)%=N1r>CpfGeVNpr4tTj#>Vnk=wAp0TV>A)Oqd$@{^Mar7a^6#DC z378qj=}d#jC^PDE5XSWC&^I*3oqc6yZ4zBYN$0UPEr9K$%}pqfw`@EfZw7pP9sw47 z{=5x1n)z{f$&@prok@BQ54p1DA(AjFD#}l%O*c*A0Z^hvhmpU5lL-I?3xKh zfC?3gqWB6}kW|$EPHX344*Q9DDmDAT=>YGX%&mqcw)vAQBTIH11*x~sB zz_&lTECJq20zP!3y)MglA{>3`b2mXCH`@&Wc(Yx9o838neF8uZ)Qw!ofDf5?SqR9z z?GhiY+ABf3!=T^(577bHa0!N$KTfrz4W=Q2Q^GI5^}AS{J;58l{56(m=Q%KfU*ynv zv;u;%-mFpNorE8pUR>ZKx(?{~jANxs5NUqRRbu9oLI9_PbKl{7(c#_x7@zNjiFoci zQCX!=9u%~Kj)-s^ALoQW=hTmpk>#LUm5WL@HRaS_E40iTaFZfp0%o;TyxW0u_w~93 zBuy3rvG5PfGF5&3XePddM35qR=CG(e`j|jWnAZ-wUb?NuCYWnlE-48oOC_)$gyPgg zD5}q%6=*4q`*0M6DR_MGXR^O7&@Jwv>soB8J6O9rXy80N`?XfO&UceSsK@ z;Q{8|10gplD-jF~NfPA}14BrdRkBccEhgxkcnHjDSvaj!((N5^wh5Tk4vqRb9?iV^ zH~|!;knTdn$)Zw!D`N;k3v@eQ3Rvs1HYU!#iL3ZX?uUy%lLo{9>}Gc{^c^0ozJa~~ z1rM<~7sCUrh6iAl@0Y`aoOaH-h^;*#galUbFQufCH376e7)S{-4=fzxsDZ5NkClT{ zDS*HVGC2j(Dg_}93iMupNoG>nRN!`oh19ybx0`3F{$`B=9+~l%VSMZx^cg&0v7>~` z9&7uH`2AzC_jlM!@5s!sNBYMB-hf8~0l%v6`!rC{Kq347V`V880E>Y>PWLC$$Sz~n z)MG^rdPNzW699$^P`1)>a{!uD06-=9^hp&5(`%(zKrYL1_LFmx_J8)^eliZT0}lb3 z)9ceD#C9%AIj(vNW({`<3hHOsF4F@b-4_<=?qi^RDDvC|fRpJy@D*Qe4B`PGx&Ufx zmR$;v&%5A}{mBZzRWt_kEEViKf-wKyz{LCUSu^7VWNj1xOd1RlH5u4$xrO?78qFxh zEN8rn$M~qa1CBtS7@j08*aDyvfJJ*J1k_YcLN!bR z&J3I^Dy%z^29M!({Nj(wy*|ds0;DYC9=UaP%{iUkI&DPTS|)QyE%;qSYQ#T~K~d_^ zUEEEWz}Md-3AoDPkA&AW2!zE4@MgQ&ZUDfW?OI!XvYI?RKI2cuDO)age`I2b69(Wk z0r>7_fsc;b>j7cK|LWBOu^$kJL4S{~@Kuyz*i{vXoC0Hv_SPxhyLE~;e(`JE`NgmD z`+x9<-@@rne~J0oljoYW#ZF4PYc}o9)UU2q2G#1xlS|a`><ju-C0v5vr^t7Y+! zB7vB}oba3G0vEo=SGNPcy4&J^dHV>f-s5YV0q=$#l1W<*EbHBYWmLITX6+&;EogyJ zPFohLwv;fyWH&@KwaW>*y|U%Z=MNbD=2ml$HYD^RVNp9&p73NBw2;T8&%aLHWuIlk zZ^zz8#;l?}qivJ9uI2*v5lPywucUCFRU!weDp?TtEPpnzGiATX%ywY$jC3SmARxe- z{9V{(0m|Y^DKpm+Gn(Cpm;pE$&cOULxQ=jMy@ePCME5S5-G`X>_od4p4dxyTO7pMm zmFX6vqz1B)q&%{mwcNh{s|DJ@?a7AB+#EErI$|M<$*FZkVR)!sewlRu(d7lwpM1T| zYCER@y>mc_3AYwCm^hF7tR`&x2qI-jM8>8Q6K$F~0rhJ!;_hS0DT;Rd43RZQFr0Jf zm6>6Z@eoG&_z3U<_4Wf)0KWL-&xA4C1MTb{hM~ib-oc{#2#fxK_+BdT*bY$^c4Uj% zl*hp9!maYMs3lto5D-GbswUJ#SXKfeQG&3CSb;vT@=&jgw*?8HP)|XZbhsOIoo!yc z-5|hrmJVCEhNb`3r6*hoq8QK@uK-wR0vKHd6lGp+u><8X9?B&xK`Uho;$iU_@906@ zRlx85KB!afhl|3_a~{~FQOfIe>=!D3&cEmOk0odVaHroV{axGVnj|oVXfhTrasHkQ zNScmS`MSep$!qyqP&Ak)=O8cFC&29#6g&jJ9h%+B<9`V86)dk40|DPEz+07(FBB+0 zQZ&h=*ICdC9A?>tV*k^D>$JQEbxdlObNEDuB`7dQtYE!?t9tJoEBJT%H1O{#VBDgq zi~aElxa|Z0e8k({VE_Oi07*naR2YG(mi-`UDqyA|DZV(~$ha4NhMFGXA_1ELSVsm8 zkKu>M7#P?NA`2$x5Ft$$*2|xRj--=$d8I*I4Dmw)gpKdBTvc|(uyM-Gy@EZ5(X%-+ z=fqr_yUO4UK&%rS5h7R{X5w{i4ZXINdE&ecs61ge#QZ#F0J|aOeYD^*PGdb3A~aQ) zo{LdeG8i-1Q_ROUK7EvQdkZs5DpRhUgmhUw)rW-2OA2sEjHvTV?d9KDLnaoD$L-CJ z(S?WDxZA4!CY6_pI>Kkbl`}|r6(pZ>3xF>NKz&szLyBV)> z5D47_f!u620N~AbO#tw8weRilx&?q3D5!`^I*}WKR|^0@qhGOF zAPxcj#TK#eWzJEMmG&0q`nB@Heu@#C#4GI4mwpS|TPL{li(jL?eG4GM{eSugXzoA6 z$xnZY#WR3FrqTPud|%ojVO~3Ij!zI`!W-=tC+AOaadPWgzJ7;}7XbS87TtO~rtMCT zl?dND{}|srd0RS?Nr1o$>hPDx0M-}ygY6D~xq1tK)ezp_MST1GV|+gBaslZS6teE| z5T(OtUE{qasCL~4EtJ|2wGb!FDu+HMG~OvVBH%<97`q{2+ea)Kk9LS40P8N|Xy))_ z7g4Efb^zmI7f^c{+lwydLXXr8C)&0562K8puH&ZCg2@A?^GYS4lott(qzGKil-Z@7 z^`zc}u7(1zEQxGx1jQ@_g;dgPK@$w|W~uz>u_uf`AaW8P#JDd(GU*YiOyoF-*u8!H z5S4e?uTMftNoLLqgP_MfoB~(m%o_;AY;sgNv-@pGBW=);FZ`N%@A0le+up1JN z=N_9b=HM1fbGF4vEEpAbjLiGz;zc%N-^|3a!ooU)I?Z$0(lm2 zX~wd^pFt$1PCdpN9ZYu>W9|@;aE)zNU~UV2pH@+5V;5CZ23Kji#yBkhEI}A|#l)Kq zyzUNwM)3e(#S=j5kR0_l`t{KSSiu1R%8A4oNq`$JsYg5kI1d03zinzlPA>$6di-sH!%{UP8~WxCI0JxW)s+z%uaJ7uE2 z>467|v^9Dkw|Xuc0y-yOw-NLB5bvgk*nn^zfF}c^hr=3@5}#7abCrQLL7%m=N-PzE zGMNT#SeaU2R(VZIWliK&nPw7(Ap97B;0h5&4*9UgN)p=+n_VLdU?L%2vJaI$bDc7( zLXzM2UgkQfd#nzWuYHjD_jFld-6r&VtU1nLmdk$F^jvJRa;_wrT-hwFb5kQ2nAQ#n zAu@WB8b@qOyjq$tDmMm+BrvvJ6u^}QY~A)!n^E`}x4p2>BQqAY&&mZV090ehRo-PA z7b0m`dFQktCm)!2|4OUeSSOX1G6L?(dzx)ZACiKh1n((NR|cvMkuk(10fi8okGYP` zjD3$pR@B?d->gvM*qAJr7j%e{=M@uPth{_^N1?!xEsc-rL?_YC2mlFWc0wDi`2m*10`t;}q0KD050Kl8=`M2iQ z@oO9avJd_pDqQ;ekMP4>eX@|1eg{~=C)_7otn z@b&_kzdYgnx9{S^cizDlAAE#2yDgSy=eRh%g+mDNRN`B&7FQlG05nHSG)GJHn;rU# zjT|ch&U`X!HChfC2FA+by4IUux_KQy}aA&V%s(4NQzx6 ztcS=s#3BUF#ip2qC)7?@eSHw7A&4}LC0rV_T_3S-V?M{TN|0dF!PJBFI_FY+8hqE3Go!*DNa7K1X11P z_oa#a_#jhk8kAA)qk)QC_%a@nq<+Fp!oAu3Dv542IbRkDQ8MI8i7c)d^XWBt2+#s9 zvj7hP$kVZ&%EUtfE^`4?rUT&Fv)HReNJ@UMDOjtYU$LZL6HD+0K~jxk8dic-> zy60%R@Z|z%Pl_&TN2`j!sh5xtulr}LRePWh`cU)&6gEuo>Y+Ap1SNUCRzw)|8O0>F z6HZx6oigGLC`l|#X0yl`V#@Q7)h?D_VwN5fJ|&=_9iCHf;!2B<ktkVnjO#+dFFL zmDg+|6wStUFVEt-k`S;V%KY2~&J9%i*~U9OyclqMRl^Zu-6k{@;GG1Al}*g&^$O>S z1y2c}T4Rcc_n44%B`n6ukxG%(?n9fqk?nX#Mn9nH1@CgLkQhkNret8$E`iA9CUmC* zZL-r^Z*QyRoHE)H17S!YH?lUnA!$>Ta*f~|q4vnK>7X^3HR`N!#(>tLlpAIV5+X++ z1d>LWcZB14g-7c_uM=VRb%QE9Jfj_0tzZ<8=CNUkH2Q|qOM-u6UA4asGN!3LLdfh| zm@x#v`SE<)W!;5@+5R$JqY*#s~0bJAg-g;Aai^c!ka9?qPR&0>9g#Zo9powx9?DqY{Ao z@7%*jpL+)&;CywAH-7Uzn%d#v-MiT&pD;3&0D^BC%uZIAog6*a@dAKvYBWbnkaI{w zkVMaz@O$t41Ki&{!GHAO--3y7e|0)4zQB{ISdN#x$8NsFPnNgvo?qZ7^qBR1?iiY} zaYar7K6y;^4P^peNLgwS3okz_-giSBm(zOe57s?aGmo}USyo936ecic-k}c(?I6Wy z)JtZF@)?$@`!WFF6buwuxA_7IsInarDw1M<(+lu+yr{s;xU*{XHOd`WC?nM6jx~+) z7H3_4WZ%e6i&7hJW;2zxG`F!!OioyaCP6k9>b6s$2?E@0hnN`-DOu-Qy4>Ux{Hi5% z#Xv48+)Y-+$_fSk(U%|Par$>ZJ^{gDR(nk@mi-BlH8rmY!%%i8*#c^^enwl~7jKb; zec32Oh7@$|gM5yISQ4DK0gaPI+^TkHz^IsUG$SlMfVl>4)Ee~RlSoZxI_M1_PDOpy z08)U+S1n*6l1K`>0wZ#60+jftfN$;!aE@_V59tnoLo@+j+!eqZt^kta0q}1MQkCx! zuK>2DY_;?hAm@MQeJh@*ry>0BAL!PP2Iv&R@` zLaoWI#un^ClI9};1PMd3_bdGZSsOT&r`)u%_l`wZDk=dpF|g@E{;WPQ8t-tv3#coX z8HgYWGn3tu_viv+(a3&oHDF>4rF#h*46|QTE6}79p(`fHUYojhtYfIvIA``zj%8N6 z-1OY`B5@X9JZTbID24@wjUc2jDOs6+n=XnMEsqRMtBY)|Hj5BxB097oVctkxXl&0> z{>vHb9wonHvzZDBa#miE)k*TZUctV)8XISANZ57>39PKYG4h3ZU#-yiQL4>l6Z0kO z&^^yT8us^j7*N8IeteefX9Zlo=&3)kb_aDq(}ux;WV5GG()h1to`3+4mV0tT{Ua4 zZRYst>NY;CmpG0C7Q=vAJBTr{gkC61%>2#zA!W(xx{YXugqfNWTL;)AuC)^oafl)V zZYl+dw8L!PdIor%@1lC-NOhYE|H+q;i$3kLP8bcqSB(b|@W!f!BLM;zjVy#JXX(Zx zK-Ue7<3)wGj~VcCj9;1KzqZ1?u>#z@uz`VzV8Q`>wFw% z0ZyUvs7jj)#`rWaeh9Mf_8F|eWm2Y0ikty@yVvWAu<$@lgcuTzYQoF|Z>>BkBmwwX z8CDGe9K{Q;aq{{x0Y@~ld_D>A&xUW%zgQSXm|$}=nt(yZ>>IEj{*kT#{+`Czn+A(S zTxJ_iJ>;e!ReH+Ul%UR3{`)L|Z|bHx1*EP5{rD*``=?Qe&=tqQ6M&Eo9Lp3WbO!*} zDIoW}$9ZUst^(}Rf&B|O?45ULyq`AC>A2R`=zcw1qlOgl{hK7wSJR4;P#J?(nE z0@(EsxqeGPmxRUJYmL+EIW#bz1*B^S#(H2l?*uO-hx0DVb6B5yth*!LwS>xzK#R#) z31U?-uVqd%#$Bi2lzE&>^i`rpUxeV&gYlp$?W|G>DDD!gAYu!0u8$8

    +}*wfgkaEL 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

    P+GiOvPQeol&-f zR0eye0TADyC8^fYSvBhWX2UNQ1K8qSd&8P;7uDxw@^Uc;e_- z*c)>U?v@S~I~JP-+0W{O$@mblb=Boi7yEScp%Afd;#$alQJ>2DcQ-yp<@4+Huw-&R zrPFJJ-HlY5J3G|yp9jznC#25F7Y2DuR`I&~~!adt}*x0gz){mpJ~oM@o&}4man-5oVuDO8(pr*ITwC!;OBDW?!aAChnw{tEU*=W+xPj zw;ib%hSBhm#YKHwAPd00?vh+w z)GpF7mjlB<-ruJDJE(P{xY*}@6?WC43b|XwM6_RR$(rUwlEc$Y#67hi(1D*Ki2Kg( z#KG+<-I+s3^r9TH>25al%=aVnPTVCu&#a+UKU5~Ye_kPU=`8Bn(~Ar=x=fbrYDGgf z)+FcGTqIU*NA*Fc0!d7Ri^M&0xnP!ClSJLQNcKbygUE*7#H03QQmV{0XqHxuY%G42 zSWP(zCc6YuYU+J5eEKl+jMi9g5>cn?PQZItIlC`-ok#v9BWsHm34^yV1v}e16qfQzqw= z{MwDl`EQ5|VeH18^q?0Ft ze9l)s|0~}Yl#XjylYvi zE0f2~qp=;CJZ|#wMds(vpCXuiUyBK@Ozz*CBb}Jszd@S&bZXb9BxR#D6T5Yyre_`z zpH|K+27M-f?L%Twr4kdnbOL#Q(9e4ypFd{z6}Wli3aM289qoDKEC|90Qn79(?Ya6i z6kI<*8b^<&BI>Tjwxopa%F(-U^;J?Rj4L{6D#5b1I)7 zfBZC+^H;tvDBmxN?XY07e_lze#$>)yzK-*LF<4H%INcLgl`&JDx=A z7+xf0vWu}U*pJ5D&XecFlsOzt0(t+yh4E0Q$6*rH@eK85O<_a5ERs8ZIvx0~3A}H$ zmqdpf(YyvtU{IeuWUkQ;!8Zd0wOFW0J*#4_~WRi1r^PtU( zI4bYox%mv0`?Q;ZHIwiC$r0X69t*k_ugm0TfXyzAnEY(OpMT_MhE8W2GWl6zp>+h4 zpD{9edNFwnTKl0glgFkLCoGxFQ3bosQrRab4~eI8eaB;)qzyYrCXc{%2)G^Ryq~oB zG?$*o?c6fE$*UU{)D-JA!*3VqP>&Y~bchUyrE)u@g`T0Z59`|5Fq!Kn z=GJ8L*thpoAd|<$y&G#Xd93W#z>3NI*?rAvD&H^O2b$8NzWC6D%6*a3s0o$(qN>>$ zD&I%_U2K`mw;9!Jn9RfCi_=uT@7CsR2bb|4;^>LPz`gA;=qCDz*UBt|Y>d|&J=H_> zAFvqO$L;{*XFg)A8wKm^bO^cZA*M&{g7fw8{_N~0&c1OTrjH*3o$7ju+kPB^weE>9 zs#Q%f&+G!YOs@yuj(dv#Y&--5Yq&tXXQ24G6$6tI_K@f2C5GGY0?|YRJqHAd?dUQ{ zZ<{B~?cpVwG+G4K=ROHtI(vy#LWV&6G$VL(AxJE^)DK)<4~EmXMKRWQD#TnH0GIcP z;-u5-A*<{-INh6wO&tzFw|a{JLs*M>s1tMDVJCE|94h9epM&%|C*iR!Sge|s4O?ej zgX=<&_^R4kaIbk1au)iCr|@0CqFx4EKH?!-{ip|yw)?^Gv9Gv0x+c!!p9uRsJ;nX! z++obj#c*?{zqr}P2J$MzLCfu)qGt_v$iLeI)~*c@yY$2T+Z|z|o0k~7s2)6D?*Ywf z;F{4pfsk={B4pnoV%Vgv5cwz@9HQ!o50eH!o3fekabkqnbY|4iA0x!*+37HT z<}tY6E<)V1cpEH^x(dzA>WGVS_ru0+Pa(jow)hC2bsYlVL-#hd#67-SaX!Nrm|0#F z{i2t_eCHc*zDWQZ=jexvuuOK3#o>=MC zM3{c(Eex(!Pdrp}7VJG;0G;+nijCUMgM=0as?+fKyTq)BjnTn@|+7sZp<7l+T?0iX0*qJc>=gm3u?y*=uRt0yHx z@8-ow!l*`KiNqmbl2V*xtc(!vE*>K7?~xrLt|;CWOd6)r_|d*%yWRGBQTo5!{ zdkgco`ii>-G!d>hw*#69;<^AAc>df6#&q!(+n;|RWDko5Ge082mO+s3*cX~z_Yed7 zHMQQL?%y zKmoMzZz~+=17g$aA7O-pO;$|%`l1QF1Z~`V3;72ch`JQ?;a+Ej?8*(rH&d6u);br2 zIb9owEi_%AYKJjG(D`UFXNVj8v>uRIV@o}8f@i)UW^d5zGwO=Ho_rEAHkG6HbtA-j zt`&hl-&Sp>6PMol2iA5RPS3l0i5IPKpr&GEzAI#~iqzRKR?N8T217g4rq91O7OOT2fuSK06z zLo@2qflDGp)?qPZ`B$Jv10uz)`zW+OQkS|`jTLVWpA94C4WL~@lEk&&n}Ft8bJ}TT zWATc45;(ZDpyTbDi1*V*Lx+89snwPm;{1a%A@{~M`n`{z_<3I{xUv;A?3=sT=U!*9 z-m-u$)YTNXF#P}NfGN~P`2W~@52z@bZf$fLQ9uPH3IYnEB1i@SfvFmlpokFzX2G1Z zVgkjSb5_g|MFk9msWN9@bHbc+croYu)JT12KF|04Yu$U!J?sAWhrOPM-PP4qyLMG~ zPuJA+_R@Uqq9!#y^<+P@12q-{Ldd>#t=XQM-kJ*qZU`agz<%}&(%hjj#4y#GeIMhk zaW@YnO|~4;#&`s2T2)OVPA?8=N4t1yMpbK1k`iZV>y-}F_i zGkf_Oa`*5G7Mts?vD&eNELgOaU0CX)S+e^eS^qPYo$iP+T>B7d6FrkvYUiW5wCOro za3h>qWV&m5Ha|h;)NIHqnfq$;XWt`B-m2KXwKX-(XLGXTa0xbHs-Na%_p4;{>ISUN zjxf!XJ}*htz*UT$i_pwy^N3jFFJKoEqBOB3u9LrN&SAmTqBT1mj}nV!^I4_qQJS+p znWXvU6|BRGNR9o6wWRRaR(3tJu7>YgPA-+rVI#MOYeqdyBW)HRV%_XCnmn3LDsJ7! zoPGprTyN)+c~f_=)0=}eqhDPnpKCA2yhd$JyMkwAL179zeJn&1-?EU5p1z$mJz7T- zG50CiKKUlw-9Ac}KO^fp^V=P*S&(>%>|Ah_iEH57z`w}tl~>q7|N5Ha^A3|#=c}yd z*Ls?7y>iLXTi00Ks`WIJ=Vy|eb8fKuccL_P_hpb9U2e0}lOr`X>+U24=sOF9pBW;u;%ziD^1Xx@kw#j)++!LQRyhjd)++q2)k(zB)E)eara=h2_ zD9znw2TA(Kdo0W(LN^9XKHX&(>qKaR8=NE~&9N?d<5AYmH-d7D5_BTsKkW91prMOC zk~fu}vAda+4(;`w%pHD{c~1?e4x=8C&m}&yycQa|0KcCMj{m?$zpX>doZLh{8lGSY zKibkdz2Qff>#TEBbNVX5k@Pzs#?FsVqN!`1sJmnsvHRAe>5KUdwAqdCtE)LC)7$%F zv@bf}Qdjj(rt=3Z*PfVWPwLkjO$U0c(KgvziD)X0rmqk5(e{YguC~~e{7-s|_&Dw3 zR+Bc1wlbdN@>^>jdX-f(XFBqY8fSwk3;Y)-6bPwuf5;3 z>7!Sw7e|kwU0pV7tNgeWHnnUDUFR}|*?vhTAA9tpmpo^&K^-TO%)NbRZpZQXP0mRv&HYJbO4cD!iHaJ>`%!(WJPx|uv z)kr7DmgMR^U4A0-qkN)QK9S{jBvVLzs}vH~S!WNC_P~C%p8aZRKiaF+Yp+(e7yi-e z`9~}LQ}4|q(zl^AB_37ylnr;tj=s@!T*JpK*0~%lU)!42c#Gd5KXIg8Z@STx6W5s0 z^BVL638CvJXxN2PcgW&Jo#_1*jaVWbLzb1`8 zX<37>?CiMf>Pl0SsK0qTCf2$heK>*!H0z+#UvKO{muGwz`L%lawK9KL|1qqv^dP$9 zsIGh_%YV7-4tw4|np!t`EbL*@o{&2=ctUgtEwN0)uDo#Md#<}t^P|^T8`E<9PNX&M z{?Ue`?M$}4^~Z&5U>y&7>yam~7hulX_wb`Gc-9nlPG1{9t9P#@(uquOX|Ra6hT~l& z4?TJ2qz%NmV=4N1ZhihG^b^U*`$bHu1apU!%5=lxkL2euM?PghI8Dg}(Qk zwfSk@)m>a&?{2afQ)7i~H-DzkS8)eI&pzVXZFhdBBR`Y*o#JmXW0W%@Dn5U_Q%ydn z6QOYhwenFfm-WIPF70VOIGhj2_(iUKxyE2Wm-eGwOtuT{WwO2FA3C$WO-j>e3*vOX znoP>jdFNYlq!XE5C9o#h6qZL~y7b~f`I+QrKt4ITwH@DIyA+L$-b0?2jNzBw=AI>dFl0qISOI!9;iJ z*rzrv5fw;Y^t?;HxF%4~{c18PyFWSPJ(w;lh$F;hr#fT&aC+Bkm~Nf+Q|sY$)0>IJ zujNkdigClKar7{epUM0vhsknKK9}XAUM}mM@K-->QDqJJw9=ozZ(RBf{^Zi1@H3Zw zF8Jid9nb9`J)Tw-{laCx;1}v_bVNQWv8f$LKQh^mV(hsZ=aC1E`sw<;?V@UA#k(So%^J-r&VI; z-WWUHps5K<|J0B^H?kGBjP05lOH0IC<9E(B#NC$Arq9fI4~J}W^>Q1!uFPJxaqfOn zg7%;j-`cQJc_+xogS}|Ir72-gOiq)6@7-vx$By{!8 zPxm)&M?De@Xp2m)z2uGeG9COP@-vwqdzQga5hoKl+8senEdR*6-Lh_-%Hmz>c@SV2`n3$KN+C$s@AL(rzaM__WlA?1GscT|9;I zMzQl*YI`SYJq+Iu1w7Wq?{%gZ21oJau|c6p-JNN{<+{A`rc&f-eFy3|Gnk)!vx!vh zQ-dRv`XpNSRe688r5_N`iB zqjT-);zLpN#~mlKU+q9G9|h70_tMD3=}z?4EhjoV^)|WcUX4!4v!JJztEf$GHCmae zs9^$-U zgYvm7AN6usFYMvc9^a!;{M1b+vN6O#*w3Z?*86+$ZHrREURj+crGJg$`=>7sJBI5O zu7_M+53Tl$;+pa#EDG02oOil@73UrLi_88(KXTcRZYMc=J+qE>N!h+UHZYeh_L#>^ ze?4@d93UAM85Q!DeX{c zDs$aYpYQv-1Z}eMCF_?L%y;njq+9RGyz=}?ynniIYCF26JDKRZm;;=7tN{ z<*qNu^DzlLz26mWr^4q%GpI9HnU@HgoBWatVx9Pz5QSLTe;`wPHRG9h?(Q0((Cb}l z^2rm+&^{KwNa<4L_(kqUNBArB=;xoT_T&J1Vwgh9H#XoC8~f40yfSV5b|3qZ=u1sk z`qOV|l~|OiAB{W~NDn6mg|!a$r(zrFMC>2?!-YC52m z301<+lIe5Q)IAjME|{RA;imqyk@qU%UdfH#e&t15E`O}P`m8!_`i|E{C zwqyzCy-B>&7~bTYEnA8E=91n?eAp9r_Thvd>oG2YFWlRZg$=mDa9(qHUZa1xUjK60 zzdti}vQ(o_?4WHUZq(DC)gJPN9VpROH)i<2FU)aHN0Cls`q~XU$@*U(nUiB9K9FuD zH7u+1!D?^rzHhnQXYxm2dD}Nb>G5Qn6+tZ<|a{)#1C zZR_zPv;y_-(17FywdPG-e*a!l*a%y7*YhaM*B1=35&4;3ekSvye5O}EljUO^GC2-0 zKDiv9xL$F2y~6n9a(s>)qHt}j0e{rYPh7{iypHvC58_F+^4Sm@TQP3A9Jjc~ae0p` z+}4|~UcQ?p1-lY_w&C)#4LL@Q^Bg;5be!Ru%=NCxxG(&^CZEWA&wBQ+ z%$LlmB>IBMzQ~OVWYHOJe6Vkbt{)GMaOZ8l5sq{s)1U3}Cwope;%TPkd6O(JlC!-p zuk&d$TRN)-Y5RO6pEBXT)~b{XIgmA)Hw#Y<%ZRN`KD&(MN>*92>8LL$oH2kq7B15H z+-2MlJ~(?ZX>!DuIZq$Jt$r>Nead8?zOeqlw)APnJN#NH?gd=l3u;>vUg4!Vzg#(+ z7>$kP7HzHhj>B_Px3af zNl)wXT@8#l+RJ2n#b=p=cxOb-dX_r>ByAhOuO??Okv=LmnV;D6LM!xrxGrDC=TxD) zr;OnbubUD0fk{79f0@Q+dJN>J%NP(`>zKUO;oisPy$|<9F7JuBS8{o;#PyTO>*wB4 z>)7PlUAfuaG={!ldVRt4`hv;6zvc~t7@bM|6LXFkoMM3`UKm#i_a!;{ut(Vp7B ziluHJ$g61!v^yU~(}S-q`F*RwtkIcxx~SX}_E*U{WcGnNw7;VjpE++4$*pZg7bYBH z?t}4JAi=dFL*XVhQv^ck#rG`3lkME(>Ydzk3_jh&P=XLr+n2u%3eS>J)$Lh4^6jzeCw**ZZ)rvN;GNsF#&mpem>Qi^0c$ztNjC!(< zF&$oiG;NskLOVF|m%7xw`|T=EkaQ+3PwS??B`7y*=T1 z9(>ZyXmTJVklQb=$pe;dB-fZbcRioTx`#9)yvz`OsA3zI{P!wS<5wT<-Fgz4JE=RV z>^gvVXY-z$-uj_N&fVK)Khg?ebHzQG4ZQLe?IL-S`~!QxOeWf@3{_Y z=dy$jv>HV^&UR9d_%@tw^lD9}Cx#NA{X^-u4u{kq+dUzw@}24M*(z#!)tsK5QJuaB zji4{?+tW%^{8P`Y1%G5jV(?sN9VOTO^$FpH%tpBO9KXziZ2KAes-y>=j?;( zVcmxD;3ra^qnRBrvFN~{8`>pigd(WGafXv#|J-r>fl|EA4BY6ZJ*=+(--?Jq?&4$pvraM@#8A}QM z*_n2Uxxr?%-9;8}Zb3WEcG8;sw4e>zG^NfS8_1~ea2n@nK@AX(F(9=mox{wC+a@d8 z>rp7p>yXW+r=20IjLXodqhb7q?M8JIw=}Y6@gUx1_-YpTb(i|5)gXRwtsgJExJ+x* zI*@NYK9mo%zJ7(!*`wf4(4@+rLp8I>q4*HN#uX;F;q8L z_L5!L(wgtHF3Jyx)t6_j{=;|3$W+awjc%b>o{_*QIuGhsd;9#%WNBA?QI?;sQ>34uVP0wdl2DPRU&0eUj6ECrr7Tsx+*z0O~e;ErL zGl)80El(%LtznPL*QIq5&1mnC%B;!HCe(WANirnHoqP}KPA_H@s=JyMklCxd(hu!( z$xo9Y8v2(lebw`CVp`CV&aCiUeYgDyV)QAF=Bz)>-d3whc5Jh!GfGGEc`YlmcO93I z3(f=i-r?U_^x<9k2iJGtbHbwe+m7?t*2?8L-apClUNk1&M_Ks10WTjhk-gkmhAx?V zn_U5q(K>KD~2XqVmWO;1!m%JzTvS4Yi{FthobX>nxNrggj(1U27ww`d zwyGoEg)6uQAmU!Q=^|f<_!l)H?ubg^u8UIPiD(oax)>EA28I`+UU(s%#lMPyAtGRi z=o5k90I-OG5s0W4fruy(tcxlkVql1f5~1KQKn)i0EkxW4{U{gVh;9)MUuXbJa2-Uq zh=9~ZEQ?5R6r`>y8d4V#Eb8jwScoVV^&m02*cCB|S`mZj62D_t#Nz*dM6eL?D?~hp zX5c2^I7l;9b4W8)3rI6v?22ZHV$lkEJkS&@VqU~U8tGzMG(r>$5d)(Q5TlD}5rgO! zZK1aV>VxaUu695jaC@KwPzPKG?dSlBK%9z>;7&j!I1+6V5ig<;>mmW12#G?}i_YLK zKr}cS?dt-mhX@#5!QFrc;09=)h=CESi-8e~s28!i=ocdHg@}P6qF;z;7QKKta2(p& z3(_1BFnWVURE*}js2I%=2ctQB&<|*-i;B?_F*5o?9{{uhi`X6mAn}NmF%UcmXbo-+ zFNkOvZ4f78Fn9>i7Tgx?9-{Msh@LS75i^FsAH#qS;9=n5kPe8a(EF^{{EobljQ?YGu{Xx*;%$sYs^a0NU z&xiCue2)d-g^)go^3ex9v4#_^{m?&4fC1no;H8iOhygMH{j&@h1YQPS z4jF`~AcN39D|FFJR-iA2LSG4_0Ykwe!buur7$SzO0thXgEieKs zqMxh<#(>Ab_iG`^i1o1!ydD?_9*3S-4@pJjkPYCCkW|F|*aY4Tj0cPOD4QV@ba6)} zAg0Gw=;@FNh%_<*{k9F51l|S~aYrU0n#UycTLv%%oBDYNYO$Ts2H#iybyiJAd7Ud zNfse0$s+XUeqafBKllJ-2_lm$L4O_umVpm~MdXrYh~Tjd{dpKz0Tz8IVtO1#^peBS zj{<4BSSD$ROmYnRabOjA75eZvWHn-&oB*E$)_~Wb-%bMS!0XUgBHqb*L_RqMJ`HRD zi#Rc-AscmZP&VpfpKL@Fl(R@V2W$e1Xf7fG%4S{Elg)@*A|kk4&_!^$fd5+&&*UQb z5@ajlpIioC0n)+g=-VrhZHSI?6?_fY4i*tyu0b*oDdjr20N4TEf!-CdQg-TMrR+p> zl%445n?NS`CioU46OmFx%$eIjHuyI94kTN37uXHnjo!Tr*`vA#*@M_Ad(hMOfqlA2 zD*F&qjeg0PUH?%_F z2>1wky%2I#^$v1W^&U6|77=aULyoIHK#r?E0w=&C%FRdM6j;Q$`3O0!`UE+x`V5=_ zpFvN5hWw@a0{Khz6*vn%i+=tJIj8ytIj8y#oCk}jH{T%_R6igWR6l`>;EU+#E? zN-3ojsEiaNurY80d;|S&tQaddRVIoFxHNDJEaK*rR!S?kRb`Yi;IhCS@E!DjS*5IU zS7oZ0g3W+?;CmPWW{R0|UsX;i2QCjh0E;L)<(2ZvLzTH=4z>UufgfQ6SSS|CW0j?1 z3AO^BfS+J2SSeP@Q)|oHKiK3I`9Sj1^r)L zsjhrgxhk&U8o)R3H}roErH1ld<)*lS-GLwAALxH~#a;QSs;SfjdjP+{zc3m+FdjU? zo{AUP1MCg)QhWeku&?3=_5u4t{FDHo7PyuY2o3-TK?0RvpfFhC7f z!}no81#kuUI}Bp05Qwcp0XwiA{7oSh6%C}K5)Rmd?cwimh=WoG;-J(89Knw8ab2J? zI0A?SDuXM--;od}B?{uCL<7!XXZSlBQbnl;siM>eT)-~yaebf~xElOgA5vY3fmBx- z0IpzH__YC~h7t>@p)>^Cz;5tsLx{W52;#0Z25N$9!k3K!Z?HG~*BIiXG=caiO#y$f zKm6Ae5}-7L1SoMp5I6|_i-QC!%^|@`3m_C63ZJzA2$;Z6Eg)2B386|WKm*pmPpu%~ zN<1W7X${l?*MV-^MOX#=e-5CM*WpV~qqm3ELwr9BV@j)I@sL!y-qkZ7eNP!C)W zzUc_WfMei~j*tdQCrAS&0f+_1!XF8chDsu&q0$*>1a1T$bOxG$o1opDAx)Jokfusk zpc%Ls+T9frr*wnFDcynQ;O1y+cc3M>CEC{=(n{$8X{Gc8;=%D~Q%|4`xF@(5&=%Yl zE$aoe2loQ^hO}4u03E;`(1JcdCvYcN-3OAO^o1lS{eVPpA}s9(bOCpPb^Rb+mHv>f z$^f7nxEm}Q0Q3O&K>Y(CJ(Yn#FYrL{AfPw6H)K5ik+F2)r1W1YQhY0!#)k0WSrnfR}=o zL8d6nfvMoBuxmMFy0QY830?tS3Csqs1g8OW!E<3t8f2cb3YZUG1zruAudD$UfY*T6 z0t>-w!RvrU;C0~jz+&)v@CINBcmsGNuoS!zya`wa-UQwZS*C0OmV=kWt}T!i%2r?{ zcq=#^NCT(AmUPG}WgD;>ybZh^SOZ=ITebu1!0S-|c3=Z|1M1ukYyxjWZQCK6l?-4D zcnfOCfNWKE0O{a#l)3}h4&JHkQZj)oa3(k#*bUAG?*aCL_ki~SIpBTZTp$me3(g0$ z;CwJsIIthkg7J>zKK%r0=L2Ul>5p9;34<{_!00J{0RI6cnW?3eg-@TKLfu2UV>kMUn#GF zH^58q8}M7mOXY9iIrwjIA@CGj2!01V2EPNp2OfgogFgWG!5_dMA@`L}z&-FiFi^MeITSdW#-M5MX@Hg1N;BTb_ zPzWwzP^cIJ@4$uz@060jdvHmE_ev??1GtpI2gL~Z2sSeKs2Cd;7_p2#K6Sh zi&7f+1}<&zO(_HX0GBcNp_B!Ffq%i8vJjPlDWHH&!DbM}pd4TTE(b0TlmM3pn*)Ym zbFc+a5^Mps1WJJ|!B&6~*a~b77=x|BHV|Wj3V;dN1a?(`ls2#h%7AUbc0gHhS=eF+ zF*T?Nn1L&T?SXROa7JU0c)@|YO{yf7&rhGz!gw~1H{(A5wHW> zp;Sk}9_#?v8{ENIyp8M94qS%@;$ApF=@3*%o}a0tX^q%_qgEQwyH6@>qHDO)S;61P zsH0ArksBRpiJc{>@0ZFNtH12%(0e9yU$x4b305w2<_J@od#|Eqc8{7gx`z=pYHF_; z)z_O|nD?E$oLW(1f60#q8oVJH)^?iZ`TjJq4ocD>64~*wBAk|&CiBjbqAaE}XZbXQox4Ut&sW#`@dRt53_(7~2w>_%9B$oJlD<`i-L5(5MP!Zl6f- zbpy@m=C0Ic>O(T-a!HN9XHEJw^(rxVT3X{$!jq=)b7X00b4~1f58CVEInp$^f~FDP zk!w-w8u{7FK{M~DEB%@DgbY|wS#$hb6*_vQ0hi;UQ&1t3<79U5Hzvmh@-vygOUnmL z_OE%ZYfP4jx|pnMgXJwI`+YS($D}>3X}6f{cTtY)-|wkcnY4dH!E3}({N2B3Ba>}J z+nH=T`kl*uhkv;A5Bi{`hv^82*JCLWxr2~ zwCA$F(C=LKdlPG0F8dUH&1GL>3~)IHFgA4g#n{03;d1=6yJyGcc*B_Fa!iITHsx}x zVmxy>o;&f+Opbs1TW^^>M=EHZF?sI9{&>#h`4w#NhRO5s(!B3Xo~KbgjJQ01ab9zI zUgLb{@_aYkS(3}^K+Mb-*07y3E#iT`Te9)`&ioE){f7!@gf1K^{99srg$$V-ib*K)>q|m zymS6|RRrF_w4Nn)A0Bos5q5N%%ElZl&D`9E(Bm0ad|8<~tje|+S|9J)Gj&U5;fDv) zO-*mI3jqh&wOvhV8Sh_OXUB^C+SB^$D^UTC;Bz|*Ox;3>aJDqZz)TlF%wq$GAi92`I znxJGFS@osX=HapYs)7CJ7oV+K^R;`(^UP%W@%&shp#89-FFo`2fO=WoeWV6UpgvcJ z5aN7}SdJY*CnP2y{zVP#Ci8*xPR};PEpj4r88MU&s@g?8XY?!<-C`I$w)B_QXYX)U zKA|TaA9aH5p7TNL9_CA%XoC2?j=Ac@Sp&)W8C`kONlqGUo6c$;s>=@!wx(@g+40V{ zZ`hA-)#%Z2l$(8T&f3H|(`y4`xTeYXe3xVgy8T=vKfJ_|+}+?vx4XFUC))~052H%- zy!HT_GP@3qk2DhFfywcJaYE!c+5P;R)*oY|PRS(%`H9Sr{w1=1Q6`mTqAn`yLcdel z@34nTd(iJx_B;BQ%Kp7Ifzsq(%~`j`&Z2*b>|eBz$~N}dH=Ue0P?zr=WG(t#E&JVN z(?Hg5dRN}$1SjZsCi@-z%Vqz#r2unkxl&NkwLS7VDo^Vf|i*RSs*g#5ydo21~5O`n?Xz6928R`pOz?15^Op zfNg<4S7eFxSYln4SdS%EWmSSWU_F)-;0!o`#fmLwNJXs1s)!P*K$S|Wf~*Fl99C|XL%ZC7(qK2RJ75BK2aDBQ zCRo2^0z`M1{a(-Ihm~FaKmgcZx0Xw+;}R>ng21)F!GKuJ^?N;62=q`O zOt+>>tmP8xxWtMs3RZ(PfLP6?0oQ?qV?|UrRy@^(h;>g9SlJYbbxo02$s|@li4|N? zSUXi890Q5M+NLPvY5V!fJJ0~UalPXTCsbHEGS9NYr%1h)XUgm~&!g?VDllP5eV)`NLt z<&%{vGPwS(ue8?v##HD>4U9FPy2R1gIqg|t_%}Kzy&kRFr6YUmV61T{5lfqtYRB9Q zEi`w_HqhmN``tp5IOz1rVnafW?_gue`#I>~}Y_AX0vs@yEI)H>zpsr8(2h_ZzZdrK@Rf z{tVRlyjz{BnqPSukxpc~-?}42=0`bHmUH&8IhEzluUmo2dJ|^YQE5;AX0}w?x#L9` zb-D9~ZoK)Dtn~J!J?1^28&hwR%Qq`g)A!eD$H7++H`b6I_q#xu=L^!$=^%OFcbb~` zm837H#*$07k5TX2=F}E`o9uLyj!UW_(wR(0ekSwB&NAe(oJ%(=aalg<<+5Jb!~bDV z=eqnv_AhE?|A{>L62Y65G|}8k`br*@uEUd_TWI#z|45Dx58-EG9W+nsy(HtTz4(Dw zE*h_x+r)jMJwLk6O%u8NChpEp(0^)#Bu^uh=&k@|B@1 zcHt7Ks(jjyg`1Doz0>Vzk5Bmy_fzO!-3GJszr0xH@gcNsa1tAoTae!&GKtO^p3HXQ zUAU)r57Xs$-myo$|7)^HCo&!RiOkQs4knRy-fZ=;A#`>`U-E7HDORdZXWg;m=AC6L z4SR`nCetq;zs82IJH&kIHKSI8?l9jIZtO_sMB4VqeU=uUnr}9`D`h#4nE%4p>Y&Ss zG>6`2gR0FZQ>VA4x5CG=`1Ui&@acVZ<)3LajWiuOOr#T;j{HRC@00t8j7oT|zK?QH zK9S|4ULxy#fASiMTylt!m}Yd-YGc}?Nj^LMcO5!%b_qH^swA&A-HQ$_d!Dcv#=Ky? znwFo~o$T9b#)HPk>TH<1!<=6q+l>15>CR^CGUMGQ#ESe(=0`bPmh<--V{RFl&(^%F zLtmdZ<#$u7u#TaacS7KGAs#qYXmeM1_(W;C;0e2MgM>!h=%e!?a4@J$c;C}%XuTX>25bnPVa z6Pdr(^wRW}??tk7ai}Pt%JNY!mG#0ND((4v!jz6oslsNeo6!IWP;>qZwOoF)y1l;^ps+O*~41QKCefj>JD zrL!}mb49*3AeKHop1>S!D)6;uqG*f3r&-B?<$0%{!J-^4%R%{EmLIa;gj=hpnmRSOcXj-~wrEP33h zMWoZPy431RIo=R)FfSYnqHp{ycq@-bWRI&4J+RD}&#QZzlsQ|QZkTnKg}k^;jOx~> z^?hcrPHi8OepTD(?DyaHgt#{7LU(%2Aa}byB!4@%q1EQzCCl#KCXtc#MLD=G|1PIZ zum$~5;}LPG<|FE*vR>Fjr9H5d{=?2m)>PV$c2U``;<=Om`rJwJ+{jqn_!aks-+#s1 z(i6r05FRKV5C3P42i?LA%r}&P{Oh?0F&km5n~@N+5Wjy5rouD1c={H<1vAjiMHt|T zy)1MwBVmAFf{7UpGr$mR1}+CN)Xhj3;%VO;x&=@YToSV$7LZbyp|Av7K}zXnDoSC7 zLi`rZ1~AsmR~Tb9p#pSUzyvI2E-FH7b@LUrn3b?ax&u%e>;M)s7^N|PA?8gg>E=wt zY(`nkVpIk@LCWgpG0I~8Ld>UB0nETvz~Z-NW|+kg^D0$=^13;V^16A9^12y}^12y} z@|d|0GcIBt!$LQYVWFG5u)v&!n16BC&Ao^j3@hCXh81QlJfM3*tnf@O=4HG98?YBx z%x2i&S7~B?#s{zki?;ee?C?ACWznK)drlvwZS0}C*2%~6J{L3psN9Aurs_OWM1W;Dbv^TL7Z;Bc^*Evc@XC#jBEj|k|IfGgM){t~}~tAUx3C~!33 z1{S~I6TgXb*Uh51V-7|9majhGp_@_h(9NiL=;l&9bn_=3m^Tr#K@9;f-7JciZWhH0 zvnOJPs4?K9n@jP*?1`8oYN9%jV@bpA+GysxdeT>J)-*B*YgbNHqxPdrsmc9{nzCJM z()9Z#Gz{xr+S<5K`^Q$acO2GB40ohKJ4#Ydtc^K%%8p)tU`|_oanPvOSkbe#w)Ae% zx{m7x_S6jPJ@S?~&>M~H=*b|kamdj%u9$Rr)?>Spr zF3T@?V9sT|u!l=~w%s@3|FC(KDVJ@znD0%qkB=uk?YyXSS|h4Dok4o8`S?%Y%jSIS{`Z^u-+Q87 zF6-6*ZuH8^IG*@d85&o<4AcK^vB8BZyz_NmI_G=3Xv;soi~R5Y%&aQDKmHd#KmN!4 zM%-=0UFSc3dt3^-5yTKzcQGe!3{h|`S8%TpS9CGsEoQz=0W+|;Qj7bF_}y`Nu(+?7 z;fia9{o;;N2G?CNTW+a}DrrbRV;xvTi9i|?YDkSXl+`4c4x!mcK9kNlCYpx*1L>68 zZ%HkzGuxjTOxx@=ps5SZHE#?<>C4DxWMLa~jl-&7`ta9tva5!TrnPwxy@{VxbQ@!% znbstj#{PIsPT1IKp5*#d71qEVp7whU+%?}aH0`U6rrnDGI;58o-GFs+uljk@fRU#3 z^}ULktnM{w`8-Q{71y9S)jesmoep$9){}jH=1S{0JJJDIPZqqvmF_gEKqsFv*VNkL zL(4X?qj|WFRK$9+Ch4Yh^B!}Jwr3Fan~4}r-O6fqA;#*#d8Tv@*0&jAecOJlZ@Z55 zZI>%}((2VJ(8brvYC81vp&cIBQE#koOX%uK%jH>eX~PxYGF;m1Khl&-I|uhN;?n+K zbH6j$#v2tCF8xsN$7?42aQD}9CVka@cdp_58-A-{4y=ecNQG1D8IBf4KBd`v-Ph z`bU2~(5kU})gf&Sn904-|Fo7UxcyXS$4j&QSZ}nd+gi1Yrm?#Btz;Usd_9ZrIy~%p zr$PU;ZpqVSmO8Rjcj97Uj->92*F6!C;qxiN(-eA1fQpF2<1jlD>Se-o;|j;d{r zH#Iypo+LSV(WY2GHQ8^gcFm$aM1L*O>!4uTqSqPquSecg|GJ#&@{-KCl&)5s6RF|& zr(|WrZ`uk^6aMWwr;YAm^!l8O+Q6ALss1`A*ubR?u$f7l^{>USpGo`m*O9;vT0KAf zW37q)8kC%6Yqk4mWA&4pI)4)BPxzet!{=l7YW4c%A8TCn*S`F_^)arqo-(rv-?Uzj z6DWMbq)*^CuIIOZxfTaL=hEl!57+b0Ki1{^ci)Hpr^{0n-}nBD_r0;j$N$rV_5W`E z_+Nc)`Tfq6-)~JZ#^)CkKzwKY`!mb$@9V|)*}p%pl*cEQ-`~)i>OQxa;**Lg_F4c& zVDb4!JR2)u3$Uf`^N%IGXQg|Nv<6%1o)*PhRm3x*8CZMi>;#pBV72D~aitX^^ zXNTuL@jNV^{wjeh1LE6!@zf{2#TRc@al&()cEYOJfn$cHSx|B@jND;d&Lu(_>NgThgAoQH??>HZeVx74K1>P z?cy(etGhaV>sB>X0-dyI(E>56$KwA&Y;T3WANpnJ&!MYm`qt94MGI@3Urx~7q1S@0 zfgS_B1@unPdqE#cmp@9+^=?opZ$;|ceZ~5J_QN~FTJ+HF^8tySmt+gQc>90WAL2gy z>sN{n#rl8t!^#R}>FVjh+Dwy^`Tx`UtW%Hk;ura7m%)aOfm-#eYkArw(BJfrAl0^& zXG@`9=-ituG_1}Nf$SNiLEIN#95JjmT?N8pGh z_zl391g>iA9#n09bl~$>a&Mq(L7lUaEC$#V_@Y zUt{?7wKOQ(C%x9!@at;-S;^cZoCL*|pI+-`$Psmyv&lTlGb||K@_>xk54y7(`3VdKBD zQ~y}8zXTx45s>-+pX&LJrlIqfS0a(l6}T4q^S^44(OLHVF!XC{2{~x$%44B>U#Umd z4)@{Hp>Ka1Msn^4a<59Jp>s(~Ik?(QR+G`1$^29q`4wF8$_XPp^FL zljYQ`W5Dqx4d|MxR!EXx|2*D>JP`gXLM@|N_RT-|CN9T(Ie=p3X;>KGTp@)H z_Prf;wB^0*?nl1`JbaQuOYWVa9(nL~_M6c^0-U<0Q15m3)MoonW@qnx6<{(Dak#zG z)cx$vWPiwd8BjayKOf)a)XNb6SNF3IJ@pW6xAzim|3KY z^yx);M7^od|CP;?it=|xo@sjd#~0-n_DH=8bWxXRm#{&k3%xJ&Kg&r@PoZy4ANN~$ zbw;*-VPmz}euC}!*!C^jeuV7>f9#*9xBac?c<-Y8Z~rLoRnc}((SETl%Bxkh{k&+u ztWVnGS+xHd_6vLD@$ZU`m)kPG{{pts<0XP1IF7AyoT^u8IaqpA5I2U9&B9GKX`Yqtky8b*? zmLuwt$9{!gP;{)m4f?u%z54n8UA_9Y>6h~vbzLv2OO|7_AZPo_x2wssxCOq2mrL$= z4gGt41ON8F=6Q+q;Z`gBH?An}{WtV>w{QA2^=BR;J;Wh>*QNL4yq=2uxm~iHa-Mm< zfIj}y#Z0GLH@#j#Pmk}HS@LmokrZ;uR zP7K)P*T=g>hB!7|dFyw!!zi6?G1ikZyKIk27xi}7=8|dCG{#HRdn-I^*Q#^}Z=v@& z@hP)phZ^3ZU7N>T|EF@)m)%J{vljt%a_{)h>p7ZU$cZ36Kb{3VN>l~Z4jo17Uz|jY z9Ucc1KJ^MH{5Xsn-O45*QFj7ftnL|bBe_4#>3o&cT6rzt(1mFMM@bL5F8l%MzTtSl zZTGnWGrM)A>#^Mv+jsP~`(XQl-nQ5;^XH?y)j_8M_|mBXM^Ii_)HmkT`2fqB-2)0x zUp?56^m~M?6~*MU)URl_B23y>J_y|Y}dzjUA^rXY)9yAi}pwA zZU1?Ev|fJcuPD9z;`sW1Y)gNN`bB-wdi(Xum*FV@dW_=xX`mA#seU*=;z3U= zKZIuLnwE8H->nQ`|EVci{yWRv^$__J_wV<6Yw=E(f9yzOzc+@9GlXqt zKN$L*>6-5;>Y9IUb!OWpyL9O<4ccdA6*Tb{d76CszDvKH5sO;o``7Ed+wn(}UCqCy z(EbG#)s0;`?{4Jp;8*>83hfwTLsnhsw7XU}8~?{4V`vpk3|V!)!|wa7V*G!-A4zZA zbtj$cyXoI~w`q@ezPS%l zXld*>g+HdTTRX*m4UXT|q4Vx3`?qI`;|IcD-q;^mz&!Jm*9naW2Shv0vs9$4Oo6mwEKh4RNf1NE3ObF6)%(vK;;V z-;iJ23q>ALwmkOFx@5Y@|D`CuJVur;_DNmVrC*MITVy#W7MOcyOt+!;7B%)gKVpE_ zF6ezWocCQ6yVENZy5Fbg{_Wm{WC%U|_|$+$fpMNfw_P_aAbVJ!43Xa}_EJ`*2Ca0* z?pIr8hPJM?eH+rB7(ViyX7_qq7W7Qx34WhTjLp~~^fM=Swk6z4=p7c#$sRa+nU}EP zS=FSh{?P|@=>Y@3`+rNFS5uVVq42}5*QLv5h&&~7$N8sLADb@pndPJXzt4W-wH`A%g^|8d@)-q}cRGpt$Go6;5;BF~xh;LHabqCCa1)2ejL4&A>aL)cmQ zp_AX5^h=(iuE*u7WL>dY=OJu6xOu4m<2|?X_umezb+_>S&R=+5wAyOb=Pe)w&_ zJbrW0erd04pWH9ErM-XJBlo{7s()-zc~6VB_x~GvWO=fFnSb9O_I4`TmSg;1op*Ad z_%F^6dA{l2H}&t0B9A;TL|&O++|y(}ktTIfu7pVccQ(j!L|&?dw4B}K0o31uG8L*-a;R|%s$ID%yWAt^akVXvn&Ty*|8pal~z;z zoZ?8jIJV@?nOXiPPGoF{o*jQ<*Ib_l8Ec@|-)o;WJ@Hn?Qs}#{pUHAC`s%q3dg%3; zS*brPz1BiEa>(>|xi>dM=-phq_+LEbwnLQpbxPZ;*~49Rw!N%s67cpxbcSe)+HRh| zf1&Y?MbKaQb@882Hs5O%^f&hN{A;W{xNQOSNv0+NQMu-x!UoGO$NgRnsOlwb&To6% zkDajCkp{idar>-W-?nQ@KAoLY`S_tAYs(bcI=fo_(cW`%3WtRRZp8dc#YXnz!+}{j z!H2x|-8C6QS8nV^CheV(<8pM|zT3S={A1hsk8P(vwyPCwufp*YaeURH?W4!zNt)}- zoLzqp-Z$HCBpv(9n+%JdmD99r)V@PLqv=4WXX^Mdvvcy?OYAGvGMUzYmZ*LZFek^N zRm$FW%Twq&r@>*1dd|s-I5lO@@y{uA+mO*AoBGblnN)sOws@X8ap*!=uY@@{$7{aY z)A)G`Efu^*{rcxeOpkUOHqBjP`}vzRql8Fn~Use zT(sZ4Xn#o2wiu&gEdQ%etUB z?UDQBf0;)dEAGp(Oj(xrFOQXZMIMnZ^T_=&UB3*ON0u|A#tV{Z>qoObmtsQS1$`Uz znb3Db&nZe5`m&;Qk!J(+>BzGKdN%Z_MaS-kJ`H*n($k?&C@Lotx+s5dQGTI|Jff~S zMd`bs&nwdNi}Za(pT>Y@}xw zrOz$Wck3Oy54zvS1M2v`^|Wc#qu82lBdFY7QMB!Y{T=l7i|w}9miv9N-BNG=pT~>+ z&GqsJV7ryxwme>z=Z*cX_4bSUnqhmTo;_{!_WNVMu;)+v<@TTTiTo|}ju-X{`(^#o zUU|ISufHvhm)oK|{q{(E<$iIzetzj6xnGQ3d5;q3oV>67sf&B4$Sc$3IWM*)#IfSs z5Zm%OQXC_7nJ)gzb4H$HGEI~r>yo7m#J>+oON1 zNSFDf4Yeb>`&a6mL6$ep@!#(n5#R(p)G)<=MpSHoBlHeK$7UazIy1`?y8Xq&SuTTT zW;#RnXlt2$$MU|vEA*|_oBa(h@6M_Lz3>0U-g|~cv2E+Zf(qsYW?kkisjC!)?wSTr z%sGJp5OdaLTq*_>%$Re|fz(x~Ky@`{#hepjR?OLD_8V`no@dwP?0xU^-F?1u@AoW! z)HB~P#yiHGHABtN%G`BBK2ztsT!wIJKL;`Q?2EY5agf~A?ih`bV-g~+#S?3aBAhYs8)97}8|S0-Gd zaBXpPmk^~i;Z@BmCoa5FR}cu_JblA!WyES*{Q8UMid`#|R$NKnuV5wdTSh0KRlToI=$QEbMv~XcacJthZ82TQEN_{c9+XE^*irs*>Yzha|ui{xu!lcC3bhU zjCwthnJe!%r53(zDtxxErI`OD)*&*=BtA_OaU&5aeb^sG@^mAj5(>CUILw)4_0!8`qZr_~z3ZrkM~ zlBbdkdwa64wcGF5?X`CO!w!FL2fqW!+w6Sqe?ljNKOu|E{WHkFCD|X6U7!DbJ0If> zeH`P6k0t1^hs0RG7{NM%W6XJ+hZJK1HemF5$bA2)pXc~kgB|%n=6<{kTm}br#N^|N z?}4F5d_L~r%P}|{XXWtmhN-;}-r^q*qy%LS~z3vq8nLc`UfLU{k1iemHQiVS|)w)vF!Mzh2{gb!5BQ>VGnRZJkf zx9Lt{v46S@eDnBJF{$)xF_v)GsUPJ2W!s1<;ruK}X?c8=P5*dMxbo<5s3604M=hm) z?e+$gEi+-Y^5g0j(M-6gQ-ZR6+y)W)zW1jo@imid<*9x8hTLUNhPa#b3)e);;qF6h z`mOA&P&^`2i;qsT)E??5Rd3dVEiQ6R+xjWR;_DP3eH#$Mjw5RIsae=lEY*MrjG}@Nx^H!u+! z!L0pfL7P0hgk@VoH!0xWXg0NFkoKyPucg8FE>h>aqu3kb7uWHhl)9jmkJ)Rf&zeb( z&WADwia(O#huY&Kzu~(4vgV&v#+c!A8u~RJ=#X-KRt_Hv=&)K2J85o& z_Ym$+*o!dMsKJCi2xI-(gRr|Dx3=rCb{#?(zPkwzBwUxUN*Hl!5k~xxgax~AFT#j} zwJtb3-wuS4FV?hu2pjCaA%szeSkkv6%*z11r#;SS!tjl;`ywyI8A^I!l(Vzl7aZh^ z_`D2=4}M?LBPPn+k8p1HgQi>?nwy@LXd>O*HJ;@n*->I!Ukv#u*O;}#vle0B z5dlhBuTr+W9Qx!}j!mm%ThsbFj!_C1>?orQ+m?Pax44>Y##((?#R_8E>2t+mgr~Uo z6^?{DE8r|BH(6PAeyvcK@SM`6l#fdyy|9MwU#+~@VfHlv9O*!S;N0Y`0sDeg%W8>} z&0&fM;l4)`g&Obcn#&QMd~=%2X#Kog4)dM8BEpFE^9x!(NADVy@~PYc;~%tsZcFQD zN9#$o&*2y&*3Xw|{k*F}Z_Cf%>qe}fOVIi`+uArw`+E*1zJ8W&UboCBQpkk$a|c>K z$Ck^qM4fjvZKd_I1FfH3QXg4vc6T*l{k(_P&uN8kTPmL|Y{L4P(fV0>mS)N3n%9K& zb4s1l#!qXvStjoJZp8X|Hm#p~I`_344ZdN-`uRDnpAD>_=~Ru{Ml-FSv0kS2u4%^( z{}ilO?~>e(t$L$n;dm^TK}4ob#iNx1G30f?6Q45Zd$IhBi`rj|Hu#V+;w)y zOeceX$S(6fjQ-2#GpsTBS`^~|;|p^U?0j6HpX>RU$G8o?=>Le#F=BE)w;=`|#77D~ zFzi3=Sg!|$4f$})eIX-0Qj~>b&d))5{tleWIXquJM?(e%uR^%9i1qMj)yHJ4 zpLbpFVGgU%)3#2oSpJ~Ar$!xdKk4@uT`835-(SWWwb`-$;+X52fOTx{LPL~>J5QMr z=hAtzl0IRMm_oSd=+VlmuWdx|tN89yqz-<{F2dh@l9h6ew%KC7zdu8iM=iIllaEbr zC$0^wB3Ou%*_qFjnjBbL*>edog!jZf8SYICbSb%3AZRYU2Hg|gNT^5>jVocj`p$n zMoxJpmZ{cOK>UhhS}HEIe%=(FW~w#RPpd)e=S8%BUi&GLKQE>A^Tn&VO_f>&YFIzdqxG}X!Tu@JKX=!D(E2%)*3ThfPt_CogEXw4tJC_~ z?MpEWt)DflpD)n*c}6uC%h_k$G_0S^w0>@qoZS*RD^SDw*+A>(oTrYe{Z<8OSU;Db z^>Y!$PhGULyN30%JFTD7u8sAb_^G>w^|O`M&t7s7Q}XL>8ecyjZME4%>t_w?=WKti zXH9(v`D=XrT;%m^)9BOfG_0R{(E54Y@Dir23EecTpC{A$`DP7gX|*2%P<{!jLPb~_()=&u+v=(|Yq zpnoGpKj!0*k1yz8!}tJ3iigMHGU6j99$+2^n8!jKUJmGxFOLfhoBly8=#e6Cq~L>t z_=v}2@|2ecTs%A;@&o2Po^t)3T~5;5>4l`$_l6sH5q?FuDB*a*_X(%k^^XZpBP^5t zDdA3pV+emE9BRj32^$E~gfaFgkU$@%_k^F_^8+N%p$xn5B z$n}E%VQ)z?;&Xlrl3(iLwINv_-=E|+I(t)+-|6I`BtOu}@Xty4@$z>eIfqUjV7H_E ze)N8wNPbBEoZp9J_+B!AGwNBJM?hqP3kM~9WaDH2oU+ZMv z?=cSeSU?|!o{x{L9LRb;Fz0g{A5+}M{|z(j7~@Fsa6QHlxUli@1exoBd3iX_>Wg^b zAO`2~y!7SC8i&iAtIxOlpjSfMyAe{aYEDACQI*6Fggf=#EUyTgBz7XarCfXS=hFub z9SMIf*hAj6w5ZU7aE?C;nRnDLrGOJVazlF*_1Stki0~!f6>@`j zk!HMC?+-cT@WDL{h*PuoI$>t;0s-+WciJm=UNy)I<#CV`W$BUZ3H>Rhy%2cQ$vWkE zHtWm7Z?&PXzDYrL`6|cpIs92PtjIJG_YpxTijZHa0w{~-TN{k&19WEt(5hqsl1d&C*R2; z-y=Dq>>Ta06kuIB#>wh^AVBKlx=qVy9b`T3Fk7otoc@j4cv*YWzPq(^;z;A!_p0RW zkf=?l-p$(R&2v+Ouc=aOj-A@t(Y>sVth{%|Zm+|Hho5*QpE|uzI6(My)p$8y z_owC~gqw^lBLq($?g{>&Zj+P(rZnLo;exT#g!y$#i{OuOX(FHY+MqyRse!8!6IGRjgqhQ-D^Pnr{gls(^w%Hz9*{I z5qDo*D1d+O_Zfy}bLuGIBz6l_dOFg+mvHygjq;^Kii~`Z?-hjTMZ0bMGrK*N783;p zz7;1IRGc%rh`^sp=2p&x>^A@}`_jl9xFDZ!lyINJQy+2<&-*_;~=v34cT`Wr4TXwnD_`pDR&%3^9%i<{M>bNypPh|k} z?&xpwSEHl?P1b3rIuBqTcDaaM_9D3n*$dg_$|U=dT#)3`#Fw(z4J0=udw#pUgk1(7 z@vD#=Kz77GN%EjW?M%y#M@cmYFVcp14`Rn|^)MYwij?}#nW=3nK7>`NSrN`u+$wM~qk-FrxV{P$`__xES7J8n%*d*4dx_4=^ZeM4V1rOXB2Gp)KvsnM!7 z@Nz$v-uAljS;#Ocs_r(8%^b+aB}=Bqy{1b?do0jqMhs@hDZfLMUq5?(e2k&5;^AWg z{g}^7yub4?1P<@-d<_gfkHu}^>wWcO1$^#{6zg7Y=X%5gkH_Qr@^W%L{CGaR9FP%5 zZ-Wl9zMQ~WOKKLQHmDn%*MtID*T#9+vNni9sO6| z&(Z(&V}SQ{&O^%Wd~EP>#QQzpzrqf#e%x>_;_$J=^MpT-$z$pB;}|jE!?}>bhn=U; zLFOsXi|4`1$jb*k9?nOK=UY%t?FH@i3f&)W{74x4&||dk%ho-ohJEE{!aqo#NjN8Q zz7odXaDttW{o_Q!f07>i=&E*%y>ouTKkfYNgdHg66VlJ6n23YCe%LYM?Jo>jVB)9lt!u2X!*+dOqUm`PoQ5MtuJMypQw#jTC)aug^MG zV8a7F9*lp;JO;NT<>P>_gY_I>KHj*V^AQ)A=cA9s^?dEjIeh%_G;1v6kyV$~7aab+ zz;hPnQ@YV!?|RKy_5!2_@68ouVZCu3iErFbu~)Uq@I`&p;# zCB*Kd4w%8os6SZ9*4JBUMfgQ@K4Ig4Q8wT5hi@gEG<=ewUs`LE(6zx9oA2#ax8;?8 z{2^mc`lR1c`E>X7LLlKKJy*y_%C55cy2pQ(D=98YYtlEU+gUifVxQQZa9(3&;l!F3 zGWNVr&*m3AXSmq-y(_;l`wuN4Am*uy+2r@1q7{_$!pj_j*e60j`B$FWoUo|m5gVt$ zt=96GhqV-xKX;KWa*u5lZRY^XJI2Wkk2>38F5J*m?n(RI$6s}N^u8z+-{)X;n`2}S4br5ma#v}*@JbtAtp(c} zohmITd%?7E)?F>BXbVBb&0+R?j8JdmByDTb|N3u4u@9Gh}By zo^LeWE_F<6v&_f}7s7&q$^x@(lnVD9Bw1hPv4$US%x>0sV3NXiNK-H5vp#Wbz}{Z^ z&2;&Fvh-tEcI(SDe->K$w5fo{eku6nJ8kUp=Im9`N>WC!S^9I_XRTvcGiLBEBFU#@ zY50NcR^My>tVG~RQ*^C;Qb3XA0u4*(7J?rZp9Sf&=+ll@ms^> zgSA{6r|27Jb&}jcFVgDOO``>f>BeY4?hezsq{g&?*=vNM~sOD>QI0 z=4(Aun=p2UltlaA!+-66wbJ+JOW6OW)BbmMu_#S0yIk_4{qF%nQKXvHI-^{o`b-o?K$ z3SVbyu8sCcJ@)ry=gKuQmD(4jz0SK(%A7Qa#s9V6{*V0lSmARH9~T%ae0=b+fqo4= z#u{`yg&s2JajZ|l(er_!%jyd~xAAzK!}&<{b1%<_`|*_f^Y=i?F*w|gczQjr6Qolr zB*m3Gc3r9#w#cw4PZ6Os;q*#5mAem)3uOtv+quag*IO)LpSyi|6(yjgvjF~;(q)uQ z_2OmlQ|eY#K8%P`pg-u_R5^FrIUfAUwYn=!j?WXYk4_wL!ThAoQrrGI-{IoQq)y>7 z_*Yj?5PEkxWQ+4LeV@?fP;MJX&QnM3wPl`Q+b?_06h8h~Xv;T!;6-zxqTOu!++&?? z%K;BlY?z&xrYJA+*l^X}gA7JBpY2^LHEJSf_KLKXzm$JFp;$AsO>Y>p+mJTHI|1=u zz3r+bnWxCu*C%zgn&%du>4|r5`ntZ1{j4e9QgvRRE56wOo+g?0lj?B0Y~Nq1>+NzM zveSN4rTyxE@M-_3_OQ#h$=-nEBRYR0$tC*!#m9cvo8<9!`$LkEKaX!AxgN>K?e-ZY zHzJw#leYY@zimh|?N4no_N(x}Y?rT-T!-YfcKI>Mv_Dl(*k$Zb5l`=r_t~zCNBisl z$Pe*QAGBY!-%g9mz^!Uhh?g_L8I3$c01<8wP=p!|@5`2!x0#mkF0 zcz6uh`5X;D#6UjKnV#iheJ|IS`jzyPjD$l74467k;S93t2avwM z-4}S69rq&~O1J^}4kZje@L;!m*X(Vtnp_G&`VE#F+qAhlneVJzci zEA0-{i9T zH{Uw@cBt`b^#ApnxR^Rg`+Y*A_o$A?!r7ppyr$|kJbbL*V%1_N!`a*pUZ&Ijm+O~r zk)V3W;cQv15vE-^1AT5+mDR+_;cUoYle*Q?*0;v^O=@5IzWANUuMKbh$hSa?vFd{G zNi2FnHchMGY`i^cqT1sX{eOw=wT+kSC;N^_U8Sy}zc*#hSwgzFVZG0jyBpPGWhOCi z%PUi@CDnYsyk4(f^`!rA;g(mL7rEL`{TZrn$ka9Jg@fVjMaQP5 zr_Nt|&xJ2i-)#+N_gR7|bAhAL;byeD|NCS%{KaC^;z8MrH$xYyzXyafQ+!2J=$yB{ z{Z=hjuUf;|hCLIF^Y3Q(zInJzUG$9pe|58hMvrxueIxp=P!GNSYdxBa`e`A0FsJ3F zryxD(yU^#S2YURb0zIGizy}9oqL@zaYS-taw5VMVAI`zQgDPRyBYt6e5F7axpa=2b z3k*MuBg8>o9|$8p^pFt;;|)H==|TF@&Vd~^?#s)G6#2ndUw)2xnK6ceE6&QUWdAWz zTJgB7A-lm<$WM5q^@X|UoOrVn;fIY+n#T_6CgdQTQfRVae4bh6JcMUH-Yqz_NRhJ< zo)_OoxG}At0eD8Uk@Btc7mG&Thib?<1w6Zk6Q^-)9JU zN$)z%Uk(;(iq3>XdK{9M<#Mp`KYxla{5kZHE#G!t?-RlTl*mW-Igx0{6IKa*sX|F`wc5*9tbZ!SRi`im)Y`?LNc-sS4DWJB36kLBEiZ|!qc ziq9;p;JsR$C?=P3F&a=#wdQQO@v!M~KEh{5M+&<|FScQ%k5N25)_6X?9;=Y8Haq`^ zV03#h(O7@3i7h-^ijA<8F`Cn67^_`s!4hUVGoN+YjZ6E?HCC$7jZLikPAb#?zOURc z+Bmab2rFv5DFvT7?7KJ5Vq@VJ{a9kHG^s+(IN#dZ665|VgV?rL2c%vHxA?yNW2y1W z?ZJ!*N2QmQclkCiz0|nt`ye(U_LfxQ*)iV<#}*maCH7@+g9@?-NAnx+KAL4LlBXk^ zc)c2P`QTLYg!3}vi&{fj)0o4ORBwlGJ!z@Yt<7N8UpOe;EWXt@*O;Zo5*G%uWdZx8 z)a5IDb2eXQbU!(i)lj!fjm}Q@4W7Q-`1ryI=3jKZ^!dXG-)$}{jBlHcvi12)>Z=$N zn1>$FgYkp@d!HWkcl7P&g!x!`O&B`NUvKH*|EK32VT?D#!Tu3E#KD-t10SwKT;z-K z41AL?@`dkRdXN|5BOc;HkLMmeT#vuk2Rj~M!~y3$JxHNP**Jy_4);NMc-g?g^M)Se z4U9PRy5+WFu3SrV5OA;^&m}xarw3;haiGV%yupq!C$6*mV(wdE*JDmxZ^t7Eud#DR z6W&O84#mOzyWGw}OvHg6zPs!g`GSvpfmhlw$_f5#(hsv^aC#BuzL;C_UeIICMR^b( zWd_FkqHKr>J%3+)97gkRgNkobR>k%*KBxJ2$Cp&?P2}U0!Rz}NUlkp~j(lCJwFhdS>`!Ko7C@JO0#C&jd#ZlW33iE*8Jq}DT^Gt z8@D$LV-Fm1TD8U(Q!+CDFwRH_WG>;kttYC_PO05H+Sv3#7uL5%ZtLhzT~l6Vt}=R- z?8=56Drha3H!0=#u(iep2RpE9=So_A6AGyPKkPIvoZpg-pKw5{H@~TG?_ArB(H{o0 z=dn*T7mqH!7Q=eu+@#*Dzy(L^Vvl9@JBKVc9{m}_&ig*rW>`{uDt}yM91s}Bp5EH4 z{dD&Bjj6oBm|Soei(1=LTk2BUH+%JM#w8cVvuA6YT7D#)@Tpop*66dD{{GK~2-EFZ zM}1CK*l#>Sf4{P6FMo^sh+6dzSBo{~rTI8-?rPfltre5n71&~Y95IodF0$6LdqORr z883Gm$9smewTlXyPUX(!ySJTUTzE8`i6_1qJt`IR^=~H|YtY{(LSJ>FevEk#n9qsm zzZhGXf6?bLw(`&e4sbqtz;UJ&zTjY9D`Lm^9+b3W@G##Y#dt157%Akkgb@?|rR*4M zTkyfbSjF584!#MPf8mF*2R;0d7v^8+!RKXw%sJq>(1R53#r258%a1&Gng6u=R;lA7 zVD6iwWSURk7;c+S7vyMYzWGNz+uYZqWf6IHxoisN${eNo${DY&$(XNCe_k$E8oWqw zAna0foP03mx{UeDI%=*wzC@ZCSnHZkEY^9ffVoVakxwqrK0w5LH@jSS!7tlf1Mt&v zW?|uMqiz13bHrdS<<~*LJbR<^3^`k#CbqotNA(dZZOpXI?}o1nh4;m$CBS##%;HK? z?IQy6y6IlYY%SzzizC(XPZ;^*upt-eQ*LxfsF@>&0Ni_Yq+G?juY$Sw%#8i!8B%@) z`qbS8#XL2BlTiI*@b)X7$ckPdm|9W?)r9pR%MJvmmrMDy>&S?)~8sH?h)OVo(hko{6{XN zoVl=2ExtC4NoOBQTl_Ah^vPJL_TL-Ejvl=z`F2c62{^l0t>!d<6?{6qUb&pEz6;;1 zR571^&9+He-DrHujQh*gai>PI^Y#CfBIabK^tUWf#qz=IW4HTKvx;X^3RhjE4(`y0 zMLC_6Zkpm#uI*T&F8nx<<+-d#HQADsW%HM*=SK}=XDr*Lq35Qj1WsG7uA}+#x9Pj2 z#myp90%^Z6uJZ^sbxo%93Ud~!H?oB>@xTkI{lN5;S1+Q~c6&mZl=qBOu#l26 zz1I@8cI$y`ZPUe4%EXQ-BM+`n(<+Q+!Ifu8e=^^c4oz07g;(Ov>?tgR`YOf%`foZt zd>*_-7-JGP%zMzIzk>rEeD4tE;}7#SFnpd-%K4bbFs|T(`IqxC_whLqWAza|hzT9$ zT;NxfVm!kab3HKhh>0WID+L4T4KX}N)BZE*2dcKnz&$=8G6BnBYirt_0PX+ zCy2jgPyiEJ7PqDm{-csFn;7M3JxO?FM|T#Q5nw$3*%%(%IyO`kHlB)c?Yxb-yY z*UT-#YHy!p!%o2km?dqR4Y&T0j~yu$@qY~O|Ng|VaYinA!}kFK>hqWU-&-H3bKb9i z;lJuaUk~wv@>=8P*0bcvlcpvRPR*U$Qf>Ql75do~%|5O_-7V0Ui5X}L-80)_CfsF3 zcFD2D6^l%`PH=lEb4eKuxb@L_((|cZv_!&Vx9*bi51Xqggyl3<`f)bahJDH&k}8?c z+pu}tA<0e7X$7Yq=^cVfSP|bkZMpQVTZ&E(vf(`E9i%>V{{r-ZFN;Z~UQV^~cjT=t$Z%}?tPr)HSNA~19WDJ^9~N}Bg7?#F{p)(g z?bKM*21KZV+aQ|9|585F=0#%7pFd66 zeoSI9PF~(Sy9Fm+-&e!5pU%?mR5y6f(@H7TYiw78-iEW0UIypqHCTvu2Mwg_hn zcX@f6CN-{8(?PRzdpMar2{!zf%lf_w%-6M9^?c6cdOm+)UWE_WBgF$9z6%`dIb4r9 z4-eRjLFf8oErC;zC2|8MU{L;ZK^G=uI-n@!)bXu?YguOhsG z@K(aR2*(pnB%Dk*mGBY5X@t)azD)QA;X8yM5`IefHQ^70zYxyWVD~P^2Aw+PZ1C&; zwf}to+OInKudS0`_t*XR-e32tzW@JS-}wGxZOPZizwlpsfnW9TUsn(R-S;;BpSmyd zSHA!KcXaYP|G(|t%U|XBzx!U&zkB=eeK$Y9!hZ7?{_8B_S3UgK)Pw%+SB>s<-8QeZ z6u7yV^$_8n-HS+lsu#7MB3x)-cF8xji1jMryUDjr?N$}EJ|LWZxNPc{JD>F};hI$< zO(ElQS-%rLU%Y{7Z2O#6XSyGDS?e68R!<$Rc?mx+Vl{Rh=3w1Tcg0TJyv;b|O}4)s z-bL@eWbYnhav=xnPQs{@E>tJmQ71=l8RzA9v~D5H>um$!sK|1rbjKXl)r5K7E+u@k zZ68zd3r^MrglpLAKZgTaeBkX8zqdy35e15`o<63^}Xu@~w?Kq6^D)0BE z)eQ<;2N33M9Y(mq{JheYg09wJ!aeN$p(kN+Uva5w&SKUe!ds}%1W}&}B*Gz)HcSf3FCIP7T_`fO7|Wpg?w%*VSh95w;SkmLpH8jWgi-m# z?lpS~p6`m=+Go@Hykf2Hy#%z6>0t{dM&}V-GlGQ)r%Kt{vtK}Naq{+10qyB|D1a?K z?JS<#6DBmh`kSr&cUE%}-)Hm{(EeYp`?2yNIm9is2MD`&R$nFx~+eS8@>z6vJDr|zd{EZS+h!CgkDY~g%hpaZ2j@KHy;I;%cBJJ z$FWcAv0CNd3+sE27AEHQvi09*2i^z`_KXqGe;tO`WwG~O3Ey{*6>={Z82WpG*)N67 zA>#z}_rh*N8@f~VBGJlzcV^i$H9HmxMvx@!|WJ*-1W@k;2vjwFEe7|PHNoItiNyi?}qu^ z+^7fC39lc0J@9%%-3Akf-*e6D7WLeN^r(Nt8BBPJy}fWpHrMwe%5+jhH+R`UdClJHe4J^t^2P`1~&Ne|GP7)_bHO>+j{xwBIYu@2SSU(t0~&{k___ z_gZhy8V~nq>+iAtn8hFWSi_&+%l%9K_v(YU7r&<*_n_lmbKahhNY>vQ&hJgIfma$4w++|b#sh=!}8DWF^68y`DgfF#X(-Tbo1Qb3ID75#J>yTb%=WVXLX{l zbMSe);NL89Uwu33`TDldWBBqo`m*Wc==oTa=*!0Q1&7DszWTf7YmUqBjyu__9`Z8O zQ_}VT`>aqCmelwfgFD#=yo@(Ao5yVT$h%(ZExZ|iWe@IWZ}atw*Y-OO9=PZIl}DtP z?}QSzJLQZ1Ea)}$k8^H_vwG?hxlmaz+x_*s29}i<8K2njhLPTezZ>?7EN8pp{&t^B z3C&9X5sUiyS}ag#JG#2Z3&J~UjTa`>E9w462fL7!q(P9=6^PvZL-GJ9}1W+8Im_F zv6bhI=N3cfM*H`Gf3evauO{mkxdB&uc->3iulW7*`upXZ(Eakw?f1*Wj{D{Vbob3S z%X0rb`1<4?dPwHpS3^zv-tY*`IA3yf8>XFynjOW%ObZRnfvqp ztuH^`|6i2{e8l7Vaep2U-)21cUL)1-G5?hwT+9uy^RsZ^tbDH1r|`pE1)V;xza!@L zqOVV`mPbvw@5i(&*AM1e|^6Hv-;2K17F1Fd1dv@%D>ab(Zlcd z3Mu&NoP>*Ux7-^Nu5mk$VamKtvHpaY1u2G;1FyOp3GdFFCNvy>*S!(pa`6WYxvv@A zn-K2nP|EOn<$L!4!s;SNA)@3pH*k9U?>01h=TJ@R~YJZ4rK=m*)k5&HRD#f9$28Jej?40!>7IipgZJ<}T9@#w_6MmpBFdyx9 zJqGP^dX%Hrvn~(apzk)TiSVTEOj{d0ay~21S+><3?YL|9Hm@?nPPsKByxjex`B9FA zwtDve8gHodxm0b$smN-XoA)^8j`p4B6=<;ZKj8*n=};cw-QxSUw*FDLwXk~A;aIfq z#NW;*#9V7)%PYfirJ?ws<9pDiYbV$A@_L=m12MxwqYdXL1=!weYs=>beZLyNtcxlH z^iC}My=_9rFX60*Z&h^x$;H#0;y2Je z;cWMf!=@jOp^4R8Q-yiwCbOS!?wRgx3`uNy_=XTVcrqK*?}O=kuaLxJ6`u)bt4*eR zo4%T^Ee=V%`sSree_N6+4gd%pz8=wBY2QjBMR@0}Qv zGDJR$zZ*mSao_abi7jSF%IJ>+YbW`}&+VN!sq`}W{g1!;Z}Ww{6HobVlF@$~hMY?& zvbcBR#EZM-7_y_kcO$vYZnKR3ZfM^^Ek&}=!M*Z(8V^~=2fpE$ANaQ#|L>E}7tnD% z{(mR`KcTR54)%$9%;zKMxi7cFh8TRl!2ciRw!a(3|B>hK4$SLTKc7OcuTNfYS?ip~ zL8`BFuGjMsQi!XB}6im|)P+ITsRt>IxN{B_*s z1V`;&Yy#m+>8H$}=Q_CqC&;Ph%^pQ#;t6MS-yt7;Hq{-t>5SsCR62SO;=Eq*+FWyf zY%JpZxy?ha`QSzju=PM^A<}z}jeqB24&~bKX>N$Q>cTns?}qof*0$AW;@j%-+Oj8Y zbycX%YWeQ4NH^4BU=?Sf@sXwO3gJh^+8Pcxb#RBi$jh0+y1BRAQ0HeCM<#S=Uc(k= z;KY|g&3E@~_1v}EGP#xK2RGFDkW*LXb?uXEoZuBzWpW7C5;rcp)zF$4sdrM8ts9WdG+xPK5AJgBrvCHG^a#s6OyFFVL z`)j-W(r$0|;jeg{-$2JdNco+!%lGX3<2pOaQ^+pAwcB_6l5Oqt@74!zpX%@aY9C(z zB|rWpXV~kzf0p)`l10wyKQ2qWLUx(Af2!S|%ek`Hd3;_zeSbiI`TYKWEHBTW#~W^s z|F8P*C%gTQ{r&D_d7rL!nb$`Nd-<~Ve|+chedgbG{azB^cFY-k?%}DPqu=ZCSV*Dg za|GmH_+OugpsslRBjxkEz7B!89vppr@^;auXgAK+@Avg_fVmIiaX!}}g^vGy4{&&Y zK+4xDdOq^fzYFk(2TkJE$ho9(gO3}A^e-K^jPUHbIfQR*m$^g#O3Fy^4YS7VB;3Qd zvQU8i9ve-#M1{A)%wCn{&|h{`7ch`P5v48|rp++l+*si?+rt zBxiceS!|Qr++X)}77AA}-w8IVj znMKUP)pi|X(H1|SWh8j^o*280aN}Gh#YrPJ#_l3~_SHQ3&!VehR}ijL=&jJQfs@A$ z!dEkbWb^I2HcmjrFk$CmOYBP0`!_vqXxpk)%v!=1u4E*PIo8%4V>q;kg(c^7pFXTw@(|%2EU`g?dPFjAotM{;d;VkC%26a~7=%mihiFJFt3ujw@GaBm; zicZ=X-(hd;*Kjs#l)I^H%jl$-)_(hD9j3pN*>Zs?pG$Powgwyb1@{VP=e{PH9$Z?G zbSvQezB+H{Zx@umWIDZVLDFdD<-RHFC$ryArkiRmTac7@^rwB!(|*bSZhf#VH%#4E zEl5hv^>N>rS(DiZs_!(a@5T1|o>KpW=}7W|q|jma_B}i}nVq(`PrAK*W-Qufs{L+3 z(x1aq_T8=;&eq%8bF;lY$M_F0?evOHTE(XC+q9JKwXnB;qP_hOgx@x1_KHrr82)wd zYFcN;P=E2E{?gXoUyiMwm(pQKbkf$q^>upFH!y4e`q4VCrD@mbB=Jxg@1i&UbAMdj zc9llU}PVf8>Zxnz}c}d%pi){XH-B_Y(I0-tXdWOY3I~ zl3E8I@P1W-elN~4KKML??>I10j`7XM13l+)%u{gr-&*9~e{SO`V(^%Jet`{q&iOlH zUbp&s{#SJcJ+C7^U!(3&pS%uH$NF;xz(RZ<`M=be{#~I2+M?%3C|=POE{760>TM|V+b!KtPqYT98EZh@NPS2A7KmO zd8AkEocV56Hetj+L>PMT_xugI&@w z{a(Uo3-EdUBM$W7qizvrJ7MV2Uh4?YvGWlh9Nxab$O~-!J)ptpER=`Us->8yI%%R+73=A(KmLU9o#R9LQ4{Ioe3HPshIKj7b zoLrXhz0viB)rT7^@GTc{P~5P4t6YJw-UFZ!Vb3!qmA-Z9ZXK$JVI9keb@M$F+z2mg5F)-h zR#ZVfhh{6LB>Ze4qpr#~Y$bTORFG>C{&cmZa^x!AGfTMfHLK9I_-g~=6w0<*$q`#g zE=f45i?@=0>Jvj5!aX7%DsD|58Hx}-;Mz(^{}F79-)(t@P$K_mp(^S753Hu#UAajp zPB?C(AR7)w36%-YE?!cZ{j!i)jPRf@ABAM6oo*%OpbVdUb{kyU&ye#F zURZ5~LEo=@wz_E>m6%neXA^p2ClA}ltvdgfK(#f!I&cfeDa%Vd~(zk{d7I`Mw zy-%dNW5h)E{%vW^^>UQ&%(Mln_0vSgrZ{Pb3UoK-l-8<6_D*7jN?oxWS#!qd>>sP< z7(JQIU%ko_7g*XPPfS&3XQz8WtW7Lq2DC68c0aEUX-WIDKX0q1uft8#s%EHZJ;K>2 z&;F`Ig$UE?Dv#8+ox|CR;PUE^ACac2r!v);cH!*#lFDkqBax=?Et#rQ`*7yt=cP6* z7HLvyXR7%-gtOw)ny91S%rKP~2~+cQjxgnD{zz3Q-mK6W>W9YDOsz8> zsPDVddBv?Y>WZ=9rlu9{tL1{i+5UO^)e4ixn{K(>Rd03=XBPsmsiqAhO(FX-)Kn_p ziwfV=%MS*cZst!{yOCVwW?_p@r%+SRQrA^C@^>6o%~I=oSJSRLm(>)?FWWB3;`6Mv zX>^|p>dZFu-3aYsneORl8W4L%El&H>tpi6`O5d$#@;R8MI(vt+{7q(B!d%=;Av=z$ z4pqY0mL^LqZSIse1r0c;rWFWhH`WDdCrtc@Sj1mc!D|?+yxi==M;g=^f z=N(o{oA)1#=W8XZ>&%nc&`M`4o0p^;KkkoLKhBxV`VL69tebVnc&hy#^;^hf7T4{m zWktT-#x2=*sEzAPW(zO>Y02Jkv9b8&&FUnl$!u`2qt?F4c;onU>(wDwCb2tHa%mnf zS{a{xU#&jaI*FZbP(Z8JzKW6cS)nG6p2P+$bJ3c6|MY!9cN-mUGKq~IUqaiEFWGm~ zmxbzul9QPK{W98uf@6Ji2@BM1uO_l-XUc1%UOD>~O`fa1IzEy0@~*7;rIzstTQpk@ z*fx=sEL}}2G_Y23JuOPD6E%_LA6G;3{_|$?WhqiEKWrkK+p3oKu4KiOyhUfKJ%c8) zZL8^q3!!Ps=LR#>%B?1{GQHij0YN=dx*Uv9m-$U(S;q(F2z;9{UvrFaI558Xn6F{u z-*r6)Ha?&8`5xbWV9X1M%kPAMAGpu~^Z1CXKS$=jX(Nt4FFodY@p2>8$AQfAf}ZEa z^X79I^5U4s)W_kNa}X0ceN4_liuiaJ&ezB1Wx#uJJ;%r!57+aU(7_LS{!aQh$O|&B zbNF$L6f$C<+&m9n2k_&3#7BE^9#W3+E<7J#eSGKd5YDmdkbGg1hXDP^5kbm5*QUZw!qv~jB>0>>Ebk^#J!}S;OwJp5g!TQ-#M~Kxu9G&Ag{-L%tBb| zTARMu)~{ZvJ3pEeN&mFdaz$O$P&N~8)wR6x-TkSsi*QNHS-D>1QZbfruRNRMo;ANB zLOFJuO6dW>3R){mM^j&$z#&8ku{>Yl3R5n)>@$P;4ycKF?t`zYuJ8ORs zj_hh~2LJhm0?M_pYKHBE8)j=GzVDkP?jc;^PID!?e@8Kn@Y;qolu_lFxSz0QDy(Gh zw%o>v5qgXJpA|Ep&KGtudoIhUVXH%}x=Fa#+MuAW2FM-6ZQF9mc=rJ>Hpq|rMcc~1 zeCc&1)i=OaKcmZ3sdJ-*ivZ3ad%7sA*j`(lQsI$GXqUa>KGOfJ5+ysf+bW>UKCkDR zx8>d8g*Mujd`Nk;BGC3;*1cPlGJPJ{$~>ZZS*6m_yb3t`FN6zorwzB2Ib%$9rA`MY zTm1ySudn!)^t0*bhyxXUzbYP)sl`X9S!xgUld3oC!Ag=GN3t8q)kywlcG=G7cJR6X z-HDI1Glz~_+CT70E9JaV^Qtz-((!ORsr1&tY-;a0+OT)S zER_>GO1JY5XAhSQ*0wBcZaG`7i_|S+B)h)7iB|Ayb<4XKU8VhBe`h_zt7#9z@>|YU z50q*T8^a3371A2_eXG8D8YsQ*G?w|jb=1lfy`ffW7bLYgH2i?hnhMW*1e*#g0;L1yF)Tf?mbR;0VasZVKLiLZ_Tu#wB_}@Zc@4ZquI52ewzGSHH$;e zZqk)vquKIp?X|Y61dC6fu99ca?`&g2h?f4mfn{h+7wOsbQS8Ue5nAlcO9i3orkk2e=gMCul~d0eyf92$z>S3 zIDM7Yi|%|oA-9)$CJ$i?K5o+bX3VvGpU_Tf*mf{;t-D)m;l9LD*}JWD^ZGzGt){F! z_FZi;zGyAo={|t9(2}*n?>AbOZE7Wrz1@$U$vB|-HrZi0)V-zjv|nEqJn^_TwsNe+ zt3nHD%(pN$Y4#ay&2-t4`$IFyX>)J76ZxW6IcUG7{H*|~Ku9Rtf9aa`W{YasbE~P; z-8Y2I&Us7w+CA0M@=FuRrEV}=vEYtYeCi>~&pJ({c^!MPJR|RGlM5ZS6jyl}wWotlXLWC;PJo* z<}twGJfzU`IC>6zIG6LdA9&n`xefCg%78eq0du<^>*GVu>-k*HEv+L}6vdB&(=O+7eoxeUF><+qk&Lr#Y$S;pBKJv?{ zlM9mU{7e3i_W5_~BWr!<%TnL4qrG^4;O))(1ME3;cC?qiee#p+q_gMEV(0!(bp1u| zkNkeF|407=AN^5Z9`v^tI)BLA4!*uWLH?ihUml;oU)J}{IzIH@dH#Lpa{+A7aSqq> zc>y*)U*NkB9)G~$d~on^zFyDg2H5{DnAZcZJJbh%ccge=<9c2`I)0lX3|kJ<2Op2p2ebME1O~Q!o%-I=hGvS^jqsXZ|@orin8*I4VU6 zm!7SO%Lgs8okjaUt}Bkt-&v_d`Y92+<@f0YMa22u%%RTT4c~s2Q^xNm+j8d+4=a~# z_2Zo9x!^GHs(?D#mA|5xT&a#tU-n*#9N+A(-(1rFSgY))6l}&B{?The%6DbG?RSCs zPfyE>Q?lFY|D@YWF}P(u0lyJ^{$vnmxd+nU#EX>@E+|UhGOc9%cH`h(OsUbisEqUf zI754(eCg#PemfZ6ceT=T-6GrXHLH~mLa`$!Z0-K$-ca#O+iT|h#Calap&$H@+kTq} zca9SVI19FXS3L1nwjG}@;`ai_@bj|1UokqjUoMCF&R!8=#5uo2@>-IY+GW@mk-ShR zZzXw=j=z`WnRa72hho%8Qqb4G3DA8X7`=ltvGoPT3rY0IsNsYaah&!=<#-v_j?Ja<2D#5sQqo%7fF zI^43NYK9T#{7dMZ|4aD@i@C}p<2yPhPos1GuRkI!0jDyJIOlJ*w6dD-NTg-imP{kg z`P1o~-&8Epl3qL0h;x2VI_Dq$W`@Nr?6DE&{P*abKYQm0OX=p1j5y~%O6UCV8c(x~ z&Uj$NIltwvbAHR%3ipjT=l@9O{3R!kw>Y`pHR7EA2A%VZ8%A12?8`9XoWE|xZ|d;} z11;GKq#FZCu14qlVy93`RH^Gmobwl;bAGq)T`kA&TsGpIzapLUi_cnHmiD<|#5uof z?=F@IPe04N*fU0)^QX}{f1bPbEFBM~8F9{EiO%_Zy0}^9?Ko=0IsYCy=WlVRyd`SD zK_kxj@6b8_)=*bVL;=l+bN)AU&VP2VvqjpNWW+gtMLOrN_x^+GTszT-bN=7yoPXAm zboIBScq7jFC($|o`dNq65AF9DztTCsh0gis=i99w&%VQmbN(1Q=g-w~vD)zRW+Tq| zhtoN~XO;2ls&ng&gXx_A5uNile9=n%?Z;{(&iOCUIe(S*Rn*~qRv44$oPQ9V^EdMT znc|XvsqqM%^Z!BT{Il~Vr#$(x(8$mEjRnW1bP^UAan8Sh&iNx>Ij0zt=NfU&KbX$> zA6v^LFIzO*h;#l5bk6@}KrNr1T9gsz{6*=Uf6|{feG0QkBhL93(>eczk`;Y}iq16l zpmYA+bk3hDH1(Al&M@Mfzbc*ccM9s^8+9@Nmq1k&m8(_d))M zhcfHq@b~3;A)els>ydJd7(5Q=BMvavBjt646lFrbdS87^?vE54eHjp!>*2%m0S9%6 z_v3u{az1}gr10nE2cMS>zrAn_Juj!8gLrs&JRTo0;R`)<9K#pofE{{{p|23`{MR}B zG-su4r!sg{p6 z#2MD|BF?MFFBqvbZd}k-{`L)w@uOKK+gbX-iu1&5<38H*9sbEnsGWY?jPe)Rv)L=H zYZn1Aua;XU7KrF?I~yPO@R~64TPX!+@&`K=Rt_gbcmd~%N>nxnW*5QlTryE8o_(c& zbMJvJ<%CAX&2lo~K(a+y>E>Lv-N+qM(R~f&F zRJuD{bSm;z#@YL@{SI~RZYgIg^J~vc^W0TN0rj>gEmeHjbd0S$?hV|-x{=)YAf^*H|;><5rTm7eoHxp0ZyDK2(*Qj>N^gO+6?HhC3DDSMcNK{E*uA;Y+ z+G4#Y%Fs1mocvWAD5CuCX=(C4pR2+F!ri)5R(c3!Y;82y5M#bm`Hk&;H}&}4tHJdj z@u|d-sA?fd+z~OMY638g9-*v zF(Kxhm9TpQ%I@7|7IV%L%wo=>V$K0`PGcN1!tQMVn%-s|bIv&-V#GKq@~wAI*O|WD zbMAlVpL?F~elz$y{q(z5y|t=()#^}HTNbVJcgP!OJ~k>)okHvU4{4phUA^7ryDb{4 zooJnZ5v}t(w_j^+KBJl1fY$j7(mH?T3Ukb@jpnb^fcg&Y$|VqM6qDRjl*3r*-~wJ#w1QRP3ZyqjmnYC^t1%uM{!) zMJM$mt@GESb^bgBZi%$cuVS757_IY9cD*FhI=|{j>-?#-&cCqXWihs2XBF%GxoDlg zjq`QUFQ~JMb^hzL&cC$bU9m~s&MMaVH_ZXab&aYyf|9iz!>bjFz&8NF|QnAi|gVy;MmdImX>)1)fI{#8y=P$FOh?&;; zRjl)0rgi=m#VeR;onOT|{~}uFH?9)QHF|bXeQ2G3C9U%xdRfy<>-_3VTIc^l>-^5| zo0*;Owp07kI{zbD=Qm6XGUxlyR>eBMNbCGlNA)*Pd*4P4rgi>tw9bEh^;mPYyRB8M z^Pi)2{?=Wmna|3tRIKyQrgi=f_vV^uonNi3t@BHsOUz~bTc}v)pFr#UH%zO|(yM0b zLt5t#q;>wxA2yg*ZfvTC(>niITIctyzs-E2OA|F&Tj%dzHp(oNYOG?NKb+S2=S`8# zE*~4JS!tbr2CefK=zPFj_HLkxb^d5t=fAmGG4H(FKn_B<94`?zpMDW5Oq0+w}-PH zgMEZft6e*srIaadQnN>c#l0F1CLE>V zZiKfJPS!Zlgg+4$NWX*dXTpJmcWe544+o2|3H>IWow!7Q*idHzo|)mP5*(gLcYbgJSM!E z^g9W^(lGr0ny`uVXg87YY{Gj8!+vwk4#pb&L0exmJ?~E!(qrskr!`^p4e`){Ft^iQ ztIOl6_2b+L$srBI+pd??I`zU>6Otd1d`pwtko;07HzoOvP7Wm5DYSujllXP1elwDv zQaNPUgZxD&_aXVMPOd|8s?HwTM|-?}E0Qyjecrze`Oo>IE%{SFew|5vM*imh?Mw1k zo&Ot<>_GnK@c{qp%j=Q+tB&8EWWD{4n#}FDB-v4CkGIe5gP%h7?r8DTkYvOUFApR6 zl}<*yp#MBx`jL!y=6oK{yc{y>>*ddy%;Q&Ip8o#8vzfma@D6~CGYIX}G}jH#ZFa>&r*UCm{F){hNr z^Y&q%f0J+y&U(GR4=Cd{d0chr_eN;(aH58Eh;kiq@3w1^>6j~Er78N4@-Eh4iH!FPgIQfBmEO4Y8MEFZ=qC9eR zirt5~jg#bMh1`U8r2nB<4YdmY>;qq&-!x1(-#%RKM0ms_QFeY_&OSzW^Qwk6ofBg) z7Lj2)gt#=T41V<*krwAu<*l%@A!d`MY_*3naHmrjEM~_S_PPmeeC5Qet}^=5v{6g> z-J~rB#KX)-C51Ysdv=c7#gTGAWJwugS9ePe*>&YY0Wt6{VP{O3v82$M@SJ4_EqCv3 zxA*^G-jRFsanGe?rb$n>IM_z#cD9vX zk*wZ%o{7o9?^IiPS6i6hBehexY;0w>+v+zZpDp|6E9&z#x!AW#ht!WzMQpi`9#t1L zEx?Yy+@d}^SK79AhOAyN7GY7{BGsJjD%$c!ZBn0DO0c6@N2u3xR<$i@vRwUTTWPlI zc92@VxTmeny7{VK{jw~fT06DcQBPZF?npK6c!vCE{ZZPzgBrZr(Z|(IY_+Z|Qpc_$VhQhiLp0Y5dn{wy8_R8uIJBtJkRxWJ3R0CbDlrzaprpc`vn;DV3hIq z0qUmba65lxz22X|@H4Jg?>CO&5B?6;`xY2;Ywk~eh8;e4=i|x85oKr(dd}hF$@RPr z=kmVse)92woW4KlIlNu>)$W#qVpg{EWidIeQ4aYK;laU`tRCUR<->$8MinuBF_(-v zN?0xXvo$nV>K@>IDWhW+1^+Anj|k~!J+0=Jj}uPZGSPaYT~{B}U4CVVHQV$Q0rqDt zS!{igyN%su@|#O?w$vI{aC|om`P<>wamh0Lc5UzlOWld#KET7z*yNn08w>Es%jw50 zKU#^_BZMQov&rwSWVV9yZbpA&{{Uw@C;Ow1@|P1`1aMNGf3&O*Z0miD@S+tRt&I{F z*~jsD#Vy7v8@JkhzW(Dhc~aP3yS~TC0fNJ(BL>vnydcZo?bA(moA-(qHZHK%mZA3^ zbk^D!6(Y_im|PfykL;$U{*cA|L3HcIkPTd4y#4rN0l z_LyrXhDtkk8Pxp=!CQScTNg?y4dV+c7u36B8;W2O_YWXtZtrlq_f#?Rd=?s)F-K+L$a91 zW4Sr=f)IA@#8=73%O<8y*la#sF*rm1lm5uM@mJ|bj#J`r&kg2dlY`kB^7p&67oxl7 z?-iBbN;m7~F+a#L-5ed*m1S9%DD|fCiKOu{()cXydPmB2p|5$0Z!vS-p1oKn8c#nO zPd9Bmoi8Lv9o+VtS?wQjEw}c!kADFg|B2f8yFOnkU0;}4TDzxh!UCV6_ISBX@ls!l z7mwksr1Eanq~l&U5(YOMVUMpp6kkbNeD%xy)!gJ@OKHQwV(O?-BUp$Qk5O7YwkjNK z-m-LnG^s~jwPgG-mO$})R*T<36u;xzIE(p4Opt!;4^r>08^UZ_y!X-KePzx8%EWI| zq}*@9)PBtdv-I}|p6@vL^PInL@C*lrp1%Y5a~|(+=v5axK8*EXZVZzhx-$H9Q@tPeFY!t`P`>m&wYY^TO;s6H+^f-81d^}JG zd~i_4F}Df5e%xV$*X6cx=5}!Axb&gV29FarrJovo6C77;6$%p$+WA!ooc+{Nl(3;* z17nsw&t!MPQ>7J_CZj4_3lJ_>y_ezVQ)Pq_grlnVv_9O|#?D!>_^Y8@J)<>0>7R9b zWmyvCW-UTEP04RLweGM0o5o=u4P~nA6<}v*@I3kNhF#m07T}ZUSv9TKW;Um!V4!u!G9@=fWu@GTP$9^#{Z;X`75=KE88KxOu&@UH|1(cI)+s$#(vet3~C=cH3n1|HBT+pt7fSo3*DG zlKYRCXdhpPZ!34}<7#xjreX`%rQ)of*Wy>w-#bqtSt5C)CSNAG5y=-d`6_7imVJxS*F&>rkB)XJ}u+=gTx4=8U%@&>IO{jX0lw+}wbd3{_D;#=1E zuSkad(V7fV|L zJ?|5@$q7 zKLBIDKA8LfKR+kjneZ3F*st$MI8&G3#^Mt3!NIt^ApC={<5V}PidGjsd`Nou88|!X z;amJ>pq|D--TTDh?dTqkED`4GwXsk}Co7bW>5$qzKykz|GB zhnkG~(Inr~>}4Z)lUASGKT0xh&xy+S>-cC7?Q{FEm%e`)^6&opqyF(Af9n08_9%D4 zS#5kUzQw6r)r}9v59NHk(B2lE>`w9}o$O39#*_0AANzDN>RWX(;!iIl9`@+U5f6t+ z=JDr1@)2D*?48ibuotV7(SE#6248>ukiqBi3R%xje}CZljOR6;&-~fV-!G8)I|@Ah zZh{^hoOyjN^Y@dU!|iY`(o|4imSMj6NYI80##b$>QRPFwiN(3bRN*!901p1-%e-9PQ_gjs~slkNNX zpC-} zXe@Uvy2k>ae|w!EyndU-?(;hjM#>8>H50&J)p4e9eAO-)zth-Mwv(Y=pV@MA!WT|Q z8yt$ivbQDL=2?Q0n_98IpT(tyknQve1Aa^JqEmJGbI^WgDgR8&!}*=m`uF{P zR&qtMg#A%%f1eHTdn9$H{ry$H?Y}a&&sU^G+TZ_9`}?1xim<##k4g(^fBy*W?_CMvt*?G=6$rk z?|Iad(f+;^Py72B@}KiZiQo438SU>&25o;ofc)K({Ehwn)4%QSGwI4A3H$q28lRgv zt1|lig>;g}=OFFxZ|_@~xqVzC-J<<{KA!Y@4f}Xvf4}INa_oHIP6_+_7=PN|XX|ME z@%xTGw7>5fR)Xy>sYp|3fB&l%FK$}ARHOa1kNCYwE85==yOWK5=$$C(_V*d>@7v?IJniq7zLJ^cIQ3c@ zqwVh_-V0K^@OC)|`o9b2?^5_c?+3jP;0rF}dkb}-)9d*fjNWhDCdLBw`M7Wn z^x)wAjj;oVW6t62>ifnqA735=yg$5M*yNbEKcLDi``+&5>9TcW)j|gBBiDF$Nmlwb z5>604UU7!;RH;}C_HCm&q*$ZW@4> z&nsa(Hut6dHxi$}R50fD>SyG>054+7t9j_SP&3(G90d676a_q%b}fc;7BJK zHnS9)ZMB_$WA9Ioi#LQ{{U6%vZg1Sg7+7+*UGI9Yld)#8&=}bK^75u&+47SGxc1c- z^1Vux>~^~T>L%;sY9{UP*Pbv{rTu*g`}?1FAB!&+Hd*c3r>BJd{jsz^dfGNhbyr(S z*dOgr`>AykL)9I-3=;PDooIhQwrx%IMJ8uy4(;!EqW%3xb3N30M>d$7(Eff~+TSn! z>Tbe>pljk<+TX{1aP6my6I{=3P%dcu`{4ttC(J+6If3u*e@c6yc6DC>}{(Eh&N-^*!#Ke=w6gnK!r zC&bYHek%R`Vg!xP0&RSj(Efhm3w;yj`xZ;U{yu)Mf$=OvBK&r19Iw-#nrm+on6#{PZ~#mjw)7e?`d--Ec&{(fnKk#qZ2E z&SKsX6V$Z*K@#@&v(Wy2S&H`%E#5t8e}BTaDQccKVG{QD)88Nb8INZ_4m`*C^PfMz z@y@~X9x}@KydQP>`v_+)a~{rkH=&H{&<1~ZKnGjAy}t|QzJMR#8}1We9MD6j_nRJb zpMt}A@F6&m`8yfyK*#-yGsoN>I5^NI4jvDjhcomz^S1aIIz3M>b35QpEET&4d-N50 zEHYH8F4hS-FAL>K|8QlZJlE%w0sG6Ft`(NckBpYFzx=Jq zQsM80zoylai_x_U<$bKt@oi=7r$^*CZxAOnwD0@dzP2##tL$pT9{SMMgJi|^qz~}< zkv3sr+p8AfJ$1het8b+l@Oz0o)xE5D#R76E!ab@iGo&1DB17*r@w?FS*i5^AeBPtN z{DI}|}(B^^o>6X@6ab z?0LH_VexK*#E3b@*+*v_T!a3nvDJ2T2#JTlMj*Hl4OgH-$7>& zzZWo)+)gWhL2`AHeRcL|zgUURknR50_Rs%+`y-6}OZ(Rf{hq>Z593Gs?aC5O#&|U( z`LQPB_a60heC&reAbF{7Jc39*tI6Z2oPIB&Ow(l8M?9?5WQ=!5lGkhUeUcf;yEXYi zI{7@wv_G$eXyw?i_am8pFJSLK`h)AC{e8O(KH@iAlaonCJn{0bB-4Jraz-n6>fcl} zkvvM1;a~9AYI6Gf1J8f{p1^Y(?-c(0=4ZSY@PF8O8S3!oIyk&Oe~0LG{Jq0%aW38m z>F1lU`FGI6C)_VMY^>!Zw~Pra5nem02%(vx8lq zscthqn>N%8Ql2mE!ET0sQ$LPMHH~iCMTz(r%nEeLVO#yPgLo`3SSit|JsXs>plxgB zG*i}5J(R{S)n+Yd{NL~YU|RKUfbx;X zf7h*|ww;&0nxfwJQTEqw#0F5jtjm;UDl@W&(v;%G?UI{q^Lz)f%#BcGZtm7B55-q8 zim#*w!AdELuf|E4ZH=F&nU>th2k!#R2ke(716t(kuel~yDcGvrB8 zWk1&$qSaAlz%!1)nzUvkOjy&+V%w6kN2znvL*@o{oakpYb@NYe#nrTI#lW(em8pVq-`;nB7H9Iqfe+se14fq<;B)`&qlMVu3x-UDU4{&kW1h~F;j1AtiU`#{ zeHXG5UPXWZPi>mV2;Xj9vCtsj50)JW_i4IJaG7#gfdA*3oaITKmdUWQpvz2oPl>G7 zH1fY|%3Ps*lQFUj=~u10Z`d2NOa{Mil)s^_9B0A!?jJl^XyGv0KJH%4-3>Rse3Y}2 zepZdEK3Ccv6JRr`eS)Ffki16pe{z`$LV^8@42XvUndS=mxY}v-Ve5wmh{m&{#Ea3@ zS(lkU?D?YraenwHF*LL~Yuw(zPJJrY=u9oT1;TJOlGmltr4RCbw3tYNno4u znMK3d5#ozeeyr0MA693yNmQLji48yav(U+2Y*^LmV!jEZ#eGc!*xQy>+2`kiIA>Xe zc(<0Bovc)em9u(@hM5z@$O1K4TgM74^=egdY{EqGr%$z59;rNge5s09Apa!MeO>Jg z`A_KIE{~y z#%Cdo&&BnXS^up*VouNT;=Yp-d!>zMB#q|-8qd`qs<8kMKXG=Jv0|G;Cf0?TkQoOXFcsZaLSb<5RxWhbBoZ{=xtQ21> zDZYFtzTQxLxz!U`XmzvrEP8}kB-)QvqLP zsm{{hA9%Jur@0!Q*_h8g(B^HJ2R^2Q&*L5u=A0)w4)l13fS*VQY(NGFe9ZYC(t&m` zN926iO{N3yt-m8qqHBkr;1^){0Y2n@gHPa3{(mRnH(Ij z8tz8=RT{?Jkn1tuUrqWsRCgF**qKLosK$qV%v+a{9vJgMUKexT^_tDU8-}0ZPxu6D zDexipKQQ!|Yp>8S_YeFG-|{iSxWJ#>&)g>Jaz6(V=6b9Za6Z;;FkY|;jCN-chE0xP z2W`zJJ^FyU;2>r;5=NhS{J@UBKU~jfzF)KSyZBX6A>vD#?+>N<&(+H*@sr;Ki~`4#44SvNT-Zs?=PkK4H3*ofk#5Y6|$&2>;N-3S$@(|kW4#n%9eFDu0t){~mie1GKQ zwD>INyNC;DzK`{%fT5}JBb#**vHo;~=KBfbzQ#w-?IH>^-#<+8TWiwi_@lLgM66dG zq4|EDyC34elnxdJn(rgtf4Y(qf8yi zvKvOeHCn-0c)Yn#eo;P)E8!VG1qdJK|77RvpuZ{iC3&HJPI`Yw9-kJ=7g#Xw3-gf7+Wp2xV}0Pt_gg}t z%bo(}-5sVp_wf$dV*qYhvzKtKmYWfC`GLD5ES1$X`&|COmO!DBP{)vy^us4P$m31f zt>C+qnPeC~x|kJn`Boo`%kfUmR`jR$ox7HNWxm9hxsyruo$ZN3(L|#t6kk^Q*ly9~+X_tQJpO#7&=|%%}NeLz?g3xl&b8m5IuB zn(ybJ`R(b8Rg^aQCMiW|zMmogIe(O*`TncCRh5mY6O~dl-)~O-enS3M$lsgE-@!EB zKakr~nb~ThGKc2-hiQDAX?*t4_$;FFIZN~XWuJ7Ute~HgC-YdPxi;T#O5?wd#vk*2Kbr4*IRq#-N`@vK3DEVo=Uxngv3B}_9ipLrh zk7ks84#-;WM8DJ}&^DdlLskM*r%x_I}Y`F`7Z z0gB7MQA$Oc@29^%@J_i$&uczM!`uzeeaM)*0fTc($Ki82Jm)d5VHG*QbUFh`kIs!yg&(@UQO&+#`5q^XGO3{_Xvh;fMb@KScL)u|?0Vo{%HQDJ27E z_~G9X1N9nb@&7rWpKa#{fh~4O^UIJk{E-n4|N4H&c<*O?^ZdJG;KS@3w!<{v-$?WQ z44mPIe@6_Y(0t#~!NK|{sIxEPIYZ9yM@BsS>-*u~{mjp>pYdJcK>v2`sBGT3V~3fb zL|AIuwyi|5LFc6;?;w1T@KwSu2s^NyJ94nLZ41!eK}o`u3HuVR$yPtz8Rylwc>J2l zZx8%c@%t>k?8x4W#%|qLSb;O-|JomT#$XQ%$6pn%E$GVD hZ$$m=ttKyjAj##r{ zv}R+=wbt1`L;kP*!QZXetNp8DrC3hW;?>2adZh~5Y`cDmTjfwx8uFl+ZT*(QN{0dN zQb>!cwymYxE5VoYNpo@wwxW@(lowg@OFz#w*rvtRRobl0FMV?Ku|0M3RH`p8Al(_` zX&ZAdx8nW8UHYkL6`SaCGd?BELuyl{g3V{=y!f=tg{26mGPabI-0_EJ6_I@Mm$11v zij9rCR#f`1w}@@{*XaRkFBFq*c^0x&ng1~$Ygloq%I1PLeLw#wPN8Rfqoq#5^hNoM z9|#{xtHLUNO*R#|>12Ah(#*pA3bIe8SaD;COD1V-GZy;Mm7Qt)UaayXyXYO+mPM&K z*|68I#bHykip8?GWs{1yvGMT_#jjZ%#P|`d*|_)lSeCD+#hTp`P4CXPU{a<+tmK&} z@n+z0)BQ?KS<v zOgr5fyOZL{j=HTkm0q?tV9?_LcD}WNJ+GJB&YXJsDi`aLS#1Ndzs|J}mB!l=vZ^E2$|`OtGadd`0b!_NQ2UQyxChvK@P=`T(5 z3Xt*6j7 z@9*;Gh(m@dL+AaYe3Jh;L!TmZtTiBoVXkwnzM4GQ|ByjyIoIl=$@L>H7(SRI z{~=%Nd&KZQ?_8^wR=!j{V>tKXcYe(qXARp<|86hj_9=sNrQiE=yw+*MxaB(e-busi zL%+-8EB#`qaq@RL{q_AB8S#hXjux-@E$~gk{62slzsW@m0_*v}(BGyrzgNIPU3@n| z&%d8I2W59P4zJ7Gf*v~FAL##8yPT80KmSahbxG{*mv7fgNv)Uo#0(f3olH2`X_!}= zo(+7G2)EjrRY>d6+XtNbQ+_o>HJuytf^f)@YcU`DcZ+^SxN_`CgR-hm4C+q1DhN4# zdF>7Uk75owJtuv~i5m^Y8Wr+{ z{R3wn8n!H5;+aS|^k>zg@8=)I=Bt&Zz+B13+Hv=VMPU)FUtCY=!{iF418s&Yr-zJY zw;#`!7JF|sm3s7ESv-FP^Pf9VD!g&L>FT~%#r<(OYaf?M+GW}puxr`N_-{|gv9meW zo2PzyWfXUX2+RE`CJKKuM~-@FJhk0fn2~2Z6REx7&M%Ck=iain2RZpnlJWM_JO7Xy z-g#jR*>LY4^8Mr&#@&S;{6n_IzA!GKzvqemqW|;Xy)do_|E>S9_n~mI@#d=EFeX3;dW35Wr*AK^-&iGxG3WoTJV;NPcrx{FXIF3 zUUZ4~6Sv4HM!4wCZ!sUYn4_WZ`Ra_}%FG!d~?VM^&B{qwnV*#iN(C zSA@XsdyA#Eh-ve60$ck0hq=hXoB<9^@+6$OF^)BVHdT7xe{Mk5%kvY8EgH#UEFGnJ z<5vVs@SK|P>&nrrx6dwfi~IWmMvbYJ5Pohvvo@=h@apWvfX$H?lnomuu$fNB61=Y6 z4A}gkqB7*nc(&3%Bw_pL4gpv0=ZYV+ZUXB^?Y~>teeZ!RlD+-DBv;GceedD0d3JdK z$-WJ`?|tXc+Aa?zc>?vfLTaDi%Nupyd+k#zyBtR41BhSv;BVKH{`&r`%;QQQgFODA z0|p0ihy%}c9;Z0tZ!_Tx4v$yFGPuwKl`paEA&O$d9SK={7&#cO`rK@N#!Qf8YJJ z^V#L+R9@$%zwh)%S?uB9UuAmI+goum(yS0 zpOtwG@%ZL4;tvOpKOT=fPWiJK<>AH2bx92HNE^p~tV&97W+mcAFW4R+v>DHiZNHlEC~Ky; zsXuoQXt!!Sd;k4tf`{pH?1xFt0VOYtXZ400NN74aDt2qi#2Qf_$20Th=!6YX%VV$3 z-&*~+%LJC*KZqa17h)7=j=5g{JlB_@9I=Ztp2?gC9e9XUl<|8<&qwU@`-pRJh932} z4RHAVgZ}Y8f{QkA=Jytt^<})jb1NoG77zNrD_@+|NWwDVJ%r~Gwh}%-c!9==B0Pt1 z6zQW0&nCQ|@JUU-kMLf?^GOdJLwJ_Pu@Q#-y`oR;gWbQB^FkxN!`s#*VqnQuMT}WQ5liQHIMw7j$ zydBA_G+7`yC>>vK&s($4>+|-wjP}~=?4vxrjP^MHpV@0m<-Gr>ujj))%6Wa>e=euz zLr!l`e?5p39$z>k?hr4)IC!}}j(NO6#}9Dz?*?H0Eb zb8tpoy-n!A;cfDMgHxk!Z=rbiC~0-`SfPwOOD;-y*L#By7G2I-ig1w;`HW6aV~w7K zTh#i=a95qS$DObm>T7H-@DCZ;m zeopxrmmNJ z#P?V+RY|B7!D^5^jN}HIjB>AZ@?nxkXytpohpBNlwu|%2TfpG z-!9IH9LB0OUZvjJD3}+N*d(s_Wf=Q)`ZBfu){16J^F`vyzQb9y=L=N7rXJ=mONWXF zT8>~5A7`nh%VjZt|6mlSgpOo2d?u^$p|{1M2OgN-j~&I@R2!}q*|SS*F|4eq&Af2- z(6fhHcJ?@NSmwkyr4B&| ze3%rlV{QW_eA!rbXSq@B9Xv1YY+yg-&d0HAdp|GrjCe#naG-}h=n<1RPzD)w!2w?{^LGijC`TDT z^Z4dAaYlWVgAZ=$4~>kwFZ!_XlcOv`Cl|p=IRE~R)=}fv7~=@ncTAC^nyfWg2qz!d zBz)Obqg@|b($Zum+;W(>xKN;^U1J(aFDg(v=5o z*p_e3Hkau9>g+Xsl27lJtaL&)+jmnT^Pyv4_=|W33=cg>TYO8ap^Cnl97Pz%$H3nz0c{*lS zchv}xvd(YA>ZPQqGxujw9~2d((?0E3(O+McXsB)W0 zRl_>6KIV6-f6E66k;7|AH;#2;w_4l}t(0WfDY16hY zEHO`#diw3@gnLq5sc)$umfk;z8^j0B9CMkU5ktJ3bND?04i3Z`FXK9JP#0y0M?DWZ z$ox6Y>*9<$oDUfX_`D83qdvFKdAx1Nz&KZ4@3OZWic&V;=P<9lfUVc5qvQmBSuCx|fG!Z!@CC*hrh zdlNQjeDnwHqHjG2qg~VuBh2e|CG4Ydfc4jv-Se% z>R*)Spz_RAo}??!qO*tk>FsCL*+ct|IzD9B}>;Ydn5;VO;7Kxg_DWIils2OZpqj5I$8TP8iV2+n9@R=`+0ylRu;h z_%4#pb&1X~s-~S^;`w!DZH<)(pE%##YL3li1V8cV7NOSrPXcV# zD!4&Dv2m?6H{lBx;$-KpIqiK|ohhfhYT01{-(!0gkCkg|J1iXJVra8^ z=K60&GV_T=YU}qqM30RF&6U;RtXrl+u$>!yosMZ)7AzqwQ-Mn@FDE9NF zAu4;?QLMGOjJfNqaCUN9H&t}-6Gy+uX?`$vG;8vtwK}6?K5^l_cjB(LW7yrJ_0^Yq zo|~>TJ0m)|jAhS0o79yD_nO)d-7OBL@0@#Cjq0n=1*RNlmWd5Mk7ajFUTTev!%XE$ z%n~PgMX>b#;qk#^k;ggoJf8Kjh8W}=#59k6VCePVB-|#CMIOK40;4WCye@dWKRAN} z9qu)7IOcljaKH}Q=5|n*+kyR36S5lj(YL{v$yu!t0jVZ>$tHzU*d=BK)+WvvpPDa67-r)O*%)b)$t{q_42p)w*X0vws(5NvUp}FmsBX zGb^ZxyyIG% zIAyLfu&!E(zH{C@eyTb~oiz`9S5F;xJ&27PdQZ*L@0z)Il}2hpPzYOi`ieR|@}b#r zN^`Xp{RQd(zq6{j{0sBLRjt(}Yr3&BlTN9nyk42}y0le)6zI-wC7x2BC@;-vSK6p7 zOLz9R$QgA^_hfS?pEhdHxo)g^p>yhj@=4|yrCO`v@NO*n>;<)~$20S|-7VEEpS!Z$ z?pM_KE|1LLpEg%326bh1)a&Zis`tz-pEgx5>D)n3~>3rJUWNTej3JzlF{lnvl#~_ax=y{xS9paA1GRlGZ^Ph8h?DDw7 znYV%1!~u@}TOM}!{Q^7O7V7f$cwBRtmw^i%Y@!|g0UfSu*A8bXWr~~B?9pH`hVVNL zM-%=;xcKA2BJfMXej4W$;bDY#l0KF2BElAp<3o5i;TNRus_{P)?m}25eKO&WnjW|{ z;XR~>%{m(XLbwuPwELQHf5Q5H{!!eTa-JuLG!SpQUQ+8&4)_Kne2efI0yF? z$9n!B!Cm^j5s-5_q=K{XB6xcYa!wnAnhOq@7FI=$>f=8gt?gPpmXUM%;@Q%|`)f;N z-zi<6A};MS@^QFl?lN<$hEtz`BM4I zvlzn>!lU}-w+W6D(DNa@)x;q=`-keLFiCInhGNq1L8s=wNLvm)6?B=ndWD=n+JPCdLh zlohBoGeO;YNNP7=v)XbEeOKk4o^ZCyK`C*_CbghPFkAXye1h*VMOq!cUi~;DghkZ| zOX%*jPYPYKnsUl_WtaCiN%%T`w=}K5QuWr(9;`97*Oc13qqXO-$|Yg_(UsEH%+uBG zTlzBd#JfuG7Yn3y;p0`sWdMul9-}lWJXRIvk@OzgG~G_-5hXKj3m3;6M)@c>JE=_X*C>>!0zci~jIB zyiIU;fBF5wIb07Jxb&gV29FarrJovo6V3#l7LaE!wf_@KUB|f=MVN> z%GtG+$kz4Ee2{anf68Wg#~PD>x=xpO$s4XG+Vde!-B!wKo14X+r?PtQK=0QfgAB-V zxp8Tim?v4XS&?t?(b#M9>T52>e1t2`%_@jBJ*>!kI3;?qkiGkP3-VO13GFWT7SCD0 zxm2L2@zE{Wg0?;x9$NbLE@t_@siK&oT%`U@=soc?e?3;+!OTIHJWn1QO-JX zR?lnk$bop8WXd@wj@9JLBvTGTF-DWml1w=f|G`I2yJjR0)5>p>OgZ($hdMs$|IlRQ zltX!#CMzVjC%Htg-`Yn`JIYZfQqDSie^N=VPjb8_qdm%bC;p<7QGQ61KT$d5)Dt^v zaxBS|b5Y!{<5SK>af&9xKIOps2Ol~A&_BxIXKz2fe-In|dm5M@h(E*_Kl9k)G0e+2 zpUXVvAft?*dF*l-c6qz7je7-r)CUJTU@r6fh1&#&A9@`yKe+wxot;#CTf5PB{5QfM z3BRE4Y3PBMYWiOZKPUYc(!VEMhV-c#XSc>rBz<1e{~-M{!fB)j2jA=Nq<>Es-|N{3 zeb@bIi#Ymz{!yHTzK7$28Yp*NFG={mcO+TS$)!m? ztdld5yh|r%Ci$RFE*J{w2fOpbIkQ z0F&QLk-zV{V#j${X2Z1#`Hc8>|FFBRaJ|1#XhS&Z*-(Rr?_&G+ed6Of!p$dcR_IGS z@e&qI8g0aP|E`PKVw|T)GVJHRRw|~*n3k5-giBxAY3bajw%m-cdNh~it^YFtde&`8 zjJ}_L6bIAy`}mg*Ea_;9)Q7&`^>Sa5gMRz|XV0h{-}fK#X0{D?%)%^AZ>3W69oVn2 z@6;`4UD&Ed&!t>Po!Ge9chuO5`Pj0{_oX9qbFk3BD{6`B1z2j>9VvHhSJuRMRXsDO z0F%z#ky__`pOt)nS9&thg^ktKKT7q_Z+)aj7s_7NlEI& zmARO6^`}zI%B<|0uKk?U{`^6|s@YSrF_${YQt#*^sPW9_MZAb zg8IKl>wnH_PPUoNGO_9N-bwi{{*X2ecD7xu>&VREDbk_dssF(r@DJh#vB%?_W5g4F zcY|`y;g~;rxgK%LG3USzFzg^!IfhN}p~pV0K5oGQ_Y)nQ!`p%$e0~q09zS@WQU9Oe z0aa!R_!hrBUAA_1v{+6OKGHc#m^kK|1>e>_EBnVRacphDH~quIsXiC`2Fv&sZzTO} z=v1Y-0ebK8o2{qkRJ4DKpU9lW8uLqv;W+6>Hwcr@EqY>~GfX~R()g^Lp8+;qK6W+M zDIFMty3H?HjBz8K?DK)_2YjrXlMnd7e(vh+j0azp^Fn`G%fAW(9IDvo5-a;e8xw9+ z7Em{Gf07~l#Uy*5w>94^)C`_vpC<%P3NY%gD}4_8-M@XWtMolD;d{R~$u((>p1$|( z@(Pk`lg!J(hfMPWDV6wT8m?6ug-%w_wGELzlp4aiNKf<_=?CE8Z$q z&kj&W4JjdA+BJfW^ma(-(lAVIQJ((KTAz`u!L3xKe&)WaTZsaaZ{v}yyZMt6;?rNX z<}4yrc{hTUxtgSuI50?cj43O5bsWK}%)6*r>T@Sc_^Dze6!MOyWDN1mrc(F0Qin*pMXPJAQT6Z?dI-djt64d8Zr8y1uvPBX4GUY_P>Q zwBs@nH{`CF>f683?_F+S{ke^=fSl_GoSGXO&0jB+COo>LqdcKq5qp0Qf4F36SE7~$ zoVxdx%cHCPWY2ByIViKWRoJf<^da(@pK(UL^D^cDy?(AN>#r+)4(CMrzHLJ}o_P*w zo@4s7mh&0k-;%C;1j+P$uN=|Jc}{DqCSRa(ytxqLYzxdWa_fMCHg~Jzta29{4o?!Uaa|9puzSj$dHp$VDDqY${Ay>V#;Boeb!>EkpTkroD!-&G`7xdaT`X%}5)iAr%UVKl z+dqL7^8YM$?Xg!m_P&&I|J($&_f!_huCK?`=o*_$DKCPRx4HVW{WCA9kqLKA z-=>8qbB~4nryQ;6ulJA2_?|}24&?GctN`nCbn;xE`1|6>{ej;e@LV2m+JYXrW_Ugk-XGXV-yd$1bGV)VO0UlaIq~{6doGFau7l+3 z<@4I}j2wPF&ochy4||@vP&7kZ1+-;5VGPiCy|{aoy2*_>iG zx7lLu;5JOY`d%tvd}3N$ZGjk`vnx9}`Lnd)#dFg!>wGbfYbbl_;mEpf`DE%{cb-@- za}e`R%Eq4caT2|Mog+4?-GRA$%EP=W=Mk4@nI-P8)rv{+h1sEvMa4;%rin`)H)eS{ zlx9=6mlyjTo-8hUSdR&&iY#%Yr?}F4qPXc)A#d_ zV&rDyxzJ`1#Z$5 zgV@kD_0_Gl5|y_5w~N!hj$un89wyWdcT89`=ayKm#&}kx^_ztGz3(W8rlp8ga*Sv5 zZn&sNn;lecF8m}O4jad|=Blbb>Ag!CyD&+dWQbtBrnFTHKVG8bDtuiGF^^%}Ur$n- zXB(;XqM20Ulu_)A^Gdbum0C*L%iUtp>ciQML%Y>e+wv+qd#n*F+6J@dGgP(y#@q3e zM$8jGFBrgH%|E3&=8lU0HS<()N8WxcaOXw!#D|~aXS$CT_f838dA?s(%k_wf-<)lb zSc7udUHeKo?arT#kM!;%E+Y8@<+$4}KaBV2)m=P6a!-;??O(-@S`jKfAvwK&5U2X* zH)0RZPQ)^v&A^CVp1TP#2Mj%8AJ~-+=wXMyE7IG99>#f3yvKV09P|Mg zeS=<~GYWj@c^`PY(ChmK4)23L7trjcW9-jb-%)ogzb>w6&o{L%>7XH3o4x{aM)|&+ zDDSRrv+F0$Xz#gqaSMAMr1qK2a)nk+?YWHV*QzIryYJfbO%0!?$mJT9Fd`>a(C%S! z#k68ZJo_E*l`_P?pKX7i%&R*?@LqCHu;-z=S3u}ndb$Ce0jectfzy8b`zP(dO2I$( za{+b=#Vr;tMi;l+Im^lmZo&q8ADX32l-m|LZtrK2R`;Uy*OfkpOOs2UY(4W=-c%l= zd`k&nzt$|zwp^{EvygMd)usxlK1=+W!swuY((dhEG1i6rQy;k%IfhA zm}^QYwx?8iWy;IRN@3sn>{;KkEVfrACGh?vrE8_SY`&oatK(ixIr;NM#c-w;%k{nz zOH{p;=(FRM1>G4-9$1yl%VkuijgC-8Rxq;xEj(G`LO3wMDZ$sPvmKPfX_%J7=@R8|!u4_) zIh`O6r}7h8jwdejoKNZfgIK|H7vBrOcpd{I7H<;f&tQ&Gc30B_qb}!M*DzuZb`W>m z4&oH{@$A>P#p~YE_^5k>4)D1h&gX5xCVwXYb3N=sujd2*J929LZ?l<^)8mij^gyg2 zc5wVv@xSA5%KvY(nejL6|JdKO|EtEj{<_ltP2~y|2D7k{KdCA7x3|TD!R)BtSM@F7 zO3&)E@L+%2Yr^cBk^QXpu)QL@vA-v?+!}7j?Sj2n#Mq&BJgd5aUR05Y|V2r@kkB z-L<`0`JhwwzXkrmWgv@m*pbJ{kpI_zhdjeS8UE4#-F`mD%X@zV@HO|!eg>5G^{la5KY^OEcqD(Q{c@1yhRNQu1 z!#!%2v|ZP*m{Q7iTf;?S%Ge%gxZCh@wkH~{B~-8_X}HkSindo8zC5Y2?X8BZWvXiX zpyA|@YPQcB{<755_N#__t@pBh*Kp4WZ(FK{D^~Qe{UE%EuJ_P+HcvrD{r{NPBEuhlZGZ6h{$F`tG2oFM-RINh~e zCF%KG4?fSY^3OQ>+$P9*0!~k|iM%MB&-Eds=X`LGFNJfs9_{kJ>Dz@~Zxj6VedB%R zHhH^TpPmo$=l^V{QtTZ&ga(% zzCKR49e(ZL|FgU_e3=S#lH{V@D*B#~(U@q}_?pDY<-E5fh zeNV7A=$vI&1r)4T)f>6I-RQ`(KF@9rS#(a%+FxJOdH)B1GbvD-DxGu)^GOnX>eU0mG+z-Zm zV%$H*ePw@7l~+tv$;b7XFvH~^K5+1O`SQ3b(i!JxLJr5fe3i)Y^4p`8q+dCo33u1u z<2%n7FW>K7L0a%FOX&CP0Y7uyc=>3XvQo>}SwhWAkNHN2#>bjl>Geky#6 za}&JPiSj*hzo~NMQ{i&XLc)gI6XhENcAM(AdMbQqTtt}sZK8a8*ACNkzo&vnb9dnq zyT7AHt&OIOZchbwr{cnqN-^>_m(`~GAD;+`BRzz9>|U}{HJ6*DdryQjb3BC!^}y>FqZ&B-Uiqzfg4)uAzRYTkvW$jvW=gqn@`8m)fM$8CEd ztX&+!V}2mh|I6}17@5?7hd%7jIrKtk5nY#uefaNi^@UL3mx+ge#5ery3*o9RN|Z&th#_Qwq4us^VWN}FE^@dul7*gx1`dk?)5 znsL=Q?5|^N|2@xmB{&fKB}|fD2Vj3<|Asw$C2)SH1F(Owznz}F5@wDx z2Vj3=|95=(O5lsE3&8%j|MNlT{-65$KUvQo4=|V~4DlH8Eu6j;fdAj{Mw>>w(IznX z|5hNwW27ktV?0Lszib-q+tc9bA^Y|i%8PI`8s-0`OIUlG|Ai-;#=MNQy&bBLecg=q z$tFgkjdtwq6UKgh$)*wiUpC3U@s7D4?Qv<^`5m>*ByLng1NxZ!@5oW?8=ncHFxRwQWaBD zMvf?uguC{(*Ky)@oO__lkH*AuFCGr|!##SfYp&oP+-aiAORg@@os&X+aA#k@{qM%K|ZQ&0GGL}^^T^D=BF0q98c%fb(0U5UIaW`-cZ+FzotAlr9-%$m(;3H0GE4@ zZwSK-C^y~QaOrB@*Y0LcT*-AFevr@Wl~c*;vP`dAe4RqdUvtj;q9*$)Z1Qy)Hb<{> z*Y@kV*2$HVQ2%4s4x1CoE%U~@1e}qR3sior%P)3*7SOH1+#Oh#pY@k;3+L6)?@TOz zx~p=0{1)AQgC+@F=Td$?Sl>aezA5AV8tD6E_u@rd*8ab|;kRB;0nWIu?C6f#c&u`;Lvw1&euf2^Ye{Bss{ME7JN85O^Px0Vh zL*Pw@dGLd6{7~C`M;lN1RIu^zZ=WCH>uQ_FJ&EA++VK=0*&{r~L-~M*KHd9Bylk^a zJjGAEaUStivcm`e4?OVIZSxdg6&p|a1Q>YWeGGWSOY^io)$HaeU(^@-rKW8j>jQiC z`O|))^)uQBp6tON{5Q4PqxGTqv44PXV2B62r=5SQ7v)d&B%bVnhri}_`efh!&j;Sk zcyH7DoX!x)@$U{1kN-E6&H};$ga5Z0BObzn2A+7ME@UJ(`o;ezN^*?k%ZM@BG@d)a zQ%p2cJY)xP5{>^(q5oDP8Suy#aS%=M7%|2;jdEkHjCPC|qhDh@#(eGLCmtiw#yY@0 z$&GgG<1}I@FXOrxX_`kJjO$A_AUEQTxf}5moAJKQ+Z9SD;a*T>XghOYvDhTs?b&Qk zcE$aKhac_&eX*pr(!;r$ZwjMZzp`>}x!wJMzqMp3H|}6LU)&3t|JGdd;mrDexG!{c zz+-O1p~Akv^nYE18zX2wu;YIqmvS<0ux@8(L;|N|B>3WP(h)aS1>D~)SKG$ubZbr(pnS=D$j_01cWAV40N$|VgZ))k=Hu-G&8Oe) z_d$-AH|OWl_V4uF%IKL5xqxkVM(db{@~)KGX741(lOF~I{J8Gy2fTNo@%~|z3+ncx z2M3zZb{nAQwfy?jy*u6wk$1q?kP7cpj=zf2<4nDECi!NyHA$$C!1W9` zJiy%>d3{U0&ebS%dIxG)^nRBV^=1`4m-{`I2Fy9a>Gi4H=%oLco}YYy|GHyNveO4% zzfbjewtF*~XK8q#bWRzr;3=ds<$BRH56x3Nq)$Ap|1>*1*{6K% z*MszFKHIzB_Y4#N`OR;h_HSj|JnipEcJ=;j$CH1&!|{GLo=^1N$2moEyz`01XgmXm zHe%>Eaj*|Ngu!`4XDi9&$yblyNlH0%-v@lgE6c;JihWE*<+ zG5kpvGLjqd_I8Z+funp$Zj93yKjsMoKgL|hhf!`H1Nov6evI`u)&aC}T_`WA1xCoo z7DmEAmuSe1F+*;=W4Otho7@g>~rtSc~Mp})OtM0k|a4&MRj|I2@ z|5G~_Gdkuk!HecXFat5Wu)%eE;^xi4X0jW=``{Iu0$yNIMr=K|Qi@TYRJeaw2 zc+tMPJa5IUx6F2XS^D@N4JPlMYFU-@2%w|K>Jp^&Go* zit`VNSghxGJ4{YVDo}0b9ENeZET^Q*&Dw$b+)kY6Z|#sR33YpUtR=Ttc1%J|EMvy` zckQ*o7j=F#JJSD{XP939QVWKe%U&tF6L(a{Z9c|b-q=U4$?6ryxW6a0&~vPOq8?v& z)5jf%`SY}6+{Dy^`nunbJ;v2*vf3B>!CNcGPg+%^s=iOG<@g&N;(QTLp)tq)uY0WR z?_HkXeTVvv-7{Ug*rA~G!ZC99gl+2KXLC|-IvfbH7LSp44%@8udp#$$_)InEQ<)ff zW{LIc;g54tOKjg8RNE&;-jujXP5L<}wf7KnP{ZIDxzp9f>SL$G)X}%M2CZV>rF%Ih zs$~i$rp|L)8+4#6yZ6~YLCxuvn0mJKlA!#*PNerh8= zG1Yx+Y*6fy82L_>Q1zZEF}0&KASiSj<7d}YEg^}iwawDDSuY;OA8+NfJ%s?R%zptJ`ua`NPZR;hPlYRtXsfm2?v z@8HXqTeF8JrfMEL1AX4Je?w%@FsnHtF?B+NgupkSW8~Ov0oI8F6H^<$3<<38oz2I8 zO8a|IVrs2=c>~M*jFBhBtV)vxC#Fv7Y_1-RKf?}OS_0#9v}siRAmiWdT)A%}>yXFLB$BcgMjyD^j;GzSgAQ^Uz<<_?#nt>y!PT zt$*9!Z}b1X({KOw@!e(d$FTStQ2Z>vWR_oyEkES{t6yU3EnEJmPiA=2#P;_M+x}k4_Wvuk|7+Oxzx|&NyqD>$ z0Zs33qG>dqGjtwd4!VS)GXXr#5a2-L?}kJJLwKXE(I)l@oin75(TIT^(l=ru|C2AH zU)UmD8X-f>_`54;;K?qHkQ*PP+=w^YG1`YN@y2-UX^P+8KIvi}J}4IB-@Qr4SS!*4 z-ssD?F2?l&#%PE97;PH&1I=TEFVY1K9pnA!xO+W~-9w5y*-4Ij-V>M{cb@KHH12T6 zo$SEiZg<@Cj(g;%G8*@#;tuy|jK+QLbhkV1PQ_jDxKkeZ-He8P+#L^H@M$UGTslHsE1LWi;-B2PT=(bVoe!`)nBa-O6a>r7@affE;(n?Tz=`W1jA@r+MN@pLl`^?#lYM)8f0{==gtwoEzt#r-_Ve~U{IxOQ?frxAVwi`1dxL-bdGK8g^Y-~; z-Wb0h_+K0W4%>J^94Yf7fqhxz~|Hc2;`cOVJZ_od!zV`9k z*V8y}uW!%W*YE$!Jp57ocvl31KGuhTu2wZQQt@-HrSxt5fACph&UiO=0dRnLp2AD zILI%Z?^GX>14lG4HS34-xEFeP%T)gH{SyN2WUgJjuaK5?!|cxJ?LB*O)9Th1K%cb+ zT8igO6bdoAl~Xq1de;&{9!CE&x|P|xO&hKVqrDQ|@lC=U1P?|#uJ`6&>~IippL5Kd zBEpHgUpd_W+``*Q80A_;@MN_6y)HtYHqXr7jQ-eaICo>Pi=_gio5i)`>Sc!Ul^7jY zZYVeSldA>yRCk}~CCvR;m&5(l8*)D6ycSir;NIziofh*$AH)i!7=2`@ui)HouOIH6 zzCYVr*d2XbsmbW&Qw2+!Yc>IK=Davv=zBTZf_SoxUy~elYKVY3G%r$988KuKhxn5k zT{ABzaz$`p^o=uPxaytOnR!N+$(*kwZF$Y-W%SU_BlwK)DFW`_L}I=Y&E4|cvWca+^hpa2DSqv(_PWhq?Pl^- z+im4>k9UtIVZy*GZu)wC;X{S(5e`BDCht{oQu3hqP;+rc3s>v$?JY}qtnarcUcx_) z)p*o%|AYEUgI8$FPHums0l+prTI0UV6A*5T3+rVY45-KSOXi5vet@=maG5WP%G#?(CXYM!kSVf zTF&Disx3IN*!uos7i;puaq{dUowOKJnssK?Q0q+RadM+&y|sSfx2!$S)U!5=j*?%w z57OGd`ex0yuZETT7%6+Wj?~^y%%g5yzA1gPnIZi7$#9i&mSF|q38!4+rqO=d)i>QjZlC^lL zNV$8;Sk3EJLA6vu6>COdq+HZ>j8^Aye${zrHS7FVk#ggzqqHZJT+}(0eXRi_BIO@> zMre0;ubK$Pq?G+bNY{mk0toMinZN6D?)_0bCE{l^+{wXW4+Sd<*>*;DfvcF}s> zCBz!KCQ6=qxU1$q>bSK|@21vn7oz0x9Xn}71FY7@nJukJj^pHGciU;l4(_zJ3~ggQ z5HwD%)wi`atid|#%*+nf(h=k27tdO1S1v8Go^R3B+HvVP`SgTlT14UuYk{<$R)^!` zuU2Cw6q>J4Y9TjiIz*9 zl(k!ZYFSU@9bw%%C|Vx;OVk=iSG3MtHQHK!PPCjeyq5OnYa#1{SCQ7WNzt;uV-3xm zJ*V~P*Jx{@Q_=FsTh+DRp^wwX?we>G^dMSJddq8nIh;-_yl9ej%hzZ*UkIoDGFj3Z zZ;Z8`aUC!7H~qC)1y`pvn-ypM$7{S?MDf#v#5rkvlgZYss^jHmr+u}RYFyflo0F|y zgz@r+O1_#$&5>!X8pK5?yu(1#ok$)O8d7zu+jh2o;vpi41>#+ii? z|86?$fhHZI>D)BN1DfoR9DXSV=+c=78Q}>7UwD9l9pLd8eUTjcz>+R<1P?jz;9-Ys zAQ!3!FpxtR4{TzD3^eJIeawL-9f}7$$;p?|Cj3whF;D9Vn&PKeC}!}KBWwYSI)R29 z^JU*R5q7Y<=Od4gHCJdd>Jnk(#ObYs71ma02j@Cu^~N4WE`r?OSw&gfCOrdb^K{8WJd zkoiz?8R&1`#prd(w=LhlX9&R5e%wO2+j_OIjnU_KtyC@!YOc$Rw>YNsZU2l%oEPJB zTN+jVVcy4R|1H;2vfun@NoRD9*+m6yPCa2GqbuEfZ8?51N!Y^ZzFBU&W_;MrBQ{ff zf1!ymQh@HF8@Vkf_Yc?Y53an@;$=18MT#yz3wQfjBfnu5q~YXjeyvKhmW!>Z$8)pzdivHU$xo|y(SfM@3d?w za7$n7C%q?Fg32w?>-i@4REyVqe||T^Z}LBAN$F5S$84?mj(4k2L$68e_)PxAhN}AB z*yD9sF;AbY$L#rfFW2eE9KAl<4$Kxt7YNhW{nf{{ym4Q-$3M}M6Hlt%L+VSF8+VmQ z{_{lJeD9>1y<>gpjz7Cs_tR6Y+x1iG#bWg(;c*xF_VH)h#Ia}8=iBQ^-3E4%_q2Ga zU9+51I~S=ZjaEC$wZ^~EJQFh2L9Odb-*0!4=ZYV+vo|iOB?r`z`d;WL4;%4Cd%WbD z8r!Y5G=Fsm_FdwKHgn}IHD3)`D$=sO+@e+X^prz))#2GB$uX;~+-iN!^so0Gs&0ow zDSBcXx$#ZMbdQTqRiD3trHLM`<$jNx(r=A?q5czIOS*L`OpZ1?r$=vit>*4oQ_A&s zs60W)n;zHto%;8r8dC78mh$vIF6obleo({C1WBG5E#%gcYkKZ?AJv4WLDCAbh1_Sq zYkJM=pVW~*0;Oj6o68-Zxu!3z_*tEIKTt9sX)d3=<(fVz-)A-LS)k;6uDSf&;+lT$ z$S1X8N-c}LZdF3o8vx0#S9{gdlk^{;0& zq=m&o<&%q@)3c3vtqvN-?uI;pGWGF<)Rc4)<*8W zHb=U-*aP)abCWdOtF68s+u3@Iw5`XtY}wKy2i;M*6iJ$HX(xZ~^FwRtaZ7dTCQA#) zwU>8X`l@xkcwPPEP+NLYvx9uQ^Ji_!nyYG^^|htxuRF-rpC2^eX_wV5wdzP~S9Fx0 zAAYAvvoEUekJOQNiJjycmN(j&y_xFg26d%r=Q_zNGhS)!T{6_!sdc3?Z92;h%DmJj z{dG?DC|yrFdZM#DWaD$KvUpal7FAFB>eoeH(fgUU(CdsEd$^u7aB3HMLZ>V(m^-b0 z&R$>obh?XN`LCy1k?2!uVnBUq3A>-A$d@Nt?B|nem)7;A-c`HGfoq;<)3%;eCx_RU zV(WC3?f-n>%%HOaBhh$o)477P0uQhx15LU{J)$wNS z@((#^I(y-ta1;kdvPmPwLl|TI{|gTcY}35`2;UU5F$Ss$@Z`7Zf-DW+ihGaBrB!D% zzTfs>bTvjNF*<_Lel|=Wn;hSDK?g87z6tlVVIc3tXkRABcVo!CZ5Y`1vDxXzXpYhN zCJa2!X!H)c+VJoTUBrOcy4&R27>#(UFgd=H_qWlAVGyJJnH=e5C>LP58Sv0WzVM59P&d+rFXZ0QW(T@mY-8g+m!Y6xA_4Yh^t4jaa32X&?#p^KPdht|TF zJ94DF5I^bzJk=2Ogf8Mi3|JT7skX*_2-s_tUw9^M)Rpr*j89 z&LWJ2fn6g_=LRrj6Eq&O13c_dOhy_QJiuTid!$S8W1eWj(1-@PIbTDF(w} zTsgIa;Kk%a@&+m2i%(>~`D5Sh_qP+)l<1&;hcCHiI+ySLJO$t3y{fcR{HuIWV23}E zQ)zIipZ?8%XX*le@WY})MJ5kvuw9vbAe&H&(SBaM((!_%>jqkLD58a@CE0v-*=J5CyJ>y|XVO8XGz6zsL`t;(9tXaz!WVG7qh_ZL_ zke#s8J!=F%=SNLlw@<^$d`8>{4&SJ+^_^k)yz?yIfYC*cbhgxp_OJk7@$h-2=dVL% z#J{v?Pob51T7lnr*K+fPmiFcGO}CRg?Z zE75*c^&U;8ndGtHFm4C`l@y@O1GB$T!^Q*ib3VH{})ALvy zBfjy#yR?uwhl3Z)`53*V|118@xI7m0gW9Za#l;@Ft*^_5Yi2(C2~Yhyf5??`ym4R2 z>^uKrrBCpTCGjG@^9Q!^)pC@J3?5J=Ui7UsUe4dwUu!>dX>j1RIMJ)zc)9pxUK=|2 zWbnAnlf<{*qUCN&YG{v&JBdByXtDO;XnDa*NoyY;AiAy}DSD2NmM=y(&}Qf9Ev9G# z#Np+mWw}gq?fKQe!~;)yi2c&X$!p8C)%f@=V)l9M#Mz7`aq?D%Y~?7Jaav-~V>%GS2LSl}JwAC1#KZ760M9$GYRMN~C;l_+ZVY zUp7;(kAY&;KaujwQ3JF&c|VGmZ`Be*-J;~b>V#`))3U_sd1Y~b-6%Qjc5kg_*W2RM zQT0TAY?R!sO%Kg+V}_WJzmb?{N0i)tTNmv|++p$X`DWs}`%!Yy7ag>SqI<*w+rq?- z9>3SakFCe&xxd#VxMP@B^UZSc_}I?k<|*Uk>PwnyBjRR@Lt6F_OQepIcVsoz&UKCz zZ|ChR4$c}UhjnVGZIB~GuQd^(fAMI!!t1)4E9HRlk~r9rej+9GR(Pu3K#RT?4g z9ULt$NfI@sR(Y{st}$Y^`O)%|2Q{_no!!L!i=sr;5-lI@5~M9$_dU31=6La1X0$xn zqq=rw?9JfCN{ra}MYJ4ShS!Gm+8;d9GgfqU7%$fz6`*aIvN`yWcbr(+eY_k|*k23& zydZd%%Vcp=#qsjj9Ddq_qf>(W?wc$wVfRq_*Y?%+J{cV>1jdUl!Q*?>)pz$s@o)PrD7c%G>b&cl;Xkd)rdx3>b(j)sg7YL7Y z0}o+Hj@UpWHlhjhCp++sSSe1TfhC(pzo0RP5q1d!n$9xNz)*cCPQ*j@DK@eL3}S#D z^eGJ7|A}xfsyQ!o)HhfgvC7JQ3sM^EfFtx@&P@v z^NZ1V5Ic>)f-V!|B;XtGxHu=v(V@2#e8Z2qnjmzm8qaHt9=^JQV4YgkvX#+!Dl}7; zp7gaOGrHdALVTNZC4~Kq-kRLRk~GL&!MEt%lLbqyYfBW^+&JA$Xxio~kMHWWtdF>i zV3Wnl=x_O2Sk|waX+|HRa?WJFa#%UNU+{KFA;m4{;5Jy+SPk-?wudxuIM?9?v75q3H{FpPN6;@H;0V`>xGz-g5Zfo^Q+pEX4A0Y@~qLGChm%Ppx0{zJPW46eVI^oS-uK zK%c+4{=P~42}ai(5hqmlo}_>CFJ7XAWpUvgdOY`LHRtPftFM3eZgU~g5)nJlf^YRp zeNJCe9ZwY|W|n3)Eeb(5uHV-S6q#jk$S^nhU2GKL45Z z!jo}x^xi~^zZ(fBBO2>AS5Du@mt8wSLH{DI&`^sMwVOwdBNFc^{!T9XH-ER}IsEmA zZUXAuYWOjw{=xHlpXGGk70UInFFf+fp6tb6yuVzxc`eUrK77kD0ezFL9`ns}xkq~a zUv+$|gf>$2y3K#ol>eGzfdy++v+{gpaoujZyvrOvOZvmHdYrRMXYs~;Rfv7(Uz>Q+ zRBcFotqS|jfBV=I?d<83ruE(GYwd%&%4-)q)#k;WGOh5duXWDeRnExD(%PF(oBsNz zp0;9R7rDgo=UU!QXH5-<*VCR?>>?kj_)1$n>b%M4UR^CcuCtuu#~W?HmrT<@p{_O{ zt&=>PefK|f z-7U-H)H7Hs__USY2RJwKh3O9KBcl(HceHbQ?HaF51LJFIQ;vnojnC#uKfm&=sfV?O zw(?#}dByX*>3f#FH?=5SLklb0Ql59(CH+L@kEYRcg0!|XTF65Oxu$=r|H<^gFG$Pg z)j~dh$~8Uq+U|U<z zRxYw6Tl%fYe@v};`CK5EsMT{d;9UPpVlsH0rq?|0hDK^INc&ehRELORKdy1vnF z4a_v1?o?MB`nZ!^t?erD0 zwN2%^%Cj~-(Ml$tH0AAAU%MiAmF@q0(0d-|8Q$}FmqSJm-rJxthmp=C$m#tK8O{V? zK-0UQ&J2ur$RTbBq#sS1r1x6!-$7!Y(EDKY(Wnr@#GgH#fy>VG2+2I zM)Cs;e31yQj2@T#D9+DlF}HRXU{P4U_mFTEu*W6 z!^BTBoTTJ9H>v3Oq2kucxuwgoZc^~1A!72Q+|t!aZqmfi!D9dY&eDb$H)-|zf#T4V zJW{8LZqn9~1H|3C@=CwPyGhe8^cSa{aFL>;-J~-f;bNJmuF|V0H)(9kzGB4!`K8cE zH>uZ{-eQpCCT$+$Chc3;Q@k{&fb?UOo0Qw!UA(chpfqfxo8*zvRlIbdkaT0Xo8q!tv0q$q=}?55^!Kq=qHAdn>3e@SY2B$XF=&a06vk+C-Y~JuLl5bBxSMn= zF;r}u%~Lwa=+=Eh#f9%Yq%({@9u+FCI_)9lVR*;Aq2kdQ9#StxdzT3l`}lZBw-`NO zcbJ%|6qlATU$Y`xiI=>JORZQ8{{35vEe95pIu3M``cG*i#;L#sx)ImIySXkP_@?El{lQ^tfAt_{pn^acNU` zV&Dlk>CI?2DQr&M%Y=(lV)IJU z1UJdOQiOQBO&;koTe}fX1I2h$rI<1F_ zZk|q38@5lb_zn{tj^&b$GP?7wVWM$gwZ5NUebzlhyy23m)oTzTFWBX#UNN^254&b+ z73)XH51b0AS^av8b=)$wSG6PLrJIYYx$ee_Zwh56xj0ZrNXcnlM348a&_Bl;xA|-(NoSC{Dedvcl9VPo@@HfcZZ&Rh>F? zgK2fPOs)Cba5=624Apt+4%6a~8QPGG;c~gHvsBj$7Sq<}8QS>0;d0K{M0Hg_nkn>t zhSurtaCyUxdFqL%{U(na8QPcW;quIl3)FQnhfUKjW@ufb!e#f<3)LwFkC}w?8QS6@ z;qp^{k-GHTG1G>#8QOsX;c|(bi&Tf%$4ouXWoUB-h0F7XEL7*#K5AN&k)h=o5iZvr zxj;>DIc#cpDMJ&Z!{wNK^VKKM_M3WL&(JDN3zthubJc&YSxqPY$@l@_lA&3*hsz_{{-wUVoMO88Izw|j94^l=O;^i4-fH^zB|{6o9WJ*{o1$)UUT5l; zGgEu}HC*0&Ayy4*yv%fr?Uyyh`^&RDqtz?B6HS|oWNO=M_LrAF8Lk!_Fx9kU%R$C^UQXKIeo{pDSb-PF#ldzfmm^*+C>zwExTwHi>mv8fJQ&m5`!Wna0m zy7x|isVZCV_ZR!iW%J5v`$C>37dBt~WqxxFmX>R4!ZON)Qv=rMv6(VHz!%o#SX_a`hc&3&d5FuY2?5-{iog!KaXKGVxMaWM= z3aL%k^cCaT{$9xTcRkHbZIG>{c$)2hPqzQ<|9s%xY&;V{<6VvSKHlw^r}Ki&1e`0N z=}Z6~{Ga4BhtYT*kS*B8LuVG`@Jn)IY?vc^Zj+c_Rig_##^vp=ZP( zX0n5SKY%dMB{|XL19D)Ea?mtSa*E3+r(6hwkzz37pbI(Sjro#q!q~?QJ4QTs;{!bT z`csaiYt(@+l2cx^c3lR(;zRGoOWiBw;`hZTSh_R%)2%xJ<1Sz4+cLUep`Kj9(7XcZ zX5W5sslM@iYet8i9m;J9`Ji-V^q{otyy@y7zB8jE%LWA8et$q|$LMVrj+vKqd!Rt~ zXu4wFc`1+3lF`?Gj^}nf4CXsAdY=2Cl+0&8%^ew?cyby0cX#jc?HPSJ+v${|^P?@W zxxZhrq_~Fn^f<-Q{rIybFX}N=Z8FAx`NqZ;=x*xM(ma&?EUX!$JG-QF+y5?YX~pQj zLnLlw_dR?YM$dS>-ki5&9y9!kkMD5zQ#cFgee&0o*>x-G`Cf^c%oWS?nS<_$8N0dD zjwyOm+lfF}oGy z(r_g-k^sW_D@Yb>Yow1Qb8Ra^#@Lkw^48uQV^AUfTx7Q~;>>2UT4EA9U^Fx`v|H3~v;1Msy zM|g_Io~L+>`tWD;Z?tERCwmk>_=!v(_Kf*ZJoftkuRQ6KKjbset{z67@+JF5eZ=?T z5Bi9g?9;rxKK29ZW84qK8~1~;o~R%3WS`>u-*|ifU77z0%pUXy|6zaqzwTFBU-(Bo zP#^3sdwu)(C?3+c$K&0N_cgt%!Q(uk_c&;JzZ=gV&^R-p3!3m4!9xe{eL6!RqcaMB zMf4H|YR9^mm{-iRR|_PQj84P#A=G}$Dq(bu17@=GK1jk@qvba_$p ze$h$Z_S{SP5Bg;=UCoyr|#^n?b^mL7RO zr$D#rriGT$0nX-hMrUhz!2IZYuo;-oYkw$LSMN%Oomx5SD3dmLDxjZS*krjqXRcXe zbjs897IlXjaD>sG5u!P{e!3n*)wQx^_oS-@3Y=gvW~NY7~XwOw2W{W_dCbg{>r*vHF)6v9v)T85 zSMd2g9&*sFG5Mq=ZB}dU0Hgco3KJeDtl~j8sd1a{$Oq~6iFtM7qoMV=_r)`X-0 zU;o&CzP8&zUB0VWO^b0~^=~xGS|=u6YCCYC_Or||d1&Zt>zK*$Qp=A6HEXe9a;_nB zt)7YOzloL&*4BL=D)-&6$XakiymY9;FwOtWQ2FlrmDcYE;-xJAQQD>HL*>b>Hdz}z zikC7=L}>-Mq4L44W^3*OQ>1YPVzgODhR8+kq+5OKOp$W_iqrh-50QNipSAWJJw+P% zaH`fKX|TMd%pI%G_9@a8@0r>Ohrx0c^K0ve`%|QpgL5?R#)IUk^Rlb{o>QfmxeK&o z69&q^^5<3ihfbB2#4go#Z5SY*TT@sKi<>Gvk6NXjKO7-T?j_atJEuy)J=bY-?(~-( z>r_%VUY#oWl-jIaV1Iv|@Xk+l_&!x?y>h#@*)v=|Oxdds8cv{v^HOppq_)U?q}d&@;U+o_v|CrBTH_iHD!_m+SB-ClJWogkISc|com zsh6Bmx`SGNOalA2m=9=AkM@#ttZuKmvH4PLem=e4G7(Hv6ra|2NEk zU*`Wg^FN!#_mIUmi^X@J#pllAFJg#4H_Pu0%P*DXH-qJuYRmuUv1HAG;`W|HUZ^i1LWvl-uwm#u(eU{nQXR>YmVr}bJkge|* z+xk{x>${b$zb{+=Yqs^T#`Z@awm*j3_D4~+e|!x4=Lp+hPHcaTwe7EgZ2vVh?7vrR ze`Y%vFFm*IPy7Ar$o97f+uudm{$9`a_jI=Z$Flw3mhJz2Z2#N;`M^6GkMUe08t-s= z*W3xsUh^KP}qY(q1d>LsvduWdQk{_cSXDity+t7y$57Bf6Lq3f8UUta=|>=vDc+|C6pMFRr!ludh#Aj-tVvN{OD3HX3&101}fVf5_wNX$FE$^-&)g2fiFc_tgL91 z#Uq|ZgNj)8mp;vxVf0`x$AI#l%XCcL{+GF;YmexDKP-Q&G;^7#Acmirk;?ooixkA* zUviUT9qFVLW%SHZaa_^7&vadXrKP3px_7$$CAlV=1GZLIN;1s1Iu$JA=Qq^j?AuWg ze(pb{$N&0jC86``1-kt*)AL(~-O~x7?S_f?TF`$jhDad9B+#KEgxDJ^U}- z@6Esy%CzQB6)%SQIyi@-_8hAquUccPnu{L~)-ml`e^v6t-{eX$dE)IlO6g|ddS0t< z=dw&VTAxQvE}b21xxK-eE6nJv=027IQ?lu~+%MKvajZB-w^^}id&|cy9x13p(x{1+ z$;U_QF`HLKDy8a=*XeCFJ6NJ0c#)IA03rMW-D?l!A+c^cZ^0d8{<()LxIdXW}cx zxUZrHHWx!(7K+pRUQS#3GDgl|d=18Lu<@4|--hv3oJn9Sm;WoY_<2y5cq>V?ss9&OuN4*g5RvVwi zc*GNCPh-P7?1Ujv*A%+@N;ea7sl6SJgpD- zK*rCq&7+=J&n-3{@gSf1HXix3V?5Ot^}+l~!#wIw`wQ`)z9Ve&*bm5$_SbaVJgqnI z-PkpboLnilRfeS8{~)l(m78tK%e}8hMa6-q_~X!36If;2T!_?(;SVM zLmZSFc-S@0Q@oHFaiB4WyvYZ6ih*e32ps02OEm=zIr0Kc5A+BR8uKJWEc8G|a>8S@ zr>Sn=J3DGGSWnjN{xGrHSVwIiqgSy0e!;_zT6;$CVg3DjVlHhj>*sD{{r%V1a%m4( zpZ5yu?|)tFq-C=HZ_BX3;-2BTwKc52U-QF2F|C)g){FIsYmOQq<_yoHJ!Ad-$rt;J zm&fJRMzWsrD$j6n|U_4ms)EuclR{{9u#->){Zpthg&_dl`z{<(RDv>L46-N&bsxOih>O=JCimG$@U zZ!MyAV*T;ktiOMMc~R{%>!Dv`{r$zG-L)*%TmQlO``h?p+F{mn?{&PD*g2z^mV?pV zPlt(98W-1EvcCKfmoRbIqT<>s*2f<`m-X>eifieN&etzgytTf#c9qdF<3h!!6N+mN z41bdK_w$RzwQxpXWc~fEw~J|)8C_~mm{_uJF>Nuk-!!U~So)m17RF-u$ol&WOSo&D zSZtN1wh=R$7uBL!e}CTjw&LjCMKp!QpEIPrc(+?&tqkk$cY54Gbgo-Sv#@--By|$^ z+f%6{r$4JoV850c7C}BirqdtX^q+X*4r~kJm==5 zp}+4_Wr%pNZ7yvA+YfJ9f4|e|-}_{M-!QRlq@#9_?V01Ozi-@E4y?bwuWN|)mP@9D z{(dvo-yfgc!g|~_Q$l}#1?%sp_33SG;Fc-9Wc|;ktiS){POSBFp-gEz>+k1e{r#h! zi>GgCr;e--QRhYy~wwq*IBzrU6B_m`!tP&?$wl+fQV!20`jhHg+d zXUmk(-(Sf3`-i9OP*;7-kkH@H#`^n*GcD@Q=NS_E``0HWs%-<()b{r?B=q;kv;KZe z)PA+(jSLC>{czUb505#l&c2u-p}+s?)IzmR!DDKT^BK|-*56NO{rwi-j;UMDW=QDo zf6lQ;-977=+V5P3g#Lba*57Yf`>47yBSS)ezZmQ9%Pxo2rk64#^!K~6{{E_G`_+i+ z84~*YpG|Ys1=p-<=06!y3hVFpWBvVSnS0buPckHx_4h+re?RGRihAR9hJ^lpAJ*T$ z`Dm;9^-G3?{=N_E@Aq_Grw+)ODWSg~%liBI8!uB&vi*Yoeh};LFWQ}`CKX}(f%W&B zvi|;wh^gu(w*Khv%dEfe<~UYuSw2&8VEz66tiOM(RS&feTkmtMzkg^$Yjt(0#%cq$ zp6KsClp3pEcLG#jw%#9DfB$kGSxqnKspezz9<0B=k@fe>HgHtEm_GXZKiMsc?Vavf z_c8lxSbu*o>+i?!RIS5GWlHGpzbNRX=8sureONqGN@D%}@vOfe*>Z|CwQ#01h4uIU zV*UN>fA_UcWBYpn+u!e1H`V253+p+y|2^3LxBv5jcQxMOI2-7FPNTgHyz$*m@BTmG zfx|gL7^2Ar*&#W2Jirr%&L@&%#F>rr3mBRwJe@NX59TpPF+iUlqhI6SX^nE|fhQYe z2QsolGVp{4O?IG5@fqc$Pxg&AF-Nh3ro4=C08bdm$qxCzhWH3m`MbK>ndKbFPctAHSCOhk1FJtKL&y-(jKI>(E>adf6q;E-~NVzg_QNw@jYT z-QIjQ8FD8+Bw*wI>k9hL=}E~cIhzmHd&<>rmg27E&ZpZ6Kbv5lRjajto^sg(vr^_d zbWK4o_``w&T#ohOdViS@TWk)!+)zMYxY*SQb6dx0d!imv?ZpG` zOR$^%8;Sid$0hGOT1Kzc_19&TZCmCm_vHC?XF6CAXTX&>uAE~H9(2!_PV9ffbJc5m z^W`tI_^5^jzkdkoct0ie&0gJRTd8@#vKvSB-u?Fb`IMY}yIQbDL+>8s*2PrOZIW>Wdk_G00JAig{z`Nxdew7eu8j`dnDAVdWcH{>FXP?RWoEX8lyD zzpekv`nB?7#-pE%ek=G#jHmwa|1?kbpg+K-&-%mi6FYtQv$qeP^eGTD^@F8wL;T1W^&~vi&psdHys;h+Z1JMs z9Lwy3M}M09Q9Y?1RBz%@Kh(#_|0y2wPx<_B`P=&6GV7O1==a;_^QU@Y{SgoL5BwST z1I34YjPd?gK7X>0^`rPHAJp5ppU6JV{|Qg=8TS*#NBa@)YrMbdoei4a*(5h&FlUt0 zSw#96jd;*xk7&Zsc?F&xVCZ}?#sWG0zhtmS7|01n|2=?tiWBpAFh_ndhyQ*co8V!O z>|hQw=4lQi9>QQWVnEY5Omf(SUy8w)BjjWoG<1Q3E^stQF&O2bF;8=3A96a+34<8$ zQ0|Ze4;gIGL-Ak^7~p{+J0z#N5r*Wj10AwYa>xc(o38h=FHBV|H40qk(7(PmU?ab6 zRFDFCc*#jZ?}iu5CmHQix)^_Makbz5@%L|eH*;4rdc@hw)#l3eU848F#rNq-1yc?l zz4+%XZVOtjd%FBVR(DHa!&y51#xao(A27vyf?@aoPrm9w7rie(=45YfSlnqHKc)By zrC5tS954xua&q<4T=h8jT?pc9PCKjjxZ75qFPwbch{taOJPJ1!>U-u(Mm(4M9#m$P zZ()Xfuy?#AU#H2s->gPsgy|myUG9B3&En@0pdikDlO73Qa&9n#{;PbD5ZdmLPCrYp zYH65OR;RyDHCgJeJ*Lwi8cwlX|I|(IxgY)*D~!6aQ163Jddv$4cP-ZY^<6@C3bTBE z`<=d`mL<6F8xHX_Z2gk|mUd6C=cV4O`CGZ#>oH8vzsKx-;G=H8!OJVWIVw%Z=RdGo zDSV>8-hb~$ya{1O1XTT9N8N9w58vvH-AfVx-x^f<>V(}cuXC3HJUpByd5eKoDoENk7Ec#ZY< zCG_{_vHs@h$?;m)$AJ?1``K9k(+jcM{pWW(r)q&c*GY-2zmNX(hO1LGzfzke^!Mlg z?(b_IR&JNjzfNZT?R*{y+V^A0k|XPH=lI?K)>!{rLjSu0>yH--Nzhn-UqXL>)bIYe z#`@kea+2gAHOg7&@16z{}C*{ z$L$idnJm5sEWT2|f1mJg{EoK#G?pKJzi`r)f41Yv68igNS$&+pPu1Gn>Qly6Ki1!u z(BJoC^?l9iTZ7eiF01d2-@mWWp0N67u=?k7)BF4XuFo8{ejHmr_WKM8zt1Sk*7x)M zDcVlk`mSQ@UzM%@CENPje*d8jWBVhN?T;F4|M=IL^6&n6`MbZbjb!_4HrroOZ2#3~ z`|qS}|2?to&&Oc2l>``2wlyr!}J8^HE2?QajZzw!H(wQT=K+V+1M+yC}|KIpwp zXBOVqc#P)?oe_}J`Gk4W#XSDbOy`#o51MQm_blH8rcMfWTZzp zU_b+d2edI}$jFZI+=D&f2unD!K`|pXI_t={(GFzvkS*|J4|X6Yd!We3!tJv+@fOuS4`+e-WSW%BfX#^d9}G1KX6W>s9q0dMDFWrL}rT?-B3aliT87Rnh(W z?OGCGZChC>%WRgN?<|ZezDe(W_nhKj>5^7VKrjC4z)WTE$;k@({s*5-5Eh2;dYq;H zYG#?b*O^0X_gXczlx=;I1Aa?MN6V^85A@$BOq(Jpu1nA9{bjjyeyqu5p_TPpgVEndf42_fr`UM(KUsg(%KFd$&KvRQR|m8C3ATCg zl^MU>fXDpbHhwspXZ={~9vhGTH2Xclzj*X_Ll{5DHjjQX>#thVZ9MwT0^?b~T92nM z<6)2WdvzZDS@5i1tMlm3HfKEh{esRTU)CSCvVOA8!#?soV&fwi&-(4wt~MV2Sbx~M z)5aq{%(MQluK$Jctp9Cg{cN2_|C#l-tr0fTUozf$0J_WfBzSc z_%P4<+4}qu#-lzIKk~tP46@Cmeu#(sBOlf;|98En*!aN)d@VNL)5d>b^Qag3gS`ff z?{Aw&zV#Syw2yp^^+UW-Hazlyf7(Cbfv5FBe8}g34Uhd5#Q2Ri9`j+0XTRUj^N(db z>Z#ax#D{nn*?7b!Gk&s-hdtEusEvnz#7FCi`eB~d8}&v#C_eC*r})7e_dDL#bXMWL zZKUa)jx&PZr4O>Vnf{LKnt<=m22yqb?!v(Cc=kHiS@*l&dA#oX^FHtM`_Dh-GvBrL zcjey9cF!n+4fp^qV9XiqK!<*T2N-NwKKcY3z~~3_1wQ%!4)y^s_`yF1VIR;x+~I=S z;SPMr0WkQ(|3?9R!X5PRyZA94<_t1mlz{_&pkBD6Pskbk;2fbI@&v4VVMhjDu1o)J za3hIOJb>as6tjB3gBcFsfmVJWiX$05Vpfk>vc>|AHWtMFlfEz254Q3l&p-J`J@{wy zXEEjgwG5(upkBlnx4+dt_=%(#Y6K42LeBmEkORvH4*FsJBgVMs6ZDv;Hh-*3n**z7 z`-6VaC)R~}@Xy+^Ij|TxPz&k-QS%uny7y!bVUgl1k; z{Qb>FAaGzWQO8dV|+_6a>zzouEiKkBSik}v=7<63*Ie{Fnie%k!C^=a$Z z_D9=4ZGW}>*Upc2{!4J=y{vG0Oq}e~Jry$X}bMwl4IEIk0>!#y)@^ zFxYA_JCEQKIqVuhTby6)Kj^jV0oTc&{D9AjGYT3C{u(7Md+NnaYr2UmOz~vjqI@4e zJAEOFH#@8R{^74=dy3D688Xk_*(TdkTytJE`9z$D_C(M$6i6Jxn$K%VXXk~TFLoZ;`DN#wT@UO!Vb>44u67FkWZkG>Q8*hdW@iME5;p$iI2SB( zKcmH{J3-{&7(Y^HWL>e?+!!%nP+d|b(U+XA86>uz6f53s6HGQ&^C8jQ1H}9n$BVz_ zhmaEkYSZ7DCWzZ7$BU8-LaNNJM#ATMiz5;yiAN^ZC(bh~ zlYH}Qh>LO(#d<{>kxq6MNXgfg#f&zS#cJ=HkfdNQav`^z7;rsV4EWNVocL0TJZ|SH z8YWB?`vtTn*C!SyD`Sd_r7BDpV`4)|haE-9)!IeGb!TRXKQFZ-UsMM&;-sy(Y~U=> zwPYufz0QV&*32)K_&i&TY2B6hCgvkKWj}^2ikd4<=+=Xr|MW?6349jv_SigeC)b-C z?)*yfesVJ;_IrxB>v&)CVfiCzhVeqkmI4dJYXt|8oilGq_o9!5e0{P&ocMhpS-a%2 z+4WW@W^(uKj9Aww4~66+nN-zD0flwP}~ zg)GQfM1L>S5OR6a2}vxH8nXHEBC&AdkpFF5Yp?aMjjzp5o4>X`ZT;H*X#1z_ueSf% z`O(gwc7C<S62=m0^E?^B?+zvm)rhKXA||^1%n3D}fJOI3ogvagcNA1$U5NS?^%; z(u%?MExmxlV&K1{Iye`z7&!0gh38=yhnTH9gzTw&FDugMJ9rue9m`0|)iUkDz+wgCE4G2cL-1b`|3X z@PEev+qHkl0rZ%UHh--i;vyenK`m?!$Y=H76LVwhLXNgq$p2G~*ekSU^8x&Sl0W8* z{bA$&cm2d1v>fn*bBFb6Ibh4yf;oU5*9qFPbrE{ruUGM{aYb4$@g+U)H>c3RPJJ?}R=kZyc#KUpmOJ&M@T^L~R{8;zsIsbW=n z-v3I^`)+HO8XFCnA;NjT3_b5}s5i?Po;+JDM$h|q>3M(4!wJUGvGc^w^t^wHp7&Q> z9AG>mE)ZMM^ZpWg-fx}R#yI`RB5^)F@9XJ#f6&b!;{f}m;z4@eUrEpVvvyWC%7vGU zQ|Nhr9X;N{NzeO)p7;AsDqvh+d6n3Lp7&eP^L}$7cYjoq)#7)0-hbXT zLe2m7(*8Xa*NErodA|`o?~j>&bpH!wjkt@R_mk;)zjhO4f0+APu`50A^Ypww#V2cj zg*t1+sr0qEPKwChW| z{z`^r1a1f&{+%d zmeoU^$k+No|H%1MKA0!^g!}=swt%refU!oF!}bmPi8-_L0{Bn!g8p${wDSw=0sY|G zfIJaHjfg>y`BbSB%)|M8g5jBdL`Z<;Ts)^{8QCLxzWxV2JGXg~qMx6r@D7w?_iKvm zRIM!!=i&k_GxV=~%jy9aUp15dKQ(JC`qlZbadWDDxA2|x_WVq{eHQwnX@8DERZb4eS)@~$B2y?>{$9USD) zbnGpChn^QXIHxygcUCXop2)#_iJ!&+`T}9wEPiTN57!r`bvaS}7Pk)kPWo@}p~i+; z&Gda*5(|#G^q$i{@sb^>zVh=e+_I)ic!)c7vJ;>Ds;cGPMgDG!IKsPf@IIlzfOlN_ zu~Z)N30V~`vwD`#`eFUEaoK#>JlXu&y4ZTzKCt~^`^NT@?K9hdc3#-|V&{>aUv}Qv z^}wzZcKxvHY8yT8M~@6vj-8HHF46P88$Iu@@efuGeUDZ~(DS~Lp7)E6sH<$49ixQM z^L|Bo-rrdxNVzgGR(U|r`|Ig>Kdf7TGADbyl7GQJ=l!k)1SKFTUV-y|XL{Zb{OzX{ zTR&0RM9=%>>3KhRj<=FIaguU^p7)*TdH?Oa8p_4&MEYH!5ot%y`%bSaD=%74R%+4n z{={G}a{hTaCF)wTQkS0h4}U2|a>G597x7b-2zuVnrsw^w(Z!V(<)3P33J@4n$ zDxzFIJwqvQxgB{=&-)8b*eWLm%u-6w^ZrSC-jA-4UupPhwlaa9_p8$LzToxIXdX6K zN$S>v9HQs_X?30%J&w&&(&%|#rssY6(M{v(Zz)P9J?}rD=Y6mJ7mVlgFHmmN^Zs&r z-cK5L%vk)%0%bBi@6Vv;{k`i<#vbbyDiS^Ke|>#kx-({vG2L&GBGL1HcY5Am9GPjH zy(};2+dpl8wf)!5k9PjF^Q)bI?fTHJAMN^r^FF)&wChv5ezogcyZ*I5AMmWcL!Z%j z9*6T9;{Q$$`y8AJfdl&l;QNd%V9>+H)KS z)(`8Sjf?rPd9wMlb%B4ZSK9~d57@GO!+vV}jQ!Wn3(gntaUKERp?+Z=AqT)P?|{({ z>TzEFq(2tmNG_&~BTM5as(MU;MWZ|A{q_F~rfFF+0fQ;BZR$i~siFKd}ZHw=5L6#Vx?R^8-&7=KCG+SN_|N zzw6=Oe;)o5&-uST|Ni-bT>~FxI+zd9^Zo{U-v5jL_TfLV2Hw&0e*S#<3=evAs{?EA zul%!UKV`k|BL@Q_y6s~|D8T4Ud|y4SC*9;S8z8Y zo?O@6Y_jT=BzLn)@gmCU@YCIFw(8xtmogu+;*wK5%tx%8&I*2UJ#_JQpW+c&nKY@gZwv-85v7dwya z{Ic`Tt_OCVugC!PwP<;f|Pqpg%QJk#d03Y?h|C1l&u>R4{0P1rx;}iA0n0$aU zjp3jlh>N+gaY4`e1im&m%o*#&xTx3i!9Q~TgtdJ1^Z&&^TbDL}?BSp4W&6YSjm`7l z`V4tuT=F9vYpznICN#>8eA+-S)thmPC zwPDTLP|Le5Hk?cCkrto8S@C0o#m|yuSVf)7RlkGFxe|BEj`C{jhonLm|+4aD#6L$Tu>q>XIrqry+ z3!%aOyZnO4c;b~%Q}T9xAEA5NC(&F3c1z3@;+lGkb12g zq*uwgLdoU7__-E-l4k_-JG zT_=(U;sIUtnCHTkf^Nd*I}^#x!FzO#!k-Hto0kwKf1gP1>`v9q@O>_LwssdTyCsm` z!CQ2fT%HT=wjRRKY6)bg(>mS5PtSyu(VoJBzyxx-?n<5X;F)lCUTI-M!vr$)#8O?` zi_e6lu4ROyE$P4Y-M?7Z{?s#J(#0~uy3hoY<+xZEv+b2It!^_uDEy!Cq@AyX4NIHy zFg}FZ&o;agMyECA!5;k2JN!y$6W4$T{}8|PwO2xw-#Q-RLw+OQy%MgGARh9A{KJdA z7JfAI=OKTnFGP4PJgr@Whx(xY=3QS4J#EVKP(So%e9~*d|3e8L`UCw_cfJ;$)87LM z{e%AIyZl<{mHeB7{zCsle!dodxjf^b|1duZmGXq6y)JMtKQMm|P4k4GPxo;!e=xrt zBl3jaWjAmzzcBx{$$3J+h}j&>Kdg_ptMY^c2_raIAFzJP>+^)`9nKS4 zakV&DU&rbCdzqal*aQ{jVEw`Rw7;DvOp@OC!}^5v8}>L);C#>c!}^8wZTlimm^E7O z59=G&f0x&J0$*aIKdgW4&j;@NfBL=;|0WzR;J`R?P=-6a3&%4u$o~_c^~v&CpTL2C zUk*CBSd2Na`LOuke6s$v7-YQAzm|h_ArJ4Y{@-kotM&PBeDulI#bT`=?2oo@tbgd$D(8sy}vgoPX`Mh0}r4IiRwU1jdP6zbi8>iw_0 z@}IwZhNZ4bI>rBhsg5t`$8_-La#plUZAmdd)s?e3<7lzXI8u?TR%3%D*0AjB{ z`qZbKD6et;6IKWK0(QOV!M!Lp!-DsJ80&wd<0c=-jaRSx+fM3W@nfS@dKDHy~ zS^C_g(s15Vtf0kqvtNzrYztru8f6vDAQ(<0yHCo0kUJzti z8`?@(u-%y{3%mUXgc=@KsY!0g%(w_#v0j$K!=OFAih zvwpk1euieY|CT_8S>=XSIg-l$biBDn&aaWftnx^!eI?C!QL8+bj{8!7ovbp(>%hnm zuf9eeYn9PI<}<{apN<&^`(ajjxOKdXRmOU%SY?Q>tq=0+VI3cA&DT*QV}9rl`IryZ z12Xu-{-R8*{!qsJQD(;>ziJwO$bTaPzm9br^Q&Q%u^xX$2EI4LhkS7y=ckrt9P5St z!uqLe9f$b=f7<$SJ>mSZ{(+DFARfeTY4wNmgZaby0e)j9ACOCH;$y$Ce(Wd8=nrIw z*IHwb{D{nEQj^U?mNK8obZnMpdb9bJD`U@r{JGea2)hdFZ(-tF&~!0=E>^WUa@{y4jY%v zhpkteKgw`N%=Q8Nqn`Dn&6DL|UF^KD7{{R}?EIn+(6fBDc9xI1om^DRH*Ho)a(_u% z|2tL6r)5wq5AUcCD3zEdQ`~BAe%bw`r*AsNua?!5d)wFY$)vblp2E4v^! zd?1HWH`n+-+(T;Zq&Q>i>J0MhSSsYOt)y3GsqzPW_E7Az|An7lvx=5Hdk=TlXYQ%) z4gB!+H@L|=-7I;w?BB=Vb!sPz|L6VAX0$C*&euRWsrR!pU(6b6$?b&Q{M4o2)6*dC zCf}(U8`ncfcEJyt1t*XFQPZvxDMUO*sFZcgI>dO~~%dx%%2^pwD>h z@Bj0Ly)W=>JI>fC$xA>;Q``a7kq@(GQ6%__gNj%Qe9 zw2#rq+VN%9@kdtseOCFYMt-63|JW)|`WOCl>-aX!c#2iV{4jr%*ICEWKicCs=7;0Y zH2(f4|JrzOH1^nUjEDV3`GAJ6l`+46<7>yYGWx^%*!fcFdcgW{T-zVy<2crX^NHg) zKkKaZ;5g=k_9)~0PuK9#Kh~?A546YeeDD8R&nSO+`;Uz4x4Ly4*ZU+*zrSc?j1SLn zcs{fH6F&E0pF%x6^AW?H-2)J_9Q-?R;2-=T2lgY}TT!RwfF5&zScvg=1Y*vphrI^( z8_*#J9&#Wb%%9B%Vj&;&U;~#nhdxcCZJn#=3)U$cA`NKGJAP!p##$ff@ z955E%Ar9Mr@PT81*?GabuorL#9rEFh9I!I1t_YbbjH(P$ddlAJ8b(Q&xH`b;BXLbF`{L-2;d{$F@ zs7WFIu;F>y8j72(x}Eu~lU@3Dii^lmdSO#qS~|r$T71?Q8ONt(P&_vGR%S*_`I?I< zZct;dKFv8R75G8Mpv-ITcD^epZuO}c=kIqqbt%OOS5y2h8+Q5tziGk1%%q@u-hlT_ zvG>nO`#^3(x~<5pi45q{`C12FZsZ6N&XLg=1~0b_fY+bEr~u`C?55M&+OqMS!x_Ouc7~_vnGq)CtA$R zcV+7i;8&_VTrdABYw@!=+m9Q5et#er_uC z=T6E*Kc#cNH0ayw<88U6#3l`TVi-5xuSeg_KG5eUb7TCDmkzV^zuck``ifU8rmv^^ zq;1E!D_iGc{VSr+=;`1CFpzKg}qWu@2Om`)ZsvL z@dVOq+D_Av7xS`i6*?HGcqEYY5!*}y-^|PMm}Lt5Tp@wXDznLSKCOCY!Z?{x?WpqdTN`JHTKSqz%}%}bYGhkQw7(QtOYI`0uT0}|L?Eg zG*dyZl&o{*mjxCbnLti`8gCM+r(}KN=LFtKP9T*$2b!AkDOv8(iGhjB63E>ep{57A zl&mh&;J{G&cN6Z;t!pwgP06ZvE;Mkjl0a%^RWwZqP08{q6ByX=Oakdq+R0?sIVH<^ zyI0_r>j^~P@}<(OXG)g$`$B=nM+qcj@*zd)my(t6;6}idSM)vj%9Tp~h?FeVGd;lj z1O5G_Lq{n3$ds%Jji&{?{gOZucls+6hoodRdEGRi$`3l8{Mop6Xi8RaL&ty$zY@r# zgf&KKSW4EUZu&YQ@H1S9Gfty&f%eVn9HR33^ws;fQ2G4GOacDClS4OGW$mQ$jcFM? zJOjGOzx{SmdDAkNUGVHUbaz$Ob}9!?`ez*MH&MCZsDJFy|F3rc_&;Ec|D)?a@wNHg zr}-z){2OEbw7v{lUxKwhsQ>rCl&ss<`k_DdXn!VJ`(v>7uZ*>Sy{!Fpvi7%zwf_~Y z{m1zUx6TjD-+elNJ*@Kw^V@{ZZ#nDy;{3m}&Ofe?3)b}k>!&J?X|AI zKGyZ8U7xsqOIz13tnb5gec!aM@8xv;=h5{aWL^K-pAUF0<6Z+8pWle_&h9g~AHf*d zA_w;bkYNu29$+{dA_flfSzFd8tP|X4&>rqA2mGKt%LV%3h z{o)<;?8WL?KI@0|54I??`Diibul0|%Fb**=7xwIpHf*oZ4)|;=c3#-|0uJj37WhgfI}7;I)&eLCY+yTED-`GX$f?y_R=4{=csvA`$z0Y26U zd1B7!Ka+BdR1ZA_KGX&ILtOBWe8_DI)kE#jAL#R5ilIiR3v97(FkgVd5AcBla{;j+ zPsj~8kQ;Eo5B3x03+54O!9KuzL5;wfOfmR@{2@2c>nVo(!4`T2K4C5(2k?XWKo4OJ zKt4F9;D`HkP}g}_Gt-)?P1Ncc)=K8xc})w zKj0tifrGIS<9@^X0S=oR>`jnAzLx+De7GZqKLY^9ScoAG)(bks$VWfGL;si?+!2E< zVz`4HTx?x{K?gaYU${dpXbUoH&tk|8d|>U658C4$@&G+s3+4tK>^We_1LNZUj{QMB z@DKy1ZlegkY`-*VW!o(N>BEykQHtw%3=oXDH}&om@9NW+o8F+F0Qj5|VDKoCBDhf; zZktcI(W8vuK=Hk?;riO`+jAu-_L}ydZxL2V@TAygQ*HiLY9XNl#R>CD2q*7<<0?_y zrnapx#<_-2nqv0{-35pCFZ8u3{uDlvyE)9sP=(@FNgcU{IbnP?ijyi0=Z1ZDHdLgz z*F-O2{-*|98HzU-e9U<*sblb?*tP3Ye)ywAp&Z3Whx-Wj1NZrsr1;_7+QOc=6LMXO zS56fSM(2D2Yj$0~sKiyF5XCpo zj^pZd-Kgg&u8^}(PTT&5ccgfDw^4j{#1x@8#f#$d>pi`{@ZJ;$#{A@R+SW4Ep}0hc zmGYa=hceW4Ve>Y*<=9$0#4R%JuDs{lSPtr%|D?H~`n41)Q#_*SDPPyQ-+AcU&OTrG z2fK?}aw~q!M)>Jo)&Tl;?KwmCE_(y?=jE=`{D#||EIxmCoWB zSmx_1A1dsMEF=`8`o2{sWeiOY)q7AZTx-a8GA!d^e!oBS67Jd5;-Q}h9yO91_mu_6 zd5i5)?oI2Bf<48bpKq0?y7mx!DBhk?!{EGZO(sY2kA7A8@Yr^iSZmI7k=b<>yxCh_ zC-*n@UzV(x>c^9eG#_4XnPoqoG+WV69T;(2>2tQB(kd>N>itG|tFBS*rXGA%WszeHF_nl_KlUnNlJ(UTk8&}jS7x;8b=%ccZdwf`J0OOXbRMVH ze_GUJpI%E@7#>5K*Bqlho8)AgSKUYP9~DD>I*d~9r`nlHz4cQDFODIHGl#1`Minv* zEhH$PjWOhDg<$NKq)jLmV}h|P~FFzQ0n(DLWmZmSrF`Ug^6Euf_3Gs% z%7r#PlrGE1lQR=qsgWr&m14#|N}&_u$+C*g)#M5jl-EuJm7^cVlRftvt79GvQ2K=o zR$7&dBV`XYP!}$0s~piqDIJ=|k#eVqdb@wHa?){>vSVl*8TMOLo5xjEW~~{kRGt?{ z3PuF0Z@;-IkMd%a4QX-2&n8IK=P#%n`xd9TosJ`;Z`V=#g+4V#@1Lj)eH2I1-tp?} zLT8M{mrPQ&e~TkUnsVxIox#|AOQLetIiB#h{M0$F>x`}DBq{g2;z)I@XIP z+Mf@2zQeN__64}`S&q+rxPu;^<+y*q9WLa+IR4+X@Vx&_FW4*K4tpWmVl23WJ?P;= zJ=lUTxFZMl6wC{A16#})Fzi`yhyOgsE4?i1K8r82Rh^<2V%hm z9Pk5txY$^z2YcY6Ez}4y=z$M1_(2~~3-$vzpa)yHz$e^62N-S9Ka2rJ8_Wk})MG5x zC&a-X!Z^+&V9XzL!JI+H8o?KEp-+H8591X-v=CCW{YlJ;XnmDt!9p6v@0-c;scX}C zJ;me3*%*qf|IQmIz7`!WS9&{7NT;~`$EAivO?wDNil@f<$xo`y7xq!y+;_U6W_lZ5 zrnq>dJD+$uU!7ePk10IeV6*p^4E&Edk7cJJe)`=MZ_K!3`0*oK08YK9ZRGpy)(JZ) zzOZ|>d}(NFi{7Knad|+e7d+&7DcR1@tol#=ev19JU(d{c>yyDuae=ud1$ACSVGG68 zZoM&_xRfSrr+7fF%kG&Uckz&$E_sm9LKrQ8?UI{zhEoSdTKo^IzS`imah4u(ZnA5q zY#NooXHvW;H(cMb@?-&UnWg&-ce?a5?4`KVrrmtZ+nEO7MNpg%vKWXWfr zROKP=h?1M-b%kGLLcMK1meAXCM+B&M^Z0`Xrvp1JwNI+wo3B2*onVRE<_`a^h?@aw zFE*gGP+WI{gSZDvH{rIAt7?FG@qB((Zoj#?4E#+q>&dQt@5)&eH_v;*Uk_<7KyD!; z#~4<&9%g{J-u@C_v(`;ZPpa6Z8@3m_ZJFz5{U#U!D=oA1^R3-fgV#boeh=ku^*dz9 z>>Om_?5O&lcc~I&=}Eif9RAhjnwGV(*XxR`pE22zbLltxxUN6vS^Bf{;9OyBu`tWL z=Y871v+K$|`I(xLa>`UYs*zN^c@HxB-ZOREgHxvbT^dPu{d$lIpP#EeZ=5z=D%D65 zo^~g9PP|YjMxQmk+|^L(Iix$;+vc@;-EiL2twcjPGgzNw)3+k?j@m&2kIH?ciwe#^$}dFi>ydv=I4(X$;H_{7$Hd-N;Q zy@+7x_USMZr?)r9ZGL02>r+=Myf&0f5FE`(?cST#P70Dj*0d!v`a7AQ4*zHhI~ypK z&Td26NzP`w_n%DDS_Vq1#5Sb=0cUgF8=p<1e+Edc9=0Z(UpSkWSN&pI@GwBqA8k#} z-F7xlD)Pl-d=VhopKncG8l27NkA60FDHJIAzi3VRk8n2UYxUWbljAPOt&>pIs4Lda8$1a>?_bY6Eek9lQyk3YDb|jqK^szC&UHi=R_(h21HoYD3 zepS#M+5d@Y*-BAr8rGil+EBo(FZIZDxwTFj>D9q9AG_#$jJD3l_k8)xF+=Z~xJ*f! zVdzM{^#7^0^}KDe?MbA?<2#Ym%iq)GnmPvi_Q>{-%1;j5nQ$ z^6R7OGyRIGdvJYe!>TUi<&pQQH20F}!_oTEZm}x~GQ3sK?#nTKY1}}Xe!eSNot>w4 za>_Q%&1xW3Xy1)AuJBr&H2b{CvwTD8*vW1rYRgNtx_Hi1E4HEZ&9^&Q)$fJ6*z2q* z@km2y$kgs+Lf2e1ggayUlE0Dk`Am0GefD#;MBHgpihm<%S-~Ep#MftP;+IpV?(G^$ z{c83g0qdWs(|4RQO^#?JCD!jjv_BuPXW-recf|1A#(f3$3b=raI>2bl+98HJ>|vEJn#j49Aoz(+~06a%VqUg7v=$DU=MfXVa>qBF~E>3Z~()F zKG?iKkGTOxpU6jtwX1McV(@0bsA*#7?;A2{F}$F+BejXAS9 zU{8RLaceHhRpDK6zcGc?IuyhE+ujt{qBxD>NQ!-}oc>llyw?TnPxbIlxQ~?s`o0wV zP(8dK27PTS2mE_m{S2g-qZr-^1D~fDz8&lg?b?_^=j1fLNULm$8v zdI+}AH|Q3$AIJgb1^C!oc3s)~ z9MajXYoU8ls)=-SM=Y_Uav_ZjY1E0+g^Z)_u=#4)|p;?i;{CpMc>)Kfnh+m=lYE0~c`M zj{eXV^M`T7$iX{|p>I~l@>&0Y;es5I19!OCxR|Hb7V`u?#)CWRSw8CjZ#VVe*|SmUqYt+mz8)&+06AQGJwSp!~yQBK7sf zoh|R-%dVfn75T70hWGGZH9E?EH9pGVhd)_RZhU#5<(+?e)*^n`-DJUtY405Ng0nKbS6^gX zS$^?*8V~Q=Pj7D{e_cJqA9|aRTAz1umn?m2ka$Y2Sh0ct-$9g=!iIStN*Ulgi(Q}E z!n-kTWSB4E!XCMG%rHyNS)bB)rN9y{fa>MFA#$8=P0Kf$Zc`r01s@j?px(KY=gX(2 z%;({IN6*U7`6;#SEVV@2IqLHqJ!SZIaKh|hu!;Q61K+6);R+qPs4qhCvO#(L+wl$t z_#V`LT{xF`_>N^>Hec8C`A?R%yytIvwGz*+D?;D%FO~a;%v_c%!h8OJ_C9KXN--gW zYb1+4!SST%06(?U=;a{+*ONrAO7XYV7Jbf#cL>c?51IOJLD|Bce=0(Pmi7SSv=W2Zu zhxe>2I{b5D-Rc)GP9PL6&gd-nXzgVmj zdkjgOAEyS~^w6D-sw@up5KRi};?-=I(z+URDv2lQcY$E{cy;L+Pu**^lGx=%H1XLS zry72F=<;=_EEaoDMut`qKm3j+53k3nrw*3X)yk|YelHe7CQgb`Q^Skv z#OUgxbB!2s`o=ibt!pve`1Li#LXBexpF2i1-*DE|_x2XI4~QY}Ge)WRuG#C1?tY?v zW(=vyjZmw0wb32!&Wp$77;=8(Fx6>bK3(5W0b=aE81j0|V0E73C-KVdU@_Dsmdvgn zp&F;>igg@`c%VTnG2ZE?*6ndeoI0kV$VbPLp6z?9He0gAX+@if4ym!E)6VYd&!i*b zkqfQFjSpi<$yc4#$dY@-VmrgcE}s9)hcBIvFZ2JIkB}~5YTdUh#S_up#BEc?lRC>< ztD}iKSo;vL5U;;`KDB&=%_bu)<+z1ByHejah8%9{qN&FxUp zxnPv&)HsfeH4wG)F0L2UjijwDv#)e(IUgp4koC^{F4C-uho ztJ|k+3prdnNv!T3Pa=!^sUcq$h0Jl9EN-nDPreoKRVN&q5;9=_WN{f6PyFinsQaFc z4G{v8MW>K>a`m*gTJFc75XVW$q8okBul@PJ=QBLR;aQL8X~6I-XZHwv-wQghV{O@e z1Tb*e_r1UcpJ<2vVP8N#>>F?)2lbE}V8{(Ia{lB8VneQ&Ct~2DPc|-K7=t_bMGj!x z%K!rh`-6ExKIk8FLqEWQ9Ka6jF&~ft!-X8M0YAWFV*!`tAZGOt7xdr*?&u%$fIIp} zJC+Y|kqhIstC%|nuZ+|J5*^UFF)mD$e_647dO8B`7*)*ig#qRFr*E2m*HJ>zsZ6j z`1&##d~TWHBD8FOjfeN@!O9aZJ49ztDE?lgjbYQ8S$g=6P`zLVUp=gn<$J-qC^y-q z$YX!V!QSf&Kl)s{<=cT_!WWryU(Un3>zqF2_4%s=3-Ersz|ouXjT6Z{yl*cu?vebtM3w=*BiILe8g>nhx4e@#%qV8Ka<-!-Zpq_K4WFW8 z1jsF?bP4{s^40QPKv_9Oj@+0en5ce;_gZd{Pa1!c;<}@fggUh+S>E}3lqq9aTD*WI zp9gbV^9_48vb^_he=)@nnK;A%@9LL(pW&YPF65w}=j`J6n`_Eh-p?POxKOybqoCz` zfoZoS^zA*u68DT}Ts_dFStvF^|6y*;9Z%hmSliH#&5|@}1?3<0|<^*jFCv%AeuI zUwXLG;`6%089rkBaRI)Y?C@NupU*w9^gpl5J2|wOZ0Xy=CoTDJ1r`}#j_OulC@*c$ z)1vP_&(~mn9Bs*SZuwlET~}`OJ^zN3Q@UDFjno?SJ^!8K&(w2gPU$xFY@~Jy>_Ijx zdaf==I;~sf+eqz}zX!?A%~d<;&*)~~YpAZ;(w&q!@lti{dQR75WJC33)$ZhI)jW0G zmUX-{N|3txL0huwrK5T8iVwOr#e>waifze)Gfw7{)j#RR z&I?pK%xpu34|O(wZuD9A$Tv{U=hcQ>IPGjseEnIM@+m-#y4jj^qTdB(RsEt{_%J|~ z>34x^H=NCW_Fr_9UInOb*{wH<}B?KY(J zJtuQg%TKxslLOU46WS2_=1%7C(nsC8+kxtlhi%B26#Cub^LyRk7C~y=-fcYYe(M36*LE|e5|{FO;pD( zZBHsV6)+!meyGd8MyJ+`?LbN_%V)kFb59rES5j+r?MNoJ_@!2Oa$EPaB2nK3bRxA! zeOKG`x~Xe*o2W5Poyp$JFRJ?Ln(o}(dg|M&or#m%C$-LsE4r?A>Z^~JbRosozE@Wd zy`-ykzP{SDX;-qO$6NLGkR08at_{@TPrH&@9rDzi)faR%uQpIU$8{rKvtFsSY|rZ^ zG;FB$dDo4ME%;K6+j&;kcx^*9qg!|4elS;UHRp^jFt?$)C$l@bdGxv3EbX+eNoBge zKXfM>U7xFdMNjJ{wQi(tt<;0e+4@W^n{i6#IIxj=mGmImpAUS_!+r+Od3ctC4lj6a z1BNlUQ4jkE`bG>gYm2#|E!^3ha9_gsFb?*Z zJIjR_$cNf7Hs*+Vp&t0agA4tlJ#b+h{i7|6gC6)eh8TN|{!x$d!4@$1f-$(mg+11e z0SA169o$jIxNygO;f~{QhYQBxj&Xnku}}x&Y#*^+HXrnb{=gUXYuAp#(!0qnQkw@O z#Ct~zOGb(v_Kpw_x!Ot{D6S=r5I@hfl`@iCq>}N&#U0h{q$`OoQpltzG2@AybZwH0 zG%<9TIOu@Av^l{=TK8dyI6Tuq>N?Ry+A(^txM#Pc^gG@~nsITEIQ^uP6c^_ro%M_m zD?E3W@?u@2=(YpIs>O;*p)oE}-*NrKK*>egHqJ%bzqpThd1x`|=NK2sPTxzsx!hG6 zG1^7)%$sI*ZG`mXtaTbCD`t z>L@PBb(frn(%;e5u7lX(NGa*jU>Ax1+)f;rN3Pd8Z@Q7 zn7qne8cy@PbH0P|3^=MU3G2o<&^meR^6t=gwxNk&J>1?!%boF*$ajJU}DV6rz%VvOB z_NbGTLg(U5g$QvNpwBDyxUm)g+zjovd2lf-|yX2^O^&-jgZ6!^G?el zz833N%~3sz(eaxBCjV1*I(>~Cbz8nj^0+oJo$Og!=TbXIJ^gAB3B2CabinMRE9;%3 z&bT&+6h9hjnw8N&XQ1QX4-6tju5>Yt{nSynuV#+gcsnmT;5Ze6|{we`CQVjMKnWIr`kxAarC8g(gxRN67e#lCu0xjJa1;JUuQ&+Sz8vFHYOa=&A61U_K1xj z?q?R8rnny02^X@}rBM;&IlsiT{QGg;=5yKV!NC!vOu;3lLUWJn`kc>J=M9Y@3!)aA z=GQx>TaulvI*f`S^+qo;O>;V;YjQbT72_gELXm~0XD<%u`rgP^t4xm|Wu^J1d)F1+ z$$QzVepv)ro^PJ1&c(gDj?c1HWmg0l)nT^j{gq7Jr8n8C&5;N)Q#Zp@@#zlTr?1&+ z$ejq%&N#)i-F~BPV8I;q-M0v`?P8)StoaJvak^gCdki9TO2?V5?n%*YE0Lq_sym1* ze>T$OI(VvXBc1<#T?dghH3ym2*+lD_R?bmv;s%l3Ha$(<+V$22)A_!zVi0lP($3^x zzPYYGozDVUgNP4lZrXR(UssdP_lHY^NJU3t>f}~h=S0UnUJoK4o7ORHZ)~G0N$rak ziX<)T)HcQ1JrE7l|HhJ$#OPAlv@^pb4lhU7PnAeQ|6->}H))M{%Ogk4@Q);yhPj)T zhfWa<#dFlD!I9)yQ#Vt~^#jCYy1p0F_1#c)F*VNDRy;%3e`&h@wLc&5Y-aZa!0@bw z=RQ2!VI21h+!J750gQVB@In5Q9>?I$?g!`#e8Yu%7U&@^>e<|24E%yet+^bLobRy-@fZV z{>lx$1H}W~`f#qHjsoCT-+yyiKFNGLio?zg=e9TfDEFXvs4+jUyEc^XMsZ9sqic?Olpuczb z0pE$@EBVf3mRuNT0G|g2mP$)%^1za(ICda^uIwdC4mDeh^IN&4xdCjq_HU~nPXAh1 zD~h{0nYmqS%NxQeUfWdSM)%swx2JgK(@lEEvJQHPD?Yu;JA&e&vHavLRY;ab?g<)D_)u7$bI###dOA*t9g|0m=&5A{}EeoSBN z{wo=Ly1Yr#R~xrShFS)W&Cquoyo3Wz8K);)$X%nQMw`Ng^g-|P3lM9Z+>A@LnQZ7z z@r*}3IOjsO1;}~d+-BT`W`%_?ihD17z-3nPkU<~qSAlQwv$LhQi>3M8)A&UepI-Af z`*->rErZYQO+57V6B8|c(D}{bG8!J_!T*RO0e*`bEa9PVozn|(Y0ConrW6-5I&x#9 zJ6Y-~M2hkY=6103xVQO_1GN)A%lgUSXfpP@30m(h$P|1>kc+iH*gz#jZ*?N#cp zEcLgCj-RuRdr>*f%7^&iALDCftv{`de5i-b59>od=68U`EB%N1Fh26N_F7qQ%^&?i zeb7Isw;c5k<5(~BlkFGVU$n>gSkIqis1L@`AIdO)5Fh%l?Kk?v{`|>a>+etVjrF5F zckG60|WaDBCxT7Dq zYxf_p0Uu}&n6<^fZx4F3)nb;<)(bqW9dpC;Eyz#@#)Uh)dw>{VhkU@uVKKyn3wWSM z40p7LJB$C#C*+8Eq94eOwbf$evpqo$&Jm2^TtRGYZXkmnjES{ip4uEx4{-u|`|w9a zThg$6ReqPp!puVy=d8UcXPP&22PuBAXNJL}&11cp;_a(u8y4@+wBRQLdhttoJIjZu zp6fNA&!2f#4><400lmI(3Hb=c-f!a#Nl{)h`04O~7ow95@&Sr_UfE*UUuA+tU++UR z{f=}Pp1HW{UD)O%_iTCcWDq6hxLYrLUJNR}RQ*z$d)ylY!=9qzv$&be$#{PnZU^`I8APmoyeb{xY64he&06Dl7WA=Mj;{njjyHlnY)Jx zI$cYP?YD^q4a1f4JmlPB!c;@SQvEEPE_eGHiv4orAve$TM7iXfV*GK6x0bIUe7iAS z4?cTU>L9E+*}%e&(G@qGIUdhJU6&W{^HHU3x!N=tTN^g`N90-{C>2~H`>Geu=PSefsghjG~?QO za6YyDKpFVpAM%6zu^#l#t`8UoKCUm2wf%tg&GsAnkMW>B$RFnu*BAbLz;hX%`S47K zJqs?}6YvhtaNHAcuY)nr;XbF`2hbe=TPHz!+TM6YgNkzFPnt_8jxUde9Ht;Q}sP zI1WAmgFpPU7v_dGAcKFn!-c==5dAQi9{8^&t>vou6*IU}JaPYi&aF)W z!HwclH$C;ApMTSX?TjC1^?Qf^mP=AxZb%Wsfsdnk@Uts5oEu-XewS@f zxO-1slOx@FSg<%@BG>moLD`GyJJ(L+Iz0{MN>MDgaTSVoT_TsEIN0_fx7cA92l;q# z5r(sO3JBnT)%-4oRs8r&=);fE%lWyDcXQB(@_8-zWdRHMvJ`JiZfN+}aI2-p`1zOQ zs?pyqac_k56DD_W&qJ)QjmyYSA|6?4S#teL#t3zzCD!^?#XGUV{uX|cF?z!l^2*9qh#l|?GgvC0Rj+?2{E ztnzg#*QD}Nt9+ZvO{l!wDxaltGb%r{%Gp#7qw;>nz9W@aFyr;8yxuD3QGNp|$5`b! zDu+_}oK-$dp12M{(-;R%7^?LQF*gf zzDi~2pV2B$pfc2d*DAlY$~b?&soaf@@3oFY{~-VKRvG8}s8t?G$HD(etNfM9kT1^X zb1Ju_vfeuWnaVmUW4~a2VZO0HkFD}bD|Z{QvRcjSXVxPSu} z`a=%rfQ$KJ9;^&Hka6!s4(c%$aNuHNfPds6#&OmU_y9dz=m*DHpP<9KSwEnM9-s}} z5hD-pIEMM4jC{~zOf3iW$cHiT2^aFTwk!v01Rty(>akqiY}8luo2<*j5n`=q8+AX$ ztLXQA*CRG+CyMvd@B0nK!sI?dPfAXb4;+64^>S+2+c}?jEar6o&^(Fn* zTq|^dIP#FQ+LC_XcZ=>Pj?OEh?xNrKgO>CW%awIef6;H&$LaU|N-c}2G4%WXRr-Cu z)@WDt0R6uInSS3tzralmqTjpwdv_I=ZYi#+^!vVve&2t%qlDU(ejmR>zwbX>SyKH% zzoB2J-}je}bysugxAmX&`~FV8lzN1IbMJd1T;Gc!J;S3`mUUr+aR3aM zXuz19!3K}U#&~2kIp>@+m}qhao1AkrIcIPfjR7+nnVc73FLDlE={{F*T2}=zwb)>`$v73Dg$$;NUdmp-$wiUEo^a$=$9hhqWygr+TXwA zaYp%2C`Bqk`}=0v-=8z?xe{7DMZ*66_p8BLszH(eIxcue*8rTzV@sY4ux4or7Qz9|y+_gB;Yet5ryj)v48 z?C)=<{r%RK3T&4z68<_I~LEJf4)eiH5PH~4bQvF%K*^WsAE-f zvV{Hp+_b;Xybe3+UPzX(zu%tr_g6pJ@91?kS;GGQ$FTX1MOPF@%I#z+p7!^9(Ek3D zls%3%50fPa?e90D{r#AW@s4XRlO^o$cccCN>-V=iK7UG{KZ*cT>O_8v_ zKc4pYv(#ShI7#t>{rw8GzrSSnJV#7UiU-=?uS@&;CwfhBY@zYT{ywAqeQ&qnj)p~3 zq;#~u-;?(Dk2UG!s7&L1miG4#ZEEURTcEb1I*ljx_y3S;JN#}1Is$0C-_id5#SF}m zl+D+XnacCh{{Cj#-!EL<&EZG-*x&z7rzp1cxU1|V`|D_bzaQ=IPl|OY0}7-_*x!Ga z&Cih~YPIr5o)jsD_V>ro{{D!Dla<6ADbi%x-=9VM`)Ss6SEf;XFQWK<>+p7XeQ%(g zrTEWF@o)Tn@Mng8-skhbkp~*`{LY^zKa>{Qw(!KcR;Ud@jrD<@C>VxqWU6esPRDbh!+#6ZFjaUfTZn zm5kr4D;j6g_LMiaT5R<@G~b53?0jdUt@rlt)b_6%#w|46+zr-Wo_;@O=v~<((7PrYUSBx?C*CT7iy|~BlADL0choB`YHx#d(fp% ztdD!Qaj+Tt)N5N6k3Cal_w7Ls>tTPWlEijT*q1zxC`Q?v89`?T_(YFyWRws-fDzpox)LZ8^Ge2HH*+Ed%d z-xwVnpT=B4YvY@yMXbYrYh{C}s*3FGhYJGBZ(a88EA9HAZSn}HA^7^=%+2WHrakM-8=Cx0Xh|JBdm-?jM zh;(P=qfTY1_Em%w@uRbw`{#b1C7F z&Wz8^-aUM)PWsKA9lobZ(b50M|tluGN1nJ-L zd#-+zJXroRN2MNPaqUsY01A&ZnpP%syh9E z2V3qqD-~~_o5jw#qn3E$!7`WoU8+_$H#=YOrkXLEC+ocNqO>b0H=DTos@gBelX-ew zm6G%2W<@(+QcpMYWR08OklLjo`+?`x2mL+S{Qs_~nG!#OBGS1w57-4Dn&}Dj!$< z9iHsVsVCBw4nFL~gQM!aL!N9;re~6WeINGnYBA*cQ;vOkyXCpzuVr}_h^{%_9u z;a^koZwmR>ko<%H%XI$tqV`Rv_I;uDm7w;uq4po3_K%|W52E(Bq5gT~?4OF%KgFs4 zPEr3gqW)`7{WrF zGK@cu4?kyo7~^Lg#n%Xmucj1Vbt%3Oe-kMF_EY@LA{z0zo#NA#;`1!UXJv}tjTFCO z6u(<3{!TdKd#^LTuTuQqr1&pO@xPDa-}w8$e2ux8&)L``=g$*hK7V75$1@kQc<%D& z1jn!g8UEY=pFdl;4A;@yG(In&13S2L40+Vc{Q=EopwH_94;RXRCIg&^I=bKhx@_D8uCUN-WJFV_o<-mHP1a<#eCdN#rl_YgG@J9=ua_eS^tWO!J9p=Mrqfr_XnXew{tIk_ zHt(?>CH}=~$pq(c0%hh(3OXM~X-BEmOolz8`oTCHF6pDG<8L-sZJsjJ{$;TdFN{$g{U>)cENu zq{yMY_G|m>&Ej2ceHxE5p)D8p?hew-9qKv7%02x9IdGP2p*qogx!9O{X|L9E=3j4WmESjlo(RfBGrS>~2r zY}??`()R`X)tzO{%p=u{t-CWqN;~Pi8NBUseUe9f?40>WPNHhmIhtA zsRmvz&a6dpvCO+0Nm9jIYQ|l~S^Y}6Sj8!gr0CYS)ZVL#vqQCWF)v+tT`KQQ`u$12 zJn8Qy{WKv>q;X{bE7{*c_KQ>fb*cUWRKGXX?;!tHkbgVKzpvz9GWp+}{4YZOJIMcz z)V^8NzQ)e><)QX}q4tMT``xJhy{LcAJNu_K_0KBmzpT`M7pedJsQ--pi~g@b{a=jw zzZv!aTpFJTy74(e;}=Kcx1GkXCyieOjqgk6_`ag?9Y*6nl*YdrjsF80|7ePjbQB*C zobj=m;>UI2esza4elAmdi4&oRgW~fT#qThR z--Z;w4vODV6yLrS-*YLx-%@-xr1+O9{(~s~KU4f0e;=5iabbSe-}yYw%lUH#cRc_3 z-=1;j^FP<;&n}d4JuZVgE-nKdthc!wXl@_RB2II8=z^!`t_5zPIWn90>9tQ>vF3hYh>(?i(79Bsp}RBupd!!hETg>w6>@GW$t9zG@zdi z{KQ(>%x^b;*JRp#+h?-o+GhnnVaHdwtgp>lkns93!Sb$d6>Pv=12Wp4=lP_`6!VpZ z3RQP&zBT>fVaw2~h+LRt`h0C?+uS9aX8)6W8F^Og-Zt!;Pwt)|x2tzq#@@7PU|HMm z4J&AS;w6igFbCATt?k`E?%Pq=HEf%<$6YL1GzET0kWug6lHRswMYag&lkNRItle@_ zu3N%EU*hEQ`|{YZw?6Hpn{E1rjAr;hr}=(4R63}&_qUn;^2VrBTK`-POO9{bH9_OQ zxVO&M+<%z%O+~Hi@8!?OCIzDZ^K7ai=Q*>=3_qm}X8HZPI-31%Pm+a?Bdch-&C(XO zt-PMo3?FhNoU|79+pX>OtG@2GS22yW{``8fLHzaMiJJX6CpHO17WC6(mS_HAExB_> zAbj?ZT_X=(lE#L*dYHCbcTDVJMtgHqo-VuQ>ZXlj4cB?{)T3iH-K{a7t(~S^5}cAmwH7=K9_rKoJ}@`q8Ne^h`#d*1=5f&c830+VFYzqlYhz&Kafb|ekjGpPU6cWX z&!026gU_EqD8sV_^5F4u*yPU*l;PrK{5i$zf*i`ZuP8^oxZoEq=<3@68Pv_oVFMTU z0rI>)*u{l1Ue4>}ZNVM(P$$Z`Jjd`4_Q2=5umubsppOeO=zs8WK?XK?8SKD@-fzf& zhA!@04?5fq^tf-lUS1dYz+4{X+$P$@>w^u*pp467>`*6UP|kHxFJy3qJ@I5cE>x7l z^Hh@<;qHWc64vv9d+TI?dpPAg6Yiyx=UC6@SaQ|{8Dm|j_h4`@qIvV-<=%rZ^p%R`3S(c9;k*UN2!&;2y|&)a46 zLC@Fs54Xc@@^*1P?CW*)KIk!*L0dQH$R%X!tXSZI-YV@VYmV7I_DmNGOV)?tD zRolM&!%}H&59O>|Z~~aElXfTZ>3dqZH7AC7fdy86zdMr~W`3z?}vW`>Njm>76U|+8EKR28;?J`Wg zJ1ecFU$K=+?T8VqQ>F+tr2ga3N;Ow0pI(e$?rp=>E9ozU&MdN8`K{SV$`{>571tdJ zJ>*!e>{vOHEg9QUJ=Z}AEuDLf()!p))-0-nTE1pt=+~e%%A^bbx!kC4v~R56=%3Ml zWBZKlH};RQ|BU@>?0@6<7{|{zzQ*x4#)mO}jPYfRKVy6vJ}_^4(&bH; z9^+Y%o~~?kVT}h28So*Wl`hDG&#|7*ZE|_o(c9-3x?JY3Fm$;Lx8qJcU_4)dxvriM zAGj{~+37-CxD0Fp=cEh%0O!zQ$a5LJ9mweUTo>{j>t$g7XZ1oJ{u})?wu{^3KIr9* znD+ztz|b{f{W!uVm(j-n*X85O`yYH`Jn%UAnH|_HJl)mi`hAcT{lL#OwdO{XJK>4t zvIw2ads@>G-jqod_Vs@zrzd=-u`T|$n_FcM!lmbyke`g7YlZx{!Wo6;w=c+P2xmCD z)pV)n8QG0+&k1hUoV{nsE`%p~4i*x&vNp(Pc(YM1;iqWwp}E3@r=v>SJc<7)X{PDIOVI{9nH$8KVn05R!Jl|zoT*uw z7xFi*e)!^!D}j>iyCCsrO&s zE`59T{h;q3eZT4ZQ{T_}{@0I-e!TSKs2^Ybxa;FVA1C_w(Z|&eb0AwgC{#56He5`O z3t>6k0@*QBsA&2&T#UFG!VU~6&w>V46tm75AqMxX$cl|G$4-?F5$lf|Dc))j$~Kh< zV8h!5i)nrzC4Qf8VaL0drJQMIaofZ(;>mJhtX+}Ptf5PwIAeXJxHg2bVzWxHCUgA7 z0a4?`!;zI)rWr+<%luN}qLlGsr7YE0OV2_q*Yl!cT!V>Xi8nRagit?r?r{Mz_{t

  • qkDXuRcp~jCj7TEw;^7>oNA6U!roI+tJck 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 diff --git a/examples/3d-bomberman/assets/PinkBunny.glb b/examples/3d-bomberman/assets/PinkBunny.glb index 826d1b82f0a5bfda69dc3eeee2e34dc3604ca279..2c7934bf7b4f9c322caed796ebac5aab53ff2526 100644 GIT binary patch literal 1108668 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 z%0D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