├── .gitignore ├── .gitmodules ├── DemoProject ├── addons ├── assets │ ├── Block │ │ ├── block.png │ │ └── block.png.import │ ├── Spring │ │ ├── 2 │ │ │ ├── grass-corner-inner.png │ │ │ ├── grass-corner-inner.png.import │ │ │ ├── grass-corner-outer.png │ │ │ ├── grass-corner-outer.png.import │ │ │ ├── grass-taper-left.png │ │ │ ├── grass-taper-left.png.import │ │ │ ├── grass-taper-right.png │ │ │ ├── grass-taper-right.png.import │ │ │ ├── grass.png │ │ │ └── grass.png.import │ │ ├── grass-corner-inner.png │ │ ├── grass-corner-inner.png.import │ │ ├── grass-corner-outer.png │ │ ├── grass-corner-outer.png.import │ │ ├── grass-corner.png.import │ │ ├── grass-taper-left.png │ │ ├── grass-taper-left.png.import │ │ ├── grass-taper-right.png │ │ ├── grass-taper-right.png.import │ │ ├── grass.png │ │ ├── grass.png.import │ │ ├── rock-corner-innerr.png │ │ ├── rock-corner-innerr.png.import │ │ ├── rock-corner-outer.png │ │ ├── rock-corner-outer.png.import │ │ ├── rock.png │ │ └── rock.png.import │ ├── ball.png │ ├── ball.png.import │ ├── fill.png │ ├── fill.png.import │ ├── icon.png │ └── icon.png.import ├── demo.tscn ├── icon.png ├── icon.png.import ├── materials │ ├── edge │ │ ├── edge_grass.tres │ │ └── edge_rock.tres │ └── shape_material_1.tres └── project.godot ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .import/ 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "SmartShape2D"] 2 | path = SmartShape2D 3 | url = https://github.com/SirRamEsq/SmartShape2D 4 | -------------------------------------------------------------------------------- /DemoProject/addons: -------------------------------------------------------------------------------- 1 | ./../SmartShape2D/addons -------------------------------------------------------------------------------- /DemoProject/assets/Block/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Block/block.png -------------------------------------------------------------------------------- /DemoProject/assets/Block/block.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/block.png-0b18ea77d91e862b2c572c3ea5078393.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Block/block.png" 13 | dest_files=[ "res://.import/block.png-0b18ea77d91e862b2c572c3ea5078393.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-corner-inner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/2/grass-corner-inner.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-corner-inner.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-corner-inner.png-097fe2e2c5545984767dfe1909dcd9cb.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/2/grass-corner-inner.png" 13 | dest_files=[ "res://.import/grass-corner-inner.png-097fe2e2c5545984767dfe1909dcd9cb.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-corner-outer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/2/grass-corner-outer.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-corner-outer.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-corner-outer.png-727251d594c4647f0ebe2e9a12cebf05.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/2/grass-corner-outer.png" 13 | dest_files=[ "res://.import/grass-corner-outer.png-727251d594c4647f0ebe2e9a12cebf05.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-taper-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/2/grass-taper-left.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-taper-left.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-taper-left.png-94fd8196ff5f7e36c088ac8ef2c74ee6.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/2/grass-taper-left.png" 13 | dest_files=[ "res://.import/grass-taper-left.png-94fd8196ff5f7e36c088ac8ef2c74ee6.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-taper-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/2/grass-taper-right.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass-taper-right.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-taper-right.png-54375ae005b26157ca60af214b62f37c.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/2/grass-taper-right.png" 13 | dest_files=[ "res://.import/grass-taper-right.png-54375ae005b26157ca60af214b62f37c.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/2/grass.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/2/grass.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass.png-0def2ee2f72432dd5ae40437ee365ccc.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/2/grass.png" 13 | dest_files=[ "res://.import/grass.png-0def2ee2f72432dd5ae40437ee365ccc.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-corner-inner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/grass-corner-inner.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-corner-inner.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-corner-inner.png-4daeac4a7a8d3b3670f9eaf8a2a85f8d.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/grass-corner-inner.png" 13 | dest_files=[ "res://.import/grass-corner-inner.png-4daeac4a7a8d3b3670f9eaf8a2a85f8d.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-corner-outer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/grass-corner-outer.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-corner-outer.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-corner-outer.png-05193fcc45d1f282f7f74c952c407ca5.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/grass-corner-outer.png" 13 | dest_files=[ "res://.import/grass-corner-outer.png-05193fcc45d1f282f7f74c952c407ca5.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-corner.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-corner.png-70852dbb84faf2e7b932eb4bbb019cf5.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://demo/assets/Spring/grass-corner.png" 13 | dest_files=[ "res://.import/grass-corner.png-70852dbb84faf2e7b932eb4bbb019cf5.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-taper-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/grass-taper-left.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-taper-left.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-taper-left.png-3392c3e427a61b28fc4926df92a54381.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/grass-taper-left.png" 13 | dest_files=[ "res://.import/grass-taper-left.png-3392c3e427a61b28fc4926df92a54381.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-taper-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/grass-taper-right.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass-taper-right.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass-taper-right.png-b7a83ecc80286a0f0dee8f6969274f46.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/grass-taper-right.png" 13 | dest_files=[ "res://.import/grass-taper-right.png-b7a83ecc80286a0f0dee8f6969274f46.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/grass.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/grass.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass.png-e3912c3649d30ada43a5bf1165667b0f.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/grass.png" 13 | dest_files=[ "res://.import/grass.png-e3912c3649d30ada43a5bf1165667b0f.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock-corner-innerr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/rock-corner-innerr.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock-corner-innerr.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/rock-corner-innerr.png-91e710ae53cdc2b28bbd208eddb43a54.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/rock-corner-innerr.png" 13 | dest_files=[ "res://.import/rock-corner-innerr.png-91e710ae53cdc2b28bbd208eddb43a54.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock-corner-outer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/rock-corner-outer.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock-corner-outer.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/rock-corner-outer.png-c77c9e3d60e7af1a4f7a6fc63e05daac.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/rock-corner-outer.png" 13 | dest_files=[ "res://.import/rock-corner-outer.png-c77c9e3d60e7af1a4f7a6fc63e05daac.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/Spring/rock.png -------------------------------------------------------------------------------- /DemoProject/assets/Spring/rock.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/rock.png-c208cf540612b004be44939f45d8d9a8.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/Spring/rock.png" 13 | dest_files=[ "res://.import/rock.png-c208cf540612b004be44939f45d8d9a8.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/ball.png -------------------------------------------------------------------------------- /DemoProject/assets/ball.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/ball.png-ca93c4f2e7b7f8325cbd933673092ff4.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/ball.png" 13 | dest_files=[ "res://.import/ball.png-ca93c4f2e7b7f8325cbd933673092ff4.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/fill.png -------------------------------------------------------------------------------- /DemoProject/assets/fill.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/fill.png-441aa6c7be34a9718eabc65e17ffa989.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/fill.png" 13 | dest_files=[ "res://.import/fill.png-441aa6c7be34a9718eabc65e17ffa989.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=1 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/assets/icon.png -------------------------------------------------------------------------------- /DemoProject/assets/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://assets/icon.png" 13 | dest_files=[ "res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/demo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=276 format=2] 2 | 3 | [ext_resource path="res://materials/shape_material_1.tres" type="Resource" id=1] 4 | [ext_resource path="res://addons/rmsmartshape/shapes/point_array.gd" type="Script" id=2] 5 | [ext_resource path="res://addons/rmsmartshape/shapes/point.gd" type="Script" id=3] 6 | [ext_resource path="res://addons/rmsmartshape/vertex_properties.gd" type="Script" id=4] 7 | [ext_resource path="res://addons/rmsmartshape/shapes/shape_closed.gd" type="Script" id=5] 8 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material_metadata.gd" type="Script" id=6] 9 | [ext_resource path="res://addons/rmsmartshape/shapes/shape_open.gd" type="Script" id=7] 10 | [ext_resource path="res://addons/rmsmartshape/normal_range.gd" type="Script" id=8] 11 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material.gd" type="Script" id=9] 12 | [ext_resource path="res://addons/rmsmartshape/RMSmartShapeMaterial.gd" type="Script" id=10] 13 | [ext_resource path="res://addons/rmsmartshape/RMSmartShape2D.gd" type="Script" id=11] 14 | [ext_resource path="res://addons/rmsmartshape/shapes/shape_anchor.gd" type="Script" id=12] 15 | [ext_resource path="res://assets/icon.png" type="Texture" id=13] 16 | [ext_resource path="res://assets/ball.png" type="Texture" id=14] 17 | [ext_resource path="res://addons/rmsmartshape/materials/shape_material.gd" type="Script" id=15] 18 | [ext_resource path="res://addons/rmsmartshape/shapes/shape_meta.gd" type="Script" id=16] 19 | [ext_resource path="res://addons/rmsmartshape/assets/light1-1.png" type="Texture" id=17] 20 | [ext_resource path="res://materials/edge/edge_grass.tres" type="Resource" id=18] 21 | [ext_resource path="res://assets/fill.png" type="Texture" id=19] 22 | 23 | [sub_resource type="RectangleShape2D" id=1] 24 | extents = Vector2( 8, 8 ) 25 | 26 | [sub_resource type="Resource" id=2] 27 | script = ExtResource( 9 ) 28 | textures = [ ] 29 | texture_normals = [ ] 30 | textures_corner_outer = [ ] 31 | textures_corner_inner = [ ] 32 | texture_normals_corner_outer = [ ] 33 | texture_normals_corner_inner = [ ] 34 | textures_taper_left = [ ] 35 | textures_taper_right = [ ] 36 | texture_normals_taper_left = [ ] 37 | texture_normals_taper_right = [ ] 38 | use_corner_texture = true 39 | use_taper_texture = true 40 | fit_mode = 0 41 | 42 | [sub_resource type="Resource" id=3] 43 | script = ExtResource( 8 ) 44 | begin = 0.0 45 | distance = 0.0 46 | edgeRendering = Vector2( 0, 0 ) 47 | 48 | [sub_resource type="Resource" id=4] 49 | script = ExtResource( 6 ) 50 | edge_material = SubResource( 2 ) 51 | normal_range = SubResource( 3 ) 52 | weld = true 53 | render = false 54 | z_index = 0 55 | z_as_relative = true 56 | offset = 0.0 57 | 58 | [sub_resource type="Resource" id=5] 59 | script = ExtResource( 4 ) 60 | texture_idx = 0 61 | flip = false 62 | width = 1.0 63 | 64 | [sub_resource type="Resource" id=6] 65 | script = ExtResource( 3 ) 66 | position = Vector2( -104, 192 ) 67 | point_in = Vector2( 0, 0 ) 68 | point_out = Vector2( 0, 0 ) 69 | properties = SubResource( 5 ) 70 | 71 | [sub_resource type="Resource" id=7] 72 | script = ExtResource( 4 ) 73 | texture_idx = 0 74 | flip = false 75 | width = 1.0 76 | 77 | [sub_resource type="Resource" id=8] 78 | script = ExtResource( 3 ) 79 | position = Vector2( -104, 96 ) 80 | point_in = Vector2( 0, 0 ) 81 | point_out = Vector2( 0, 0 ) 82 | properties = SubResource( 7 ) 83 | 84 | [sub_resource type="Resource" id=9] 85 | script = ExtResource( 4 ) 86 | texture_idx = 0 87 | flip = false 88 | width = 1.2 89 | 90 | [sub_resource type="Resource" id=10] 91 | script = ExtResource( 3 ) 92 | position = Vector2( 160, 48 ) 93 | point_in = Vector2( -16, 0 ) 94 | point_out = Vector2( 16, 0 ) 95 | properties = SubResource( 9 ) 96 | 97 | [sub_resource type="Resource" id=11] 98 | script = ExtResource( 4 ) 99 | texture_idx = 0 100 | flip = false 101 | width = 1.0 102 | 103 | [sub_resource type="Resource" id=12] 104 | script = ExtResource( 3 ) 105 | position = Vector2( -24, 192 ) 106 | point_in = Vector2( 56, 0 ) 107 | point_out = Vector2( 0, 0 ) 108 | properties = SubResource( 11 ) 109 | 110 | [sub_resource type="Resource" id=13] 111 | script = ExtResource( 4 ) 112 | texture_idx = 0 113 | flip = false 114 | width = 1.0 115 | 116 | [sub_resource type="Resource" id=14] 117 | script = ExtResource( 3 ) 118 | position = Vector2( 336, 256 ) 119 | point_in = Vector2( 0, 0 ) 120 | point_out = Vector2( -136, 0 ) 121 | properties = SubResource( 13 ) 122 | 123 | [sub_resource type="Resource" id=15] 124 | script = ExtResource( 4 ) 125 | texture_idx = 0 126 | flip = false 127 | width = 1.0 128 | 129 | [sub_resource type="Resource" id=16] 130 | script = ExtResource( 3 ) 131 | position = Vector2( 143.318, 149.274 ) 132 | point_in = Vector2( 63.0038, 18.7309 ) 133 | point_out = Vector2( -63.0038, -18.7309 ) 134 | properties = SubResource( 15 ) 135 | 136 | [sub_resource type="Resource" id=17] 137 | script = ExtResource( 4 ) 138 | texture_idx = 0 139 | flip = false 140 | width = 1.0 141 | 142 | [sub_resource type="Resource" id=18] 143 | script = ExtResource( 3 ) 144 | position = Vector2( -64, 96 ) 145 | point_in = Vector2( -24, 0 ) 146 | point_out = Vector2( 24, 0 ) 147 | properties = SubResource( 17 ) 148 | 149 | [sub_resource type="Resource" id=19] 150 | script = ExtResource( 4 ) 151 | texture_idx = 0 152 | flip = false 153 | width = 1.0 154 | 155 | [sub_resource type="Resource" id=20] 156 | script = ExtResource( 3 ) 157 | position = Vector2( 736, 88 ) 158 | point_in = Vector2( -24, -32 ) 159 | point_out = Vector2( 24, 32 ) 160 | properties = SubResource( 19 ) 161 | 162 | [sub_resource type="Resource" id=21] 163 | script = ExtResource( 4 ) 164 | texture_idx = 0 165 | flip = false 166 | width = 1.0 167 | 168 | [sub_resource type="Resource" id=22] 169 | script = ExtResource( 3 ) 170 | position = Vector2( 760, 256 ) 171 | point_in = Vector2( 0, 0 ) 172 | point_out = Vector2( 0, 0 ) 173 | properties = SubResource( 21 ) 174 | 175 | [sub_resource type="Resource" id=23] 176 | script = ExtResource( 4 ) 177 | texture_idx = 1 178 | flip = false 179 | width = 1.0 180 | 181 | [sub_resource type="Resource" id=24] 182 | script = ExtResource( 3 ) 183 | position = Vector2( 648, 120 ) 184 | point_in = Vector2( 0, 48 ) 185 | point_out = Vector2( 0, 0 ) 186 | properties = SubResource( 23 ) 187 | 188 | [sub_resource type="Resource" id=25] 189 | script = ExtResource( 4 ) 190 | texture_idx = 0 191 | flip = false 192 | width = 1.2 193 | 194 | [sub_resource type="Resource" id=26] 195 | script = ExtResource( 3 ) 196 | position = Vector2( 216, 48 ) 197 | point_in = Vector2( 0, 0 ) 198 | point_out = Vector2( 0, 0 ) 199 | properties = SubResource( 25 ) 200 | 201 | [sub_resource type="Resource" id=27] 202 | script = ExtResource( 4 ) 203 | texture_idx = 0 204 | flip = false 205 | width = 1.2 206 | 207 | [sub_resource type="Resource" id=28] 208 | script = ExtResource( 3 ) 209 | position = Vector2( 248, 81 ) 210 | point_in = Vector2( 0, 0 ) 211 | point_out = Vector2( 0, 0 ) 212 | properties = SubResource( 27 ) 213 | 214 | [sub_resource type="Resource" id=29] 215 | script = ExtResource( 4 ) 216 | texture_idx = 0 217 | flip = false 218 | width = 1.2 219 | 220 | [sub_resource type="Resource" id=30] 221 | script = ExtResource( 3 ) 222 | position = Vector2( 320, 81 ) 223 | point_in = Vector2( 0, 0 ) 224 | point_out = Vector2( 0, 0 ) 225 | properties = SubResource( 29 ) 226 | 227 | [sub_resource type="Resource" id=31] 228 | script = ExtResource( 4 ) 229 | texture_idx = 0 230 | flip = false 231 | width = 1.2 232 | 233 | [sub_resource type="Resource" id=32] 234 | script = ExtResource( 3 ) 235 | position = Vector2( 320, 48 ) 236 | point_in = Vector2( 0, 0 ) 237 | point_out = Vector2( 0, 0 ) 238 | properties = SubResource( 31 ) 239 | 240 | [sub_resource type="Resource" id=33] 241 | script = ExtResource( 4 ) 242 | texture_idx = 0 243 | flip = false 244 | width = 1.2 245 | 246 | [sub_resource type="Resource" id=34] 247 | script = ExtResource( 3 ) 248 | position = Vector2( 384, 48 ) 249 | point_in = Vector2( 0, 0 ) 250 | point_out = Vector2( 0, 0 ) 251 | properties = SubResource( 33 ) 252 | 253 | [sub_resource type="Resource" id=35] 254 | script = ExtResource( 4 ) 255 | texture_idx = 0 256 | flip = false 257 | width = 1.0 258 | 259 | [sub_resource type="Resource" id=36] 260 | script = ExtResource( 3 ) 261 | position = Vector2( 384, 128 ) 262 | point_in = Vector2( 0, 0 ) 263 | point_out = Vector2( 0, 0 ) 264 | properties = SubResource( 35 ) 265 | 266 | [sub_resource type="Resource" id=37] 267 | script = ExtResource( 4 ) 268 | texture_idx = 1 269 | flip = false 270 | width = 1.0 271 | 272 | [sub_resource type="Resource" id=38] 273 | script = ExtResource( 3 ) 274 | position = Vector2( 248, 128 ) 275 | point_in = Vector2( 0, 0 ) 276 | point_out = Vector2( 0, 0 ) 277 | properties = SubResource( 37 ) 278 | 279 | [sub_resource type="Resource" id=39] 280 | script = ExtResource( 4 ) 281 | texture_idx = 1 282 | flip = false 283 | width = 1.0 284 | 285 | [sub_resource type="Resource" id=40] 286 | script = ExtResource( 3 ) 287 | position = Vector2( 248, 192 ) 288 | point_in = Vector2( 0, 0 ) 289 | point_out = Vector2( 0, 0 ) 290 | properties = SubResource( 39 ) 291 | 292 | [sub_resource type="Resource" id=41] 293 | script = ExtResource( 4 ) 294 | texture_idx = 0 295 | flip = false 296 | width = 1.0 297 | 298 | [sub_resource type="Resource" id=42] 299 | script = ExtResource( 3 ) 300 | position = Vector2( 440, 192 ) 301 | point_in = Vector2( 0, 0 ) 302 | point_out = Vector2( 0, 0 ) 303 | properties = SubResource( 41 ) 304 | 305 | [sub_resource type="Resource" id=43] 306 | script = ExtResource( 4 ) 307 | texture_idx = 1 308 | flip = false 309 | width = 1.0 310 | 311 | [sub_resource type="Resource" id=44] 312 | script = ExtResource( 3 ) 313 | position = Vector2( 648, 64 ) 314 | point_in = Vector2( 0, 0 ) 315 | point_out = Vector2( 0, 0 ) 316 | properties = SubResource( 43 ) 317 | 318 | [sub_resource type="Resource" id=45] 319 | script = ExtResource( 4 ) 320 | texture_idx = 0 321 | flip = false 322 | width = 1.2 323 | 324 | [sub_resource type="Resource" id=46] 325 | script = ExtResource( 3 ) 326 | position = Vector2( 216, 48 ) 327 | point_in = Vector2( 0, 0 ) 328 | point_out = Vector2( 0, 0 ) 329 | properties = SubResource( 45 ) 330 | 331 | [sub_resource type="Resource" id=47] 332 | script = ExtResource( 4 ) 333 | texture_idx = 0 334 | flip = false 335 | width = 1.2 336 | 337 | [sub_resource type="Resource" id=48] 338 | script = ExtResource( 3 ) 339 | position = Vector2( 248, 48 ) 340 | point_in = Vector2( 0, 0 ) 341 | point_out = Vector2( 0, 0 ) 342 | properties = SubResource( 47 ) 343 | 344 | [sub_resource type="Resource" id=49] 345 | script = ExtResource( 4 ) 346 | texture_idx = 1 347 | flip = false 348 | width = 1.0 349 | 350 | [sub_resource type="Resource" id=50] 351 | script = ExtResource( 3 ) 352 | position = Vector2( 592, 184 ) 353 | point_in = Vector2( -32, 0 ) 354 | point_out = Vector2( 32, 0 ) 355 | properties = SubResource( 49 ) 356 | 357 | [sub_resource type="Resource" id=51] 358 | script = ExtResource( 4 ) 359 | texture_idx = 0 360 | flip = false 361 | width = 1.0 362 | 363 | [sub_resource type="Resource" id=52] 364 | script = ExtResource( 3 ) 365 | position = Vector2( 536, 184 ) 366 | point_in = Vector2( 0, 0 ) 367 | point_out = Vector2( 0, 0 ) 368 | properties = SubResource( 51 ) 369 | 370 | [sub_resource type="Resource" id=53] 371 | script = ExtResource( 4 ) 372 | texture_idx = 0 373 | flip = false 374 | width = 1.0 375 | 376 | [sub_resource type="Resource" id=54] 377 | script = ExtResource( 3 ) 378 | position = Vector2( 472, 184 ) 379 | point_in = Vector2( 0, 0 ) 380 | point_out = Vector2( 0, 0 ) 381 | properties = SubResource( 53 ) 382 | 383 | [sub_resource type="Resource" id=55] 384 | script = ExtResource( 4 ) 385 | texture_idx = 1 386 | flip = false 387 | width = 1.0 388 | 389 | [sub_resource type="Resource" id=56] 390 | script = ExtResource( 3 ) 391 | position = Vector2( 760, 168 ) 392 | point_in = Vector2( 0, 0 ) 393 | point_out = Vector2( 0, 0 ) 394 | properties = SubResource( 55 ) 395 | 396 | [sub_resource type="Resource" id=57] 397 | script = ExtResource( 4 ) 398 | texture_idx = 0 399 | flip = false 400 | width = 1.2 401 | 402 | [sub_resource type="Resource" id=58] 403 | script = ExtResource( 3 ) 404 | position = Vector2( 9.2592, 81.632 ) 405 | point_in = Vector2( 0, 0 ) 406 | point_out = Vector2( 0, 0 ) 407 | properties = SubResource( 57 ) 408 | 409 | [sub_resource type="Resource" id=59] 410 | script = ExtResource( 4 ) 411 | texture_idx = 0 412 | flip = false 413 | width = 1.4 414 | 415 | [sub_resource type="Resource" id=60] 416 | script = ExtResource( 3 ) 417 | position = Vector2( 107.864, 55.1522 ) 418 | point_in = Vector2( 0, 0 ) 419 | point_out = Vector2( 0, 0 ) 420 | properties = SubResource( 59 ) 421 | 422 | [sub_resource type="Resource" id=61] 423 | script = ExtResource( 2 ) 424 | _points = { 425 | 1: SubResource( 6 ), 426 | 4: SubResource( 8 ), 427 | 5: SubResource( 10 ), 428 | 8: SubResource( 12 ), 429 | 14: SubResource( 14 ), 430 | 15: SubResource( 16 ), 431 | 16: SubResource( 18 ), 432 | 22: SubResource( 20 ), 433 | 23: SubResource( 22 ), 434 | 24: SubResource( 24 ), 435 | 25: SubResource( 26 ), 436 | 26: SubResource( 28 ), 437 | 27: SubResource( 30 ), 438 | 28: SubResource( 32 ), 439 | 30: SubResource( 34 ), 440 | 31: SubResource( 36 ), 441 | 32: SubResource( 38 ), 442 | 33: SubResource( 40 ), 443 | 34: SubResource( 42 ), 444 | 36: SubResource( 44 ), 445 | 37: SubResource( 46 ), 446 | 38: SubResource( 48 ), 447 | 40: SubResource( 50 ), 448 | 41: SubResource( 52 ), 449 | 42: SubResource( 54 ), 450 | 43: SubResource( 56 ), 451 | 46: SubResource( 58 ), 452 | 53: SubResource( 60 ) 453 | } 454 | _point_order = [ 25, 38, 26, 27, 28, 30, 31, 32, 33, 34, 42, 41, 40, 24, 36, 22, 43, 23, 14, 15, 8, 1, 4, 16, 46, 53, 5, 37 ] 455 | _constraints = { 456 | [ 25, 37 ]: 15 457 | } 458 | _next_key = 54 459 | _material_overrides = { 460 | [ 1, 4 ]: SubResource( 4 ) 461 | } 462 | 463 | [sub_resource type="Resource" id=62] 464 | script = ExtResource( 8 ) 465 | begin = 0.0 466 | distance = 360.0 467 | edgeRendering = Vector2( 0, 0 ) 468 | 469 | [sub_resource type="Resource" id=63] 470 | script = ExtResource( 6 ) 471 | normal_range = SubResource( 62 ) 472 | weld = true 473 | render = false 474 | z_index = 0 475 | z_as_relative = true 476 | offset = 0.0 477 | 478 | [sub_resource type="Resource" id=64] 479 | script = ExtResource( 4 ) 480 | texture_idx = 0 481 | flip = false 482 | width = 1.0 483 | 484 | [sub_resource type="Resource" id=65] 485 | script = ExtResource( 3 ) 486 | position = Vector2( -448, 64 ) 487 | point_in = Vector2( 0, 0 ) 488 | point_out = Vector2( 0, 0 ) 489 | properties = SubResource( 64 ) 490 | 491 | [sub_resource type="Resource" id=66] 492 | script = ExtResource( 4 ) 493 | texture_idx = 0 494 | flip = false 495 | width = 1.0 496 | 497 | [sub_resource type="Resource" id=67] 498 | script = ExtResource( 3 ) 499 | position = Vector2( -184, 96 ) 500 | point_in = Vector2( -16, 0 ) 501 | point_out = Vector2( 16, 0 ) 502 | properties = SubResource( 66 ) 503 | 504 | [sub_resource type="Resource" id=68] 505 | script = ExtResource( 4 ) 506 | texture_idx = 0 507 | flip = false 508 | width = 1.0 509 | 510 | [sub_resource type="Resource" id=69] 511 | script = ExtResource( 3 ) 512 | position = Vector2( -104, 96 ) 513 | point_in = Vector2( 0, 0 ) 514 | point_out = Vector2( 0, 0 ) 515 | properties = SubResource( 68 ) 516 | 517 | [sub_resource type="Resource" id=70] 518 | script = ExtResource( 4 ) 519 | texture_idx = 0 520 | flip = false 521 | width = 1.0 522 | 523 | [sub_resource type="Resource" id=71] 524 | script = ExtResource( 3 ) 525 | position = Vector2( -448, 64 ) 526 | point_in = Vector2( 0, 0 ) 527 | point_out = Vector2( 0, 0 ) 528 | properties = SubResource( 70 ) 529 | 530 | [sub_resource type="Resource" id=72] 531 | script = ExtResource( 4 ) 532 | texture_idx = 0 533 | flip = false 534 | width = 1.0 535 | 536 | [sub_resource type="Resource" id=73] 537 | script = ExtResource( 3 ) 538 | position = Vector2( -192, 256 ) 539 | point_in = Vector2( 24, 0 ) 540 | point_out = Vector2( -32, 0 ) 541 | properties = SubResource( 72 ) 542 | 543 | [sub_resource type="Resource" id=74] 544 | script = ExtResource( 4 ) 545 | texture_idx = 0 546 | flip = false 547 | width = 1.0 548 | 549 | [sub_resource type="Resource" id=75] 550 | script = ExtResource( 3 ) 551 | position = Vector2( -320, 256 ) 552 | point_in = Vector2( 16, 0 ) 553 | point_out = Vector2( -16, 0 ) 554 | properties = SubResource( 74 ) 555 | 556 | [sub_resource type="Resource" id=76] 557 | script = ExtResource( 4 ) 558 | texture_idx = 0 559 | flip = false 560 | width = 1.0 561 | 562 | [sub_resource type="Resource" id=77] 563 | script = ExtResource( 3 ) 564 | position = Vector2( -448, 128 ) 565 | point_in = Vector2( 0, 0 ) 566 | point_out = Vector2( 0, 0 ) 567 | properties = SubResource( 76 ) 568 | 569 | [sub_resource type="Resource" id=78] 570 | script = ExtResource( 4 ) 571 | texture_idx = 0 572 | flip = false 573 | width = 1.0 574 | 575 | [sub_resource type="Resource" id=79] 576 | script = ExtResource( 3 ) 577 | position = Vector2( -104, 192 ) 578 | point_in = Vector2( 0, 0 ) 579 | point_out = Vector2( 0, 0 ) 580 | properties = SubResource( 78 ) 581 | 582 | [sub_resource type="Resource" id=80] 583 | script = ExtResource( 4 ) 584 | texture_idx = 0 585 | flip = false 586 | width = 1.0 587 | 588 | [sub_resource type="Resource" id=81] 589 | script = ExtResource( 3 ) 590 | position = Vector2( -160, 224 ) 591 | point_in = Vector2( 0, -16 ) 592 | point_out = Vector2( 0, 16 ) 593 | properties = SubResource( 80 ) 594 | 595 | [sub_resource type="Resource" id=82] 596 | script = ExtResource( 4 ) 597 | texture_idx = 0 598 | flip = false 599 | width = 1.0 600 | 601 | [sub_resource type="Resource" id=83] 602 | script = ExtResource( 3 ) 603 | position = Vector2( -296, 64 ) 604 | point_in = Vector2( -24, 0 ) 605 | point_out = Vector2( 24, 0 ) 606 | properties = SubResource( 82 ) 607 | 608 | [sub_resource type="Resource" id=84] 609 | script = ExtResource( 4 ) 610 | texture_idx = 0 611 | flip = false 612 | width = 1.0 613 | 614 | [sub_resource type="Resource" id=85] 615 | script = ExtResource( 3 ) 616 | position = Vector2( -128, 192 ) 617 | point_in = Vector2( 0, 0 ) 618 | point_out = Vector2( -24, 0 ) 619 | properties = SubResource( 84 ) 620 | 621 | [sub_resource type="Resource" id=86] 622 | script = ExtResource( 4 ) 623 | texture_idx = 0 624 | flip = false 625 | width = 1.0 626 | 627 | [sub_resource type="Resource" id=87] 628 | script = ExtResource( 3 ) 629 | position = Vector2( -448, 256 ) 630 | point_in = Vector2( 0, 0 ) 631 | point_out = Vector2( 0, 0 ) 632 | properties = SubResource( 86 ) 633 | 634 | [sub_resource type="Resource" id=88] 635 | script = ExtResource( 4 ) 636 | texture_idx = 0 637 | flip = false 638 | width = 1.0 639 | 640 | [sub_resource type="Resource" id=89] 641 | script = ExtResource( 3 ) 642 | position = Vector2( -448, 192 ) 643 | point_in = Vector2( 0, 0 ) 644 | point_out = Vector2( 0, 0 ) 645 | properties = SubResource( 88 ) 646 | 647 | [sub_resource type="Resource" id=90] 648 | script = ExtResource( 2 ) 649 | _points = { 650 | 0: SubResource( 65 ), 651 | 1: SubResource( 67 ), 652 | 2: SubResource( 69 ), 653 | 3: SubResource( 71 ), 654 | 4: SubResource( 73 ), 655 | 5: SubResource( 75 ), 656 | 7: SubResource( 77 ), 657 | 8: SubResource( 79 ), 658 | 9: SubResource( 81 ), 659 | 10: SubResource( 83 ), 660 | 13: SubResource( 85 ), 661 | 17: SubResource( 87 ), 662 | 18: SubResource( 89 ) 663 | } 664 | _point_order = [ 0, 10, 1, 2, 8, 13, 9, 4, 5, 17, 18, 7, 3 ] 665 | _constraints = { 666 | [ 0, 3 ]: 15 667 | } 668 | _next_key = 20 669 | _material_overrides = { 670 | [ 2, 8 ]: SubResource( 63 ) 671 | } 672 | 673 | [sub_resource type="Resource" id=91] 674 | script = ExtResource( 4 ) 675 | texture_idx = 0 676 | flip = false 677 | width = 1.0 678 | 679 | [sub_resource type="Resource" id=92] 680 | script = ExtResource( 3 ) 681 | position = Vector2( -296, -48.3406 ) 682 | point_in = Vector2( -24, 0 ) 683 | point_out = Vector2( 24, 0 ) 684 | properties = SubResource( 91 ) 685 | 686 | [sub_resource type="Resource" id=93] 687 | script = ExtResource( 4 ) 688 | texture_idx = 0 689 | flip = false 690 | width = 1.0 691 | 692 | [sub_resource type="Resource" id=94] 693 | script = ExtResource( 3 ) 694 | position = Vector2( -216, -64 ) 695 | point_in = Vector2( -26.4075, -2.20063 ) 696 | point_out = Vector2( 26.4075, 2.20063 ) 697 | properties = SubResource( 93 ) 698 | 699 | [sub_resource type="Resource" id=95] 700 | script = ExtResource( 4 ) 701 | texture_idx = 0 702 | flip = false 703 | width = 1.0 704 | 705 | [sub_resource type="Resource" id=96] 706 | script = ExtResource( 3 ) 707 | position = Vector2( -154.856, -43.7131 ) 708 | point_in = Vector2( -30.3687, -17.1649 ) 709 | point_out = Vector2( 30.3687, 17.1649 ) 710 | properties = SubResource( 95 ) 711 | 712 | [sub_resource type="Resource" id=97] 713 | script = ExtResource( 4 ) 714 | texture_idx = 0 715 | flip = false 716 | width = 1.0 717 | 718 | [sub_resource type="Resource" id=98] 719 | script = ExtResource( 3 ) 720 | position = Vector2( -64, 0 ) 721 | point_in = Vector2( -16, 0 ) 722 | point_out = Vector2( 16, 0 ) 723 | properties = SubResource( 97 ) 724 | 725 | [sub_resource type="Resource" id=99] 726 | script = ExtResource( 4 ) 727 | texture_idx = 0 728 | flip = false 729 | width = 1.0 730 | 731 | [sub_resource type="Resource" id=100] 732 | script = ExtResource( 3 ) 733 | position = Vector2( 0, 0 ) 734 | point_in = Vector2( 0, 0 ) 735 | point_out = Vector2( 32, 0 ) 736 | properties = SubResource( 99 ) 737 | 738 | [sub_resource type="Resource" id=101] 739 | script = ExtResource( 4 ) 740 | texture_idx = 0 741 | flip = false 742 | width = 1.0 743 | 744 | [sub_resource type="Resource" id=102] 745 | script = ExtResource( 3 ) 746 | position = Vector2( -328, -48.3406 ) 747 | point_in = Vector2( 0, 0 ) 748 | point_out = Vector2( 0, 0 ) 749 | properties = SubResource( 101 ) 750 | 751 | [sub_resource type="Resource" id=103] 752 | script = ExtResource( 4 ) 753 | texture_idx = 0 754 | flip = false 755 | width = 1.0 756 | 757 | [sub_resource type="Resource" id=104] 758 | script = ExtResource( 3 ) 759 | position = Vector2( -368, -32 ) 760 | point_in = Vector2( -16, 16 ) 761 | point_out = Vector2( 16, -16 ) 762 | properties = SubResource( 103 ) 763 | 764 | [sub_resource type="Resource" id=105] 765 | script = ExtResource( 4 ) 766 | texture_idx = 0 767 | flip = false 768 | width = 1.0 769 | 770 | [sub_resource type="Resource" id=106] 771 | script = ExtResource( 3 ) 772 | position = Vector2( -384, 0 ) 773 | point_in = Vector2( 0, 0 ) 774 | point_out = Vector2( 0, 0 ) 775 | properties = SubResource( 105 ) 776 | 777 | [sub_resource type="Resource" id=107] 778 | script = ExtResource( 4 ) 779 | texture_idx = 0 780 | flip = false 781 | width = 1.0 782 | 783 | [sub_resource type="Resource" id=108] 784 | script = ExtResource( 3 ) 785 | position = Vector2( 64, -64 ) 786 | point_in = Vector2( 0, 32 ) 787 | point_out = Vector2( 0, 0 ) 788 | properties = SubResource( 107 ) 789 | 790 | [sub_resource type="Resource" id=109] 791 | script = ExtResource( 4 ) 792 | texture_idx = 0 793 | flip = false 794 | width = 1.0 795 | 796 | [sub_resource type="Resource" id=110] 797 | script = ExtResource( 3 ) 798 | position = Vector2( 64, -128 ) 799 | point_in = Vector2( 0, 0 ) 800 | point_out = Vector2( 0, -32 ) 801 | properties = SubResource( 109 ) 802 | 803 | [sub_resource type="Resource" id=111] 804 | script = ExtResource( 4 ) 805 | texture_idx = 0 806 | flip = false 807 | width = 1.0 808 | 809 | [sub_resource type="Resource" id=112] 810 | script = ExtResource( 3 ) 811 | position = Vector2( 0, -192 ) 812 | point_in = Vector2( 48, 0 ) 813 | point_out = Vector2( -48, 0 ) 814 | properties = SubResource( 111 ) 815 | 816 | [sub_resource type="Resource" id=113] 817 | script = ExtResource( 4 ) 818 | texture_idx = 0 819 | flip = false 820 | width = 1.0 821 | 822 | [sub_resource type="Resource" id=114] 823 | script = ExtResource( 3 ) 824 | position = Vector2( -48, -392 ) 825 | point_in = Vector2( 0, 0 ) 826 | point_out = Vector2( 0, 0 ) 827 | properties = SubResource( 113 ) 828 | 829 | [sub_resource type="Resource" id=115] 830 | script = ExtResource( 4 ) 831 | texture_idx = 0 832 | flip = false 833 | width = 1.0 834 | 835 | [sub_resource type="Resource" id=116] 836 | script = ExtResource( 3 ) 837 | position = Vector2( 192, -64 ) 838 | point_in = Vector2( 0, 0 ) 839 | point_out = Vector2( 0, 0 ) 840 | properties = SubResource( 115 ) 841 | 842 | [sub_resource type="Resource" id=117] 843 | script = ExtResource( 4 ) 844 | texture_idx = 0 845 | flip = false 846 | width = 1.0 847 | 848 | [sub_resource type="Resource" id=118] 849 | script = ExtResource( 3 ) 850 | position = Vector2( 314, -59 ) 851 | point_in = Vector2( 0, 0 ) 852 | point_out = Vector2( 0, 0 ) 853 | properties = SubResource( 117 ) 854 | 855 | [sub_resource type="Resource" id=119] 856 | script = ExtResource( 4 ) 857 | texture_idx = 0 858 | flip = false 859 | width = 1.0 860 | 861 | [sub_resource type="Resource" id=120] 862 | script = ExtResource( 3 ) 863 | position = Vector2( -152, -224 ) 864 | point_in = Vector2( 32, 40 ) 865 | point_out = Vector2( -32, -40 ) 866 | properties = SubResource( 119 ) 867 | 868 | [sub_resource type="Resource" id=121] 869 | script = ExtResource( 4 ) 870 | texture_idx = 0 871 | flip = false 872 | width = 1.0 873 | 874 | [sub_resource type="Resource" id=122] 875 | script = ExtResource( 3 ) 876 | position = Vector2( -152, -352 ) 877 | point_in = Vector2( -32, 40 ) 878 | point_out = Vector2( 32, -40 ) 879 | properties = SubResource( 121 ) 880 | 881 | [sub_resource type="Resource" id=123] 882 | script = ExtResource( 4 ) 883 | texture_idx = 0 884 | flip = false 885 | width = 1.0 886 | 887 | [sub_resource type="Resource" id=124] 888 | script = ExtResource( 3 ) 889 | position = Vector2( 96, -64 ) 890 | point_in = Vector2( 0, 0 ) 891 | point_out = Vector2( 0, 0 ) 892 | properties = SubResource( 123 ) 893 | 894 | [sub_resource type="Resource" id=125] 895 | script = ExtResource( 4 ) 896 | texture_idx = 0 897 | flip = false 898 | width = 1.0 899 | 900 | [sub_resource type="Resource" id=126] 901 | script = ExtResource( 3 ) 902 | position = Vector2( 101.548, -32.584 ) 903 | point_in = Vector2( 0, 0 ) 904 | point_out = Vector2( 0, 0 ) 905 | properties = SubResource( 125 ) 906 | 907 | [sub_resource type="Resource" id=127] 908 | script = ExtResource( 4 ) 909 | texture_idx = 0 910 | flip = false 911 | width = 1.0 912 | 913 | [sub_resource type="Resource" id=128] 914 | script = ExtResource( 3 ) 915 | position = Vector2( 119.708, -9.16795 ) 916 | point_in = Vector2( 0, 0 ) 917 | point_out = Vector2( 0, 0 ) 918 | properties = SubResource( 127 ) 919 | 920 | [sub_resource type="Resource" id=129] 921 | script = ExtResource( 4 ) 922 | texture_idx = 2 923 | flip = false 924 | width = 1.0 925 | 926 | [sub_resource type="Resource" id=130] 927 | script = ExtResource( 3 ) 928 | position = Vector2( 152, 0 ) 929 | point_in = Vector2( 0, 0 ) 930 | point_out = Vector2( 0, 0 ) 931 | properties = SubResource( 129 ) 932 | 933 | [sub_resource type="Resource" id=131] 934 | script = ExtResource( 4 ) 935 | texture_idx = 0 936 | flip = false 937 | width = 1.0 938 | 939 | [sub_resource type="Resource" id=132] 940 | script = ExtResource( 3 ) 941 | position = Vector2( 192, 0 ) 942 | point_in = Vector2( 0, 0 ) 943 | point_out = Vector2( 0, 0 ) 944 | properties = SubResource( 131 ) 945 | 946 | [sub_resource type="Resource" id=133] 947 | script = ExtResource( 4 ) 948 | texture_idx = 0 949 | flip = false 950 | width = 1.0 951 | 952 | [sub_resource type="Resource" id=134] 953 | script = ExtResource( 3 ) 954 | position = Vector2( 312, 0 ) 955 | point_in = Vector2( 0, 0 ) 956 | point_out = Vector2( 0, 0 ) 957 | properties = SubResource( 133 ) 958 | 959 | [sub_resource type="Resource" id=135] 960 | script = ExtResource( 4 ) 961 | texture_idx = 0 962 | flip = false 963 | width = 1.0 964 | 965 | [sub_resource type="Resource" id=136] 966 | script = ExtResource( 3 ) 967 | position = Vector2( 0, -392 ) 968 | point_in = Vector2( -32, 0 ) 969 | point_out = Vector2( 32, 0 ) 970 | properties = SubResource( 135 ) 971 | 972 | [sub_resource type="Resource" id=137] 973 | script = ExtResource( 4 ) 974 | texture_idx = 0 975 | flip = false 976 | width = 1.0 977 | 978 | [sub_resource type="Resource" id=138] 979 | script = ExtResource( 3 ) 980 | position = Vector2( 96, -272 ) 981 | point_in = Vector2( 0, -112 ) 982 | point_out = Vector2( 0, 0 ) 983 | properties = SubResource( 137 ) 984 | 985 | [sub_resource type="Resource" id=139] 986 | script = ExtResource( 4 ) 987 | texture_idx = 0 988 | flip = false 989 | width = 1.0 990 | 991 | [sub_resource type="Resource" id=140] 992 | script = ExtResource( 3 ) 993 | position = Vector2( -384, 32 ) 994 | point_in = Vector2( 0, 0 ) 995 | point_out = Vector2( 0, 0 ) 996 | properties = SubResource( 139 ) 997 | 998 | [sub_resource type="Resource" id=141] 999 | script = ExtResource( 4 ) 1000 | texture_idx = 0 1001 | flip = false 1002 | width = 1.0 1003 | 1004 | [sub_resource type="Resource" id=142] 1005 | script = ExtResource( 3 ) 1006 | position = Vector2( 388, -4.5 ) 1007 | point_in = Vector2( 0, 0 ) 1008 | point_out = Vector2( 0, 0 ) 1009 | properties = SubResource( 141 ) 1010 | 1011 | [sub_resource type="Resource" id=143] 1012 | script = ExtResource( 2 ) 1013 | _points = { 1014 | 1: SubResource( 92 ), 1015 | 2: SubResource( 94 ), 1016 | 3: SubResource( 96 ), 1017 | 4: SubResource( 98 ), 1018 | 6: SubResource( 100 ), 1019 | 8: SubResource( 102 ), 1020 | 9: SubResource( 104 ), 1021 | 10: SubResource( 106 ), 1022 | 15: SubResource( 108 ), 1023 | 16: SubResource( 110 ), 1024 | 20: SubResource( 112 ), 1025 | 23: SubResource( 114 ), 1026 | 28: SubResource( 116 ), 1027 | 29: SubResource( 118 ), 1028 | 31: SubResource( 120 ), 1029 | 34: SubResource( 122 ), 1030 | 40: SubResource( 124 ), 1031 | 41: SubResource( 126 ), 1032 | 42: SubResource( 128 ), 1033 | 43: SubResource( 130 ), 1034 | 44: SubResource( 132 ), 1035 | 46: SubResource( 134 ), 1036 | 52: SubResource( 136 ), 1037 | 53: SubResource( 138 ), 1038 | 58: SubResource( 140 ), 1039 | 62: SubResource( 142 ) 1040 | } 1041 | _point_order = [ 58, 10, 9, 8, 1, 2, 3, 4, 6, 15, 16, 20, 31, 34, 23, 52, 53, 40, 41, 42, 43, 44, 28, 29, 46, 62 ] 1042 | _constraints = { 1043 | } 1044 | _next_key = 68 1045 | _material_overrides = { 1046 | } 1047 | 1048 | [sub_resource type="Resource" id=144] 1049 | script = ExtResource( 4 ) 1050 | texture_idx = 0 1051 | flip = false 1052 | width = 1.0 1053 | 1054 | [sub_resource type="Resource" id=145] 1055 | script = ExtResource( 3 ) 1056 | position = Vector2( -87.2582, 189.795 ) 1057 | point_in = Vector2( 0, 0 ) 1058 | point_out = Vector2( 0, 0 ) 1059 | properties = SubResource( 144 ) 1060 | 1061 | [sub_resource type="Resource" id=146] 1062 | script = ExtResource( 4 ) 1063 | texture_idx = 0 1064 | flip = false 1065 | width = 1.0 1066 | 1067 | [sub_resource type="Resource" id=147] 1068 | script = ExtResource( 3 ) 1069 | position = Vector2( -130.517, 103.571 ) 1070 | point_in = Vector2( 0, 0 ) 1071 | point_out = Vector2( 0, 0 ) 1072 | properties = SubResource( 146 ) 1073 | 1074 | [sub_resource type="Resource" id=148] 1075 | script = ExtResource( 4 ) 1076 | texture_idx = 0 1077 | flip = false 1078 | width = 1.0 1079 | 1080 | [sub_resource type="Resource" id=149] 1081 | script = ExtResource( 3 ) 1082 | position = Vector2( -144.898, 186.79 ) 1083 | point_in = Vector2( 0, 0 ) 1084 | point_out = Vector2( 0, 0 ) 1085 | properties = SubResource( 148 ) 1086 | 1087 | [sub_resource type="Resource" id=150] 1088 | script = ExtResource( 4 ) 1089 | texture_idx = 0 1090 | flip = false 1091 | width = 1.0 1092 | 1093 | [sub_resource type="Resource" id=151] 1094 | script = ExtResource( 3 ) 1095 | position = Vector2( -87.2582, 189.795 ) 1096 | point_in = Vector2( 0, 0 ) 1097 | point_out = Vector2( 0, 0 ) 1098 | properties = SubResource( 150 ) 1099 | 1100 | [sub_resource type="Resource" id=152] 1101 | script = ExtResource( 4 ) 1102 | texture_idx = 0 1103 | flip = false 1104 | width = 1.0 1105 | 1106 | [sub_resource type="Resource" id=153] 1107 | script = ExtResource( 3 ) 1108 | position = Vector2( -92.4095, 103.141 ) 1109 | point_in = Vector2( 0, 0 ) 1110 | point_out = Vector2( 0, 0 ) 1111 | properties = SubResource( 152 ) 1112 | 1113 | [sub_resource type="Resource" id=154] 1114 | script = ExtResource( 2 ) 1115 | _points = { 1116 | 0: SubResource( 145 ), 1117 | 1: SubResource( 147 ), 1118 | 2: SubResource( 149 ), 1119 | 3: SubResource( 151 ), 1120 | 4: SubResource( 153 ) 1121 | } 1122 | _point_order = [ 3, 2, 1, 4, 0 ] 1123 | _constraints = { 1124 | [ 0, 3 ]: 15 1125 | } 1126 | _next_key = 5 1127 | _material_overrides = { 1128 | } 1129 | 1130 | [sub_resource type="Curve2D" id=155] 1131 | _data = { 1132 | "points": PoolVector2Array( ) 1133 | } 1134 | 1135 | [sub_resource type="Resource" id=156] 1136 | script = ExtResource( 10 ) 1137 | top_texture_tilt = 20.0 1138 | bottom_texture_tilt = 20.0 1139 | top_texture = [ ] 1140 | top_texture_normal = [ ] 1141 | left_texture = [ ] 1142 | left_texture_normal = [ ] 1143 | right_texture = [ ] 1144 | right_texture_normal = [ ] 1145 | bottom_texture = [ ] 1146 | bottom_texture_normal = [ ] 1147 | use_corners = true 1148 | weld_edges = false 1149 | render_offset = 0.0 1150 | collision_width = 1.0 1151 | collision_offset = 0.0 1152 | collision_extends = 0.0 1153 | 1154 | [sub_resource type="CircleShape2D" id=157] 1155 | radius = 8.0 1156 | 1157 | [sub_resource type="Resource" id=158] 1158 | script = ExtResource( 8 ) 1159 | begin = 0.0 1160 | distance = 360.0 1161 | edgeRendering = Vector2( 0, 0 ) 1162 | 1163 | [sub_resource type="Resource" id=159] 1164 | script = ExtResource( 6 ) 1165 | normal_range = SubResource( 158 ) 1166 | weld = true 1167 | render = false 1168 | z_index = 0 1169 | z_as_relative = true 1170 | offset = 0.0 1171 | 1172 | [sub_resource type="Resource" id=160] 1173 | script = ExtResource( 4 ) 1174 | texture_idx = 0 1175 | flip = false 1176 | width = 1.0 1177 | 1178 | [sub_resource type="Resource" id=161] 1179 | script = ExtResource( 3 ) 1180 | position = Vector2( 0, -24 ) 1181 | point_in = Vector2( 0, 0 ) 1182 | point_out = Vector2( 0, 0 ) 1183 | properties = SubResource( 160 ) 1184 | 1185 | [sub_resource type="Resource" id=162] 1186 | script = ExtResource( 4 ) 1187 | texture_idx = 0 1188 | flip = false 1189 | width = 1.0 1190 | 1191 | [sub_resource type="Resource" id=163] 1192 | script = ExtResource( 3 ) 1193 | position = Vector2( 56, -8 ) 1194 | point_in = Vector2( -11.9165, -12.3137 ) 1195 | point_out = Vector2( 11.9165, 12.3137 ) 1196 | properties = SubResource( 162 ) 1197 | 1198 | [sub_resource type="Resource" id=164] 1199 | script = ExtResource( 4 ) 1200 | texture_idx = 0 1201 | flip = false 1202 | width = 1.0 1203 | 1204 | [sub_resource type="Resource" id=165] 1205 | script = ExtResource( 3 ) 1206 | position = Vector2( 80, 24 ) 1207 | point_in = Vector2( 0, 0 ) 1208 | point_out = Vector2( 0, 0 ) 1209 | properties = SubResource( 164 ) 1210 | 1211 | [sub_resource type="Resource" id=166] 1212 | script = ExtResource( 4 ) 1213 | texture_idx = 0 1214 | flip = false 1215 | width = 1.0 1216 | 1217 | [sub_resource type="Resource" id=167] 1218 | script = ExtResource( 3 ) 1219 | position = Vector2( 104, 56 ) 1220 | point_in = Vector2( 0, 0 ) 1221 | point_out = Vector2( 0, 0 ) 1222 | properties = SubResource( 166 ) 1223 | 1224 | [sub_resource type="Resource" id=168] 1225 | script = ExtResource( 4 ) 1226 | texture_idx = 0 1227 | flip = false 1228 | width = 1.0 1229 | 1230 | [sub_resource type="Resource" id=169] 1231 | script = ExtResource( 3 ) 1232 | position = Vector2( 128, 80 ) 1233 | point_in = Vector2( 0, 0 ) 1234 | point_out = Vector2( 0, 0 ) 1235 | properties = SubResource( 168 ) 1236 | 1237 | [sub_resource type="Resource" id=170] 1238 | script = ExtResource( 4 ) 1239 | texture_idx = 0 1240 | flip = false 1241 | width = 1.0 1242 | 1243 | [sub_resource type="Resource" id=171] 1244 | script = ExtResource( 3 ) 1245 | position = Vector2( 256, 128 ) 1246 | point_in = Vector2( -24, -8 ) 1247 | point_out = Vector2( 24, 8 ) 1248 | properties = SubResource( 170 ) 1249 | 1250 | [sub_resource type="Resource" id=172] 1251 | script = ExtResource( 4 ) 1252 | texture_idx = 0 1253 | flip = false 1254 | width = 1.0 1255 | 1256 | [sub_resource type="Resource" id=173] 1257 | script = ExtResource( 3 ) 1258 | position = Vector2( 160, 104 ) 1259 | point_in = Vector2( 0, 0 ) 1260 | point_out = Vector2( 0, 0 ) 1261 | properties = SubResource( 172 ) 1262 | 1263 | [sub_resource type="Resource" id=174] 1264 | script = ExtResource( 4 ) 1265 | texture_idx = 0 1266 | flip = false 1267 | width = 1.0 1268 | 1269 | [sub_resource type="Resource" id=175] 1270 | script = ExtResource( 3 ) 1271 | position = Vector2( 192, 120 ) 1272 | point_in = Vector2( -8, 0 ) 1273 | point_out = Vector2( 8, 0 ) 1274 | properties = SubResource( 174 ) 1275 | 1276 | [sub_resource type="Resource" id=176] 1277 | script = ExtResource( 4 ) 1278 | texture_idx = 0 1279 | flip = false 1280 | width = 1.0 1281 | 1282 | [sub_resource type="Resource" id=177] 1283 | script = ExtResource( 3 ) 1284 | position = Vector2( 24, -24 ) 1285 | point_in = Vector2( 0, 0 ) 1286 | point_out = Vector2( 0, 0 ) 1287 | properties = SubResource( 176 ) 1288 | 1289 | [sub_resource type="Resource" id=178] 1290 | script = ExtResource( 4 ) 1291 | texture_idx = 0 1292 | flip = false 1293 | width = 1.0 1294 | 1295 | [sub_resource type="Resource" id=179] 1296 | script = ExtResource( 3 ) 1297 | position = Vector2( 296, 160 ) 1298 | point_in = Vector2( -8, -16 ) 1299 | point_out = Vector2( 8, 16 ) 1300 | properties = SubResource( 178 ) 1301 | 1302 | [sub_resource type="Resource" id=180] 1303 | script = ExtResource( 4 ) 1304 | texture_idx = 0 1305 | flip = false 1306 | width = 1.0 1307 | 1308 | [sub_resource type="Resource" id=181] 1309 | script = ExtResource( 3 ) 1310 | position = Vector2( 288, 216 ) 1311 | point_in = Vector2( 16, -16 ) 1312 | point_out = Vector2( -8, 16 ) 1313 | properties = SubResource( 180 ) 1314 | 1315 | [sub_resource type="Resource" id=182] 1316 | script = ExtResource( 4 ) 1317 | texture_idx = 0 1318 | flip = false 1319 | width = 1.0 1320 | 1321 | [sub_resource type="Resource" id=183] 1322 | script = ExtResource( 3 ) 1323 | position = Vector2( 224, 256 ) 1324 | point_in = Vector2( 40, 0 ) 1325 | point_out = Vector2( -32, 0 ) 1326 | properties = SubResource( 182 ) 1327 | 1328 | [sub_resource type="Resource" id=184] 1329 | script = ExtResource( 4 ) 1330 | texture_idx = 0 1331 | flip = false 1332 | width = 1.0 1333 | 1334 | [sub_resource type="Resource" id=185] 1335 | script = ExtResource( 3 ) 1336 | position = Vector2( 128, 328 ) 1337 | point_in = Vector2( 0, -72 ) 1338 | point_out = Vector2( 0, 72 ) 1339 | properties = SubResource( 184 ) 1340 | 1341 | [sub_resource type="Resource" id=186] 1342 | script = ExtResource( 4 ) 1343 | texture_idx = 0 1344 | flip = false 1345 | width = 1.0 1346 | 1347 | [sub_resource type="Resource" id=187] 1348 | script = ExtResource( 3 ) 1349 | position = Vector2( 128, 432 ) 1350 | point_in = Vector2( 0, -16 ) 1351 | point_out = Vector2( 0, 16 ) 1352 | properties = SubResource( 186 ) 1353 | 1354 | [sub_resource type="Resource" id=188] 1355 | script = ExtResource( 4 ) 1356 | texture_idx = 0 1357 | flip = false 1358 | width = 1.0 1359 | 1360 | [sub_resource type="Resource" id=189] 1361 | script = ExtResource( 3 ) 1362 | position = Vector2( 72, 504 ) 1363 | point_in = Vector2( 24, -16 ) 1364 | point_out = Vector2( -16, 16 ) 1365 | properties = SubResource( 188 ) 1366 | 1367 | [sub_resource type="Resource" id=190] 1368 | script = ExtResource( 4 ) 1369 | texture_idx = 0 1370 | flip = false 1371 | width = 1.0 1372 | 1373 | [sub_resource type="Resource" id=191] 1374 | script = ExtResource( 3 ) 1375 | position = Vector2( -0.911682, 518.498 ) 1376 | point_in = Vector2( 0, 0 ) 1377 | point_out = Vector2( 0, 0 ) 1378 | properties = SubResource( 190 ) 1379 | 1380 | [sub_resource type="Resource" id=192] 1381 | script = ExtResource( 4 ) 1382 | texture_idx = 0 1383 | flip = false 1384 | width = 1.0 1385 | 1386 | [sub_resource type="Resource" id=193] 1387 | script = ExtResource( 3 ) 1388 | position = Vector2( 0, -24 ) 1389 | point_in = Vector2( 0, 0 ) 1390 | point_out = Vector2( 0, 0 ) 1391 | properties = SubResource( 192 ) 1392 | 1393 | [sub_resource type="Resource" id=194] 1394 | script = ExtResource( 2 ) 1395 | _points = { 1396 | 0: SubResource( 161 ), 1397 | 1: SubResource( 163 ), 1398 | 2: SubResource( 165 ), 1399 | 3: SubResource( 167 ), 1400 | 4: SubResource( 169 ), 1401 | 6: SubResource( 171 ), 1402 | 7: SubResource( 173 ), 1403 | 8: SubResource( 175 ), 1404 | 9: SubResource( 177 ), 1405 | 10: SubResource( 179 ), 1406 | 11: SubResource( 181 ), 1407 | 12: SubResource( 183 ), 1408 | 14: SubResource( 185 ), 1409 | 16: SubResource( 187 ), 1410 | 17: SubResource( 189 ), 1411 | 18: SubResource( 191 ), 1412 | 19: SubResource( 193 ) 1413 | } 1414 | _point_order = [ 0, 9, 1, 2, 3, 4, 7, 8, 6, 10, 11, 12, 14, 16, 17, 18, 19 ] 1415 | _constraints = { 1416 | [ 0, 19 ]: 15 1417 | } 1418 | _next_key = 20 1419 | _material_overrides = { 1420 | [ 18, 19 ]: SubResource( 159 ) 1421 | } 1422 | 1423 | [sub_resource type="Resource" id=195] 1424 | script = ExtResource( 15 ) 1425 | _edge_meta_materials = [ ] 1426 | fill_textures = [ ] 1427 | fill_texture_normals = [ ] 1428 | fill_texture_z_index = -10 1429 | fill_mesh_offset = 0.0 1430 | render_offset = 0.0 1431 | 1432 | [sub_resource type="Resource" id=196] 1433 | script = ExtResource( 4 ) 1434 | texture_idx = 0 1435 | flip = false 1436 | width = 1.0 1437 | 1438 | [sub_resource type="Resource" id=197] 1439 | script = ExtResource( 3 ) 1440 | position = Vector2( 96, 344 ) 1441 | point_in = Vector2( 0, 0 ) 1442 | point_out = Vector2( 0, 0 ) 1443 | properties = SubResource( 196 ) 1444 | 1445 | [sub_resource type="Resource" id=198] 1446 | script = ExtResource( 4 ) 1447 | texture_idx = 4 1448 | flip = false 1449 | width = 1.0 1450 | 1451 | [sub_resource type="Resource" id=199] 1452 | script = ExtResource( 3 ) 1453 | position = Vector2( 256, 344 ) 1454 | point_in = Vector2( 0, 0 ) 1455 | point_out = Vector2( 0, 0 ) 1456 | properties = SubResource( 198 ) 1457 | 1458 | [sub_resource type="Resource" id=200] 1459 | script = ExtResource( 4 ) 1460 | texture_idx = 0 1461 | flip = false 1462 | width = 1.0 1463 | 1464 | [sub_resource type="Resource" id=201] 1465 | script = ExtResource( 3 ) 1466 | position = Vector2( 320, 512 ) 1467 | point_in = Vector2( 0, 0 ) 1468 | point_out = Vector2( 0, 0 ) 1469 | properties = SubResource( 200 ) 1470 | 1471 | [sub_resource type="Resource" id=202] 1472 | script = ExtResource( 4 ) 1473 | texture_idx = 0 1474 | flip = false 1475 | width = 1.0 1476 | 1477 | [sub_resource type="Resource" id=203] 1478 | script = ExtResource( 3 ) 1479 | position = Vector2( 96, 344 ) 1480 | point_in = Vector2( 0, 0 ) 1481 | point_out = Vector2( 0, 0 ) 1482 | properties = SubResource( 202 ) 1483 | 1484 | [sub_resource type="Resource" id=204] 1485 | script = ExtResource( 4 ) 1486 | texture_idx = 0 1487 | flip = false 1488 | width = 1.0 1489 | 1490 | [sub_resource type="Resource" id=205] 1491 | script = ExtResource( 3 ) 1492 | position = Vector2( 96, 576 ) 1493 | point_in = Vector2( 0, 0 ) 1494 | point_out = Vector2( 0, 0 ) 1495 | properties = SubResource( 204 ) 1496 | 1497 | [sub_resource type="Resource" id=206] 1498 | script = ExtResource( 4 ) 1499 | texture_idx = 0 1500 | flip = false 1501 | width = 1.0 1502 | 1503 | [sub_resource type="Resource" id=207] 1504 | script = ExtResource( 3 ) 1505 | position = Vector2( 152, 343.056 ) 1506 | point_in = Vector2( 0, 0 ) 1507 | point_out = Vector2( 0, 0 ) 1508 | properties = SubResource( 206 ) 1509 | 1510 | [sub_resource type="Resource" id=208] 1511 | script = ExtResource( 4 ) 1512 | texture_idx = 0 1513 | flip = false 1514 | width = 1.0 1515 | 1516 | [sub_resource type="Resource" id=209] 1517 | script = ExtResource( 3 ) 1518 | position = Vector2( 152, 424 ) 1519 | point_in = Vector2( 0, 0 ) 1520 | point_out = Vector2( 0, 0 ) 1521 | properties = SubResource( 208 ) 1522 | 1523 | [sub_resource type="Resource" id=210] 1524 | script = ExtResource( 4 ) 1525 | texture_idx = 0 1526 | flip = false 1527 | width = 1.0 1528 | 1529 | [sub_resource type="Resource" id=211] 1530 | script = ExtResource( 3 ) 1531 | position = Vector2( 208, 344 ) 1532 | point_in = Vector2( 0, 0 ) 1533 | point_out = Vector2( 0, 0 ) 1534 | properties = SubResource( 210 ) 1535 | 1536 | [sub_resource type="Resource" id=212] 1537 | script = ExtResource( 4 ) 1538 | texture_idx = 0 1539 | flip = false 1540 | width = 1.0 1541 | 1542 | [sub_resource type="Resource" id=213] 1543 | script = ExtResource( 3 ) 1544 | position = Vector2( 208, 424 ) 1545 | point_in = Vector2( 0, 0 ) 1546 | point_out = Vector2( 0, 0 ) 1547 | properties = SubResource( 212 ) 1548 | 1549 | [sub_resource type="Resource" id=214] 1550 | script = ExtResource( 4 ) 1551 | texture_idx = 0 1552 | flip = false 1553 | width = 1.0 1554 | 1555 | [sub_resource type="Resource" id=215] 1556 | script = ExtResource( 3 ) 1557 | position = Vector2( 320, 416 ) 1558 | point_in = Vector2( 0, 0 ) 1559 | point_out = Vector2( 0, 0 ) 1560 | properties = SubResource( 214 ) 1561 | 1562 | [sub_resource type="Resource" id=216] 1563 | script = ExtResource( 4 ) 1564 | texture_idx = 0 1565 | flip = false 1566 | width = 1.0 1567 | 1568 | [sub_resource type="Resource" id=217] 1569 | script = ExtResource( 3 ) 1570 | position = Vector2( 304, 360 ) 1571 | point_in = Vector2( -16, -16 ) 1572 | point_out = Vector2( 16, 16 ) 1573 | properties = SubResource( 216 ) 1574 | 1575 | [sub_resource type="Resource" id=218] 1576 | script = ExtResource( 4 ) 1577 | texture_idx = 0 1578 | flip = false 1579 | width = 1.0 1580 | 1581 | [sub_resource type="Resource" id=219] 1582 | script = ExtResource( 3 ) 1583 | position = Vector2( 320, 576 ) 1584 | point_in = Vector2( 0, 0 ) 1585 | point_out = Vector2( 0, 0 ) 1586 | properties = SubResource( 218 ) 1587 | 1588 | [sub_resource type="Resource" id=220] 1589 | script = ExtResource( 4 ) 1590 | texture_idx = 0 1591 | flip = false 1592 | width = 1.0 1593 | 1594 | [sub_resource type="Resource" id=221] 1595 | script = ExtResource( 3 ) 1596 | position = Vector2( 384, 512 ) 1597 | point_in = Vector2( 0, 0 ) 1598 | point_out = Vector2( 0, 0 ) 1599 | properties = SubResource( 220 ) 1600 | 1601 | [sub_resource type="Resource" id=222] 1602 | script = ExtResource( 4 ) 1603 | texture_idx = 0 1604 | flip = false 1605 | width = 1.0 1606 | 1607 | [sub_resource type="Resource" id=223] 1608 | script = ExtResource( 3 ) 1609 | position = Vector2( 512, 576 ) 1610 | point_in = Vector2( 0, 0 ) 1611 | point_out = Vector2( 0, 0 ) 1612 | properties = SubResource( 222 ) 1613 | 1614 | [sub_resource type="Resource" id=224] 1615 | script = ExtResource( 4 ) 1616 | texture_idx = 0 1617 | flip = false 1618 | width = 1.0 1619 | 1620 | [sub_resource type="Resource" id=225] 1621 | script = ExtResource( 3 ) 1622 | position = Vector2( 384, 448 ) 1623 | point_in = Vector2( 0, 0 ) 1624 | point_out = Vector2( 0, 0 ) 1625 | properties = SubResource( 224 ) 1626 | 1627 | [sub_resource type="Resource" id=226] 1628 | script = ExtResource( 4 ) 1629 | texture_idx = 0 1630 | flip = false 1631 | width = 1.0 1632 | 1633 | [sub_resource type="Resource" id=227] 1634 | script = ExtResource( 3 ) 1635 | position = Vector2( 512, 384 ) 1636 | point_in = Vector2( 0, 0 ) 1637 | point_out = Vector2( 0, 0 ) 1638 | properties = SubResource( 226 ) 1639 | 1640 | [sub_resource type="Resource" id=228] 1641 | script = ExtResource( 4 ) 1642 | texture_idx = 0 1643 | flip = false 1644 | width = 1.0 1645 | 1646 | [sub_resource type="Resource" id=229] 1647 | script = ExtResource( 3 ) 1648 | position = Vector2( 320, 448 ) 1649 | point_in = Vector2( 0, 0 ) 1650 | point_out = Vector2( 0, 0 ) 1651 | properties = SubResource( 228 ) 1652 | 1653 | [sub_resource type="Resource" id=230] 1654 | script = ExtResource( 4 ) 1655 | texture_idx = 0 1656 | flip = false 1657 | width = 1.0 1658 | 1659 | [sub_resource type="Resource" id=231] 1660 | script = ExtResource( 3 ) 1661 | position = Vector2( 400, 448 ) 1662 | point_in = Vector2( 0, 0 ) 1663 | point_out = Vector2( 0, 0 ) 1664 | properties = SubResource( 230 ) 1665 | 1666 | [sub_resource type="Resource" id=232] 1667 | script = ExtResource( 4 ) 1668 | texture_idx = 0 1669 | flip = false 1670 | width = 1.0 1671 | 1672 | [sub_resource type="Resource" id=233] 1673 | script = ExtResource( 3 ) 1674 | position = Vector2( 496, 384 ) 1675 | point_in = Vector2( 0, 0 ) 1676 | point_out = Vector2( 0, 0 ) 1677 | properties = SubResource( 232 ) 1678 | 1679 | [sub_resource type="Resource" id=234] 1680 | script = ExtResource( 4 ) 1681 | texture_idx = 0 1682 | flip = false 1683 | width = 1.0 1684 | 1685 | [sub_resource type="Resource" id=235] 1686 | script = ExtResource( 3 ) 1687 | position = Vector2( 319.542, 494.083 ) 1688 | point_in = Vector2( 0, 0 ) 1689 | point_out = Vector2( 0, 0 ) 1690 | properties = SubResource( 234 ) 1691 | 1692 | [sub_resource type="Resource" id=236] 1693 | script = ExtResource( 4 ) 1694 | texture_idx = 0 1695 | flip = false 1696 | width = 1.0 1697 | 1698 | [sub_resource type="Resource" id=237] 1699 | script = ExtResource( 3 ) 1700 | position = Vector2( 316.893, 467.596 ) 1701 | point_in = Vector2( 0, 0 ) 1702 | point_out = Vector2( 0, 0 ) 1703 | properties = SubResource( 236 ) 1704 | 1705 | [sub_resource type="Resource" id=238] 1706 | script = ExtResource( 4 ) 1707 | texture_idx = 0 1708 | flip = false 1709 | width = 1.0 1710 | 1711 | [sub_resource type="Resource" id=239] 1712 | script = ExtResource( 3 ) 1713 | position = Vector2( 427.766, 435.687 ) 1714 | point_in = Vector2( -16.4018, 14.5722 ) 1715 | point_out = Vector2( 16.4018, -14.5722 ) 1716 | properties = SubResource( 238 ) 1717 | 1718 | [sub_resource type="Resource" id=240] 1719 | script = ExtResource( 4 ) 1720 | texture_idx = 0 1721 | flip = false 1722 | width = 1.0 1723 | 1724 | [sub_resource type="Resource" id=241] 1725 | script = ExtResource( 3 ) 1726 | position = Vector2( 467.791, 393.684 ) 1727 | point_in = Vector2( -15.1533, 9.54092 ) 1728 | point_out = Vector2( 15.1533, -9.54092 ) 1729 | properties = SubResource( 240 ) 1730 | 1731 | [sub_resource type="Resource" id=242] 1732 | script = ExtResource( 2 ) 1733 | _points = { 1734 | 0: SubResource( 197 ), 1735 | 1: SubResource( 199 ), 1736 | 2: SubResource( 201 ), 1737 | 3: SubResource( 203 ), 1738 | 4: SubResource( 205 ), 1739 | 16: SubResource( 207 ), 1740 | 17: SubResource( 209 ), 1741 | 18: SubResource( 211 ), 1742 | 19: SubResource( 213 ), 1743 | 20: SubResource( 215 ), 1744 | 22: SubResource( 217 ), 1745 | 23: SubResource( 219 ), 1746 | 24: SubResource( 221 ), 1747 | 25: SubResource( 223 ), 1748 | 26: SubResource( 225 ), 1749 | 27: SubResource( 227 ), 1750 | 28: SubResource( 229 ), 1751 | 29: SubResource( 231 ), 1752 | 30: SubResource( 233 ), 1753 | 31: SubResource( 235 ), 1754 | 32: SubResource( 237 ), 1755 | 33: SubResource( 239 ), 1756 | 34: SubResource( 241 ) 1757 | } 1758 | _point_order = [ 0, 16, 17, 19, 18, 1, 22, 20, 28, 32, 31, 2, 24, 26, 29, 33, 34, 30, 27, 25, 23, 4, 3 ] 1759 | _constraints = { 1760 | [ 0, 3 ]: 15 1761 | } 1762 | _next_key = 35 1763 | _material_overrides = { 1764 | } 1765 | 1766 | [sub_resource type="Resource" id=243] 1767 | script = ExtResource( 4 ) 1768 | texture_idx = 0 1769 | flip = false 1770 | width = 1.0 1771 | 1772 | [sub_resource type="Resource" id=244] 1773 | script = ExtResource( 3 ) 1774 | position = Vector2( 174.321, 312.44 ) 1775 | point_in = Vector2( -42.6788, 0.44043 ) 1776 | point_out = Vector2( 39.3212, 0.44043 ) 1777 | properties = SubResource( 243 ) 1778 | 1779 | [sub_resource type="Resource" id=245] 1780 | script = ExtResource( 4 ) 1781 | texture_idx = 4 1782 | flip = false 1783 | width = 1.0 1784 | 1785 | [sub_resource type="Resource" id=246] 1786 | script = ExtResource( 3 ) 1787 | position = Vector2( 238.321, 376.44 ) 1788 | point_in = Vector2( -0.678833, -36.5596 ) 1789 | point_out = Vector2( -0.678833, 36.4404 ) 1790 | properties = SubResource( 245 ) 1791 | 1792 | [sub_resource type="Resource" id=247] 1793 | script = ExtResource( 4 ) 1794 | texture_idx = 0 1795 | flip = false 1796 | width = 1.0 1797 | 1798 | [sub_resource type="Resource" id=248] 1799 | script = ExtResource( 3 ) 1800 | position = Vector2( 174.321, 312.44 ) 1801 | point_in = Vector2( -42.6788, 0.44043 ) 1802 | point_out = Vector2( 39.3212, 0.44043 ) 1803 | properties = SubResource( 247 ) 1804 | 1805 | [sub_resource type="Resource" id=249] 1806 | script = ExtResource( 4 ) 1807 | texture_idx = 0 1808 | flip = false 1809 | width = 1.0 1810 | 1811 | [sub_resource type="Resource" id=250] 1812 | script = ExtResource( 3 ) 1813 | position = Vector2( 110.321, 376.44 ) 1814 | point_in = Vector2( 0.321167, 30.4404 ) 1815 | point_out = Vector2( 0.321167, -29.5596 ) 1816 | properties = SubResource( 249 ) 1817 | 1818 | [sub_resource type="Resource" id=251] 1819 | script = ExtResource( 4 ) 1820 | texture_idx = 0 1821 | flip = false 1822 | width = 1.0 1823 | 1824 | [sub_resource type="Resource" id=252] 1825 | script = ExtResource( 3 ) 1826 | position = Vector2( 174.321, 440.44 ) 1827 | point_in = Vector2( 33.3212, -0.55957 ) 1828 | point_out = Vector2( -33.6788, 0.44043 ) 1829 | properties = SubResource( 251 ) 1830 | 1831 | [sub_resource type="Resource" id=253] 1832 | script = ExtResource( 2 ) 1833 | _points = { 1834 | 0: SubResource( 244 ), 1835 | 1: SubResource( 246 ), 1836 | 3: SubResource( 248 ), 1837 | 4: SubResource( 250 ), 1838 | 25: SubResource( 252 ) 1839 | } 1840 | _point_order = [ 0, 1, 25, 4, 3 ] 1841 | _constraints = { 1842 | [ 0, 3 ]: 15 1843 | } 1844 | _next_key = 36 1845 | _material_overrides = { 1846 | } 1847 | 1848 | [sub_resource type="Resource" id=254] 1849 | script = ExtResource( 8 ) 1850 | begin = 0.0 1851 | distance = 360.0 1852 | edgeRendering = Vector2( 0, 0 ) 1853 | 1854 | [sub_resource type="Resource" id=255] 1855 | script = ExtResource( 6 ) 1856 | edge_material = ExtResource( 18 ) 1857 | normal_range = SubResource( 254 ) 1858 | weld = true 1859 | render = true 1860 | z_index = 100 1861 | z_as_relative = true 1862 | offset = 0.0 1863 | 1864 | [sub_resource type="Resource" id=256] 1865 | script = ExtResource( 15 ) 1866 | _edge_meta_materials = [ SubResource( 255 ) ] 1867 | fill_textures = [ ExtResource( 19 ) ] 1868 | fill_texture_normals = [ ] 1869 | fill_texture_z_index = -100 1870 | fill_mesh_offset = -0.35 1871 | render_offset = 0.0 1872 | 1873 | [node name="Node2D" type="Node2D"] 1874 | 1875 | [node name="RMSmartShapeAnchor2D" type="Node2D" parent="."] 1876 | position = Vector2( -108.338, -17.6757 ) 1877 | rotation = 0.484975 1878 | script = ExtResource( 12 ) 1879 | shape_point_index = 6 1880 | shape_point_offset = 0.458 1881 | 1882 | [node name="RigidBody2D" type="RigidBody2D" parent="RMSmartShapeAnchor2D"] 1883 | 1884 | [node name="Sprite" type="Sprite" parent="RMSmartShapeAnchor2D/RigidBody2D"] 1885 | position = Vector2( 8, -8 ) 1886 | scale = Vector2( 0.25, 0.25 ) 1887 | texture = ExtResource( 13 ) 1888 | 1889 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RMSmartShapeAnchor2D/RigidBody2D"] 1890 | position = Vector2( 8, -8 ) 1891 | shape = SubResource( 1 ) 1892 | 1893 | [node name="StaticBody2D" type="StaticBody2D" parent="."] 1894 | 1895 | [node name="SS2D_Shape_Closed" type="Node2D" parent="StaticBody2D"] 1896 | script = ExtResource( 5 ) 1897 | _points = SubResource( 61 ) 1898 | material_overrides = null 1899 | shape_material = ExtResource( 1 ) 1900 | tessellation_stages = 5 1901 | tessellation_tolerence = 4.0 1902 | flip_edges = false 1903 | render_edges = true 1904 | collision_size = 32.0 1905 | collision_offset = 0.0 1906 | collision_polygon_node_path = NodePath("../CollisionPolygon2D") 1907 | 1908 | [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"] 1909 | visible = false 1910 | modulate = Color( 1, 1, 1, 0.3 ) 1911 | polygon = PoolVector2Array( 216, 47.9909, 248.1, 47.9, 248.1, 49.1, 248.1, 80.9, 319.9, 80.9, 319.9, 47.9, 321.1, 47.9, 384.1, 47.9, 384.1, 49.1, 384.1, 128, 382.9, 128, 248, 128, 248, 192, 440, 191.996, 472, 183.996, 536, 184, 592, 184, 597.902, 183.808, 603.594, 183.218, 609.051, 182.207, 614.25, 180.749, 619.168, 178.824, 623.781, 176.406, 628.066, 173.472, 631.999, 169.999, 635.558, 165.964, 638.718, 161.343, 641.456, 156.113, 643.749, 150.25, 645.574, 143.73, 646.906, 136.531, 647.722, 128.629, 648, 120, 648, 64, 649, 64, 658.375, 63.2497, 669.516, 63.1559, 683, 63.9994, 697.609, 66.3432, 704.955, 68.2535, 712.125, 70.7495, 718.967, 73.9016, 725.328, 77.7807, 728.281, 80.0149, 731.057, 82.4567, 733.636, 85.1154, 736, 87.9997, 740.225, 94.1717, 743.922, 100.625, 749.876, 114, 754.141, 127.375, 757.001, 140, 759.625, 160, 760, 168, 760, 256, 759, 256, 336, 256, 312.116, 255.008, 291.258, 252.183, 273.115, 247.757, 257.378, 241.959, 243.736, 235.02, 231.881, 227.171, 221.5, 218.641, 212.285, 209.661, 180.879, 173.852, 172.841, 166.079, 164.108, 159.238, 159.384, 156.239, 154.37, 153.56, 149.028, 151.229, 143.318, 149.275, 131.671, 146.668, 120.336, 145.733, 109.28, 146.262, 98.47, 148.048, 87.8728, 150.884, 77.4561, 154.562, 57.0326, 163.613, 16.9087, 182.69, 6.83699, 186.452, -3.31643, 189.396, -13.5845, 191.315, -24, 192, -104, 192, -104, 191, -104, 96, -103, 96, -64, 95.9998, -53.9616, 95.3822, -42.4278, 93.7578, -18.3696, 88.8196, 9.26025, 81.636, 107.865, 55.155, 160.001, 48.012 ) 1912 | 1913 | [node name="StaticBody2D2" type="StaticBody2D" parent="."] 1914 | 1915 | [node name="SS2D_Shape_Closed" type="Node2D" parent="StaticBody2D2"] 1916 | script = ExtResource( 5 ) 1917 | _points = SubResource( 90 ) 1918 | material_overrides = null 1919 | shape_material = ExtResource( 1 ) 1920 | tessellation_stages = 5 1921 | tessellation_tolerence = 4.0 1922 | flip_edges = false 1923 | render_edges = true 1924 | collision_size = 32.0 1925 | collision_offset = 0.0 1926 | collision_polygon_node_path = NodePath("../CollisionPolygon2D") 1927 | 1928 | [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D2"] 1929 | visible = false 1930 | modulate = Color( 1, 1, 1, 0.3 ) 1931 | polygon = PoolVector2Array( -448.104, 63.8964, -296, 63.9997, -290.963, 64.3588, -284.953, 65.3746, -270.625, 68.9997, -204.875, 90.9999, -192.422, 94.6247, -187.631, 95.6403, -185.661, 95.9078, -184, 95.9998, -104, 96, -104, 97, -104, 192, -105, 192, -128, 192, -132.314, 192.184, -136.266, 192.719, -139.865, 193.583, -143.125, 194.751, -146.056, 196.2, -148.671, 197.907, -150.982, 199.848, -152.999, 202.001, -154.736, 204.34, -156.203, 206.844, -157.412, 209.488, -158.375, 212.25, -159.103, 215.106, -159.609, 218.031, -160, 224, -160.39, 229.969, -160.896, 232.895, -161.625, 235.75, -162.587, 238.512, -163.796, 241.157, -165.263, 243.661, -166.999, 246.001, -169.017, 248.153, -171.328, 250.094, -173.943, 251.802, -176.875, 253.251, -180.135, 254.419, -183.734, 255.282, -187.686, 255.817, -192, 256, -320, 256, -448, 256, -448, 255, -448, 192, -448, 128 ) 1932 | 1933 | [node name="StaticBody2D3" type="StaticBody2D" parent="."] 1934 | 1935 | [node name="SS2D_Shape_Open" type="Node2D" parent="StaticBody2D3"] 1936 | script = ExtResource( 7 ) 1937 | _points = SubResource( 143 ) 1938 | material_overrides = null 1939 | shape_material = ExtResource( 1 ) 1940 | tessellation_stages = 5 1941 | tessellation_tolerence = 4.0 1942 | flip_edges = false 1943 | render_edges = true 1944 | collision_size = 16.0 1945 | collision_offset = 0.0 1946 | collision_polygon_node_path = NodePath("../CollisionPolygon2D") 1947 | 1948 | [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D3"] 1949 | visible = false 1950 | modulate = Color( 1, 1, 1, 0.3 ) 1951 | polygon = PoolVector2Array( -384, 32, -384.008, -0.000373065, -383.759, -2.75125, -383.164, -5.90807, -382.009, -10.0032, -380.105, -14.8487, -377.262, -20.2571, -373.293, -26.0405, -368.008, -32.0079, -364.919, -34.8259, -361.691, -37.301, -358.37, -39.4539, -355.004, -41.3112, -348.316, -44.2122, -342.002, -46.1776, -336.438, -47.394, -332, -48.0422, -328, -48.3463, -296, -48.3425, -291.437, -48.5464, -286.756, -49.1106, -277.09, -51.1014, -236.269, -62.4978, -226.036, -63.9686, -220.987, -64.1936, -216, -64.0042, -199.575, -62.3213, -193.055, -61.1474, -186.911, -59.4764, -180.583, -57.1001, -173.506, -53.8184, -154.856, -43.7132, -104.038, -15.4238, -80.6712, -4.42732, -71.2487, -1.18655, -67.3221, -0.310233, -65.5816, -0.0831261, -63.9999, -0.00234461, -0.00011459, -0.00374317, 5.99056, -0.380754, 11.9348, -1.44902, 17.7857, -3.17375, 23.4962, -5.50818, 29.0194, -8.40542, 34.3082, -11.8186, 39.3157, -15.7007, 43.9951, -20.0049, 48.2993, -24.6843, 52.1814, -29.6918, 55.5946, -34.9806, 58.4918, -40.5038, 60.8262, -46.2143, 62.551, -52.0652, 63.6192, -58.0094, 63.9963, -64.0001, 63.9957, -128, 63.2076, -139.936, 62.201, -145.788, 60.743, -151.498, 58.8161, -157.02, 56.3972, -162.308, 53.4628, -167.314, 49.9899, -171.992, 45.9551, -176.294, 41.3351, -180.176, 36.1062, -183.589, 30.2448, -186.488, 23.7271, -188.825, 16.5294, -190.553, 8.62816, -191.624, -2.53022e-05, -191.999, -82.0019, -192.978, -102.502, -196.288, -112.236, -198.847, -121.504, -202.116, -130.209, -206.182, -138.26, -211.127, -145.554, -217.041, -148.889, -220.385, -152.004, -223.997, -157.63, -231.587, -162.506, -239.341, -166.631, -247.235, -170.007, -255.247, -172.632, -263.353, -174.508, -271.53, -175.633, -279.753, -176.008, -288, -175.633, -296.247, -174.508, -304.47, -172.632, -312.647, -170.007, -320.753, -166.631, -328.765, -162.506, -336.659, -157.63, -344.413, -152.008, -352.007, -145.569, -359.052, -138.351, -365.212, -130.524, -370.552, -122.256, -375.137, -105.036, -382.248, -88.003, -387.014, -59.751, -391.385, -48.0001, -392.003, 3.75658e-05, -392.002, 13.313, -391.444, 20.743, -390.529, 28.5017, -389.007, 36.4484, -386.736, 44.4427, -383.574, 52.3438, -379.38, 60.0107, -374.013, 67.3021, -367.333, 74.0768, -359.198, 80.1938, -349.469, 85.5127, -338.005, 89.8935, -324.667, 93.1961, -309.314, 95.2801, -291.805, 96.0013, -272, 96.0304, -64.0027, 101.762, -32.6788, 119.931, -9.49884, 152.011, -0.0756726, 192, 0, 192, -64, 208, -64, 314, -59, 313.345, -43.0134, 312, 0, 388, -4.5, 388.946, 11.472, 296.955, 15.43, 296.009, -0.542062, 297.354, -43.5555, 207.345, -48.0134, 208, 16, 192, 16, 149.805, 15.7715, 110.978, 3.76148, 87.1344, -26.1953, 80.0915, -62.6061, 80.004, -271.707, 79.3283, -290.564, 77.4142, -306.681, 74.4511, -320.48, 70.6309, -332.129, 66.1373, -341.826, 61.1289, -349.798, 55.7238, -356.29, 49.9953, -361.536, 43.9863, -365.736, 37.7348, -369.048, 31.2967, -371.588, 24.756, -373.452, 18.223, -374.728, 11.9974, -375.498, -0.337764, -376.005, -47.575, -376.008, -58.0997, -375.47, -84.6169, -371.376, -99.8178, -367.122, -115.315, -360.72, -122.128, -356.932, -128.63, -352.504, -134.45, -347.547, -139.662, -341.83, -144.42, -335.385, -148.631, -328.69, -152.156, -321.948, -155.01, -315.177, -157.209, -308.389, -158.768, -301.595, -159.699, -294.797, -160.008, -288, -159.699, -281.203, -158.768, -274.405, -157.209, -267.611, -155.01, -260.823, -152.156, -254.052, -148.631, -247.31, -144.42, -240.615, -139.511, -233.992, -137.165, -231.273, -134.847, -228.929, -129.016, -224.187, -122.619, -220.267, -115.445, -216.925, -107.537, -214.141, -99.1956, -211.942, -80.6303, -208.92, 0.437697, -207.993, 10.0435, -207.562, 19.4726, -206.279, 28.298, -204.158, 36.4988, -201.215, 44.0382, -197.485, 50.8715, -193.023, 56.9576, -187.911, 62.2711, -182.247, 66.8096, -176.138, 70.5939, -169.687, 73.6621, -162.987, 76.0628, -156.114, 77.8478, -149.131, 79.0958, -141.824, 79.9872, -128.523, 79.9888, -63.5106, 79.5048, -56.0995, 78.1204, -48.3784, 75.9231, -40.9149, 72.9966, -33.7502, 69.4138, -26.9166, 65.2372, -20.4426, 60.5202, -14.3571, 55.3088, -8.69121, 49.6429, -3.47982, 43.5574, 1.23718, 37.0834, 5.41381, 30.2498, 8.99662, 23.0851, 11.9231, 15.6216, 14.1204, 7.90055, 15.5048, 0.489418, 15.9888, -64.3873, 15.993, -66.9982, 15.854, -70.0863, 15.4492, -75.5915, 14.2128, -86.6913, 10.397, -111.342, -1.18845, -162.558, -29.6888, -180.684, -39.5186, -186.76, -42.3408, -191.826, -44.2501, -196.578, -45.5402, -201.813, -46.4786, -217.116, -48.0432, -220.925, -48.1937, -224.53, -48.0396, -232.97, -46.8416, -273.323, -35.5511, -284.183, -33.3189, -290.13, -32.5998, -295.65, -32.3464, -327.395, -32.3578, -330.238, -32.1395, -333.568, -31.6536, -337.904, -30.7113, -342.745, -29.2134, -347.957, -26.9469, -350.153, -25.725, -352.461, -24.2319, -354.643, -22.5622, -356.604, -20.7855, -360.683, -16.193, -363.563, -11.9909, -365.558, -8.18481, -366.848, -4.89268, -367.588, -2.25095, -367.912, -0.545455, -368.025, 0.724659, -368, 32 ) 1952 | 1953 | [node name="SS2D_Shape_Closed" type="Node2D" parent="."] 1954 | z_index = -1 1955 | script = ExtResource( 5 ) 1956 | _points = SubResource( 154 ) 1957 | material_overrides = null 1958 | shape_material = ExtResource( 1 ) 1959 | tessellation_stages = 5 1960 | tessellation_tolerence = 4.0 1961 | flip_edges = false 1962 | render_edges = false 1963 | collision_size = 32.0 1964 | collision_offset = 0.0 1965 | collision_polygon_node_path = NodePath("") 1966 | 1967 | [node name="RMSmartShape2D" type="Node2D" parent="."] 1968 | script = ExtResource( 11 ) 1969 | curve = SubResource( 155 ) 1970 | shape_material = SubResource( 156 ) 1971 | 1972 | [node name="Camera2D" type="Camera2D" parent="."] 1973 | position = Vector2( 444.816, 15.1476 ) 1974 | current = true 1975 | zoom = Vector2( 0.75, 0.75 ) 1976 | 1977 | [node name="RigidBodies" type="Node2D" parent="."] 1978 | 1979 | [node name="RigidBody2D" type="RigidBody2D" parent="RigidBodies"] 1980 | position = Vector2( 56, -80 ) 1981 | mass = 2.04082 1982 | 1983 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D"] 1984 | scale = Vector2( 0.25, 0.25 ) 1985 | texture = ExtResource( 14 ) 1986 | 1987 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D"] 1988 | shape = SubResource( 157 ) 1989 | 1990 | [node name="RigidBody2D2" type="RigidBody2D" parent="RigidBodies"] 1991 | position = Vector2( 640, 32 ) 1992 | mass = 2.04082 1993 | 1994 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D2"] 1995 | scale = Vector2( 0.25, 0.25 ) 1996 | texture = ExtResource( 14 ) 1997 | 1998 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D2"] 1999 | shape = SubResource( 157 ) 2000 | 2001 | [node name="RigidBody2D6" type="RigidBody2D" parent="RigidBodies"] 2002 | position = Vector2( -64, -400 ) 2003 | mass = 2.04082 2004 | 2005 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D6"] 2006 | scale = Vector2( 0.25, 0.25 ) 2007 | texture = ExtResource( 14 ) 2008 | 2009 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D6"] 2010 | shape = SubResource( 157 ) 2011 | 2012 | [node name="RigidBody2D7" type="RigidBody2D" parent="RigidBodies"] 2013 | position = Vector2( -64, -448 ) 2014 | mass = 2.04082 2015 | 2016 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D7"] 2017 | scale = Vector2( 0.25, 0.25 ) 2018 | texture = ExtResource( 14 ) 2019 | 2020 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D7"] 2021 | shape = SubResource( 157 ) 2022 | 2023 | [node name="RigidBody2D8" type="RigidBody2D" parent="RigidBodies"] 2024 | position = Vector2( 72, -440 ) 2025 | mass = 2.04082 2026 | 2027 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D8"] 2028 | scale = Vector2( 0.25, 0.25 ) 2029 | texture = ExtResource( 14 ) 2030 | 2031 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D8"] 2032 | shape = SubResource( 157 ) 2033 | 2034 | [node name="RigidBody2D3" type="RigidBody2D" parent="RigidBodies"] 2035 | position = Vector2( 496, 176 ) 2036 | mass = 2.04082 2037 | 2038 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D3"] 2039 | scale = Vector2( 0.25, 0.25 ) 2040 | texture = ExtResource( 14 ) 2041 | 2042 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D3"] 2043 | shape = SubResource( 157 ) 2044 | 2045 | [node name="RigidBody2D4" type="RigidBody2D" parent="RigidBodies"] 2046 | position = Vector2( 248, 40 ) 2047 | mass = 2.04082 2048 | 2049 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D4"] 2050 | scale = Vector2( 0.25, 0.25 ) 2051 | texture = ExtResource( 14 ) 2052 | 2053 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D4"] 2054 | shape = SubResource( 157 ) 2055 | 2056 | [node name="RigidBody2D5" type="RigidBody2D" parent="RigidBodies"] 2057 | position = Vector2( -112, 88 ) 2058 | mass = 2.04082 2059 | linear_velocity = Vector2( 400, 0 ) 2060 | 2061 | [node name="Sprite" type="Sprite" parent="RigidBodies/RigidBody2D5"] 2062 | scale = Vector2( 0.25, 0.25 ) 2063 | texture = ExtResource( 14 ) 2064 | 2065 | [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodies/RigidBody2D5"] 2066 | shape = SubResource( 157 ) 2067 | 2068 | [node name="SS2D_Shape_Meta" type="Node2D" parent="."] 2069 | position = Vector2( 0, 640 ) 2070 | script = ExtResource( 16 ) 2071 | _points = SubResource( 194 ) 2072 | material_overrides = null 2073 | shape_material = SubResource( 195 ) 2074 | tessellation_stages = 5 2075 | tessellation_tolerence = 4.0 2076 | flip_edges = false 2077 | render_edges = true 2078 | collision_size = 32.0 2079 | collision_offset = 0.0 2080 | collision_polygon_node_path = NodePath("") 2081 | 2082 | [node name="SS2D_Shape_Closed" type="Node2D" parent="SS2D_Shape_Meta"] 2083 | script = ExtResource( 5 ) 2084 | _points = SubResource( 194 ) 2085 | material_overrides = null 2086 | shape_material = ExtResource( 1 ) 2087 | tessellation_stages = 5 2088 | tessellation_tolerence = 4.0 2089 | flip_edges = false 2090 | render_edges = true 2091 | collision_size = 32.0 2092 | collision_offset = 0.0 2093 | collision_polygon_node_path = NodePath("") 2094 | 2095 | [node name="SS2D_Shape_Closed2" type="Node2D" parent="SS2D_Shape_Meta"] 2096 | scale = Vector2( -1, 1 ) 2097 | script = ExtResource( 5 ) 2098 | _points = SubResource( 194 ) 2099 | material_overrides = null 2100 | shape_material = ExtResource( 1 ) 2101 | tessellation_stages = 5 2102 | tessellation_tolerence = 4.0 2103 | flip_edges = false 2104 | render_edges = true 2105 | collision_size = 32.0 2106 | collision_offset = 0.0 2107 | collision_polygon_node_path = NodePath("") 2108 | 2109 | [node name="Node2D" type="Node2D" parent="SS2D_Shape_Meta"] 2110 | position = Vector2( 664, 64 ) 2111 | 2112 | [node name="SS2D_Shape_Open3" type="Node2D" parent="SS2D_Shape_Meta/Node2D"] 2113 | scale = Vector2( -1, 1 ) 2114 | script = ExtResource( 7 ) 2115 | _points = SubResource( 194 ) 2116 | material_overrides = null 2117 | shape_material = ExtResource( 1 ) 2118 | tessellation_stages = 5 2119 | tessellation_tolerence = 4.0 2120 | flip_edges = false 2121 | render_edges = true 2122 | collision_size = 32.0 2123 | collision_offset = 0.0 2124 | collision_polygon_node_path = NodePath("") 2125 | 2126 | [node name="SS2D_Shape_Open4" type="Node2D" parent="SS2D_Shape_Meta/Node2D"] 2127 | script = ExtResource( 7 ) 2128 | _points = SubResource( 194 ) 2129 | material_overrides = null 2130 | shape_material = ExtResource( 1 ) 2131 | tessellation_stages = 5 2132 | tessellation_tolerence = 4.0 2133 | flip_edges = false 2134 | render_edges = true 2135 | collision_size = 32.0 2136 | collision_offset = 0.0 2137 | collision_polygon_node_path = NodePath("") 2138 | 2139 | [node name="CanvasModulate" type="CanvasModulate" parent="."] 2140 | color = Color( 0.811765, 0.807843, 0.807843, 1 ) 2141 | 2142 | [node name="SS2D_Shape_Closed2" type="Node2D" parent="."] 2143 | script = ExtResource( 5 ) 2144 | _points = SubResource( 242 ) 2145 | material_overrides = null 2146 | shape_material = ExtResource( 1 ) 2147 | tessellation_stages = 5 2148 | tessellation_tolerence = 4.0 2149 | flip_edges = false 2150 | render_edges = true 2151 | collision_size = 32.0 2152 | collision_offset = 0.0 2153 | collision_polygon_node_path = NodePath("") 2154 | 2155 | [node name="SS2D_Shape_Closed3" type="Node2D" parent="."] 2156 | position = Vector2( 657.679, 7.55957 ) 2157 | script = ExtResource( 5 ) 2158 | _points = SubResource( 253 ) 2159 | material_overrides = null 2160 | shape_material = SubResource( 256 ) 2161 | tessellation_stages = 5 2162 | tessellation_tolerence = 4.0 2163 | flip_edges = false 2164 | render_edges = true 2165 | collision_size = 32.0 2166 | collision_offset = 0.0 2167 | collision_polygon_node_path = NodePath("") 2168 | 2169 | [node name="Light2D" type="Light2D" parent="."] 2170 | position = Vector2( 472, 64 ) 2171 | texture = ExtResource( 17 ) 2172 | texture_scale = 0.25 2173 | energy = 1.1 2174 | -------------------------------------------------------------------------------- /DemoProject/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SirRamEsq/SmartShape2D-DemoProject/b43f2e60e6801d0ebaaa800be57781ffd9cf030a/DemoProject/icon.png -------------------------------------------------------------------------------- /DemoProject/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /DemoProject/materials/edge/edge_grass.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" load_steps=12 format=2] 2 | 3 | [ext_resource path="res://assets/Spring/grass.png" type="Texture" id=1] 4 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material.gd" type="Script" id=2] 5 | [ext_resource path="res://assets/Spring/grass-corner-inner.png" type="Texture" id=3] 6 | [ext_resource path="res://assets/Spring/grass-corner-outer.png" type="Texture" id=4] 7 | [ext_resource path="res://assets/Spring/grass-taper-left.png" type="Texture" id=5] 8 | [ext_resource path="res://assets/Spring/grass-taper-right.png" type="Texture" id=6] 9 | [ext_resource path="res://assets/Spring/2/grass-taper-right.png" type="Texture" id=7] 10 | [ext_resource path="res://assets/Spring/2/grass.png" type="Texture" id=8] 11 | [ext_resource path="res://assets/Spring/2/grass-taper-left.png" type="Texture" id=9] 12 | [ext_resource path="res://assets/Spring/2/grass-corner-outer.png" type="Texture" id=10] 13 | [ext_resource path="res://assets/Spring/2/grass-corner-inner.png" type="Texture" id=11] 14 | 15 | [resource] 16 | script = ExtResource( 2 ) 17 | textures = [ ExtResource( 1 ), ExtResource( 8 ) ] 18 | texture_normals = [ ] 19 | textures_corner_outer = [ ExtResource( 4 ), ExtResource( 10 ) ] 20 | textures_corner_inner = [ ExtResource( 3 ), ExtResource( 11 ) ] 21 | texture_normals_corner_outer = [ ] 22 | texture_normals_corner_inner = [ ] 23 | textures_taper_left = [ ExtResource( 5 ), ExtResource( 9 ) ] 24 | textures_taper_right = [ ExtResource( 6 ), ExtResource( 7 ) ] 25 | texture_normals_taper_left = [ ] 26 | texture_normals_taper_right = [ ] 27 | use_corner_texture = false 28 | use_taper_texture = false 29 | fit_mode = 0 30 | -------------------------------------------------------------------------------- /DemoProject/materials/edge/edge_rock.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" load_steps=5 format=2] 2 | 3 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material.gd" type="Script" id=1] 4 | [ext_resource path="res://assets/Spring/rock-corner-outer.png" type="Texture" id=2] 5 | [ext_resource path="res://assets/Spring/rock-corner-innerr.png" type="Texture" id=3] 6 | [ext_resource path="res://assets/Spring/rock.png" type="Texture" id=4] 7 | 8 | [resource] 9 | script = ExtResource( 1 ) 10 | textures = [ ExtResource( 4 ) ] 11 | texture_normals = [ ] 12 | textures_corner_outer = [ ExtResource( 2 ) ] 13 | textures_corner_inner = [ ExtResource( 3 ) ] 14 | texture_normals_corner_outer = [ ] 15 | texture_normals_corner_inner = [ ] 16 | textures_taper_left = [ ] 17 | textures_taper_right = [ ] 18 | texture_normals_taper_left = [ ] 19 | texture_normals_taper_right = [ ] 20 | weld_quads = true 21 | use_corner_texture = true 22 | use_taper_texture = true 23 | -------------------------------------------------------------------------------- /DemoProject/materials/shape_material_1.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" load_steps=15 format=2] 2 | 3 | [ext_resource path="res://addons/rmsmartshape/materials/shape_material.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material_metadata.gd" type="Script" id=2] 5 | [ext_resource path="res://addons/rmsmartshape/normal_range.gd" type="Script" id=3] 6 | [ext_resource path="res://materials/edge/edge_grass.tres" type="Resource" id=4] 7 | [ext_resource path="res://assets/fill.png" type="Texture" id=5] 8 | [ext_resource path="res://assets/Spring/rock.png" type="Texture" id=6] 9 | [ext_resource path="res://addons/rmsmartshape/materials/edge_material.gd" type="Script" id=7] 10 | [ext_resource path="res://assets/Spring/rock-corner-outer.png" type="Texture" id=8] 11 | [ext_resource path="res://assets/Spring/rock-corner-innerr.png" type="Texture" id=9] 12 | 13 | [sub_resource type="Resource" id=1] 14 | script = ExtResource( 3 ) 15 | begin = 0.0 16 | end = 180.0 17 | 18 | [sub_resource type="Resource" id=2] 19 | script = ExtResource( 2 ) 20 | edge_material = ExtResource( 4 ) 21 | normal_range = SubResource( 1 ) 22 | weld = true 23 | render = true 24 | z_index = 100 25 | z_as_relative = true 26 | offset = 0.0 27 | 28 | [sub_resource type="Resource" id=3] 29 | script = ExtResource( 7 ) 30 | textures = [ ExtResource( 6 ) ] 31 | texture_normals = [ ] 32 | textures_corner_outer = [ ExtResource( 8 ) ] 33 | textures_corner_inner = [ ExtResource( 9 ) ] 34 | texture_normals_corner_outer = [ ] 35 | texture_normals_corner_inner = [ ] 36 | textures_taper_left = [ ] 37 | textures_taper_right = [ ] 38 | texture_normals_taper_left = [ ] 39 | texture_normals_taper_right = [ ] 40 | use_corner_texture = true 41 | use_taper_texture = true 42 | fit_mode = 1 43 | 44 | [sub_resource type="Resource" id=4] 45 | script = ExtResource( 3 ) 46 | begin = 0.0 47 | end = 360.0 48 | 49 | [sub_resource type="Resource" id=5] 50 | script = ExtResource( 2 ) 51 | edge_material = SubResource( 3 ) 52 | normal_range = SubResource( 4 ) 53 | weld = true 54 | render = true 55 | z_index = -10 56 | z_as_relative = true 57 | offset = 0.0 58 | 59 | [resource] 60 | script = ExtResource( 1 ) 61 | _edge_meta_materials = [ SubResource( 2 ), SubResource( 5 ) ] 62 | fill_textures = [ ExtResource( 5 ) ] 63 | fill_texture_normals = [ ] 64 | fill_texture_z_index = -100 65 | fill_mesh_offset = -0.35 66 | render_offset = 0.0 67 | -------------------------------------------------------------------------------- /DemoProject/project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=4 10 | 11 | _global_script_classes=[ { 12 | "base": "Resource", 13 | "class": "RMS2D_Material", 14 | "language": "GDScript", 15 | "path": "res://addons/rmsmartshape/RMSmartShapeMaterial.gd" 16 | }, { 17 | "base": "Reference", 18 | "class": "RMS2D_VertexProperties", 19 | "language": "GDScript", 20 | "path": "res://addons/rmsmartshape/LEGACY_vertex_properties.gd" 21 | }, { 22 | "base": "Reference", 23 | "class": "RMS2D_VertexPropertiesArray", 24 | "language": "GDScript", 25 | "path": "res://addons/rmsmartshape/LEGACY_vertex_properties_array.gd" 26 | }, { 27 | "base": "Node2D", 28 | "class": "RMSmartShape2D", 29 | "language": "GDScript", 30 | "path": "res://addons/rmsmartshape/RMSmartShape2D.gd" 31 | }, { 32 | "base": "Node2D", 33 | "class": "RMSmartShapeAnchor2D", 34 | "language": "GDScript", 35 | "path": "res://addons/rmsmartshape/RMSmartShapeAnchor2D.gd" 36 | }, { 37 | "base": "Node", 38 | "class": "SS2D_Common_Functions", 39 | "language": "GDScript", 40 | "path": "res://addons/rmsmartshape/common_functions.gd" 41 | }, { 42 | "base": "Reference", 43 | "class": "SS2D_Edge", 44 | "language": "GDScript", 45 | "path": "res://addons/rmsmartshape/shapes/edge.gd" 46 | }, { 47 | "base": "Reference", 48 | "class": "SS2D_IndexMap", 49 | "language": "GDScript", 50 | "path": "res://addons/rmsmartshape/shapes/index_map.gd" 51 | }, { 52 | "base": "Resource", 53 | "class": "SS2D_Material_Edge", 54 | "language": "GDScript", 55 | "path": "res://addons/rmsmartshape/materials/edge_material.gd" 56 | }, { 57 | "base": "Resource", 58 | "class": "SS2D_Material_Edge_Metadata", 59 | "language": "GDScript", 60 | "path": "res://addons/rmsmartshape/materials/edge_material_metadata.gd" 61 | }, { 62 | "base": "Resource", 63 | "class": "SS2D_Material_Shape", 64 | "language": "GDScript", 65 | "path": "res://addons/rmsmartshape/materials/shape_material.gd" 66 | }, { 67 | "base": "Reference", 68 | "class": "SS2D_Mesh", 69 | "language": "GDScript", 70 | "path": "res://addons/rmsmartshape/shapes/mesh.gd" 71 | }, { 72 | "base": "Resource", 73 | "class": "SS2D_NormalRange", 74 | "language": "GDScript", 75 | "path": "res://addons/rmsmartshape/normal_range.gd" 76 | }, { 77 | "base": "VBoxContainer", 78 | "class": "SS2D_NormalRangeEditor", 79 | "language": "GDScript", 80 | "path": "res://addons/rmsmartshape/editors/NormalRangeEditor/NormalRangeEditor.gd" 81 | }, { 82 | "base": "EditorProperty", 83 | "class": "SS2D_NormalRangeEditorProperty", 84 | "language": "GDScript", 85 | "path": "res://addons/rmsmartshape/editors/NormalRangeEditor/NormalRangeEditorProperty.gd" 86 | }, { 87 | "base": "Resource", 88 | "class": "SS2D_Point", 89 | "language": "GDScript", 90 | "path": "res://addons/rmsmartshape/shapes/point.gd" 91 | }, { 92 | "base": "Resource", 93 | "class": "SS2D_Point_Array", 94 | "language": "GDScript", 95 | "path": "res://addons/rmsmartshape/shapes/point_array.gd" 96 | }, { 97 | "base": "Reference", 98 | "class": "SS2D_Quad", 99 | "language": "GDScript", 100 | "path": "res://addons/rmsmartshape/shapes/quad.gd" 101 | }, { 102 | "base": "Node2D", 103 | "class": "SS2D_Shape_Anchor", 104 | "language": "GDScript", 105 | "path": "res://addons/rmsmartshape/shapes/shape_anchor.gd" 106 | }, { 107 | "base": "Node2D", 108 | "class": "SS2D_Shape_Base", 109 | "language": "GDScript", 110 | "path": "res://addons/rmsmartshape/shapes/shape_base.gd" 111 | }, { 112 | "base": "SS2D_Shape_Base", 113 | "class": "SS2D_Shape_Closed", 114 | "language": "GDScript", 115 | "path": "res://addons/rmsmartshape/shapes/shape_closed.gd" 116 | }, { 117 | "base": "Node2D", 118 | "class": "SS2D_Shape_Combine_Union", 119 | "language": "GDScript", 120 | "path": "res://addons/rmsmartshape/shapes/shape_combine_union.gd" 121 | }, { 122 | "base": "SS2D_Shape_Base", 123 | "class": "SS2D_Shape_Meta", 124 | "language": "GDScript", 125 | "path": "res://addons/rmsmartshape/shapes/shape_meta.gd" 126 | }, { 127 | "base": "SS2D_Shape_Base", 128 | "class": "SS2D_Shape_Open", 129 | "language": "GDScript", 130 | "path": "res://addons/rmsmartshape/shapes/shape_open.gd" 131 | }, { 132 | "base": "Node2D", 133 | "class": "SS2D_Shape_Render", 134 | "language": "GDScript", 135 | "path": "res://addons/rmsmartshape/shapes/shape_render.gd" 136 | }, { 137 | "base": "Resource", 138 | "class": "SS2D_Strings", 139 | "language": "GDScript", 140 | "path": "res://addons/rmsmartshape/strings.gd" 141 | }, { 142 | "base": "Resource", 143 | "class": "SS2D_VertexProperties", 144 | "language": "GDScript", 145 | "path": "res://addons/rmsmartshape/vertex_properties.gd" 146 | } ] 147 | _global_script_class_icons={ 148 | "RMS2D_Material": "", 149 | "RMS2D_VertexProperties": "", 150 | "RMS2D_VertexPropertiesArray": "", 151 | "RMSmartShape2D": "res://addons/rmsmartshape/assets/LEGACY_shape.png", 152 | "RMSmartShapeAnchor2D": "res://addons/rmsmartshape/assets/LEGACY_shape_anchor.png", 153 | "SS2D_Common_Functions": "", 154 | "SS2D_Edge": "", 155 | "SS2D_IndexMap": "", 156 | "SS2D_Material_Edge": "", 157 | "SS2D_Material_Edge_Metadata": "", 158 | "SS2D_Material_Shape": "", 159 | "SS2D_Mesh": "", 160 | "SS2D_NormalRange": "", 161 | "SS2D_NormalRangeEditor": "", 162 | "SS2D_NormalRangeEditorProperty": "", 163 | "SS2D_Point": "", 164 | "SS2D_Point_Array": "", 165 | "SS2D_Quad": "", 166 | "SS2D_Shape_Anchor": "res://addons/rmsmartshape/assets/Anchor.svg", 167 | "SS2D_Shape_Base": "", 168 | "SS2D_Shape_Closed": "res://addons/rmsmartshape/assets/closed_shape.png", 169 | "SS2D_Shape_Combine_Union": "", 170 | "SS2D_Shape_Meta": "res://addons/rmsmartshape/assets/meta_shape.png", 171 | "SS2D_Shape_Open": "res://addons/rmsmartshape/assets/open_shape.png", 172 | "SS2D_Shape_Render": "", 173 | "SS2D_Strings": "", 174 | "SS2D_VertexProperties": "" 175 | } 176 | 177 | [application] 178 | 179 | config/name="SmartShape2D Demo Project" 180 | run/main_scene="res://demo.tscn" 181 | config/icon="res://icon.png" 182 | 183 | [editor_plugins] 184 | 185 | enabled=PoolStringArray( "res://addons/gut/plugin.cfg", "res://addons/rmsmartshape/plugin.cfg" ) 186 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Robert Morse 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SmartShape2D - Demo Project 2 | --- 3 | 4 | Make sure to run: 5 | - git submodule init 6 | - git submodule update 7 | ...to get the latest SmartShape2D Commit from GitHub 8 | --------------------------------------------------------------------------------