18236 lines
639 KiB
JSON
18236 lines
639 KiB
JSON
{
|
|
"firstLayout": "",
|
|
"gdVersion": {
|
|
"build": 274,
|
|
"major": 5,
|
|
"minor": 6,
|
|
"revision": 0
|
|
},
|
|
"initialGDVersion": "5.6.274",
|
|
"properties": {
|
|
"adaptGameResolutionAtRuntime": true,
|
|
"antialiasingMode": "MSAA",
|
|
"antialisingEnabledOnMobile": false,
|
|
"folderProject": false,
|
|
"orientation": "landscape",
|
|
"packageName": "com.example.gamename",
|
|
"pixelsRounding": true,
|
|
"projectUuid": "9386a7f4-fb47-4bec-8bd2-99c1fb11403b",
|
|
"scaleMode": "nearest",
|
|
"sizeOnStartupMode": "",
|
|
"templateSlug": "",
|
|
"version": "1.0.0",
|
|
"name": "MiniDungeonMultiplayerDev",
|
|
"description": "",
|
|
"author": "",
|
|
"windowWidth": 640,
|
|
"windowHeight": 480,
|
|
"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": ""
|
|
},
|
|
"loadingScreen": {
|
|
"backgroundColor": 0,
|
|
"backgroundFadeInDuration": 0.2,
|
|
"backgroundImageResourceName": "",
|
|
"gdevelopLogoStyle": "light",
|
|
"logoAndProgressFadeInDuration": 0.2,
|
|
"logoAndProgressLogoFadeInDelay": 0,
|
|
"minDuration": 1.5,
|
|
"progressBarColor": 16777215,
|
|
"progressBarHeight": 20,
|
|
"progressBarMaxWidth": 200,
|
|
"progressBarMinWidth": 40,
|
|
"progressBarWidthPercent": 30,
|
|
"showGDevelopSplash": true,
|
|
"showProgressBar": true
|
|
},
|
|
"watermark": {
|
|
"placement": "bottom-left",
|
|
"showWatermark": true
|
|
},
|
|
"authorIds": [],
|
|
"authorUsernames": [],
|
|
"categories": [],
|
|
"playableDevices": [],
|
|
"extensionProperties": [],
|
|
"platforms": [
|
|
{
|
|
"name": "GDevelop JS platform"
|
|
}
|
|
],
|
|
"currentPlatform": "GDevelop JS platform"
|
|
},
|
|
"resources": {
|
|
"resources": [
|
|
{
|
|
"file": "assets/03Idle25.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle25",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle26.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle26",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle27.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle27",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle28.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle28",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle29.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle29",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle30.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle30",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle31.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle31",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle32.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle32",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle33.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle33",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle34.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle34",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle35.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle35",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Idle36.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Idle36",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk2.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk2",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk3.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk3",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk4.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk4",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk5.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk5",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk6.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk6",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk7.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk7",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk8.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk8",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk9.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk9",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/03Walk10.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "03Walk10",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite4.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\",\"localFilePath\":\"assets/NewSprite4.png\"}",
|
|
"name": "NewSprite4",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite5.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite5",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite6.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite6",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite7.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite7",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoom4Way.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoom4Way",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomLR.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomLR",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomDeadU.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomDeadU",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomDeadD.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomDeadD",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomUD.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomUD",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomDeadL.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomDeadL",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/TestRoomDeadR.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "TestRoomDeadR",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite8.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite8.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite2",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite8.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite3",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite8.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite8",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite9.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite9",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite10.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite10",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite11.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite11",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite12.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite12",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite13.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite13",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite14.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite14",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite15.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite15",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite16.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite16",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite17.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite17",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite18.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite18",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite19.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite19",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite20.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite20",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite21.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite21",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite22.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite22",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite23.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite23",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite24.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite24",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite25.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite25",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite26.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite26",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite27.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite27",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite28.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite28",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite29.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite29",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite30.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite30",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite31.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite31",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite32.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite32",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite33.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite33",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite34.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite34",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite35.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite35",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite36.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite36",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite37.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite37",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite38.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite38",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
},
|
|
{
|
|
"file": "assets/NewSprite39.png",
|
|
"kind": "image",
|
|
"metadata": "{\"extension\":\".png\"}",
|
|
"name": "NewSprite39",
|
|
"smoothed": false,
|
|
"userAdded": false
|
|
}
|
|
]
|
|
},
|
|
"objects": [],
|
|
"objectsFolderStructure": {
|
|
"folderName": "__ROOT"
|
|
},
|
|
"objectsGroups": [],
|
|
"variables": [],
|
|
"layouts": [
|
|
{
|
|
"b": 255,
|
|
"disableInputWhenNotFocused": true,
|
|
"mangledName": "Game",
|
|
"name": "Game",
|
|
"r": 247,
|
|
"standardSortMethod": true,
|
|
"stopSoundsOnStartup": true,
|
|
"title": "",
|
|
"v": 249,
|
|
"uiSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 1.134371579716097,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
},
|
|
"objectsGroups": [
|
|
{
|
|
"name": "Rooms",
|
|
"objects": [
|
|
{
|
|
"name": "spr_4Way"
|
|
},
|
|
{
|
|
"name": "spr_LR"
|
|
},
|
|
{
|
|
"name": "spr_UD"
|
|
},
|
|
{
|
|
"name": "spr_DeadL"
|
|
},
|
|
{
|
|
"name": "spr_DeadR"
|
|
},
|
|
{
|
|
"name": "spr_DeadUp"
|
|
},
|
|
{
|
|
"name": "spr_DeadDown"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Checker",
|
|
"objects": [
|
|
{
|
|
"name": "spr_right"
|
|
},
|
|
{
|
|
"name": "spr_left"
|
|
},
|
|
{
|
|
"name": "spr_up"
|
|
},
|
|
{
|
|
"name": "spr_down"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"variables": [
|
|
{
|
|
"name": "var_roomCount",
|
|
"persistentUuid": "c143876b-6251-4aec-a302-41a096a13d9d",
|
|
"type": "number",
|
|
"value": 1
|
|
}
|
|
],
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_player",
|
|
"persistentUuid": "168f7870-38ea-449a-b480-8a38e037e176",
|
|
"width": 0,
|
|
"x": 288,
|
|
"y": 256,
|
|
"zOrder": 30,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_4Way",
|
|
"persistentUuid": "346c6f81-2757-45a8-a096-c776d3ab76bc",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_right",
|
|
"persistentUuid": "e34ef6cd-0335-48e6-8d19-d84d325b8591",
|
|
"width": 0,
|
|
"x": 640,
|
|
"y": 0,
|
|
"zOrder": 31,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_left",
|
|
"persistentUuid": "a02511d0-68fd-4f90-afe7-4326ed28fd87",
|
|
"width": 0,
|
|
"x": -640,
|
|
"y": 0,
|
|
"zOrder": 32,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_up",
|
|
"persistentUuid": "bfc88395-d3c8-47c3-bb4e-c2a8d1950bb8",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": -480,
|
|
"zOrder": 33,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_down",
|
|
"persistentUuid": "03b1aa00-32fd-48b7-aaea-14d1e7e1196b",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 480,
|
|
"zOrder": 34,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "b49413c4-39f9-41f9-9c64-b4ae76cd2ad9",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 0,
|
|
"zOrder": 35,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "baf49daf-10df-4608-b6e4-359b0f395cac",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 0,
|
|
"zOrder": 36,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "95fcb59f-88a5-4137-ade0-1788226b3252",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 448,
|
|
"zOrder": 37,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "2a116ece-9265-456a-b2aa-6399354e0b4b",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 448,
|
|
"zOrder": 38,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "3a816cd3-f87f-47d4-98e0-2943a9dcaaa4",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 32,
|
|
"zOrder": 39,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "390c640e-d2ae-494e-b3ba-eaa7a737d262",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 39,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "94ab7ace-3ea6-4466-a8bb-ab408aaf2656",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 39,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1b5b4a92-a874-4ce0-99d5-fb066071eb17",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 416,
|
|
"zOrder": 39,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "915cea7d-00dc-48e6-b658-1a679dabb35a",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 40,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "7e61f02d-9158-4a01-a137-a7a4a12678da",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 288,
|
|
"zOrder": 40,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "c333414c-b787-464f-b406-46358a49f085",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 288,
|
|
"zOrder": 40,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "c5ae41a4-8993-4917-ab04-e7db150e2d14",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 40,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"objects": [
|
|
{
|
|
"adaptCollisionMaskAutomatically": false,
|
|
"assetStoreId": "",
|
|
"name": "spr_player",
|
|
"persistentUuid": "15baac05-8645-4485-b856-649122e1892c",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [
|
|
{
|
|
"name": "TopDownMovement",
|
|
"type": "TopDownMovementBehavior::TopDownMovementBehavior",
|
|
"acceleration": 9999,
|
|
"allowDiagonals": true,
|
|
"angleOffset": 0,
|
|
"angularMaxSpeed": 180,
|
|
"customIsometryAngle": 30,
|
|
"deceleration": 9999,
|
|
"ignoreDefaultControls": false,
|
|
"maxSpeed": 200,
|
|
"movementAngleOffset": 0,
|
|
"rotateObject": false,
|
|
"useLegacyTurnBack": false,
|
|
"viewpoint": "TopDown"
|
|
}
|
|
],
|
|
"animations": [
|
|
{
|
|
"name": "03Idle",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": true,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle25",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle26",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle27",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle28",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle29",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle30",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle31",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle32",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle33",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle34",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle35",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Idle36",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "03Walk",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": true,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk2",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk3",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk4",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk5",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk6",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk7",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk8",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk9",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "03Walk10",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 28
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 40
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 40
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_4Way",
|
|
"persistentUuid": "0e24c193-6010-4988-84e4-84247e4111a6",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoom4Way",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoom4Way",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_right",
|
|
"persistentUuid": "1e631ce1-545f-451f-9f16-36ae35076ff7",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [
|
|
{
|
|
"name": "var_Random",
|
|
"persistentUuid": "22df5395-a194-44b8-bc37-bb550d070d01",
|
|
"type": "number",
|
|
"value": 0
|
|
}
|
|
],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "NewSprite",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite4",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 32
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 32
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_LR",
|
|
"persistentUuid": "216f1ec8-083e-4ddc-8ecc-19dfe2b3e31d",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomLR",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomLR",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_UD",
|
|
"persistentUuid": "63a7090f-a6d8-4eb9-93ee-9e076596ce88",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomUD",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomUD",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_DeadL",
|
|
"persistentUuid": "cc600b8e-3783-4703-abe3-426832db2a92",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomDeadL",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomDeadL",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_DeadR",
|
|
"persistentUuid": "49f00013-44d6-443c-9ffe-0330d4559935",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomDeadR",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomDeadR",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_DeadUp",
|
|
"persistentUuid": "76f7a08f-18f4-4bf4-a4d2-9db38bad7409",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomDeadU",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomDeadU",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_DeadDown",
|
|
"persistentUuid": "24006229-fc36-4f86-8b51-c78029706d67",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "TestRoomDeadD",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "TestRoomDeadD",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 640,
|
|
"y": 480
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 480
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_left",
|
|
"persistentUuid": "975b00e7-0480-4497-baaf-2030a83377fb",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [
|
|
{
|
|
"name": "var_Random",
|
|
"persistentUuid": "ce81a637-0f6f-41db-a57b-8decaed70174",
|
|
"type": "number",
|
|
"value": 0
|
|
}
|
|
],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "NewSprite",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite5",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 32
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 32
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_up",
|
|
"persistentUuid": "64de8436-160b-4de7-af7c-2e25f8e83b8b",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [
|
|
{
|
|
"name": "var_Random",
|
|
"persistentUuid": "297f1f68-b1b2-42fd-90e3-ed8b0e5f8335",
|
|
"type": "number",
|
|
"value": 0
|
|
}
|
|
],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "NewSprite",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite6",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 32
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 32
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_down",
|
|
"persistentUuid": "11b66a89-0299-4709-97bb-fbfd0e05d9ab",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [
|
|
{
|
|
"name": "var_Random",
|
|
"persistentUuid": "01025634-8159-420e-b49c-09c609ea3e6a",
|
|
"type": "number",
|
|
"value": 0
|
|
}
|
|
],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "NewSprite",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite7",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 32
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 32
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_skelly01",
|
|
"persistentUuid": "a50eed58-da79-4406-ad04-ae846f10346a",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "skel_idle",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": true,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite2",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite3",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite8",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite9",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite10",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite11",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite12",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite13",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite14",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite15",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite16",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "skel_die",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite17",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite18",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite19",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite20",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite21",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite22",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite23",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite24",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite25",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite26",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite27",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite28",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite29",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite30",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "skel_attack",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite31",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite32",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite33",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite34",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite35",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite36",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite37",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite38",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 4,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 4
|
|
},
|
|
{
|
|
"x": 36,
|
|
"y": 34
|
|
},
|
|
{
|
|
"x": 4,
|
|
"y": 34
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"adaptCollisionMaskAutomatically": true,
|
|
"assetStoreId": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "b3e8803e-3284-4865-a2d2-f0cf1d2c2de8",
|
|
"type": "Sprite",
|
|
"updateIfNotVisible": false,
|
|
"variables": [],
|
|
"effects": [
|
|
{
|
|
"effectType": "Adjustment",
|
|
"name": "Effect",
|
|
"doubleParameters": {
|
|
"alpha": 0,
|
|
"blue": 1,
|
|
"brightness": 1,
|
|
"contrast": 1,
|
|
"gamma": 1,
|
|
"green": 1,
|
|
"red": 1,
|
|
"saturation": 1
|
|
},
|
|
"stringParameters": {},
|
|
"booleanParameters": {}
|
|
}
|
|
],
|
|
"behaviors": [],
|
|
"animations": [
|
|
{
|
|
"name": "NewSprite",
|
|
"useMultipleDirections": false,
|
|
"directions": [
|
|
{
|
|
"looping": false,
|
|
"metadata": "{\"pskl\":{}}",
|
|
"timeBetweenFrames": 0.08,
|
|
"sprites": [
|
|
{
|
|
"hasCustomCollisionMask": true,
|
|
"image": "NewSprite39",
|
|
"points": [],
|
|
"originPoint": {
|
|
"name": "origine",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"centerPoint": {
|
|
"automatic": true,
|
|
"name": "centre",
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"customCollisionMask": [
|
|
[
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 0
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 32
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 32
|
|
}
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"objectsFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"folderName": "Enemies",
|
|
"children": [
|
|
{
|
|
"objectName": "spr_skelly01"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Players",
|
|
"children": [
|
|
{
|
|
"objectName": "spr_player"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Rooms",
|
|
"children": [
|
|
{
|
|
"folderName": "DeadUp",
|
|
"children": [
|
|
{
|
|
"objectName": "spr_DeadUp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "4Way",
|
|
"children": [
|
|
{
|
|
"objectName": "spr_4Way"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"objectName": "spr_DeadR"
|
|
},
|
|
{
|
|
"objectName": "spr_DeadL"
|
|
},
|
|
{
|
|
"objectName": "spr_UD"
|
|
},
|
|
{
|
|
"objectName": "spr_DeadDown"
|
|
},
|
|
{
|
|
"objectName": "spr_LR"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Checkers",
|
|
"children": [
|
|
{
|
|
"objectName": "spr_down"
|
|
},
|
|
{
|
|
"objectName": "spr_up"
|
|
},
|
|
{
|
|
"objectName": "spr_left"
|
|
},
|
|
{
|
|
"objectName": "spr_right"
|
|
},
|
|
{
|
|
"objectName": "spr_wall"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Link",
|
|
"include": {
|
|
"includeConfig": 0
|
|
},
|
|
"target": "Functions"
|
|
}
|
|
],
|
|
"layers": [
|
|
{
|
|
"ambientLightColorB": 200,
|
|
"ambientLightColorG": 200,
|
|
"ambientLightColorR": 200,
|
|
"camera2DPlaneMaxDrawingDistance": 5000,
|
|
"camera3DFarPlaneDistance": 10000,
|
|
"camera3DFieldOfView": 45,
|
|
"camera3DNearPlaneDistance": 3,
|
|
"cameraType": "",
|
|
"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 Ambient Hemisphere Light",
|
|
"doubleParameters": {
|
|
"elevation": 40,
|
|
"intensity": 0.33,
|
|
"rotation": 300
|
|
},
|
|
"stringParameters": {
|
|
"groundColor": "127;127;127",
|
|
"skyColor": "255;255;255",
|
|
"top": "Z+"
|
|
},
|
|
"booleanParameters": {}
|
|
},
|
|
{
|
|
"effectType": "Scene3D::DirectionalLight",
|
|
"name": "3D Sun Light",
|
|
"doubleParameters": {
|
|
"distanceFromCamera": 1500,
|
|
"elevation": 40,
|
|
"frustumSize": 4000,
|
|
"intensity": 0.75,
|
|
"minimumShadowBias": 0,
|
|
"rotation": 300
|
|
},
|
|
"stringParameters": {
|
|
"color": "255;255;255",
|
|
"shadowQuality": "medium",
|
|
"top": "Z+"
|
|
},
|
|
"booleanParameters": {
|
|
"isCastingShadow": true
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"ambientLightColorB": 200,
|
|
"ambientLightColorG": 200,
|
|
"ambientLightColorR": 200,
|
|
"camera2DPlaneMaxDrawingDistance": 5000,
|
|
"camera3DFarPlaneDistance": 10000,
|
|
"camera3DFieldOfView": 45,
|
|
"camera3DNearPlaneDistance": 3,
|
|
"cameraType": "",
|
|
"followBaseLayerCamera": false,
|
|
"isLightingLayer": false,
|
|
"isLocked": false,
|
|
"name": "UI",
|
|
"renderingType": "",
|
|
"visibility": true,
|
|
"cameras": [],
|
|
"effects": [
|
|
{
|
|
"effectType": "Scene3D::HemisphereLight",
|
|
"name": "3D Ambient Hemisphere Light",
|
|
"doubleParameters": {
|
|
"elevation": 40,
|
|
"intensity": 0.33,
|
|
"rotation": 300
|
|
},
|
|
"stringParameters": {
|
|
"groundColor": "127;127;127",
|
|
"skyColor": "255;255;255",
|
|
"top": "Z+"
|
|
},
|
|
"booleanParameters": {}
|
|
},
|
|
{
|
|
"effectType": "Scene3D::DirectionalLight",
|
|
"name": "3D Sun Light",
|
|
"doubleParameters": {
|
|
"distanceFromCamera": 1500,
|
|
"elevation": 40,
|
|
"frustumSize": 4000,
|
|
"intensity": 0.75,
|
|
"minimumShadowBias": 0,
|
|
"rotation": 300
|
|
},
|
|
"stringParameters": {
|
|
"color": "255;255;255",
|
|
"shadowQuality": "medium",
|
|
"top": "Z+"
|
|
},
|
|
"booleanParameters": {
|
|
"isCastingShadow": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
{
|
|
"name": "TopDownMovement",
|
|
"type": "TopDownMovementBehavior::TopDownMovementBehavior"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"externalEvents": [
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "Functions",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Scene Start",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SceneJustBegins"
|
|
},
|
|
"parameters": [
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ZoomCamera"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"0",
|
|
"",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "Hide"
|
|
},
|
|
"parameters": [
|
|
"spr_wall"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Generate Rooms",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Right"
|
|
},
|
|
{
|
|
"folded": true,
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "spr_right",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"spr_right"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
"=",
|
|
"RandomInRange(1,6)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"<=",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
">=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
"<=",
|
|
"3"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"LR\"",
|
|
"spr_right.X()",
|
|
"spr_right.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
">=",
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
"<=",
|
|
"5"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadR\"",
|
|
"spr_right.X()",
|
|
"spr_right.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"var_Random",
|
|
"=",
|
|
"6"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"4Way\"",
|
|
"spr_right.X()",
|
|
"spr_right.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
">",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadR\"",
|
|
"spr_right.X()",
|
|
"spr_right.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickNearest"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"spr_right.X()",
|
|
"spr_right.Y()",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Left"
|
|
},
|
|
{
|
|
"folded": true,
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "spr_left",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"spr_left"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
"=",
|
|
"RandomInRange(1,6)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"<=",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
">=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
"<=",
|
|
"3"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"LR\"",
|
|
"spr_left.X()",
|
|
"spr_left.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
">=",
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
"<=",
|
|
"5"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadL\"",
|
|
"spr_left.X()",
|
|
"spr_left.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
"var_Random",
|
|
"=",
|
|
"6"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"4Way\"",
|
|
"spr_left.X()",
|
|
"spr_left.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
">",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadL\"",
|
|
"spr_left.X()",
|
|
"spr_left.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickNearest"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
"spr_left.X()",
|
|
"spr_left.Y()",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_right",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_left",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Up"
|
|
},
|
|
{
|
|
"folded": true,
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "spr_up",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"spr_up"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
"=",
|
|
"RandomInRange(1,6)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"<=",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
">=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
"<=",
|
|
"3"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"UD\"",
|
|
"spr_up.X()",
|
|
"spr_up.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
">=",
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
"<=",
|
|
"5"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadUp\"",
|
|
"spr_up.X()",
|
|
"spr_up.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"var_Random",
|
|
"=",
|
|
"6"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"4Way\"",
|
|
"spr_up.X()",
|
|
"spr_up.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
">",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadUp\"",
|
|
"spr_up.X()",
|
|
"spr_up.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickNearest"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"spr_up.X()",
|
|
"spr_up.Y()",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Down"
|
|
},
|
|
{
|
|
"folded": true,
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "spr_down",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"spr_down"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
"=",
|
|
"RandomInRange(1,6)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"<=",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
">=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
"<=",
|
|
"3"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"UD\"",
|
|
"spr_down.X()",
|
|
"spr_down.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
">=",
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
"<=",
|
|
"5"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadDown\"",
|
|
"spr_down.X()",
|
|
"spr_down.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberObjectVariable"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
"var_Random",
|
|
"=",
|
|
"6"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"4Way\"",
|
|
"spr_down.X()",
|
|
"spr_down.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
">",
|
|
"8"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"DeadDown\"",
|
|
"spr_down.X()",
|
|
"spr_down.Y()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickNearest"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
"spr_down.X()",
|
|
"spr_down.Y()",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_up",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"spr_down",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"var_roomCount",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"Rooms",
|
|
"Rooms",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Scene"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"Game\"",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Movement/Sprite Control",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "TopDownMovementBehavior::TopDownMovementBehavior::IsUsingControl"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"TopDownMovement",
|
|
"\"Right\""
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "TopDownMovementBehavior::TopDownMovementBehavior::IsMovementAngleAround"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"TopDownMovement",
|
|
"0",
|
|
"45"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Once"
|
|
},
|
|
"parameters": []
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "FlippableCapability::FlippableBehavior::FlipX"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Flippable",
|
|
"no"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "AnimatableCapability::AnimatableBehavior::SetName"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Animation",
|
|
"=",
|
|
"\"03Walk\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "TopDownMovementBehavior::TopDownMovementBehavior::IsMovementAngleAround"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"TopDownMovement",
|
|
"180",
|
|
"45"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Once"
|
|
},
|
|
"parameters": []
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "FlippableCapability::FlippableBehavior::FlipX"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Flippable",
|
|
"yes"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "AnimatableCapability::AnimatableBehavior::SetName"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Animation",
|
|
"=",
|
|
"\"03Walk\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "TopDownMovementBehavior::IsMoving"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"TopDownMovement"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Once"
|
|
},
|
|
"parameters": []
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "AnimatableCapability::AnimatableBehavior::SetName"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Animation",
|
|
"=",
|
|
"\"03Idle\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Camera Control",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"Rooms",
|
|
"",
|
|
"",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "RoomBasedCameraMovement::MoveCameraToActiveRoom"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"Rooms",
|
|
"spr_player",
|
|
"",
|
|
"",
|
|
"0",
|
|
"",
|
|
"",
|
|
"0",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "KeyFromTextReleased"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"Space\""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Scene"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"\"Game\"",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Collision",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"spr_wall",
|
|
"",
|
|
"",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SeparateFromObjects"
|
|
},
|
|
"parameters": [
|
|
"spr_player",
|
|
"spr_wall",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"eventsFunctionsExtensions": [
|
|
{
|
|
"author": "",
|
|
"category": "Camera",
|
|
"dimension": "2D",
|
|
"extensionNamespace": "",
|
|
"fullName": "Smooth Camera",
|
|
"gdevelopVersion": ">=5.5.222",
|
|
"helpPath": "/tutorials/follow-player-with-camera/",
|
|
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQsMTNoLTZjLTEuMSwwLTItMC45LTItMlY1YzAtMS4xLDAuOS0yLDItMmg2YzEuMSwwLDIsMC45LDIsMnY2QzI2LDEyLjEsMjUuMSwxMywyNCwxM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNiw4djEwYzAsMS4xLTAuOSwyLTIsMkg4Yy0xLjEsMC0yLTAuOS0yLTJWOGMwLTEuMSwwLjktMiwyLTJoOCIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjEiIGN5PSI4IiByPSIyIi8+DQo8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSIxMSIgY3k9IjE2IiByPSIxIi8+DQo8cmVjdCB4PSI5IiB5PSI5IiBjbGFzcz0ic3QwIiB3aWR0aD0iNCIgaGVpZ2h0PSIzIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIyMSwyOSAyMSwyOSAxMSwyOSAxMSwyOSAiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjE4LDIwIDE4LDI5IDE0LDI5IDE0LDIwICIvPg0KPHJlY3QgeD0iNyIgeT0iMyIgY2xhc3M9InN0MCIgd2lkdGg9IjQiIGhlaWdodD0iMyIvPg0KPC9zdmc+DQo=",
|
|
"name": "SmoothCamera",
|
|
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_camcoder_gopro_go_pro_camera.svg",
|
|
"shortDescription": "Smoothly scroll to follow an object.",
|
|
"version": "0.4.5",
|
|
"description": [
|
|
"The camera follows an object according to:",
|
|
"- a frame rate independent catch-up speed to make the scrolling from smooth to strong",
|
|
"- a maximum speed to do linear following ([open the project online](https://editor.gdevelop.io/?project=example://platformer-with-tilemap)) or slow down the camera when teleporting the object",
|
|
"- a follow-free zone to avoid scrolling on small movements",
|
|
"- an offset to see further in one direction",
|
|
"- an extra delay and catch-up speed to give an impression of speed (useful for dash)",
|
|
"- position forecasting and delay to simulate a cameraman response time",
|
|
"",
|
|
"A platformer dedicated behavior allows to switch of settings when the character is in air or on the floor. This can be used to stabilize the camera when jumping."
|
|
],
|
|
"origin": {
|
|
"identifier": "SmoothCamera",
|
|
"name": "gdevelop-extension-store"
|
|
},
|
|
"tags": [
|
|
"camera",
|
|
"scrolling",
|
|
"follow",
|
|
"smooth",
|
|
"platformer",
|
|
"platform"
|
|
],
|
|
"authorIds": [
|
|
"IWykYNRvhCZBN3vEgKEbBPOR3Oc2"
|
|
],
|
|
"dependencies": [],
|
|
"globalVariables": [],
|
|
"sceneVariables": [],
|
|
"eventsFunctions": [],
|
|
"eventsFunctionsFolderStructure": {
|
|
"folderName": "__ROOT"
|
|
},
|
|
"eventsBasedBehaviors": [
|
|
{
|
|
"description": "Smoothly scroll to follow an object.",
|
|
"fullName": "Smooth Camera",
|
|
"helpPath": "",
|
|
"iconUrl": "",
|
|
"name": "SmoothCamera",
|
|
"objectType": "",
|
|
"previewIconUrl": "",
|
|
"quickCustomizationVisibility": "hidden",
|
|
"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": "Update private properties through setters to check their values and initialize state."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetLeftwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"LeftwardSpeed",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetRightwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"RightwardSpeed",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"UpwardSpeed",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"DownwardSpeed",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetLeftwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"LeftwardSpeedMax",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetRightwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"RightwardSpeedMax",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"UpwardSpeedMax",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"DownwardSpeedMax",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaLeft"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"FollowFreeAreaLeft",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaRight"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"FollowFreeAreaRight",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"FollowFreeAreaTop",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"FollowFreeAreaBottom",
|
|
"log(1 - )"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraDelay",
|
|
"=",
|
|
"CameraDelay"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"fullName": "",
|
|
"functionType": "Action",
|
|
"name": "doStepPreEvents",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"IsCalledManually",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::DoMoveCameraCloser"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Move the camera closer to the object. This action must be called after the object has moved for the frame.",
|
|
"fullName": "Move the camera closer",
|
|
"functionType": "Action",
|
|
"name": "MoveCameraCloser",
|
|
"sentence": "Move the camera closer to _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "The camera following is called with an action, the call from doStepPreEvents must be disabled to avoid to do it twice."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetBooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"IsCalledManually",
|
|
"True",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::DoMoveCameraCloser"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Move the camera closer to the object.",
|
|
"fullName": "Do move the camera closer",
|
|
"functionType": "Action",
|
|
"name": "DoMoveCameraCloser",
|
|
"private": true,
|
|
"sentence": "Do move the camera closer _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Delaying and forecasting can be used at the same time.\nForecasting only use the positions that are older than the one used for delaying.\nThe behavior uses a position history that is split in 2 arrays:\n- one for delaying the position (from TimeFromStart to TimeFromStart - CamearDelay)\n- one for forecasting the position (from TimeFromStart - CamearDelay to TimeFromStart - CamearDelay - ForecastHistoryDuration"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::UpdateDelayedPosition"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::UpdateForecastedPosition"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "At each frame, the camera must catchup the target by a given ratio (speed)\ncameraX(t) - targetX = (cameraX(t - 1) - targetX) * speed\n\nThe frame rate must not impact on the catch-up speed, we don't want a speed in ratio per frame but a speed ratio per second, like this:\ncameraX(t) - targetX = (cameraX(t - 1s) - targetX) * speed\n\nOk, but we still need to process each frame, we can use a exponent for this:\ncameraX(t) - targetX = (cameraX(t - timeDelta) - targetX) * speed^timeDelta\ncameraX(t) = targetX + (cameraX(t - timeDelta) - targetX) * exp(timeDelta * ln(speed))\n\npow is probably more efficient than precalculated log if the speed is changed continuously but this might be rare enough."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnX",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"OldX",
|
|
"=",
|
|
"CameraX(Object.Layer(), 0)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
">",
|
|
"Object.Behavior::FreeAreaRight()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"Object.Behavior::FreeAreaRight()\n+ (CameraX(Object.Layer(), 0) - Object.Behavior::FreeAreaRight())\n* exp(TimeDelta() * LogLeftwardSpeed)",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"<",
|
|
"OldX - LeftwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"OldX - LeftwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"<",
|
|
"Object.Behavior::FreeAreaLeft()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"Object.Behavior::FreeAreaLeft()\n+ (CameraX(Object.Layer(), 0) - Object.Behavior::FreeAreaLeft())\n* exp(TimeDelta() * LogRightwardSpeed)",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
">",
|
|
"OldX + RightwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"OldX + RightwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnY",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"OldY",
|
|
"=",
|
|
"CameraY(Object.Layer(), 0)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
">",
|
|
"Object.Behavior::FreeAreaBottom()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"Object.Behavior::FreeAreaBottom()\n+ (CameraY(Object.Layer(), 0) - Object.Behavior::FreeAreaBottom())\n* exp(TimeDelta() * LogUpwardSpeed)",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"<",
|
|
"OldY - UpwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"OldY - UpwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"<",
|
|
"Object.Behavior::FreeAreaTop()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"Object.Behavior::FreeAreaTop()\n+ (CameraY(Object.Layer(), 0) - Object.Behavior::FreeAreaTop())\n* exp(TimeDelta() * LogDownwardSpeed)",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
">",
|
|
"OldY + DownwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"OldY + DownwardSpeedMax * TimeDelta()",
|
|
"Object.Layer()",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Delay the camera according to a maximum speed and catch up the delay.",
|
|
"fullName": "Wait and catch up",
|
|
"functionType": "Action",
|
|
"name": "WaitAndCatchUp",
|
|
"sentence": "Delay the camera of _PARAM0_ during: _PARAM2_ seconds according to the maximum speed _PARAM3_;_PARAM4_ seconds and catch up in _PARAM5_ seconds",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Maybe the catch-up show be done in constant pixel speed instead of constant time speed."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"WaitingEnd",
|
|
"=",
|
|
"TimeFromStart() + NewWaitingDuration"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"WaitingSpeedXMax",
|
|
"=",
|
|
"NewWaitingSpeedXMax"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"WaitingSpeedYMax",
|
|
"=",
|
|
"NewWaitingSpeedYMax"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraDelayCatchUpDuration",
|
|
"=",
|
|
"NewCatchUpDuration"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Wait and catch up\"",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Waiting duration (in seconds)",
|
|
"name": "NewWaitingDuration",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Waiting maximum camera target speed X",
|
|
"name": "NewWaitingSpeedXMax",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Waiting maximum camera target speed Y",
|
|
"name": "NewWaitingSpeedYMax",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Catch up duration (in seconds)",
|
|
"name": "NewCatchUpDuration",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Draw the targeted and actual camera position.",
|
|
"fullName": "Draw debug",
|
|
"functionType": "Action",
|
|
"name": "DrawDebug",
|
|
"sentence": "Draw targeted and actual camera position for _PARAM0_ on _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::FillOpacity"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Path used by the forecasting",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)",
|
|
">",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::OutlineColor"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"\"245;166;35\""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::BeginFillPath"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[0])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[0])"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::PathLineTo"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[Index])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[Index])"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::EndFillPath"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Follow-free area.",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaLeft",
|
|
"!=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaRight",
|
|
"!=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaTop",
|
|
"!=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaBottom",
|
|
"!=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::OutlineColor"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"\"126;211;33\""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::Rectangle"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"Object.Behavior::FreeAreaLeft() - 1",
|
|
"Object.Behavior::FreeAreaTop() - 1",
|
|
"Object.Behavior::FreeAreaRight() + 1",
|
|
"Object.Behavior::FreeAreaBottom() + 1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Linear regression vector used by the forecasting.",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::OutlineColor"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"\"208;2;27\""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::LineV2"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"ProjectedOldestX",
|
|
"ProjectedOldestY",
|
|
"ProjectedNewestX",
|
|
"ProjectedNewestY",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Targeted and actual camera position",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::Circle"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"ForecastedX",
|
|
"ForecastedY",
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::LineV2"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"CameraX(Object.Layer(), 0)",
|
|
"CameraY(Object.Layer(), 0) - 4",
|
|
"CameraX(Object.Layer(), 0)",
|
|
"CameraY(Object.Layer(), 0) + 4",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PrimitiveDrawing::LineV2"
|
|
},
|
|
"parameters": [
|
|
"ShapePainter",
|
|
"CameraX(Object.Layer(), 0) - 4",
|
|
"CameraY(Object.Layer(), 0)",
|
|
"CameraX(Object.Layer(), 0) + 4",
|
|
"CameraY(Object.Layer(), 0)",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Shape painter",
|
|
"name": "ShapePainter",
|
|
"supplementaryInformation": "PrimitiveDrawing::Drawer",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Enable or disable the following on X axis.",
|
|
"fullName": "Follow on X",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowOnX",
|
|
"sentence": "The camera follows _PARAM0_ on X axis: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetBooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnX",
|
|
"False",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"Value",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetBooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnX",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow on X axis",
|
|
"name": "Value",
|
|
"type": "yesorno"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Enable or disable the following on Y axis.",
|
|
"fullName": "Follow on Y",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowOnY",
|
|
"sentence": "The camera follows _PARAM0_ on Y axis: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetBooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnY",
|
|
"False",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"Value",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetBooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowOnY",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow on Y axis",
|
|
"name": "Value",
|
|
"type": "yesorno"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera follow free area right border.",
|
|
"fullName": "Follow free area right border",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowFreeAreaRight",
|
|
"sentence": "Change the camera follow free area right border of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaRight",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow free area right border",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera follow free area left border.",
|
|
"fullName": "Follow free area left border",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowFreeAreaLeft",
|
|
"sentence": "Change the camera follow free area left border of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaLeft",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow free area left border",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera follow free area top border.",
|
|
"fullName": "Follow free area top border",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowFreeAreaTop",
|
|
"sentence": "Change the camera follow free area top border of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaTop",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow free area top border",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera follow free area bottom border.",
|
|
"fullName": "Follow free area bottom border",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetFollowFreeAreaBottom",
|
|
"sentence": "Change the camera follow free area bottom border of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"FollowFreeAreaBottom",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Follow free area bottom border",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera leftward maximum speed (in pixels per second).",
|
|
"fullName": "Leftward maximum speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetLeftwardSpeedMax",
|
|
"sentence": "Change the camera leftward maximum speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LeftwardSpeedMax",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Leftward maximum speed (in pixels per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera rightward maximum speed (in pixels per second).",
|
|
"fullName": "Rightward maximum speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetRightwardSpeedMax",
|
|
"sentence": "Change the camera rightward maximum speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"RightwardSpeedMax",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Rightward maximum speed (in pixels per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera upward maximum speed (in pixels per second).",
|
|
"fullName": "Upward maximum speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetUpwardSpeedMax",
|
|
"sentence": "Change the camera upward maximum speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"UpwardSpeedMax",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Upward maximum speed (in pixels per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera downward maximum speed (in pixels per second).",
|
|
"fullName": "Downward maximum speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetDownwardSpeedMax",
|
|
"sentence": "Change the camera downward maximum speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DownwardSpeedMax",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Downward maximum speed (in pixels per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera leftward catch-up speed (in ratio per second).",
|
|
"fullName": "Leftward catch-up speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetLeftwardSpeed",
|
|
"sentence": "Change the camera leftward catch-up speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LeftwardSpeed",
|
|
"=",
|
|
"clamp(0, 1, Value)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LogLeftwardSpeed",
|
|
"=",
|
|
"log(1 - Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Leftward catch-up speed (in ratio per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera rightward catch-up speed (in ratio per second).",
|
|
"fullName": "Rightward catch-up speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetRightwardSpeed",
|
|
"sentence": "Change the camera rightward catch-up speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"RightwardSpeed",
|
|
"=",
|
|
"clamp(0, 1, Value)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LogRightwardSpeed",
|
|
"=",
|
|
"log(1 - Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Rightward catch-up speed (in ratio per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera downward catch-up speed (in ratio per second).",
|
|
"fullName": "Downward catch-up speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetDownwardSpeed",
|
|
"sentence": "Change the camera downward catch-up speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DownwardSpeed",
|
|
"=",
|
|
"clamp(0, 1, Value)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LogDownwardSpeed",
|
|
"=",
|
|
"log(1 - Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Downward catch-up speed (in ratio per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera upward catch-up speed (in ratio per second).",
|
|
"fullName": "Upward catch-up speed",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetUpwardSpeed",
|
|
"sentence": "Change the camera upward catch-up speed of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"UpwardSpeed",
|
|
"=",
|
|
"clamp(0, 1, Value)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"LogUpwardSpeed",
|
|
"=",
|
|
"log(1 - Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Upward catch-up speed (in ratio per second)",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "the camera offset on X axis of the object. This is not the current difference between the object and the camera position.",
|
|
"fullName": "Camera offset X",
|
|
"functionType": "ExpressionAndCondition",
|
|
"group": "Camera configuration",
|
|
"name": "OffsetX",
|
|
"sentence": "the camera offset on X axis",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"CameraOffsetX"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"fullName": "",
|
|
"functionType": "ActionWithOperator",
|
|
"getterName": "OffsetX",
|
|
"group": "Camera configuration",
|
|
"name": "SetOffsetXOp",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraOffsetX",
|
|
"=",
|
|
"Value"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera offset on X axis of an object.",
|
|
"fullName": "Camera Offset X",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetOffsetX",
|
|
"private": true,
|
|
"sentence": "Change the camera offset on X axis of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Deprecated use SetOffsetXOp instead."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetOffsetXOp"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"=",
|
|
"Value",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Camera offset X",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "the camera offset on Y axis of the object. This is not the current difference between the object and the camera position.",
|
|
"fullName": "Camera offset Y",
|
|
"functionType": "ExpressionAndCondition",
|
|
"group": "Camera configuration",
|
|
"name": "OffsetY",
|
|
"sentence": "the camera offset on Y axis",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"CameraOffsetY"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"fullName": "",
|
|
"functionType": "ActionWithOperator",
|
|
"getterName": "OffsetY",
|
|
"group": "Camera configuration",
|
|
"name": "SetOffsetYOp",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraOffsetY",
|
|
"=",
|
|
"Value"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera offset on Y axis of an object.",
|
|
"fullName": "Camera Offset Y",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetOffsetY",
|
|
"private": true,
|
|
"sentence": "Change the camera offset on Y axis of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Deprecated use SetOffsetYOp instead."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetOffsetYOp"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"=",
|
|
"CameraOffsetY",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Camera offset Y",
|
|
"name": "CameraOffsetY",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera forecast time (in seconds).",
|
|
"fullName": "Forecast time",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetForecastTime",
|
|
"sentence": "Change the camera forecast time of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastTime",
|
|
"=",
|
|
"min(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Forecast time",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Change the camera delay (in seconds).",
|
|
"fullName": "Camera delay",
|
|
"functionType": "Action",
|
|
"group": "Camera configuration",
|
|
"name": "SetCameraDelay",
|
|
"sentence": "Change the camera delay of _PARAM0_: _PARAM2_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraDelay",
|
|
"=",
|
|
"max(0, Value)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Camera delay",
|
|
"name": "Value",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return follow free area left border X.",
|
|
"fullName": "Free area left",
|
|
"functionType": "Expression",
|
|
"group": "Private",
|
|
"name": "FreeAreaLeft",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"ForecastedX + CameraOffsetX - FollowFreeAreaLeft"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return follow free area right border X.",
|
|
"fullName": "Free area right",
|
|
"functionType": "Expression",
|
|
"group": "Private",
|
|
"name": "FreeAreaRight",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"ForecastedX + CameraOffsetX + FollowFreeAreaRight"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return follow free area bottom border Y.",
|
|
"fullName": "Free area bottom",
|
|
"functionType": "Expression",
|
|
"group": "Private",
|
|
"name": "FreeAreaBottom",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"ForecastedY + CameraOffsetY + FollowFreeAreaBottom"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return follow free area top border Y.",
|
|
"fullName": "Free area top",
|
|
"functionType": "Expression",
|
|
"group": "Private",
|
|
"name": "FreeAreaTop",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"ForecastedY + CameraOffsetY - FollowFreeAreaTop"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Update delayed position and delayed history. This is called in doStepPreEvents.",
|
|
"fullName": "Update delayed position",
|
|
"functionType": "Action",
|
|
"group": "Private",
|
|
"name": "UpdateDelayedPosition",
|
|
"private": true,
|
|
"sentence": "Update delayed position and delayed history of _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Add the previous position to have enough (2) positions to evaluate the extra delay for waiting mode."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ObjectTime)",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime",
|
|
"TimeFromStart()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectX",
|
|
"DelayedCenterX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectY",
|
|
"DelayedCenterY"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Use the object center when no delay is asked."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterX",
|
|
"=",
|
|
"Object.CenterX()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterY",
|
|
"=",
|
|
"Object.CenterY()"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "SmoothCamera::SmoothCamera::IsDelayed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::AddForecastHistoryPosition"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"TimeFromStart()",
|
|
"Object.CenterX()",
|
|
"Object.CenterY()",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::IsDelayed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime",
|
|
"TimeFromStart()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectX",
|
|
"Object.CenterX()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectY",
|
|
"Object.CenterY()"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Remove history entries that are too old to be useful for delaying and pass it to the history for forecasting."
|
|
},
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ObjectTime)",
|
|
">=",
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime[1]",
|
|
"<",
|
|
"TimeFromStart() - Object.Behavior::CurrentDelay()"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::AddForecastHistoryPosition"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"Object.Variable(__SmoothCamera.ObjectTime[0])",
|
|
"Object.Variable(__SmoothCamera.ObjectX[0])",
|
|
"Object.Variable(__SmoothCamera.ObjectY[0])",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectX",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectY",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Don't move the camera if there is not enough history."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterX",
|
|
"=",
|
|
"Object.Variable(__SmoothCamera.ObjectX[0])"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterY",
|
|
"=",
|
|
"Object.Variable(__SmoothCamera.ObjectY[0])"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ObjectTime)",
|
|
">=",
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime[0]",
|
|
"<",
|
|
"TimeFromStart() - Object.Behavior::CurrentDelay()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Add the extra delay that could be needed to respect the speed limit in waiting mode.\n\nspeedRatio = min(speedMaxX / historySpeedX, speedMaxY / historySpeedY)\ndelay += min(0, timeDelta * (1 - speedRatio))"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraExtraDelay",
|
|
"+",
|
|
"max(0, TimeDelta() * (1 - min(WaitingSpeedXMax * abs(Object.Variable(__SmoothCamera.ObjectX[1]) - Object.Variable(__SmoothCamera.ObjectX[0])), WaitingSpeedYMax * abs(Object.Variable(__SmoothCamera.ObjectY[1]) - Object.Variable(__SmoothCamera.ObjectY[0]))) / (Object.Variable(__SmoothCamera.ObjectTime[1]) - Object.Variable(__SmoothCamera.ObjectTime[0]))))"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Extra delay: \" + ToString(CameraExtraDelay)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "The time with delay is now between the first 2 indexes"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterX",
|
|
"=",
|
|
"lerp(Object.Variable(__SmoothCamera.ObjectX[1]), Object.Variable(__SmoothCamera.ObjectX[0]), ((TimeFromStart() - Object.Behavior::CurrentDelay()) - Object.Variable(__SmoothCamera.ObjectTime[1])) / (Object.Variable(__SmoothCamera.ObjectTime[0]) - Object.Variable(__SmoothCamera.ObjectTime[1])))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"DelayedCenterY",
|
|
"=",
|
|
"lerp(Object.Variable(__SmoothCamera.ObjectY[1]), Object.Variable(__SmoothCamera.ObjectY[0]), ((TimeFromStart() - Object.Behavior::CurrentDelay()) - Object.Variable(__SmoothCamera.ObjectTime[1])) / (Object.Variable(__SmoothCamera.ObjectTime[0]) - Object.Variable(__SmoothCamera.ObjectTime[1])))"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "SmoothCamera::SmoothCamera::IsDelayed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableClearChildren"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectTime"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableClearChildren"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableClearChildren"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ObjectY"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Once"
|
|
},
|
|
"parameters": []
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraDelayCatchUpSpeed",
|
|
"=",
|
|
"CameraExtraDelay / CameraDelayCatchUpDuration"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Start to catch up\"",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "SmoothCamera::SmoothCamera::IsWaiting"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraExtraDelay",
|
|
">",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"CameraExtraDelay",
|
|
"=",
|
|
"max(0, CameraExtraDelay -CameraDelayCatchUpSpeed * TimeDelta())"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Catching up delay: \" + ToString(CameraExtraDelay)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if the camera following target is delayed from the object.",
|
|
"fullName": "Camera is delayed",
|
|
"functionType": "Condition",
|
|
"name": "IsDelayed",
|
|
"private": true,
|
|
"sentence": "The camera of _PARAM0_ is delayed",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.Behavior::CurrentDelay()",
|
|
">",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return the current camera delay.",
|
|
"fullName": "Current delay",
|
|
"functionType": "Expression",
|
|
"name": "CurrentDelay",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"CameraDelay + CameraExtraDelay"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if the camera following is waiting at a reduced speed.",
|
|
"fullName": "Camera is waiting",
|
|
"functionType": "Condition",
|
|
"name": "IsWaiting",
|
|
"private": true,
|
|
"sentence": "The camera of _PARAM0_ is waiting",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"WaitingEnd",
|
|
">",
|
|
"TimeFromStart()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Add a position to the history for forecasting. This is called 2 times in UpadteDelayedPosition.",
|
|
"fullName": "Add forecast history position",
|
|
"functionType": "Action",
|
|
"group": "Private",
|
|
"name": "AddForecastHistoryPosition",
|
|
"private": true,
|
|
"sentence": "Add the time:_PARAM2_ and position: _PARAM3_; _PARAM4_ to the forecast history of _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryDuration",
|
|
">",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastTime",
|
|
">",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryTime",
|
|
"Time"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryX",
|
|
"ObjectX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariablePushNumber"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryY",
|
|
"ObjectY"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Remove history entries that are too old to be useful.\nKeep at least 2 positions because no forecast can be done with less positions."
|
|
},
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)",
|
|
">=",
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryTime[0]",
|
|
"<",
|
|
"TimeFromStart() - CameraDelay - CameraExtraDelay - ForecastHistoryDuration"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryTime",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryX",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableRemoveAt"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__SmoothCamera.ForecastHistoryY",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Time",
|
|
"name": "Time",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Object X",
|
|
"name": "ObjectX",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Object Y",
|
|
"name": "ObjectY",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Update forecasted position. This is called in doStepPreEvents.",
|
|
"fullName": "Update forecasted position",
|
|
"functionType": "Action",
|
|
"group": "Private",
|
|
"name": "UpdateForecastedPosition",
|
|
"private": true,
|
|
"sentence": "Update forecasted position of _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedX",
|
|
"=",
|
|
"DelayedCenterX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedY",
|
|
"=",
|
|
"DelayedCenterY"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Simple linear regression\ny = A * x + B\n\nA = Covariance / VarianceX\nB = MeanY - A * MeanX\n\nNote than we could use only one position every N positions to reduce the process time,\nbut if we really need efficient process JavaScript and circular queues are a must."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)",
|
|
">=",
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryDuration",
|
|
">",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "NumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastTime",
|
|
">",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Mean X",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanX",
|
|
"+",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[Index])"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanX",
|
|
"/",
|
|
"Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Mean Y",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanY",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryY)",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanY",
|
|
"+",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[Index])"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryMeanY",
|
|
"/",
|
|
"Object.VariableChildCount(__SmoothCamera.ForecastHistoryY)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Mean: \" + ToString(ForecastHistoryMeanX) + \" \" + ToString(ForecastHistoryMeanY)",
|
|
"",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Variance and Covariance",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "VarianceX = sum((X[i] - MeanX)²)\nVarianceY = sum((Y[i] - MeanY)²)\nCovariance = sum((X[i] - MeanX) * (Y[i] - MeanY))"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryVarianceX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryVarianceY",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryCovariance",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryVarianceX",
|
|
"+",
|
|
"pow(Object.Variable(__SmoothCamera.ForecastHistoryX[Index]) - ForecastHistoryMeanX, 2)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryVarianceY",
|
|
"+",
|
|
"pow(Object.Variable(__SmoothCamera.ForecastHistoryY[Index]) - ForecastHistoryMeanY, 2)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryCovariance",
|
|
"+",
|
|
"(Object.Variable(__SmoothCamera.ForecastHistoryX[Index]) - ForecastHistoryMeanX)\n*\n(Object.Variable(__SmoothCamera.ForecastHistoryY[Index]) - ForecastHistoryMeanY)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Variances: \" + ToString(ForecastHistoryVarianceX) + \" \" + ToString(ForecastHistoryVarianceY) + \" \" + ToString(ForecastHistoryCovariance)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceX)",
|
|
"<",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceY)",
|
|
"<",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedX",
|
|
"=",
|
|
"DelayedCenterX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedY",
|
|
"=",
|
|
"DelayedCenterY"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceX)",
|
|
">=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceY)",
|
|
">=",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Linear function parameters",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "y = A * x + B\n\nA = Covariance / VarianceX\nB = MeanY - A * MeanX"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceX)",
|
|
">=",
|
|
"abs(ForecastHistoryVarianceY)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryLinearA",
|
|
"=",
|
|
"ForecastHistoryCovariance / ForecastHistoryVarianceX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryLinearB",
|
|
"=",
|
|
"ForecastHistoryMeanY - ForecastHistoryLinearA * ForecastHistoryMeanX"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Linear: \" + ToString(ForecastHistoryLinearA) + \" \" + ToString(ForecastHistoryLinearB)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Projection",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::ProjectHistoryEnds"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[0])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[0])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[Object.VariableChildCount(__SmoothCamera.ForecastHistoryX) - 1])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[Object.VariableChildCount(__SmoothCamera.ForecastHistoryY) - 1])",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Axis permutation to avoid a ratio between 2 numbers near 0."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"abs(ForecastHistoryVarianceX)",
|
|
"<",
|
|
"abs(ForecastHistoryVarianceY)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryLinearA",
|
|
"=",
|
|
"ForecastHistoryCovariance / ForecastHistoryVarianceY"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastHistoryLinearB",
|
|
"=",
|
|
"ForecastHistoryMeanX - ForecastHistoryLinearA * ForecastHistoryMeanY"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Linear: \" + ToString(ForecastHistoryLinearA) + \" \" + ToString(ForecastHistoryLinearB)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Projection",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::ProjectHistoryEnds"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"Behavior",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[0])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[0])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryY[Object.VariableChildCount(__SmoothCamera.ForecastHistoryY) - 1])",
|
|
"Object.Variable(__SmoothCamera.ForecastHistoryX[Object.VariableChildCount(__SmoothCamera.ForecastHistoryX) - 1])",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Permute back axis"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"ProjectedOldestX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedOldestX",
|
|
"=",
|
|
"ProjectedOldestY"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedOldestY",
|
|
"=",
|
|
"Index"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"Index",
|
|
"=",
|
|
"ProjectedNewestX"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedNewestX",
|
|
"=",
|
|
"ProjectedNewestY"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedNewestY",
|
|
"=",
|
|
"Index"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Oldest: \" + ToString(ProjectedOldestX) + \" \" + ToString(ProjectedOldestY)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Newest: \" + ToString(ProjectedNewestX) + \" \" + ToString(ProjectedNewestY)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Forecasted position",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedX",
|
|
"=",
|
|
"ProjectedNewestX + ( ProjectedNewestX - ProjectedOldestX) * Object.Behavior::ForecastTimeRatio()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ForecastedY",
|
|
"=",
|
|
"ProjectedNewestY + ( ProjectedNewestY - ProjectedOldestY) * Object.Behavior::ForecastTimeRatio()"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"disabled": true,
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DebuggerTools::ConsoleLog"
|
|
},
|
|
"parameters": [
|
|
"\"Forecasted: \" + ToString(ForecastedX) + \" \" + ToString(ForecastedY)",
|
|
"\"info\"",
|
|
"\"SmoothCamera\""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Project history ends position to have the vector on the line from linear regression. This function is only called by UpdateForecastedPosition.",
|
|
"fullName": "Project history ends",
|
|
"functionType": "Action",
|
|
"group": "Private",
|
|
"name": "ProjectHistoryEnds",
|
|
"private": true,
|
|
"sentence": "Project history oldest: _PARAM2_;_PARAM3_ and newest position: _PARAM4_;_PARAM5_ of _PARAM0_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Perpendicular line:\npA = -1/a; \npB = -pA * x + y\n\nIntersection:\n/ ProjectedY = a * ProjectedX + b\n\\ ProjectedY = pA * ProjectedX + b\n\nSolution that is cleaned out from indeterminism (like 0 / 0 or infinity / infinity):\nProjectedX= (x + (y - b) * a) / (a² + 1)\nProjectedY = y + (x * a - y + b) / (a² + 1)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedNewestX",
|
|
"=",
|
|
"(NewestX + (NewestY - ForecastHistoryLinearB) * ForecastHistoryLinearA) / (1 + pow(ForecastHistoryLinearA, 2))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedNewestY",
|
|
"=",
|
|
"NewestY + (NewestX * ForecastHistoryLinearA - NewestY \n+ ForecastHistoryLinearB) / (1 + pow(ForecastHistoryLinearA, 2))"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedOldestX",
|
|
"=",
|
|
"(OldestX + (OldestY - ForecastHistoryLinearB) * ForecastHistoryLinearA) / (1 + pow(ForecastHistoryLinearA, 2))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetNumberVariable"
|
|
},
|
|
"parameters": [
|
|
"ProjectedOldestY",
|
|
"=",
|
|
"OldestY + (OldestX * ForecastHistoryLinearA - OldestY \n+ ForecastHistoryLinearB) / (1 + pow(ForecastHistoryLinearA, 2))"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "OldestX",
|
|
"name": "OldestX",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "OldestY",
|
|
"name": "OldestY",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Newest X",
|
|
"name": "NewestX",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Newest Y",
|
|
"name": "NewestY",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Return the ratio between forecast time and the duration of the history. This function is only called by UpdateForecastedPosition.",
|
|
"fullName": "Forecast time ratio",
|
|
"functionType": "Expression",
|
|
"group": "Private",
|
|
"name": "ForecastTimeRatio",
|
|
"private": true,
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"- ForecastTime / (Object.Variable(__SmoothCamera.ForecastHistoryTime[0]) - Object.Variable(__SmoothCamera.ForecastHistoryTime[Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime) - 1]))"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
}
|
|
],
|
|
"eventsFunctionsFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"functionName": "onCreated"
|
|
},
|
|
{
|
|
"functionName": "doStepPreEvents"
|
|
},
|
|
{
|
|
"functionName": "MoveCameraCloser"
|
|
},
|
|
{
|
|
"functionName": "DoMoveCameraCloser"
|
|
},
|
|
{
|
|
"functionName": "WaitAndCatchUp"
|
|
},
|
|
{
|
|
"functionName": "DrawDebug"
|
|
},
|
|
{
|
|
"folderName": "Camera configuration",
|
|
"children": [
|
|
{
|
|
"functionName": "SetFollowOnX"
|
|
},
|
|
{
|
|
"functionName": "SetFollowOnY"
|
|
},
|
|
{
|
|
"functionName": "SetFollowFreeAreaRight"
|
|
},
|
|
{
|
|
"functionName": "SetFollowFreeAreaLeft"
|
|
},
|
|
{
|
|
"functionName": "SetFollowFreeAreaTop"
|
|
},
|
|
{
|
|
"functionName": "SetFollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"functionName": "SetLeftwardSpeedMax"
|
|
},
|
|
{
|
|
"functionName": "SetRightwardSpeedMax"
|
|
},
|
|
{
|
|
"functionName": "SetUpwardSpeedMax"
|
|
},
|
|
{
|
|
"functionName": "SetDownwardSpeedMax"
|
|
},
|
|
{
|
|
"functionName": "SetLeftwardSpeed"
|
|
},
|
|
{
|
|
"functionName": "SetRightwardSpeed"
|
|
},
|
|
{
|
|
"functionName": "SetDownwardSpeed"
|
|
},
|
|
{
|
|
"functionName": "SetUpwardSpeed"
|
|
},
|
|
{
|
|
"functionName": "OffsetX"
|
|
},
|
|
{
|
|
"functionName": "SetOffsetXOp"
|
|
},
|
|
{
|
|
"functionName": "SetOffsetX"
|
|
},
|
|
{
|
|
"functionName": "OffsetY"
|
|
},
|
|
{
|
|
"functionName": "SetOffsetYOp"
|
|
},
|
|
{
|
|
"functionName": "SetOffsetY"
|
|
},
|
|
{
|
|
"functionName": "SetForecastTime"
|
|
},
|
|
{
|
|
"functionName": "SetCameraDelay"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Private",
|
|
"children": [
|
|
{
|
|
"functionName": "FreeAreaLeft"
|
|
},
|
|
{
|
|
"functionName": "FreeAreaRight"
|
|
},
|
|
{
|
|
"functionName": "FreeAreaBottom"
|
|
},
|
|
{
|
|
"functionName": "FreeAreaTop"
|
|
},
|
|
{
|
|
"functionName": "UpdateDelayedPosition"
|
|
},
|
|
{
|
|
"functionName": "AddForecastHistoryPosition"
|
|
},
|
|
{
|
|
"functionName": "UpdateForecastedPosition"
|
|
},
|
|
{
|
|
"functionName": "ProjectHistoryEnds"
|
|
},
|
|
{
|
|
"functionName": "ForecastTimeRatio"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"functionName": "IsDelayed"
|
|
},
|
|
{
|
|
"functionName": "CurrentDelay"
|
|
},
|
|
{
|
|
"functionName": "IsWaiting"
|
|
}
|
|
]
|
|
},
|
|
"propertyDescriptors": [
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Leftward catch-up speed (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "LeftwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Rightward catch-up speed (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "RightwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Upward catch-up speed (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "UpwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Downward catch-up speed (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "DownwardSpeed"
|
|
},
|
|
{
|
|
"value": "true",
|
|
"type": "Boolean",
|
|
"label": "Follow on X axis",
|
|
"name": "FollowOnX"
|
|
},
|
|
{
|
|
"value": "true",
|
|
"type": "Boolean",
|
|
"label": "Follow on Y axis",
|
|
"name": "FollowOnY"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area left border",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "FollowFreeAreaLeft"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area right border",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "FollowFreeAreaRight"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area top border",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "FollowFreeAreaTop"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area bottom border",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "FollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Camera offset X",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "CameraOffsetX"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Camera offset Y",
|
|
"group": "Position",
|
|
"advanced": true,
|
|
"name": "CameraOffsetY"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Second",
|
|
"label": "Camera delay",
|
|
"group": "Timing",
|
|
"deprecated": true,
|
|
"name": "CameraDelay"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Second",
|
|
"label": "Forecast time",
|
|
"group": "Timing",
|
|
"deprecated": true,
|
|
"name": "ForecastTime"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Second",
|
|
"label": "Forecast history duration",
|
|
"group": "Timing",
|
|
"deprecated": true,
|
|
"name": "ForecastHistoryDuration"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "LogLeftwardSpeed"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "LogRightwardSpeed"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "LogDownwardSpeed"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "LogUpwardSpeed"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "DelayedCenterX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "DelayedCenterY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryMeanX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryMeanY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryVarianceX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryCovariance"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryLinearA"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryLinearB"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastedX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastedY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ProjectedNewestX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ProjectedNewestY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ProjectedOldestX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ProjectedOldestY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "ForecastHistoryVarianceY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "Index (local variable)",
|
|
"hidden": true,
|
|
"name": "Index"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "CameraDelayCatchUpSpeed"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "CameraExtraDelay"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "WaitingSpeedXMax"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "WaitingSpeedYMax"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "WaitingEnd"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "CameraDelayCatchUpDuration"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Leftward maximum speed",
|
|
"group": "Maximum speed",
|
|
"advanced": true,
|
|
"name": "LeftwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Rightward maximum speed",
|
|
"group": "Maximum speed",
|
|
"advanced": true,
|
|
"name": "RightwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Upward maximum speed",
|
|
"group": "Maximum speed",
|
|
"advanced": true,
|
|
"name": "UpwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Downward maximum speed",
|
|
"group": "Maximum speed",
|
|
"advanced": true,
|
|
"name": "DownwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "OldX (local variable)",
|
|
"hidden": true,
|
|
"name": "OldX"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "OldY (local variable)",
|
|
"hidden": true,
|
|
"name": "OldY"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Boolean",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "IsCalledManually"
|
|
}
|
|
],
|
|
"propertiesFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"folderName": "Catch-up speed",
|
|
"children": [
|
|
{
|
|
"propertyName": "LeftwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "RightwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "UpwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "DownwardSpeed"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"propertyName": "FollowOnX"
|
|
},
|
|
{
|
|
"propertyName": "FollowOnY"
|
|
},
|
|
{
|
|
"folderName": "Position",
|
|
"children": [
|
|
{
|
|
"propertyName": "FollowFreeAreaLeft"
|
|
},
|
|
{
|
|
"propertyName": "FollowFreeAreaRight"
|
|
},
|
|
{
|
|
"propertyName": "FollowFreeAreaTop"
|
|
},
|
|
{
|
|
"propertyName": "FollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"propertyName": "CameraOffsetX"
|
|
},
|
|
{
|
|
"propertyName": "CameraOffsetY"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Timing",
|
|
"children": [
|
|
{
|
|
"propertyName": "CameraDelay"
|
|
},
|
|
{
|
|
"propertyName": "ForecastTime"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryDuration"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"propertyName": "LogLeftwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "LogRightwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "LogDownwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "LogUpwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "DelayedCenterX"
|
|
},
|
|
{
|
|
"propertyName": "DelayedCenterY"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryMeanX"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryMeanY"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryVarianceX"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryCovariance"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryLinearA"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryLinearB"
|
|
},
|
|
{
|
|
"propertyName": "ForecastedX"
|
|
},
|
|
{
|
|
"propertyName": "ForecastedY"
|
|
},
|
|
{
|
|
"propertyName": "ProjectedNewestX"
|
|
},
|
|
{
|
|
"propertyName": "ProjectedNewestY"
|
|
},
|
|
{
|
|
"propertyName": "ProjectedOldestX"
|
|
},
|
|
{
|
|
"propertyName": "ProjectedOldestY"
|
|
},
|
|
{
|
|
"propertyName": "ForecastHistoryVarianceY"
|
|
},
|
|
{
|
|
"propertyName": "Index"
|
|
},
|
|
{
|
|
"propertyName": "CameraDelayCatchUpSpeed"
|
|
},
|
|
{
|
|
"propertyName": "CameraExtraDelay"
|
|
},
|
|
{
|
|
"propertyName": "WaitingSpeedXMax"
|
|
},
|
|
{
|
|
"propertyName": "WaitingSpeedYMax"
|
|
},
|
|
{
|
|
"propertyName": "WaitingEnd"
|
|
},
|
|
{
|
|
"propertyName": "CameraDelayCatchUpDuration"
|
|
},
|
|
{
|
|
"folderName": "Maximum speed",
|
|
"children": [
|
|
{
|
|
"propertyName": "LeftwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "RightwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "UpwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "DownwardSpeedMax"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"propertyName": "OldX"
|
|
},
|
|
{
|
|
"propertyName": "OldY"
|
|
},
|
|
{
|
|
"propertyName": "IsCalledManually"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"description": "Smoothly scroll to follow a character and stabilize the camera when jumping.",
|
|
"fullName": "Smooth platformer camera",
|
|
"helpPath": "",
|
|
"iconUrl": "",
|
|
"name": "SmoothPlatformerCamera",
|
|
"objectType": "",
|
|
"previewIconUrl": "",
|
|
"quickCustomizationVisibility": "hidden",
|
|
"eventsFunctions": [
|
|
{
|
|
"fullName": "",
|
|
"functionType": "Action",
|
|
"name": "doStepPreEvents",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "PlatformBehavior::IsJumping"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"PlatformerCharacter"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "PlatformBehavior::IsFalling"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"PlatformerCharacter"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorFollowFreeAreaTop",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorFollowFreeAreaBottom",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorUpwardSpeed",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorDownwardSpeed",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorUpwardSpeedMax",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"FloorDownwardSpeedMax",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "PlatformBehavior::IsJumping"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"PlatformerCharacter"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PlatformBehavior::IsFalling"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"PlatformerCharacter"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirFollowFreeAreaTop",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirFollowFreeAreaBottom",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirUpwardSpeed",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeed"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirDownwardSpeed",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirUpwardSpeedMax",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"SmoothCamera",
|
|
"AirDownwardSpeedMax",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "Behavior",
|
|
"name": "Behavior",
|
|
"supplementaryInformation": "SmoothCamera::SmoothPlatformerCamera",
|
|
"type": "behavior"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
}
|
|
],
|
|
"eventsFunctionsFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"functionName": "doStepPreEvents"
|
|
}
|
|
]
|
|
},
|
|
"propertyDescriptors": [
|
|
{
|
|
"value": "",
|
|
"type": "Behavior",
|
|
"label": "Platformer character behavior",
|
|
"extraInformation": [
|
|
"PlatformBehavior::PlatformerObjectBehavior"
|
|
],
|
|
"choices": [],
|
|
"name": "PlatformerCharacter"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Behavior",
|
|
"label": "Smooth camera behavior",
|
|
"extraInformation": [
|
|
"SmoothCamera::SmoothCamera"
|
|
],
|
|
"choices": [],
|
|
"name": "SmoothCamera"
|
|
},
|
|
{
|
|
"value": "",
|
|
"type": "Number",
|
|
"label": "",
|
|
"hidden": true,
|
|
"name": "JumpOriginY"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area top in the air",
|
|
"group": "Position",
|
|
"name": "AirFollowFreeAreaTop"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area bottom in the air",
|
|
"group": "Position",
|
|
"name": "AirFollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area top on the floor",
|
|
"group": "Position",
|
|
"name": "FloorFollowFreeAreaTop"
|
|
},
|
|
{
|
|
"value": "0",
|
|
"type": "Number",
|
|
"unit": "Pixel",
|
|
"label": "Follow free area bottom on the floor",
|
|
"group": "Position",
|
|
"name": "FloorFollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"value": "0.95",
|
|
"type": "Number",
|
|
"label": "Upward speed in the air (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "AirUpwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.95",
|
|
"type": "Number",
|
|
"label": "Downward speed in the air (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "AirDownwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Upward speed on the floor (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "FloorUpwardSpeed"
|
|
},
|
|
{
|
|
"value": "0.9",
|
|
"type": "Number",
|
|
"label": "Downward speed on the floor (in ratio per second)",
|
|
"group": "Catch-up speed",
|
|
"name": "FloorDownwardSpeed"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Upward maximum speed in the air",
|
|
"group": "Maximum speed",
|
|
"name": "AirUpwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Downward maximum speed in the air",
|
|
"group": "Maximum speed",
|
|
"name": "AirDownwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Upward maximum speed on the floor",
|
|
"group": "Maximum speed",
|
|
"name": "FloorUpwardSpeedMax"
|
|
},
|
|
{
|
|
"value": "9000",
|
|
"type": "Number",
|
|
"unit": "PixelSpeed",
|
|
"label": "Downward maximum speed on the floor",
|
|
"group": "Maximum speed",
|
|
"name": "FloorDownwardSpeedMax"
|
|
}
|
|
],
|
|
"propertiesFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"propertyName": "PlatformerCharacter"
|
|
},
|
|
{
|
|
"propertyName": "SmoothCamera"
|
|
},
|
|
{
|
|
"propertyName": "JumpOriginY"
|
|
},
|
|
{
|
|
"folderName": "Position",
|
|
"children": [
|
|
{
|
|
"propertyName": "AirFollowFreeAreaTop"
|
|
},
|
|
{
|
|
"propertyName": "AirFollowFreeAreaBottom"
|
|
},
|
|
{
|
|
"propertyName": "FloorFollowFreeAreaTop"
|
|
},
|
|
{
|
|
"propertyName": "FloorFollowFreeAreaBottom"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Catch-up speed",
|
|
"children": [
|
|
{
|
|
"propertyName": "AirUpwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "AirDownwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "FloorUpwardSpeed"
|
|
},
|
|
{
|
|
"propertyName": "FloorDownwardSpeed"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"folderName": "Maximum speed",
|
|
"children": [
|
|
{
|
|
"propertyName": "AirUpwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "AirDownwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "FloorUpwardSpeedMax"
|
|
},
|
|
{
|
|
"propertyName": "FloorDownwardSpeedMax"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"eventsBasedObjects": []
|
|
},
|
|
{
|
|
"author": "",
|
|
"category": "Camera",
|
|
"dimension": "2D",
|
|
"extensionNamespace": "",
|
|
"fullName": "Room-based camera movement",
|
|
"gdevelopVersion": ">=5.5.222",
|
|
"helpPath": "https://victrisgames.itch.io/room-based-camera-movement",
|
|
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggZD0iTTE0LDNINEMzLjQsMywzLDMuNCwzLDR2MTBjMCwwLjYsMC40LDEsMSwxaDEwYzAuNiwwLDEtMC40LDEtMVY0QzE1LDMuNCwxNC42LDMsMTQsM3oiLz4NCgk8cGF0aCBkPSJNMTQsMTdINGMtMC42LDAtMSwwLjQtMSwxdjEwYzAsMC42LDAuNCwxLDEsMWgxMGMwLjYsMCwxLTAuNCwxLTFWMThDMTUsMTcuNCwxNC42LDE3LDE0LDE3eiIvPg0KCTxwYXRoIGQ9Ik0yOCwzSDE4Yy0wLjYsMC0xLDAuNC0xLDF2MTBjMCwwLjYsMC40LDEsMSwxaDEwYzAuNiwwLDEtMC40LDEtMVY0QzI5LDMuNCwyOC42LDMsMjgsM3oiLz4NCgk8cGF0aCBkPSJNMjgsMTdIMThjLTAuNiwwLTEsMC40LTEsMXYxMGMwLDAuNiwwLjQsMSwxLDFoMTBjMC42LDAsMS0wLjQsMS0xVjE4QzI5LDE3LjQsMjguNiwxNywyOCwxN3oiLz4NCjwvZz4NCjwvc3ZnPg0K",
|
|
"name": "RoomBasedCameraMovement",
|
|
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Applications and Programming/Applications and Programming_app_apps_applications_tiles.svg",
|
|
"shortDescription": "Move/zoom camera to frame the room object containing the player.",
|
|
"version": "1.0.5",
|
|
"description": [
|
|
"Move camera to the room that contains the trigger object (usually the player). If desired, change zoom to show the entire room or keep zoom static.",
|
|
"",
|
|
"How to use:",
|
|
"- Place room objects on scene",
|
|
"- Select camera zoom limits, how fast the camera should move, and the visible buffer around each room",
|
|
"- Run the \"Move and zoom camera\" action on every frame",
|
|
"- Move the trigger object (player) between rooms and the camera will center on the room that contains the trigger object.",
|
|
"",
|
|
"Tips:",
|
|
"- Use these conditions for custom logic when changing rooms : \"Camera moving\", \"Camera zooming\", and \"Room changed\"",
|
|
"- Set \"Lerp Speed\" to \"1\" to change the camera instantly"
|
|
],
|
|
"origin": {
|
|
"identifier": "RoomBasedCameraMovement",
|
|
"name": "gdevelop-extension-store"
|
|
},
|
|
"tags": [
|
|
"camera",
|
|
"follow",
|
|
"room",
|
|
"trigger",
|
|
"zoom",
|
|
"move",
|
|
"smooth"
|
|
],
|
|
"authorIds": [
|
|
"gqDaZjCfevOOxBYkK6zlhtZnXCg1",
|
|
"8Ih1aa8f5gWUp4UB2BdhQ2iXWxJ3",
|
|
"dt0tRnf2kHWJnjkrpnzTzNj9Yc63"
|
|
],
|
|
"dependencies": [],
|
|
"globalVariables": [],
|
|
"sceneVariables": [],
|
|
"eventsFunctions": [
|
|
{
|
|
"description": "Move and zoom camera to the room object that contains the trigger object (usually the player).",
|
|
"fullName": "Move and zoom camera to the room object that contains the trigger object (player)",
|
|
"functionType": "Action",
|
|
"group": "Layers and cameras",
|
|
"name": "MoveCameraToActiveRoom",
|
|
"sentence": "Move camera to room object _PARAM1_ that contains trigger object _PARAM2_ (Layer: _PARAM3_, Lerp speed: _PARAM4_, Max zoom: _PARAM5_, Min zoom: _PARAM6_, Border buffer: _PARAM7_px)",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Initialize",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Save input values"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.MaxZoom",
|
|
"=",
|
|
"MaxZoom"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.LerpSpeed",
|
|
"=",
|
|
"LerpSpeed"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set default values if none provided"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.MaxZoom",
|
|
"<=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.MaxZoom",
|
|
"=",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.LerpSpeed",
|
|
"<=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.LerpSpeed",
|
|
"=",
|
|
"0.1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Main",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Identify the current room",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Detect which room is the current one"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionPoint"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"TriggerObject.CenterX()",
|
|
"TriggerObject.CenterY()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Room has NOT changed"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.CurrentRoomID",
|
|
"=",
|
|
"RoomObject.Variable(__RoomBasedCameraMovement.RoomID)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.RoomChanged",
|
|
"False"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Room has changed"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.CurrentRoomID",
|
|
"!=",
|
|
"RoomObject.Variable(__RoomBasedCameraMovement.RoomID)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.RoomChanged",
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Update CurrentRoomID variable"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.CurrentRoomID",
|
|
"=",
|
|
"RoomObject.Variable(__RoomBasedCameraMovement.RoomID)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Move camera",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "RoomObject",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Assign each room a unique ID if they don't have one yet"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__RoomBasedCameraMovement.RoomID",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.MaxRoomID",
|
|
"+",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__RoomBasedCameraMovement.RoomID",
|
|
"=",
|
|
"Variable(__RoomBasedCameraMovement.MaxRoomID)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Check if this room is the current room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__RoomBasedCameraMovement.RoomID",
|
|
"=",
|
|
"TriggerObject.Variable(__RoomBasedCameraMovement.CurrentRoomID)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Change zoom",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Calculate the camera dimensions"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraWidth",
|
|
"=",
|
|
"RoomObject.Width()+2*OutsideBuffer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraHeight",
|
|
"=",
|
|
"RoomObject.Height()+2*OutsideBuffer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraZoom",
|
|
"=",
|
|
"min(SceneWindowHeight() / Variable(__RoomBasedCameraMovement.CameraHeight), SceneWindowWidth() / Variable(__RoomBasedCameraMovement.CameraWidth))"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Adjust zoom to stay within min/max values"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraZoom",
|
|
"=",
|
|
"clamp(Variable(__RoomBasedCameraMovement.CameraZoom),MinZoom,Variable(__RoomBasedCameraMovement.MaxZoom))"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Change camera zoom"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ZoomCamera"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"ceil(lerp(CameraZoom(Layer,Camera),Variable(__RoomBasedCameraMovement.CameraZoom),Variable(__RoomBasedCameraMovement.LerpSpeed))*1000)/1000",
|
|
"Layer",
|
|
"Camera"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Move camera position",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "For rooms smaller than the viewable screen, center the camera on the center of the room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraWidth",
|
|
"<=",
|
|
"SceneWindowWidth()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"ceil(lerp(CameraX(Layer,Camera), RoomObject.CenterX(), Variable(__RoomBasedCameraMovement.LerpSpeed))*100)/100",
|
|
"Layer",
|
|
"Camera"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraHeight",
|
|
"<=",
|
|
"SceneWindowHeight()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"ceil(lerp(CameraY(Layer,Camera), RoomObject.CenterY(), Variable(__RoomBasedCameraMovement.LerpSpeed))*100)/100",
|
|
"Layer",
|
|
"Camera"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "For rooms larger than the viewable screen, center the camera on the TriggerObject and clamp camera so it only shows the room + buffer"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraWidth",
|
|
">",
|
|
"SceneWindowWidth()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterX"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"ceil(lerp(CameraX(Layer,Camera), clamp(TriggerObject.CenterX(), \nRoomObject.CenterX() - RoomObject.Width()/2 + SceneWindowWidth()/2 - OutsideBuffer, RoomObject.CenterX() + RoomObject.Width()/2 - SceneWindowWidth()/2 + OutsideBuffer), Variable(__RoomBasedCameraMovement.LerpSpeed))*100)/100",
|
|
"Layer",
|
|
"Camera"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraHeight",
|
|
">",
|
|
"SceneWindowHeight()"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetCameraCenterY"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"=",
|
|
"ceil(lerp(CameraY(Layer,Camera), clamp(TriggerObject.CenterY(), \nRoomObject.CenterY() - RoomObject.Height()/2 + SceneWindowHeight()/2 - OutsideBuffer, RoomObject.CenterY() + RoomObject.Height()/2 - SceneWindowHeight()/2 + OutsideBuffer), Variable(__RoomBasedCameraMovement.LerpSpeed))*100)/100",
|
|
"Layer",
|
|
"Camera"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Calculate \"IsCameraMoving\" condition",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Initialize",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraY",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraX",
|
|
"=",
|
|
"CameraX(Layer, Camera)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraY",
|
|
"=",
|
|
"CameraY(Layer, Camera)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Check if camera position changed",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Camera has NOT moved"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraX",
|
|
"=",
|
|
"CameraX(Layer,Camera)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraY",
|
|
"=",
|
|
"CameraY(Layer,Camera)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraMoving",
|
|
"False"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Camera has moved"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraX",
|
|
"!=",
|
|
"CameraX(Layer,Camera)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraY",
|
|
"!=",
|
|
"CameraY(Layer,Camera)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraMoving",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Update with current camera position"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraX",
|
|
"=",
|
|
"CameraX(Layer, Camera)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PrevCameraY",
|
|
"=",
|
|
"CameraY(Layer, Camera)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Calculate \"IsCameraZooming\" condition",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Initialize",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PreviousZoom",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PreviousZoom",
|
|
"=",
|
|
"CameraZoom(Layer, Camera)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Check if camera zoom changed",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Camera zoom has NOT changed"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PreviousZoom",
|
|
"=",
|
|
"CameraZoom(Layer,Camera)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraZooming",
|
|
"False"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Camera zoom has changed"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PreviousZoom",
|
|
"!=",
|
|
"CameraZoom(Layer,Camera)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraZooming",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Update with current camera zoom"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.PreviousZoom",
|
|
"=",
|
|
"CameraZoom(Layer, Camera)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Room object",
|
|
"longDescription": "Room objects are used to mark areas that should be seen by the camera.",
|
|
"name": "RoomObject",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Trigger object (player)",
|
|
"longDescription": "When the Trigger Object touches a new Room Object, the camera will move to the new room",
|
|
"name": "TriggerObject",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Layer",
|
|
"name": "Layer",
|
|
"type": "layer"
|
|
},
|
|
{
|
|
"description": "Lerp speed",
|
|
"longDescription": "Range: 0 to 1",
|
|
"name": "LerpSpeed",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Maximum zoom",
|
|
"name": "MaxZoom",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Minimum zoom",
|
|
"name": "MinZoom",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Outside buffer (pixels)",
|
|
"longDescription": "Minimum extra space displayed around each side the room",
|
|
"name": "OutsideBuffer",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Camera",
|
|
"name": "Camera",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if trigger object (usually the player) has entered a new room on this frame.",
|
|
"fullName": "Check if trigger object (player) has entered a new room",
|
|
"functionType": "Condition",
|
|
"name": "ActiveRoomChanged",
|
|
"sentence": "_PARAM1_ has just entered a new room",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"TriggerObject",
|
|
"__RoomBasedCameraMovement.RoomChanged",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Trigger object (player)",
|
|
"name": "TriggerObject",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if camera is zooming (requires the use of \"Move and zoom camera\" action in this extension).",
|
|
"fullName": "Check if camera is zooming",
|
|
"functionType": "Condition",
|
|
"name": "IsCameraZooming",
|
|
"sentence": "Camera is zooming",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraZooming",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if camera is moving (requires the use of \"Move and zoom camera\" action in this extension).",
|
|
"fullName": "Check if camera is moving",
|
|
"functionType": "Condition",
|
|
"name": "IsCameraMoving",
|
|
"sentence": "Camera is moving",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__RoomBasedCameraMovement.CameraMoving",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [],
|
|
"objectGroups": []
|
|
}
|
|
],
|
|
"eventsFunctionsFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"folderName": "Layers and cameras",
|
|
"children": [
|
|
{
|
|
"functionName": "MoveCameraToActiveRoom"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"functionName": "ActiveRoomChanged"
|
|
},
|
|
{
|
|
"functionName": "IsCameraZooming"
|
|
},
|
|
{
|
|
"functionName": "IsCameraMoving"
|
|
}
|
|
]
|
|
},
|
|
"eventsBasedBehaviors": [],
|
|
"eventsBasedObjects": []
|
|
},
|
|
{
|
|
"author": "@oscuridad6661, Tristan Rhodes (@VictrisGames)",
|
|
"category": "Game mechanic",
|
|
"dimension": "",
|
|
"extensionNamespace": "",
|
|
"fullName": "Dungeon generator",
|
|
"gdevelopVersion": ">=5.5.222",
|
|
"helpPath": "https://victrisgames.itch.io/extension-dungeon-generator",
|
|
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNpdGVtYXAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwyVjhIMTFWMTFINUMzLjg5LDExIDMsMTEuODkgMywxM1YxNkgxVjIySDdWMTZINVYxM0gxMVYxNkg5VjIySDE1VjE2SDEzVjEzSDE5VjE2SDE3VjIySDIzVjE2SDIxVjEzQzIxLDExLjg5IDIwLjExLDExIDE5LDExSDEzVjhIMTVWMkg5WiIgLz48L3N2Zz4=",
|
|
"name": "DungeonGenerator",
|
|
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sitemap.svg",
|
|
"shortDescription": "Create a procedurally generated dungeon. Includes two layouts: \"rooms and hallways\" and \"dungeon cave\".",
|
|
"version": "1.2.1",
|
|
"description": [
|
|
"How to use:",
|
|
"- Run the \"Generate Dungeon Cave\" or \"Generate Dungeon with Rooms\" action at the beginning of a scene.",
|
|
"",
|
|
"Tips:",
|
|
"- Keep the amount of space used by room objects to less than ~25% of the total map. If you add too many rooms, they will not be placed correctly and might collide with other rooms.",
|
|
"- Try using top-down controls combined with physics behavior (with no gravity) on the player and wall objects",
|
|
"- Use external layouts to place pre-designed rooms on randomly created room objects",
|
|
"- Use \"Delete Unused Terrain\" option to reduce resources used",
|
|
"- Use \"RoomID(object)\" expression to determine the starting and ending room",
|
|
"- Use \"NeighborCount(object)\" expression to find good places to place treasure. A high amount of neighbors means that the tile is a nook or cranny.",
|
|
"- Use \"IsRoomEntrance\" condition to identify hallway objects that are adjacent to a room",
|
|
"",
|
|
"An example shows how to procedurally generate dungeons or caves ([open the project online](https://editor.gdevelop.io/?project=example://dungeon-generator))."
|
|
],
|
|
"origin": {
|
|
"identifier": "DungeonGenerator",
|
|
"name": "gdevelop-extension-store"
|
|
},
|
|
"tags": [
|
|
"dungeon",
|
|
"generator",
|
|
"procedural",
|
|
"generation",
|
|
"automatic",
|
|
"build",
|
|
"create",
|
|
"rogue",
|
|
"roguelike",
|
|
"hallway",
|
|
"entrance",
|
|
"floor",
|
|
"room",
|
|
"cave"
|
|
],
|
|
"authorIds": [
|
|
"gqDaZjCfevOOxBYkK6zlhtZnXCg1",
|
|
"5iOtaj8yEsam4mIj7TEUDk4LSAe2"
|
|
],
|
|
"dependencies": [],
|
|
"globalVariables": [],
|
|
"sceneVariables": [],
|
|
"eventsFunctions": [
|
|
{
|
|
"description": "Set the size of hallway objects to be placed on the path created by the pathfinding object.",
|
|
"fullName": "Set size of hallway objects",
|
|
"functionType": "Action",
|
|
"name": "AdjustHallwaySizes",
|
|
"private": true,
|
|
"sentence": "Set the size of hallway objects _PARAM1_ to be placed on the path created by _PARAM2_ (Tile size: _PARAM4_ pixels, Hallway width: _PARAM5_ tiles)",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Adjust size of hallway objects",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set the default size of hallway object to the tilesize"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize "
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize "
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Skip the first step in the path (so this function doesn't try to evaluate step 0)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.PathCounter",
|
|
">",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Vertical move (previous frame)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter))",
|
|
"=",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter)-1)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize * max(1,HallwayWidth)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Change in direction (this frame)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter))",
|
|
"=",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter)+1)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize * max(1,HallwayWidth)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Horizontal move (previous frame)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter))",
|
|
"=",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter)-1)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize * max(1,HallwayWidth)"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Change in direction (this frame)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter))",
|
|
"=",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter)+1)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"=",
|
|
"TileSize * max(1,HallwayWidth)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.PathCounter",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Hallway object",
|
|
"name": "HallwayObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Pathfinder object",
|
|
"name": "PathfinderObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Pathfinding behavior",
|
|
"name": "PathfindingBehavior",
|
|
"supplementaryInformation": "PathfindingBehavior::PathfindingBehavior",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Tile size (pixels)",
|
|
"name": "TileSize",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Hallway width (tiles)",
|
|
"name": "HallwayWidth",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Fill world with terrain",
|
|
"fullName": "Fill world with terrain",
|
|
"functionType": "Action",
|
|
"name": "FillWorld",
|
|
"private": true,
|
|
"sentence": "Fill world with terrain (Tile size: _PARAM1_ pixels, Columns: _PARAM2_ tiles, Rows: _PARAM3_ tiles, Fill object: _PARAM4_)",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Populate map with terrain objects everywhere",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterY",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "MapHeight",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "MapWidth",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"TerrainObject",
|
|
"Variable(__DungeonGenerator.CounterX) * TileSize",
|
|
"Variable(__DungeonGenerator.CounterY) * TileSize",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterY",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Tile size (pixels)",
|
|
"name": "TileSize",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map width (number of colums)",
|
|
"name": "MapWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map height (number of rows)",
|
|
"name": "MapHeight",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Terrain object",
|
|
"name": "TerrainObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Generate a dungeon cave using a random walk algorithm. When the walker touches an edge of the map, it is moved back to the center of map.",
|
|
"fullName": "Generate a dungeon cave",
|
|
"functionType": "Action",
|
|
"name": "GenerateDungeonCave",
|
|
"sentence": "Generate a dungeon cave that has _PARAM8_ percent floor objects (Tile size: _PARAM1_ pixels, Map width: _PARAM2_ tiles, Map height: _PARAM3_ tiles, Terrain object: _PARAM4_, Floor object: _PARAM5_, Wall object: _PARAM12_, Walker object: _PARAM7_, Walker width/height: _PARAM9_ tiles, Minimum border: _PARAM10_ tiles, Create objects on layer: _PARAM6_, Delete unused terrain: _PARAM11_, Calculate neighbors: _PARAM13_)",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Random walk",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Calculate the number of floor objects to be created. Don't include border in calculation. Multiply border by 2 because it needs to exist on both sides (top+bottom, left+right)."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.FloorGoal",
|
|
"=",
|
|
"round((MapWidth - 2 * MinBorder) * (MapHeight - 2 * MinBorder) * FloorPercentage)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Initialize counters"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.StepsTaken",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.FloorCreated",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerRestarts",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Walk until complete (using a 2D array)",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Start with an empty map (array)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "VariableRemoveChild"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator",
|
|
"\"WalkerMap\""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Create walkers",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Initialize walker offsets (these are used to make the walker take up more than one tile)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerOffsetX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerOffsetY",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create (WalkerSize^2) quantity of objects (1x1=1, 2x2=4, 3x3=9, etc0"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "max(1,WalkerSize)",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "max(1,WalkerSize)",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create virtual walker objects. Walker objects are ONLY used to store variables and to perform ForEach() loops. Position, size, and appearance DO NOT matter. \nTODO: These could be replaced by structure variables."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"WalkerObject",
|
|
"0",
|
|
"0",
|
|
"Layer"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Calculate the starting position (in the 2D array) and save it so it can be used for restarts"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
"=",
|
|
"round(MapWidth/2 + Variable(__DungeonGenerator.WalkerOffsetX))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
"=",
|
|
"round(MapHeight/2 + Variable(__DungeonGenerator.WalkerOffsetY))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.StartXpos",
|
|
"=",
|
|
"WalkerObject.Variable(__DungeonGenerator.Xpos)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.StartYpos",
|
|
"=",
|
|
"WalkerObject.Variable(__DungeonGenerator.Ypos)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerOffsetX",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerOffsetX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerOffsetY",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Process walker movements",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.FloorCreated",
|
|
"<",
|
|
"Variable(__DungeonGenerator.FloorGoal)"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Reset variables"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.InitiateRestart",
|
|
"False"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Calculate chance to go in each direction based on the ratio of width to height"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ChanceToGoRight",
|
|
"=",
|
|
"0.5 * (MapWidth / (MapWidth + MapHeight))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ChanceToGoLeft",
|
|
"=",
|
|
"Variable(__DungeonGenerator.ChanceToGoRight)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ChanceToGoUp",
|
|
"=",
|
|
"0.5 * (MapHeight / (MapWidth + MapHeight))"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ChanceToGoDown",
|
|
"=",
|
|
"Variable(__DungeonGenerator.ChanceToGoUp)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Generate a random number between 0 and 1"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
"=",
|
|
"RandomFloatInRange(0,1)"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move LEFT"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
">=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
"<",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
"-",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move RIGHT"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
">=",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
"<",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft) + Variable(__DungeonGenerator.ChanceToGoRight)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move UP"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
">=",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft) + Variable(__DungeonGenerator.ChanceToGoRight)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
"<",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft) + Variable(__DungeonGenerator.ChanceToGoRight) + Variable(__DungeonGenerator.ChanceToGoUp)"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
"-",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move DOWN"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
">=",
|
|
"Variable(__DungeonGenerator.ChanceToGoLeft) + Variable(__DungeonGenerator.ChanceToGoRight) + Variable(__DungeonGenerator.ChanceToGoUp)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.RandomNumber",
|
|
"<=",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "If ANY Walker is outside map boundries, reset ALL of them to their starting positions"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
"<",
|
|
"MinBorder"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
">=",
|
|
"MapWidth - MinBorder"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
"<",
|
|
"MinBorder"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
">=",
|
|
"MapHeight - MinBorder"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetSceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.InitiateRestart",
|
|
"True"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerRestarts",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Check all Walkers if they are on top of terrain"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "WalkerObject",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "SceneVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.InitiateRestart",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move back to starting position"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Xpos",
|
|
"=",
|
|
"WalkerObject.Variable(__DungeonGenerator.StartXpos)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
"__DungeonGenerator.Ypos",
|
|
"=",
|
|
"WalkerObject.Variable(__DungeonGenerator.StartYpos)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "If Walker is on Terrain, delete it"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerMap[WalkerObject.Variable(__DungeonGenerator.Xpos)][WalkerObject.Variable(__DungeonGenerator.Ypos)]",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerMap[WalkerObject.Variable(__DungeonGenerator.Xpos)][WalkerObject.Variable(__DungeonGenerator.Ypos)]",
|
|
"=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.FloorCreated",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Track how many steps were taken"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.StepsTaken",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Draw map based on 2D array",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterY",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Loop through every tile in the map"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "MapHeight",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "MapWidth",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create terrain objects when array value is 0"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerMap[Variable(__DungeonGenerator.CounterX)][Variable(__DungeonGenerator.CounterY)]",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"TerrainObject",
|
|
"Variable(__DungeonGenerator.CounterX) * TileSize",
|
|
"Variable(__DungeonGenerator.CounterY) * TileSize",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create floor objects when array value is 1"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.WalkerMap[Variable(__DungeonGenerator.CounterX)][Variable(__DungeonGenerator.CounterY)]",
|
|
"=",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"FloorObject",
|
|
"Variable(__DungeonGenerator.CounterX) * TileSize",
|
|
"Variable(__DungeonGenerator.CounterY) * TileSize",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"FloorObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"FloorObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterX",
|
|
"=",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CounterY",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Add walls",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Add walls"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "TerrainObject",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create walls where terrain touches floor"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"FloorObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"WallObject",
|
|
"TerrainObject.X()",
|
|
"TerrainObject.Y()",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Calculate neighbors",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"CalculateNeighbors",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DungeonGenerator::CalculateGridNeighbors"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"FloorObject",
|
|
"WallObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Cleanup",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Delete walkers"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"WalkerObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Delete unused terrain (if desired)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"DeleteUnused",
|
|
"True",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"FloorObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Tile size (pixels)",
|
|
"longDescription": "All objects are based on this size",
|
|
"name": "TileSize",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map width (tiles)",
|
|
"name": "MapWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map height (tiles)",
|
|
"name": "MapHeight",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Terrain object",
|
|
"longDescription": "Terrain object is used to fill the map that is not covered by floors, hallways, or walls.",
|
|
"name": "TerrainObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Floor object",
|
|
"longDescription": "Floor objects are created on every tile that a walker has travelled to.",
|
|
"name": "FloorObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Layer",
|
|
"name": "Layer",
|
|
"type": "layer"
|
|
},
|
|
{
|
|
"description": "Walker object",
|
|
"longDescription": "Use a random walk algorithm to turn terrain objects into floor objects",
|
|
"name": "WalkerObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Floor percentage (Range: 0-1)",
|
|
"longDescription": "Percentage of map that will be convered by floor objects",
|
|
"name": "FloorPercentage",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Size of walker sides (tiles)",
|
|
"longDescription": "The number of tiles for each side of the square walker object. For example, 2=2x2, 3=3x3, 4=4x4.",
|
|
"name": "WalkerSize",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Minimum border",
|
|
"longDescription": "Can be used to provide a border of terrain around the map",
|
|
"name": "MinBorder",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Delete unused terrain objects",
|
|
"name": "DeleteUnused",
|
|
"type": "trueorfalse"
|
|
},
|
|
{
|
|
"description": "Wall object",
|
|
"longDescription": "Wall objects are placed between floor and terrain objects.",
|
|
"name": "WallObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Calculate neighbors",
|
|
"longDescription": "May take a few seconds to calculate neighbors on a large map, so disable this if you are not using it.",
|
|
"name": "CalculateNeighbors",
|
|
"type": "yesorno"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Generate a dungeon by placing rooms in random locations and moving them if they collide with each other. Rooms are connected with hallways.",
|
|
"fullName": "Generate a dungeon with room and hallways",
|
|
"functionType": "Action",
|
|
"name": "GenerateDungeonRooms",
|
|
"sentence": "Generate a dungeon with rooms (Room Qty: _PARAM7_, Tile size: _PARAM1_ pixels, Map width: _PARAM2_ tiles, Map height: _PARAM3_ tiles, Terrain object: _PARAM4_, Room object: _PARAM5_, Wall object: _PARAM20_, Hallway object: _PARAM6_, Pathfinding object: _PARAM13_, Min room width: _PARAM9_ tiles, Max room width: _PARAM10_ tiles, Min room height: _PARAM11_ tiles, Max room height: _PARAM12_ tiles, Hallway width: _PARAM17_ tiles, Create objects on layer: _PARAM8_, Max separation attempts: _PARAM15_, Connect rooms in a loop: _PARAM16_, Additional paths: _PARAM18_, Delete unused terrain: _PARAM19_)",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Populate map with terrain objects everywhere",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DungeonGenerator::FillWorld"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"TileSize",
|
|
"MapWidth",
|
|
"MapHeight",
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Create rooms at random locations",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "NbObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"<",
|
|
"RoomQty"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create a new room in a random location on map"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"RoomObject",
|
|
"RandomInRange(HallwayWidth, MapWidth - MaxRoomWidth - HallwayWidth) * TileSize",
|
|
"RandomInRange(HallwayWidth, MapHeight - MaxRoomHeight - HallwayWidth) * TileSize",
|
|
"Layer"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Change the room to a random size"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomWidth",
|
|
"=",
|
|
"RandomInRange(MinRoomWidth, MaxRoomWidth) * TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomHeight",
|
|
"=",
|
|
"RandomInRange(MinRoomHeight, MaxRoomHeight) * TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"RoomObject.Variable(__DungeonGenerator.RoomWidth)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"RoomObject.Variable(__DungeonGenerator.RoomHeight)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Separate rooms",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Estimate starting distance between rooms"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.MinSeparationDistance",
|
|
"=",
|
|
"ceil((sqrt(pow(MaxRoomWidth,2) + pow(MaxRoomHeight,2)))) * TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.SeparationCounter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set a default value for separation attempts"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"MaxSeparationAttempts",
|
|
"!=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.MaxSeparationAttempts",
|
|
"=",
|
|
"MaxSeparationAttempts"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::CompareNumbers"
|
|
},
|
|
"parameters": [
|
|
"MaxSeparationAttempts",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.MaxSeparationAttempts",
|
|
"=",
|
|
"10000"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "If rooms are close to each other, move them to a new random location"
|
|
},
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "Distance"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"RoomObject",
|
|
"Variable(__DungeonGenerator.MinSeparationDistance)",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.SeparationCounter",
|
|
"<",
|
|
"Variable(__DungeonGenerator.MaxSeparationAttempts)"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.SeparationCounter",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move in a random direction the distance of a room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetXY"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"+",
|
|
"RandomWithStep(-MaxRoomWidth/2,MaxRoomWidth/2,MaxRoomWidth) * TileSize",
|
|
"+",
|
|
"RandomWithStep(-MaxRoomHeight/2,MaxRoomHeight/2,MaxRoomHeight) * TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move object back into the usable part of map"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PosY"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
">",
|
|
"(MapHeight - MaxRoomWidth - HallwayWidth)*TileSize"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetY"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"(MapHeight - MaxRoomWidth - HallwayWidth)*TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PosX"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
">",
|
|
"(MapWidth - MaxRoomWidth - HallwayWidth)*TileSize"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetX"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"(MapWidth - MaxRoomWidth - HallwayWidth)*TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PosX"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"<",
|
|
"HallwayWidth*TileSize"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetX"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"HallwayWidth*TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PosY"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"<",
|
|
"HallwayWidth*TileSize"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetY"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"=",
|
|
"HallwayWidth*TileSize"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Draw paths between rooms",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create pathfinder object if one doesn't exist"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "NbObjet"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"<",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"PathfinderObject",
|
|
"0",
|
|
"0",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::AllowDiagonals"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"no"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetZOrder"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"100"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Make sure pathfinding cell size matches tile size"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::CellWidth"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"!=",
|
|
"TileSize "
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::CellWidth"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"=",
|
|
"TileSize "
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::CellHeight"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"!=",
|
|
"TileSize "
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::CellHeight"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"=",
|
|
"TileSize "
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move the pathfinder object to a random starting room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"RoomObject"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetXY"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"RoomObject.CenterX()",
|
|
"=",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.Visited",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Reset counter (used to assign RoomID to rooms)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CurrentRoomID",
|
|
"=",
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomID",
|
|
"=",
|
|
"Variable(__DungeonGenerator.CurrentRoomID)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CurrentRoomID",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Cycle through all rooms, always going to the nearest unvisited room"
|
|
},
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.Visited",
|
|
"False"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickNearest"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"PathfinderObject.X()",
|
|
"PathfinderObject.Y()",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Assign path order if one does not exist"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomID",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomID",
|
|
"=",
|
|
"Variable(__DungeonGenerator.CurrentRoomID)"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.CurrentRoomID",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set the destination of the pathfinder to the next room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::SetDestination"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"",
|
|
"RoomObject.CenterX()",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.PathCounter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create a hallway object at every cell along the path to the destination"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "PathfinderObject.PathfindingBehavior::NodeCount()",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter))",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter))",
|
|
"Layer"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Adjust size of hallway objects"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DungeonGenerator::AdjustHallwaySizes"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"TileSize",
|
|
"HallwayWidth",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move the pathfinder object to the room that was just connected with a hallway"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetXY"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"RoomObject.CenterX()",
|
|
"=",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "SetObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.Visited",
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Close loop",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "If desired, connect a hallway from the last room to the first room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"CloseLoop",
|
|
"True",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set the destination of the pathfinder to the starting room"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarObjet"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"__DungeonGenerator.RoomID",
|
|
"=",
|
|
"1"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::SetDestination"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"",
|
|
"RoomObject.CenterX()",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.PathCounter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create a hallway object at every cell along the path to the destination"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "PathfinderObject.PathfindingBehavior::NodeCount()",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter))",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter))",
|
|
"Layer"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Adjust size of hallway objects"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DungeonGenerator::AdjustHallwaySizes"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"TileSize",
|
|
"HallwayWidth",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move the pathfinder object to the room that was just connected with a hallway"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetXY"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"RoomObject.CenterX()",
|
|
"=",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Add additional paths between rooms",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "If desired, make additional random connections between rooms"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.AdditionalPathCounter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"infiniteLoopWarning": true,
|
|
"type": "BuiltinCommonInstructions::While",
|
|
"whileConditions": [
|
|
{
|
|
"type": {
|
|
"value": "VarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.AdditionalPathCounter",
|
|
"<",
|
|
"AdditionalPaths"
|
|
]
|
|
}
|
|
],
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set the destination of the pathfinder to the next room (don't select the room that already has the pathfinder)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "PickRandomInstance"
|
|
},
|
|
"parameters": [
|
|
"RoomObject",
|
|
"RoomObject"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
""
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "PathfindingBehavior::SetDestination"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"",
|
|
"RoomObject.CenterX()",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.PathCounter",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create a hallway object at every cell along the path to the destination"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "PathfinderObject.PathfindingBehavior::NodeCount()",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeX(Variable(__DungeonGenerator.PathCounter))",
|
|
"PathfinderObject.PathfindingBehavior::GetNodeY(Variable(__DungeonGenerator.PathCounter))",
|
|
"Layer"
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Adjust size of hallway objects"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "DungeonGenerator::AdjustHallwaySizes"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"HallwayObject",
|
|
"PathfinderObject",
|
|
"PathfindingBehavior",
|
|
"TileSize",
|
|
"HallwayWidth",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Move the pathfinder object to the room that was just connected with a hallway"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetXY"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
"=",
|
|
"RoomObject.CenterX()",
|
|
"=",
|
|
"RoomObject.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.AdditionalPathCounter",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Cleanup",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Remove terrain from rooms and hallways.",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Remove terrain from inside rooms and hallways."
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BuiltinCommonInstructions::Or"
|
|
},
|
|
"parameters": [],
|
|
"subInstructions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"HallwayObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Place walls",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "TerrainObject",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create walls where terrain touches hallways but not rooms"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"Deleted",
|
|
"False"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"HallwayObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"HallwayObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"WallObject",
|
|
"TerrainObject.X()",
|
|
"TerrainObject.Y()",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Create walls where terrain touches rooms but not hallways"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"HallwayObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Create"
|
|
},
|
|
"parameters": [
|
|
"",
|
|
"WallObject",
|
|
"TerrainObject.X()",
|
|
"TerrainObject.Y()",
|
|
"Layer"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeWidth"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ChangeHeight"
|
|
},
|
|
"parameters": [
|
|
"WallObject",
|
|
"=",
|
|
"TileSize"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Delete hallways that are at least partially inside of rooms "
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"yes"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Set boolean flag for hallways that are doorways (adjacent to room but not touching)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"HallwayObject",
|
|
"__DungeonGenerator.IsRoomEntrance",
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
},
|
|
{
|
|
"colorB": 228,
|
|
"colorG": 176,
|
|
"colorR": 74,
|
|
"creationTime": 0,
|
|
"name": "Cleanup",
|
|
"source": "",
|
|
"type": "BuiltinCommonInstructions::Group",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Remove extra terrain, if needed"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "BooleanVariable"
|
|
},
|
|
"parameters": [
|
|
"DeleteUnused",
|
|
"True",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"RoomObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"inverted": true,
|
|
"value": "CollisionNP"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
"HallwayObject",
|
|
"",
|
|
"",
|
|
"no"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"TerrainObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Cleanup pathfinder object"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "Delete"
|
|
},
|
|
"parameters": [
|
|
"PathfinderObject",
|
|
""
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Tile size (pixels)",
|
|
"longDescription": "All objects are based on this size",
|
|
"name": "TileSize",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map width (number of colums)",
|
|
"name": "MapWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Map height (number of rows)",
|
|
"name": "MapHeight",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Terrain object",
|
|
"longDescription": "Used to fill the map that is not covered by floors, hallways, or walls.",
|
|
"name": "TerrainObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Room object",
|
|
"longDescription": "Rooms are placed in random locations and will try to not overlap with other rooms. ",
|
|
"name": "RoomObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Hallway object",
|
|
"longDescription": "Used to connect room objects. They follow the path made by the pathfinder object.",
|
|
"name": "HallwayObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Number of rooms",
|
|
"longDescription": "Rooms should take less than ~25% of map to ensure non-overlapping rooms. If there are too many rooms, they may end up overlapping each other.",
|
|
"name": "RoomQty",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Layer",
|
|
"name": "Layer",
|
|
"type": "layer"
|
|
},
|
|
{
|
|
"description": "Min room width (tiles)",
|
|
"name": "MinRoomWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Max room width (tiles)",
|
|
"name": "MaxRoomWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Min room height (tiles)",
|
|
"name": "MinRoomHeight",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Max room height (tiles)",
|
|
"name": "MaxRoomHeight",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Pathfinder object",
|
|
"longDescription": "Used to identify where hallways are placed between rooms",
|
|
"name": "PathfinderObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Pathfinding behavior (required)",
|
|
"name": "PathfindingBehavior",
|
|
"supplementaryInformation": "PathfindingBehavior::PathfindingBehavior",
|
|
"type": "behavior"
|
|
},
|
|
{
|
|
"description": "Max separation attempts",
|
|
"longDescription": "Number of attempts to separate overalapping rooms. When this number is reached, rooms are left in current position. (Default: 10,000)",
|
|
"name": "MaxSeparationAttempts",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Connect rooms in a loop",
|
|
"name": "CloseLoop",
|
|
"type": "yesorno"
|
|
},
|
|
{
|
|
"description": "Hallway width (tiles)",
|
|
"name": "HallwayWidth",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Additional paths between connect rooms",
|
|
"name": "AdditionalPaths",
|
|
"type": "expression"
|
|
},
|
|
{
|
|
"description": "Delete unused terrain",
|
|
"name": "DeleteUnused",
|
|
"type": "trueorfalse"
|
|
},
|
|
{
|
|
"description": "Wall object",
|
|
"name": "WallObject",
|
|
"supplementaryInformation": "Sprite",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Calculate the number of grid neighbors around an object. Use \"NeighborCount(Object)\" expression to retrieve this value.",
|
|
"fullName": "Calculate the number of grid neighbors around an object",
|
|
"functionType": "Action",
|
|
"name": "CalculateGridNeighbors",
|
|
"sentence": "Calculate the number of grid neighbors (_PARAM2_) around _PARAM1_",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::ForEach",
|
|
"object": "Object",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Save center point and size as scene variables (since we can't compare instances of the same object)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ThisCenterX",
|
|
"=",
|
|
"Object.CenterX()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ThisCenterY",
|
|
"=",
|
|
"Object.CenterY()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ThisObjectWidth",
|
|
"=",
|
|
"Object.Width()"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ThisNeighborCount",
|
|
"=",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Initiate offset to start looking for the top-left neighbor"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.NeighborOffsetX",
|
|
"=",
|
|
"-1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.NeighborOffsetY",
|
|
"=",
|
|
"-1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Search for neighbors (but don't consider the center object)"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "3",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Repeat",
|
|
"repeatExpression": "3",
|
|
"conditions": [],
|
|
"actions": [],
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "CollisionPoint"
|
|
},
|
|
"parameters": [
|
|
"Neighbor",
|
|
"Variable(__DungeonGenerator.ThisCenterX) + (Variable(__DungeonGenerator.NeighborOffsetX) * Variable(__DungeonGenerator.ThisObjectWidth))",
|
|
"Variable(__DungeonGenerator.ThisCenterY) + (Variable(__DungeonGenerator.NeighborOffsetY) * Variable(__DungeonGenerator.ThisObjectWidth))"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.ThisNeighborCount",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.NeighborOffsetX",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.NeighborOffsetX",
|
|
"=",
|
|
"-1"
|
|
]
|
|
},
|
|
{
|
|
"type": {
|
|
"value": "ModVarScene"
|
|
},
|
|
"parameters": [
|
|
"__DungeonGenerator.NeighborOffsetY",
|
|
"+",
|
|
"1"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Comment",
|
|
"color": {
|
|
"b": 109,
|
|
"g": 230,
|
|
"r": 255,
|
|
"textB": 0,
|
|
"textG": 0,
|
|
"textR": 0
|
|
},
|
|
"comment": "Save neighbor count in real object"
|
|
},
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "ModVarObjet"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__DungeonGenerator.Neighbors",
|
|
"=",
|
|
"Variable(__DungeonGenerator.ThisNeighborCount)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Primary object (or object group)",
|
|
"name": "Object",
|
|
"type": "objectList"
|
|
},
|
|
{
|
|
"description": "Neighbor object (or object group)",
|
|
"name": "Neighbor",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "The numerical order this room was created. (Range: 1 to total number of rooms).",
|
|
"fullName": "Creation order of room",
|
|
"functionType": "Expression",
|
|
"name": "RoomID",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"RoomObject.Variable(__DungeonGenerator.RoomID)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Room object",
|
|
"name": "RoomObject",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Number of grid neighbors of an object. Requires running the \"CalculateGridNeighbors\" action before using this expression.",
|
|
"fullName": "Number of grid neighbors of an object",
|
|
"functionType": "Expression",
|
|
"name": "NeighborCount",
|
|
"sentence": "",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnNumber"
|
|
},
|
|
"parameters": [
|
|
"Object.Variable(__DungeonGenerator.Neighbors)"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"expressionType": {
|
|
"type": "expression"
|
|
},
|
|
"parameters": [
|
|
{
|
|
"description": "Object",
|
|
"name": "Object",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
},
|
|
{
|
|
"description": "Check if hallway is a room entrance.",
|
|
"fullName": "Hallway is a room entrance",
|
|
"functionType": "Condition",
|
|
"name": "IsRoomEntrance",
|
|
"sentence": "_PARAM1_ is a room entrance",
|
|
"events": [
|
|
{
|
|
"type": "BuiltinCommonInstructions::Standard",
|
|
"conditions": [
|
|
{
|
|
"type": {
|
|
"value": "ObjectVariableAsBoolean"
|
|
},
|
|
"parameters": [
|
|
"Object",
|
|
"__DungeonGenerator.IsRoomEntrance",
|
|
"True"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"type": {
|
|
"value": "SetReturnBoolean"
|
|
},
|
|
"parameters": [
|
|
"True"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"description": "Hallway object",
|
|
"name": "Object",
|
|
"type": "objectList"
|
|
}
|
|
],
|
|
"objectGroups": []
|
|
}
|
|
],
|
|
"eventsFunctionsFolderStructure": {
|
|
"folderName": "__ROOT",
|
|
"children": [
|
|
{
|
|
"functionName": "AdjustHallwaySizes"
|
|
},
|
|
{
|
|
"functionName": "FillWorld"
|
|
},
|
|
{
|
|
"functionName": "GenerateDungeonCave"
|
|
},
|
|
{
|
|
"functionName": "GenerateDungeonRooms"
|
|
},
|
|
{
|
|
"functionName": "CalculateGridNeighbors"
|
|
},
|
|
{
|
|
"functionName": "RoomID"
|
|
},
|
|
{
|
|
"functionName": "NeighborCount"
|
|
},
|
|
{
|
|
"functionName": "IsRoomEntrance"
|
|
}
|
|
]
|
|
},
|
|
"eventsBasedBehaviors": [],
|
|
"eventsBasedObjects": []
|
|
}
|
|
],
|
|
"externalLayouts": [
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "4Way",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_4Way",
|
|
"persistentUuid": "f7878de8-d621-4629-afc8-5fcbb25d688d",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_right",
|
|
"persistentUuid": "c6ec3658-b64e-4cab-8a8b-98903a65fd27",
|
|
"width": 0,
|
|
"x": 640,
|
|
"y": 0,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_left",
|
|
"persistentUuid": "5a72b7c8-fd61-40c0-884e-b69731807160",
|
|
"width": 0,
|
|
"x": -640,
|
|
"y": 0,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_up",
|
|
"persistentUuid": "60748f83-5456-40c3-b8d2-4c527981e015",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": -480,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_down",
|
|
"persistentUuid": "e779ea46-1b9a-4892-8196-1c9d194e2c41",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 480,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "93ca46b9-87ee-4e70-850c-38e9617605a3",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 0,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "bea3a627-abec-44dc-89d3-5df9fbeab374",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 0,
|
|
"zOrder": 7,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "d8c9f7bf-925d-4217-a90b-1d9ebe41031d",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 448,
|
|
"zOrder": 8,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1994f7b8-51f5-4ee0-b488-0209937688f9",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 448,
|
|
"zOrder": 9,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "b4d80a60-fece-437d-b347-dc1fbc953eff",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 288,
|
|
"zOrder": 10,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1366481c-9a22-4235-8166-8b8e93a5ed57",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 10,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "f6c9c4e5-1083-4ef9-a17d-f3cba6d22d4d",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 10,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "27fae954-5c19-4172-9b74-c529557aaa45",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 288,
|
|
"zOrder": 10,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1c9a1e75-a0c5-4ab1-9d7c-c1da725434f9",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 32,
|
|
"zOrder": 11,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "ea088ace-7e31-460c-9f3c-93de2deca165",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 11,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "50fbe774-75cd-48e4-bff7-970e897cd1ac",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 11,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "98289955-8a5a-41b3-b107-7279e92d3174",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 416,
|
|
"zOrder": 11,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 1.168756882148187,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "LR",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_LR",
|
|
"persistentUuid": "f69d2e29-2b65-4e41-93b2-56269c88fba4",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_right",
|
|
"persistentUuid": "e1e1e2da-9a5f-4db8-a33a-e6478e381d46",
|
|
"width": 0,
|
|
"x": 640,
|
|
"y": 0,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_left",
|
|
"persistentUuid": "114e4509-29d9-4811-b71f-45fa7072dbef",
|
|
"width": 0,
|
|
"x": -640,
|
|
"y": 0,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "9464a17e-8582-4fa0-96cb-21fe7416dbcf",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "534a854e-870e-405a-aafe-90e4ea34ac6d",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 288,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1c1ed84d-fabc-4b62-aa04-aa2404bf37e5",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 288,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "365e571f-966b-4c50-b2dc-41a460ea4f81",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "8a32e300-81a4-4b6e-974a-f543901f3266",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "2ac92215-360c-4c46-a49c-13b82240fd2a",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 0.9578683769070498,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "UD",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_UD",
|
|
"persistentUuid": "5e458a16-7f67-4530-87d5-c46cf1c70a3a",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_up",
|
|
"persistentUuid": "3b375ba4-cfd5-4918-9c40-366331322c8f",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": -480,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_down",
|
|
"persistentUuid": "a2d2d1ca-ef1a-402a-92ab-4658aaf19d79",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 480,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "92301df8-aa43-4b2f-bb7c-3d6cfc821c47",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "f7c82eb1-5746-41fe-a9cc-3bac809230d3",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "6ba432e4-a0cd-47f5-965a-612871f65f40",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 416,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "c1e0e2e3-b4d4-4ca7-969b-0ba68078cd0a",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "c0a51d16-e7fa-482a-a6da-6540113cf26a",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "82302b03-5c21-401c-b809-15fc60d1ca98",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 32,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "f77e09f4-055b-4a15-ad4b-c6b165b86153",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 0,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "95d8477e-82f7-431f-925b-2083fc7e501b",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 0,
|
|
"zOrder": 7,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "9bf2e926-e0a5-43a3-9d5f-39f90ba7dca8",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 448,
|
|
"zOrder": 8,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "06ceaa29-1c7a-49b4-9142-48b979d23440",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 448,
|
|
"zOrder": 9,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 0.926622364902796,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "DeadL",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_DeadL",
|
|
"persistentUuid": "37237183-4a66-4f3a-a60d-0c54a8ca4d90",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_right",
|
|
"persistentUuid": "7030b988-29fe-410d-989a-7d0c936f4c11",
|
|
"width": 0,
|
|
"x": 640,
|
|
"y": 0,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "e1b91469-3e8b-4eef-99e3-0434499e2e54",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "8476a995-bde7-4d1c-ac6e-57160597b043",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 288,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "5cd7cfb8-cb14-423e-818d-2276aab60696",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "a60a2c5d-3577-4aee-a1de-114c71f2abef",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "73cc79a0-9706-4cba-bcec-c8f3221c849f",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 0.9578683769070498,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "DeadR",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_DeadR",
|
|
"persistentUuid": "d251265b-16fb-4e8b-8721-1a08ff078396",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_left",
|
|
"persistentUuid": "bd898bf7-4f86-492c-ba74-098d55f1d43e",
|
|
"width": 0,
|
|
"x": -640,
|
|
"y": 0,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_skelly01",
|
|
"persistentUuid": "12a0189a-4e93-4750-a313-4598eb2edfa9",
|
|
"width": 0,
|
|
"x": 445,
|
|
"y": 158,
|
|
"zOrder": 20,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "6aba8a3b-2776-464b-bc9a-3e012acb894b",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 21,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "adb9f59f-d690-4bba-846a-1dec7956fa73",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 21,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 128,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1549b163-c089-44e8-aa7a-a84c7e810524",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 288,
|
|
"zOrder": 21,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "4ec087d5-64e4-4f69-b032-60113e3be4f5",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 22,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "1d2ee646-a75d-4d0f-83a6-4e34cfcfb84e",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 22,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 1.058071480431368,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "DeadUp",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_DeadUp",
|
|
"persistentUuid": "d1a66cb2-ae2e-4f1d-8766-d9992d6d18ad",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_down",
|
|
"persistentUuid": "eddf7615-92c4-4b04-940b-6515e299e940",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 480,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "11cc0725-6ebc-44e5-a90a-0259be053c45",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 64,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 352,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "3c206b90-e596-4938-93c9-4f65f7fbe377",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 64,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "ce6f4701-3ae8-4050-9e7c-9172fb9e5800",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "b83cb5df-bc17-49f1-ac0b-3518becffbba",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 416,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "fce2158f-0f90-46a7-8dca-4bbc529a6cad",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "b7f850a5-0c39-4367-b7ed-80cd697d9f78",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 448,
|
|
"zOrder": 7,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "f0fb7690-c7aa-45aa-aeef-c7dc178fb6f4",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 448,
|
|
"zOrder": 8,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 0.9578683769070498,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
},
|
|
{
|
|
"associatedLayout": "Game",
|
|
"name": "DeadDown",
|
|
"instances": [
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_DeadDown",
|
|
"persistentUuid": "552c6a78-2267-41c0-9d12-e4d0e1da2ef8",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": 0,
|
|
"zOrder": 1,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_up",
|
|
"persistentUuid": "1635740f-8b55-4918-afdf-bfd9de2db35d",
|
|
"width": 0,
|
|
"x": 0,
|
|
"y": -480,
|
|
"zOrder": 2,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 384,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "3794d543-64de-4d10-933d-8fca25ef70ff",
|
|
"width": 32,
|
|
"x": 608,
|
|
"y": 32,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 384,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "84b9b04c-8e2f-4a8f-9295-2ea3fcc98da0",
|
|
"width": 32,
|
|
"x": 0,
|
|
"y": 32,
|
|
"zOrder": 3,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "d70088b3-6953-4e77-b220-6862298fc7f8",
|
|
"width": 576,
|
|
"x": 32,
|
|
"y": 416,
|
|
"zOrder": 4,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "4c47fd50-16f6-4865-a12c-f9a3ca90ffa5",
|
|
"width": 256,
|
|
"x": 352,
|
|
"y": 32,
|
|
"zOrder": 5,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": true,
|
|
"depth": 1,
|
|
"height": 32,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "675e179d-f323-489c-b7df-d6986db1c80f",
|
|
"width": 256,
|
|
"x": 32,
|
|
"y": 32,
|
|
"zOrder": 6,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "3c942658-08bb-455d-a15a-4e1961a4dc92",
|
|
"width": 0,
|
|
"x": 352,
|
|
"y": 0,
|
|
"zOrder": 7,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
},
|
|
{
|
|
"angle": 0,
|
|
"customSize": false,
|
|
"height": 0,
|
|
"keepRatio": true,
|
|
"layer": "",
|
|
"name": "spr_wall",
|
|
"persistentUuid": "5f2795e3-6b64-49cd-956e-5d3da83e41e7",
|
|
"width": 0,
|
|
"x": 256,
|
|
"y": 0,
|
|
"zOrder": 8,
|
|
"numberProperties": [],
|
|
"stringProperties": [],
|
|
"initialVariables": []
|
|
}
|
|
],
|
|
"editionSettings": {
|
|
"grid": true,
|
|
"gridType": "rectangular",
|
|
"gridWidth": 32,
|
|
"gridHeight": 32,
|
|
"gridDepth": 32,
|
|
"gridOffsetX": 0,
|
|
"gridOffsetY": 0,
|
|
"gridOffsetZ": 0,
|
|
"gridColor": 10401023,
|
|
"gridAlpha": 0.8,
|
|
"snap": true,
|
|
"zoomFactor": 0.9901680147497778,
|
|
"windowMask": false,
|
|
"selectedLayer": "",
|
|
"gameEditorMode": "instances-editor"
|
|
}
|
|
}
|
|
]
|
|
}
|